DSP接口效率的分析与提高

时间:2023-03-25 16:33:13 理工毕业论文 我要投稿
  • 相关推荐

DSP接口效率的分析与提高

摘要:分析了导致DSP系统接口效率低下的几种情况,重点叙述了相应的提高效率的设计方法,并提供了电路图和源程序。

近几年来,数字信号处理器(DSP)得到了广泛的应用。由于DSP采用程序空间和数据空间分离的哈佛结构,对程序和数据并行操作,使之成倍地提高了处理速度;再加上流水线技术,使得DSP的指令周期多为10ns级。而与之配套的外围器件却没有像DSP那样猛地发展。首先,DSP与外围器件之间的速度差异日益显著,大部分外围器件的读写周期在50ns以上,即使是最快的静态RAM,其读写周期亦为8ns左右,也只能与50MHz以下的DSP直接接口;其次,一些领域的器件在设计时并没有考虑与DSP接口,以至于不能直接接入DSP总线,如CAN总线控制器SA1000采用地址总线与数据总线分时复用的总线接口。这使得DSP与许多外部器件难以接口,特别是在与多个外部器件接口或者与总线不兼容的外部器件接口时,常常会出现因接口处理不当而导致接口效率低下的情况。当DSP对外部器件的操作频率很高时,接口效率的高低将对系统的运行速度产生不可忽略的影响。

1 多个外设的情况

当DSP与低速器件接口时,可以通过设置DSP片内的等待状态产生控制寄存器(WSGR),在相应的程序空间、数据空间或I/O空间产生1~7个等待周期,以使DSP的访问速度能和低速器件相匹配。当在同一空间内既有低速器件又有高速器件时,通常WSGR的延时值被设置成与速度最慢的器件相一致,以保证DSP对所有的器件都能进行正确的访问。若对高速器件的操作很频繁,则这种对整个空间的延时将极不合理地降低系统速度。例如,有些系统在程序空间同时扩展有RAM和ROM。而ROM的速度一般远远低于RAM,其访问周期一般为100~200ns,即使DSP和RAM的访问速度均可达到25ns,但对整个数据空间进行延时后,DSP也只能以ROM的访问速度(100~200ns)对RAM进行访问。

在这种情况下,首先应考虑使用软件方法提供效率。其方法是默认的情况下将WSGR设置成与高速器件一致,当要访问低速器件时再修改WSGR的值。DSP常常对外部件进行连续操作,在这种情况下,软件方法还是比较有效的。但最大问题在于增加了软件负担和不稳定因素。

显然,效率最高的情况是,既不需要修改WSGR,DSP又能以外部器件本身的速度对它们进行访问。事实上,只要能够产生适当的信号控制DSP的READY端,就可以达到这个目的。DSP在开始一个外部总线的操作后,会在每一个CLKOUT信号(DSP的时钟输出)的上升沿时刻对READY端进行查询,若READY为低,则保持总线的状态不变,然后在下一个CLKOUT上升沿时刻两次查询,直至查询到READY为高时结束本次总线访问。

下面的设计实例中介绍的硬件等待电路(见图1)能够实现这个功能。它针对不同的外部器件产生相应的等待信号送到DSP的READY端,实现硬等待。其核心器件采用了广泛应用的通用逻辑阵列(GAL),GAL的引脚定义与图1相对应。使用GAL器件使硬件设计变得简单而灵活,可以完成比较复杂的逻辑关系。

例如,频率为50MHz的DSP在数据空间外扩有RAM和ROM各一片,访问周期分别为70ns和150ns,地址空间分别为0x8000~0x8fff和0x9000~0x9fff。由DSP的主频可知,对RAM和ROM的访问各需插入3个和7个等待周期。下面给出GAL源文件的关键部分(它们使用汇编程序FM的格式编写):

Q0:=/Q0*/RD /Q0*/WR

Q1:=/Q0*Q1*/RD Q0*/Q1*/RD /Q0*Q1*/WR

Q0*/Q1*/WR

Q2:=/Q1*Q2*/RD /Q0*Q1*Q2*/RD Q0*Q1*/Q2*/RD

/Q1*Q2*/WR /Q0*Q1*Q2*/WR Q0*Q1*/Q2*/WR

;构成一个三位的二进制计数器

;Q2为最高位、Q0为最低位

;对读信号或写信号的宽度进行计数

GAL_READY.OE=VCC

/GAL_READY=/DS*A15*/A14*/A13*/A12*/Q1 /DS*A15*/A14*/A13*A12*Q1*/A0

;为RAM的访问插入3个周期

/DS*A15*/A14*/A13*A12*/Q0

/DS*A15*/A14*/A13*/Q1

/DS*A15*/A14*/A13*A12*/Q2

;为ROM的访问插入7个周期

图2是一个与写时序对应的时序图,其中在下三角符号标出的时刻,DSP对READY端进行查询。

这种方法能够充分使用硬件的速度,并且对软件是透明的,不会增加编程人员的负担。

图3 DSP与SJA1000的接口原理图

2 总线不兼容的情况

有一类芯片的总线接口是分时复用的,如CAN总线控制器SJA1000。SJA1000有8位的数据和地址复用的总线,可以和多种MCU直接相连。一次总线操作开始时,总线先传递此次操作访问的地址,在ALE信号将地址锁存后,再进行数据读写。而DSP的数据总线和地址总线被并行地引出,这种并行结构比分时复用的串行结构先进,有着高一倍的带宽。但DSP被设计时并没有考虑过会在芯片外将并行的总线再串行化,也就是没有设计相应的辅助信号来完成这种转换。这使得完全使用硬件方法进行串行转换比较困难。

此类问题通常使用软件和硬件配合解决,并不真正地靠硬件进行园,而是把一次总线操作分解成两步。先把此次操作的目标地址作为数据送到总线上,同时通过硬件产生一个锁存信号将其锁

【DSP接口效率的分析与提高】相关文章:

提高历史课堂的教学效率的方法03-02

提高电力拖动实践课效率的尝试08-23

浅谈如何提高配网故障的抢修效率05-08

试述如何提高企业行政管理效率06-13

推进目标管理,提高高校行政效率06-11

怎样提高初中生物课堂效率08-18

构建和谐师生关系提高课堂教学效率06-12

如何运用工作记忆理论来提高英语教学效率08-14

数字视频接口-DVI 1.005-31

高校舞蹈教学中提高学生情感表现力的策略分析,舞蹈教学中如何提高学生的情感表达08-13