采用DSP器件TMS320C32实现存储器接口的应用设计

网友投稿 263 2022-11-08

采用DSP器件TMS320C32实现存储器接口的应用设计

1、TMS320C32的外部存储器接口的特点

TMS320C32是一个32位微处理器,它可以通过24位地址总线、32位数据总线和选通信号对外部存储器进行访问。其外部存储器接口结构如下图l所示。

可以通过对STRBx和IOSTRB的设置,从8/16/32位的存储器中访问8/16/32位数据或程序。也就是说,可以从任何一个外部存储器中访问任何一种类型的数据。这就说明可以通过设置IOSTRB、STRB0和STRB1的选通信号来寻址整个外部存储器空间。例如,一个32位外部存储器可以被设定为只存放一个32位的双字,但是也可以被分为具有2个连续地址的16位字或者4个连续地址的8位字节。反之,一个32位双字可以放在一个32 位外部存储器中,也可以放在2个16位或4个8位宽度的外部存储器中。

TMS320C32内部总共提供了64 MB的存储器映射空间。其中,STRB0所对应的存储映像区间是不连续的两段区问,一段是03FH~7FFFFFH(共31.999 MB),另一段是880000H~8FFFFFH(共2 MB);STRBl所对应的存储映像区间是900000H~FFFFFFH(共28 MB);IOSTRB所对应的存储映像区间是810000H~82FFFFH(共512KB)。当外部总线访问这些空间时,相应的选通信号就使能。

2、TMS320C32的3种存储器设计方案

2.1 8位存储器宽度

设计为8位的存储器,其硬件接线方案如图2所示。STRBx_B3/Al_1和STRBx_B2/A_2引脚作为地址引脚,STRBx_B0引脚作为片选引脚,而STRBx_B1则不用。

2.2 16位存储器宽度

设计为16位的存储器,其硬件接线方案如图3所示。STRBx_B3/A_1引脚作为地址引脚,STRBx_B0和STRBx_B1引脚作为片选引脚,而STRBx_B2/A_2则不用。

2.3 32位存储器宽度

设计为32位的存储器,其硬件接线方案如下图4所示。STRBx所有的引脚都设置成片选引脚。

3、存储器映射外部总线控制寄存器

综上所述,TMS320C32可以从8/16/32位存储器中访问8/16/32位数据,或者从16/32位存储器中执行32位的程序。但是如果内外部数据的位数不一致时该如何处理呢?C32的外部总线控制寄存器可以根据相应控制位的值,自动对存储器接口的宽度进行相应的调整。下面则对总线控制寄存器作出一个详细的介绍。

STRBo、STRBl以及IOSTRB控制寄存器在存储器映射空间的物理地址分别是808064H、808068H和808060H,并且都是32位的,各位的定义如图5、图6和图7所示。

从图5和图6中我们可以看到,STRBx控制寄存器的第18、19位是用来控制存储器的宽度的,而第16、17位是用来控制数据宽度的,具体定义如表1所列。

4、存储器接口实例

在16位存储器中存放32位数据时,STRB0_B3/A1作为地址引脚与外部存储器的AO相接,STRB0_B0和STRB0_B1作为片选信号,STRBx_B2/A_2不用。由于数据宽度大于存储器宽度,所以在外部存储器偶地址中存放32位数据的低16位,奇地址中存放32位数据的高16 位,外部存储器的地址为OH~lFFFFH,对应的在C32存储映射中的地址为OH~0FFFFH。当一条指令向逻辑地址OH中装入一个32位数据时,存储器接口必须向外部16位存储器执行两个指令周期。这两个指令周期访问2个连续的外部存储器地址OH和1H,从而完成对32位数据的操作。

当在外部32位存储器中存放32位数据时,STRBl的4个引脚都设置为片选引脚。这时数据宽度与外部存储器宽度一致,由于是STRBl使能,所以128 K32位的外部存储空间与C32存储器映射的900000H~91FFFFH相对应。

5、小结

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:记一次线上SpringCloud Feign请求服务超时异常排查问题
下一篇:写在校招季,谈谈机器学习岗的Offer选择问题
相关文章

 发表评论

暂时没有评论,来抢沙发吧~