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 的时钟输出...