作者:樊凡,阔永红
由工业计算机通过PCI总线控制的前端数据采集系统在工业控制领域中得到了广泛的应用,一般的数据传送系统在大数据量的情况下会造成数据堵塞现象。在系统设计的过程中经过多方面的比较,最后采用高数双口RAM构成的高速数据交换接口成功地解决了此问题。
CY7C026是CYPRESS公司生产的16K×16高速双口静态RAM,存取速度小于25ns。它具有真正的双端口,可以同时进行数据存取,两个端口具有独立的控制信号线、地址线和数据线,另外通过主/从选择可以方便地扩存储容量和数据宽度。通过芯片的信号量标志器,左、右两端口可以实现芯片资源的共享。CY7C026芯片的内部功能框图见图1。
图1 CY7C026芯片的内部功能框图
CY7C026的工作原理
存取原理
由CY7C026的内部结构图可以看出,该芯片的核心部分是双端口存储阵列,左右两个端口可以共用该存储阵列,并且拥有各自的控制线,在单独存取数据时,和普通的RAM相同。同时读取不同存储空间的数据和同时读取相同数据空间的数据时,左右端口可以同时进行。若同时对相同的数据空间做写操作,或一端口对一数据空间作读操作的同时另一端口对该数据空间作写操作,左右端口将发生冲突。为此,CY7C026通过BUSY管脚来处理这两种情况。
当左右端口对不同存储空间进行读写操作时,可同时存取。此时,左右端口的BUSY信号同时置高。若对同一存储空间同时进行存储操作时,哪一端的存储请求信号先出现,则该端的BUSY信号置高,允许存储。哪一端的存储信号出现在后,则这一端BUSY信号置低,禁止存储。
值得注意的是,左右两端存取请求信号出现的时间差必须大于5ns,不然仲裁逻辑无法判断哪一边的存取请求信号出现在前。如果出现两端存取请求信号出现的时间差小于5ns的情况,仲裁逻辑将一边的BUSY信号置高,将另一边的BUSY信号置低,从而保证两个端口一个执行数据存储,另一端口进行数据读取,避免了冲突。
中断功能和主/从模式的使用
CY7C026芯片的中断功能是通过“信箱”来实现的。所谓的“信箱”是指芯片将存储器的高地址3FFF作为左端口的“信箱”,而3FFE作为右端口的“信箱”。下面以左端口向右端口传送数据为例,说明中断功能的用法。当左端口将数据写入右端口的“邮箱”时,右端口的INTR管脚就会产生中断信号,即INTR管脚置低。右端口读取该数据后中断信号自动复位。右端口向左端口传送数据的情况与上述情况相同。用户需要清楚的是,该功能只适用于数据的低速传送。
实际中,数据的宽度往往大于16位。这时就需要扩展数据位的宽度,CY7C026的M/S管脚提供了数据扩展的功能。例如,实际应用中经常需要32位的数据总线,可以将一片CY7C026的M/S管脚置低,另一片的M/S管脚置高,然后将两块芯片的管脚连接在一起即可。
图2 高速数据采集和传输系统框图
信号量标志器的使用
CY7C026在数据传输系统中的应用
所设计的系统是石油测井设备的一个子系统,系统以TMS320C5402为主处理器,通过双口RAM CY7C026作为数据共享的接口。其主要功能是接收工业计算机通过CPCI接口写入双口RAM的命令,DSP将该命令下发到井下仪器,相应的井下仪器接收到命令后,采集井下数据,然后将数据传送到DSP中,经过DSP处理后的数据写入双口RAM。最后,工业计算机通过CPCI接口将双口RAM中的数据传送到计算机中作显示处理。系统框图如图2所示。
结束语
利用双口RAM CY7C026的高速数据传输能力和DSP TMS320VC5402的高速性能能够满足高速数据传输的要求,同时能够完成大量复杂的数据处理工作,从而兼顾了数据传输处理所需要的大吞吐量和高速性。