摘要:使用IDT70261双端口RAM实现ARM与TMS320C6211 DSP之间的高速实时数据通信,并给出了双端口RAM与TMS320C6211和ARM之间的硬件连接图,并详细介绍了ARM驱动程序的编程。
在后PC时代,由于网络技术和集成电路技术的飞速发展,可以将嵌入式系统用于数字信号处理和传输。
在由ARM和DSP组成的双处理器系统中,以嵌入式设备为主设备主要完成数据处理,存储和网络传输,而作为从设备的DSP需要负责复杂算法的实现。
在这种高速数据采集和处理系统中,随着采样数据量的增加和处理任务的增加,对数据传输的要求越来越高。
如果两个系统端口之间没有能够进行高速数据传输的接口,则会造成数据传输阻塞,并严重影响系统的实时性能和处理数据的能力。
因此,该系统设计的关键点之一是主从设备之间的数据通信。
本文介绍了如何使用双端口RAMIDT70261来完成TMS320C6211DSP与嵌入式ARM920T之间的数据通信。
1 IDT70261双端口RAM功能简介IDT70261是IDT在美国生产的高速16K& TImes; 16双端口SRAM。
它的典型功耗为750mW,具有两种访问时间级别:商业级15/20/25/35/55 ns(最大),工业级20/25/35 / 55ns(最大)。
双端口RAM具有两个完全独立的端口,每个端口都有一组相应的数据总线,地址总线和控制总线,从而允许两个控制器分别或异步地读取和写入任一存储单元。
这两个端口具有读取和写入双端口RAM的相同功能,但是当两个端口同时读取和写入相同的地址时,由于数据冲突,将导致存储或读取错误。
同一存储单元的操作有四种情况:(1)两个端口不能同时将数据读取和写入同一地址单元。
(2)两个端口同时从同一地址单元读取数据。
(3)两个端口同时将数据写入同一地址单元。
(4)两个端口同时将数据写入地址单元,另一个端口读取数据。
前两种情况不会对双端口RAM造成读写错误,第三种情况会导致写入数据错误,第四种情况会导致读取错误。
为了避免对双端口RAM读写错误,IDT70261具有以下仲裁控制方法。
1.1忙逻辑控制当双端口同时控制同一地址单元时,IDT70261提供/ BUSY控制机制。
当双端口不控制同一地址单元时,两个端口的/ BUSY引脚都为高电平,并且左右端口可以正常访问存储空间。
当两个端口访问同一地址单元时,一个端口的/ BUSY引脚为高电平(允许对存储空间进行读写操作),而另一个端口的引脚为低电平(禁止对存储空间进行读写操作) )),哪个请求信号是第一个,其端口引脚为高电平,另一个为低电平。
请求读取和写入的两个端口之间的最小时间差为5ns。
当时间少于5ns时,系统将自动允许一个引脚进行读写,并屏蔽另一引脚,以防止对同一地址单元的读写错误。
1.2中断控制机制IDT70261具有中断输出功能。
当中断工作时,双端口RAM的两个最高地址单元3FFE和3FFF被用作中断服务程序的“邮箱”。
传递相应的命令。
不使用中断功能时,将3FFE和3FFF单元用作普通存储单元。
下面介绍中断的工作方式。
左端口写地址单元3FFF,/ INTR变为有效(低电平),并且向右端口发送了中断请求。
右端口响应中断请求后,它可以对3FFF地址单元执行读操作以清除中断标志(/ INTR变为高电平)。
同样,右端口写地址单元3FFE,/ INTL变为活动状态(低电平),并且向左端口发送了中断请求。
左端口响应中断请求后,它可以对3FFE地址单元执行读取操作,以清除中断标志(/ INTL变高)。
1.3令牌传递原理ID IDT70261内部有8个独立于双端口RAM的逻辑锁存器单元,用于指示是否正在使用共享的双端口RAM。
在此工作模式下,/ SEM用作&q