DSP接口效率的分析与提高
完成一帧消息搬移功能(它在每次操作的同时对下次操作的地址进行并行寻址):
Larar0,mlength;取消息的长度
Larar1,#SJA1_A;一个SJA1000中接收邮箱的首地址
Larar2,#SJA2_S;另一个SJA1000中发送邮箱的首地址
Mar*,ar0
Mar*-,ar1
Loop:;复制一帧消息
Lacl*+,ar2
Sacl*+,ar0
Banzloop,*-,ar1
如果按下述方法改写这段程序,不仅对SJA1000的操作时间要增加倍,而且每次操作前都要对地址进行运算,使得完成同样功能的程序运行时间要增加到原来的3~4倍。
这时,只有使用纯硬件的解决方法才能获得理想的效果。设计的关键是生成合适的锁存信号ALE,使它能够满足SJA1000的时序要求。通过研究DSP控制信号的时序要吧发现,从地址建立到读写控制信号有效大约要经历二分之一个CPU时钟的时间,而SJA1000的ALE信号要求的最小宽度为8ns,因此对于主频在50MHz(CPU时钟为20ns)以下DSP,可以利用这二分之一个CPU时钟的时间间隔生成ALE信号。图3给出了含两片SJA1000的接口电路图。除了片选信号外,这两片SJA1000的总线和其它控制信号都连在一起。
假设SJA1000的片选地址为0X8xxx和0x9xxx,各引脚定义与图中对应,则GAL中的逻辑关系如下:
/ADDR_G=DSP_RD*DSP_WR*RD*WR
/DATA_G=/DSP_DS*DSP_A15*/DSP_A14*/DSP_A13*ADDR_G
/WR=/DSP_WR*/ALE
/RD=/DSP_RD*/ALE
ALE=/DSP_DS*DSP_A15*/DSP_A14*/DSP_A13
*DSP_RD*DSP_WR
/CS1=/DSP_DS*DSP_A15*/DSP_A14*/DSP_A13
*/DSP_A12*ADDR_G
/CS2=/DSP_DS*DSP_A15*/DSP_A14*/DS
P_A13*DSP_A12*ADDR_G
对其中一片进行读写操作,则时序关系如图4所示。
其中,twr、tww分别为DSP读、写时的ALE信号宽度,它们都接近1/2个CLKOUT的周期。T为ALE的下降沿到RD、WR有效的时间,它由GAL翻转的延时产生,为10ns以上(注:本图中DSP的时序来自TMS320C24xxA系列,不同系列的DSP产品之间时序可能有细微的差别)。
对于主频高于50MHz的DSP,应当使用有更高工作频率的可编程逻辑器件,并将前面介绍的主数器引入编程逻辑器件内,来产生满足时序要求的锁存信号。
本文介绍的两种高效率的DSP接口的设计方法,去掉了在DSP访问外设时任何不必要的时间消耗。当然,效率的提高是以增加硬件的复杂杂度为代价的,在能够满足设计要求的前提下,设计者应该选择简单的设计方案。而对于 《DSP接口效率的分析与提高(第3页)》
本文链接地址:http://www.oyaya.net/fanwen/view/140159.html
Larar0,mlength;取消息的长度
Larar1,#SJA1_A;一个SJA1000中接收邮箱的首地址
Larar2,#SJA2_S;另一个SJA1000中发送邮箱的首地址
Mar*,ar0
Mar*-,ar1
Loop:;复制一帧消息
Lacl*+,ar2
Sacl*+,ar0
Banzloop,*-,ar1
如果按下述方法改写这段程序,不仅对SJA1000的操作时间要增加倍,而且每次操作前都要对地址进行运算,使得完成同样功能的程序运行时间要增加到原来的3~4倍。
这时,只有使用纯硬件的解决方法才能获得理想的效果。设计的关键是生成合适的锁存信号ALE,使它能够满足SJA1000的时序要求。通过研究DSP控制信号的时序要吧发现,从地址建立到读写控制信号有效大约要经历二分之一个CPU时钟的时间,而SJA1000的ALE信号要求的最小宽度为8ns,因此对于主频在50MHz(CPU时钟为20ns)以下DSP,可以利用这二分之一个CPU时钟的时间间隔生成ALE信号。图3给出了含两片SJA1000的接口电路图。除了片选信号外,这两片SJA1000的总线和其它控制信号都连在一起。
假设SJA1000的片选地址为0X8xxx和0x9xxx,各引脚定义与图中对应,则GAL中的逻辑关系如下:
/ADDR_G=DSP_RD*DSP_WR*RD*WR
/DATA_G=/DSP_DS*DSP_A15*/DSP_A14*/DSP_A13*ADDR_G
/WR=/DSP_WR*/ALE
/RD=/DSP_RD*/ALE
ALE=/DSP_DS*DSP_A15*/DSP_A14*/DSP_A13
*DSP_RD*DSP_WR
/CS1=/DSP_DS*DSP_A15*/DSP_A14*/DSP_A13
*/DSP_A12*ADDR_G
/CS2=/DSP_DS*DSP_A15*/DSP_A14*/DS
P_A13*DSP_A12*ADDR_G
对其中一片进行读写操作,则时序关系如图4所示。
其中,twr、tww分别为DSP读、写时的ALE信号宽度,它们都接近1/2个CLKOUT的周期。T为ALE的下降沿到RD、WR有效的时间,它由GAL翻转的延时产生,为10ns以上(注:本图中DSP的时序来自TMS320C24xxA系列,不同系列的DSP产品之间时序可能有细微的差别)。
对于主频高于50MHz的DSP,应当使用有更高工作频率的可编程逻辑器件,并将前面介绍的主数器引入编程逻辑器件内,来产生满足时序要求的锁存信号。
本文介绍的两种高效率的DSP接口的设计方法,去掉了在DSP访问外设时任何不必要的时间消耗。当然,效率的提高是以增加硬件的复杂杂度为代价的,在能够满足设计要求的前提下,设计者应该选择简单的设计方案。而对于 《DSP接口效率的分析与提高(第3页)》