虽然DSP的功能日益强大,但在很多的场合仍需多个DSP串行工作或并行工作。例如:在一些场合中需要利用CPU的控制能力强的特点来完成控制和人机接口;在一些实时控制的场合,实时算法经常需要由几处DSP串行或并行的工作,以提高系统的运行速度和实时性。如何在两个处理器之间进行高速可靠的信息传输,就成为构建高速实时系统的关键问题。目前,嵌入式控制系统正朝着高智能化、高实时性方向发展,在高速数据采集和处理场合,随着采样数据量的增大和信息处理任务的增加,对数据传送的要求也越来越高,在系统或模块间如果没有能够高速传送数据的接口,则会遭遇数据传送的速度瓶颈问题,从而影响整个系统对数据的处理能力。利用高性能的双口RAM能够方便的构成各种高速数据传送接口,不管是在并行处理网络中的数据共享,还是在流水方式中的高速数据传送,高性能双口RAM都能在其中发挥重要作用,确保数据通路的畅通。本文以IDT70261为例,详细介绍其工作原理及其在DSP高速实时通信中的应用。
2 1DT70261双口RAM的内部结构和功能简介
IDT70261是美国IDT公司生产的高速16kXl6带有中断的双端口SRAM。他采用100-pmTQFP封装,其典型功耗为750mW,最大存取时间有2个等级:商业级有15/20/25/35/55 ns(max),工业级有20/25/35/55ns(max)。他具有如下特点:
(1)有二套完全独立的控制线、地址线和I/O线,允许两个独立的系统同时对双端口存储器进行访问。
(2)具有完全独立的忙逻辑,可保证两个系统对同一单元进行读写操作的正确性。
(3)中断逻辑允许CPU通过端口直接进行通信,标识器逻辑允许两个控制器共享资源。
(4)允许数据高速存取,最快存取时间为15ns,可与大多数高速处理器配合使用,无需插入等待状态。
(5)具有Master/Slaver控制脚,在存储容量和数据位宽上能方便地扩展。
(6)各端口完全异步操作。
图1为IDT70261的内部功能框图。IDT70261的核心部分是存储器阵列,用于数据存储,可为左右两个端口所共用。这样位于两个端口的左右处理单元就可共享一个存储器。
2.1 忙仲裁逻辑
IDT70261允许两个CPU同时读取任何存储单元(包括同时读同一地址单元),但不允许同时写或一读一写同一地址单元,否则就会产生错误。忙仲裁逻辑正是用来确定左右两端口被要求访问同一地址单元时的优先级。当左右两端口同时写入或一读一写同一地址单元时,先稳定的地址端口通过仲裁逻辑电路优先读写,同时内部电路使另一个端口的BUSY信号有效,并在内部禁止对方访问,直到本端口操作结束。
2.2 双边中断逻辑
中断逻辑允许双CPU通过端口直接进行通信。双边中断逻辑通过读或写IDT70261最高位的两个存储单元(3FFE,3FFF)来实现。3FFF作为右边端口的中断信箱,3FFE作为左边端口的中断信箱,各CPU可以读双方的中断信箱,但只能写对方的中断信箱。当一端写入对方的中断信箱时,对方就会产生一个中断信号。读自己的中断信箱时会清除自己中断信号,读对方的中断信箱时不会清除中断信号。如果一端的BUSY信号有效,就不会再向另一端设置中断信号,也不能读自己的中断信箱清除中断信号。发出中断请求时,向地址单元3FFE,3FFF中写入的内容由用户确定,中断功能不使用时,该地址单元作为普通的双口RAM单元使用。
2.3 标识器逻辑
利用双口RAM的BUSY信号线,虽然可以保证左右两个端口能可靠地完成数据传输,但当两个端口对同一地址单元同时存取数据时,其中一个端口要处于等待状态。对于高速接口电路来说,插入等待状态会降低其数据通过率,这在有些情况下是不能接受的。IDT70261采用标识器逻辑电路,可有效地解决这一问题,实现数据高速无等待状态传送。
标识器逻辑可以使双口RAM暂时指定一块存储区,只供一端的CPU使用,称之为独占模式。IDT70261配置了独立于RAM阵列的8个标识寄存器,用来标识双口RAM是否处于独占模式。标识寄存器为低电子有效,申请时应写入o,释放时应写入1。当左端口要申请使用独占模式时,他先写。到标识寄存器,然后读标识寄存器的状态,若读到的值为。则表示申请成功,若读到的值为1表明右端口正在使用双口RAM的相同单元,申请失败。此时左边CPU可以重新置位申请,也可以先完成别的任务,并不断尝试申请。当右边CPU退出独占模式而向寄存器写入1,左边就可以写入0并取得独占模式的控制权。另外对寄存器的读写应"先写后读",不要"先读后写",以避免出现争夺系统总线的现象。因为寄存器共有8个,他可以把双口RAM划分成8块,每块存储器的容量由用户自己确定。控制脚SEM用作8个标识寄存器的"片选"信号,标识器的读写是通过地址位和数据位进行的。
3 TMS320LF240X和C54X与IDT70261的接口设计
在电力参数远程监控系统的研究中,由于电力系统对设备实时性、计算能力及大数据量等各方面要求的不断提高,在计算能力和实时性上,单一CPU已不能很好地适应系统要求。本系统由CPU、开关量输入、开关量输出、模拟量输入、键盘、显示和通信等模块组成,他集数据采集、数据处理、控制判断和控制输出于一身,实现复杂的数据处理和控制策略。因此CPU模块采用双DSP结构:控制部分采用TI公司的TMS320F240X,主要完成外围电路的控制,包括液晶显示、键盘管理、串行通信及时钟控制等sTMS320C54X主要完成数据采集,数据计算等TMS320LF240X和TMS320C54X之间采用双口RAMIDT70261进行通讯。其接口电路框图如图2所示。
4 软件实现方案
通过双口RAM实现双CPU高速通信的关键在于仲裁逻辑和中断逻辑的处理,避免由此产生的读写错误。本系统中双口RAM传送数据有2种形式:
(1)流水传送。
(2)利用标识器功能传送。
在流水传送时,一个CPU发送数据,一个CPU接收数据,若遇到二者向同一个地址单元存取时,则BUSY信号线控制READY线,避免出现数据传送错误。标识器功能适合于数据块的传送,利用标识寄存器把双口RAM容量均分成8块,每块有2kXl6b/s位的容量,当左端口送数时,他先写。到标识器o,若读取的状态值为1,则说明第一块2k双口RAM正被右端口使用;其可再写0到标识器1,若读取的状态值为0,则表明第二块2k双口RAM区处于未被使用的空闲状态,此时,左端口可把其数据写入。若读取的值仍为1,则继续查询第3,4,5,6,7,8块双口RAM区,直至把数据写入。TMS320F240X主要完成对外围电路的控制,在编程时应合理利用中断资源以提高控制系统的实时响应速度。TMS320C54X主要完成数据采集和数据处理等,并将处理后的数据传送给IDT70261。他的主程序流程图如图3所示。
5 结 语
通过双口RAM实现,双CPU之间数据通信,可以极大地提高数据传输的速度和可靠性,非常适合于构建高速实时控制系统。实践证明,用他构成的接口电路具有传送速率高、实时性好、可靠性高、电路简单等优点。
本文关键字:通信 DSP/FPGA技术,单片机-工控设备 - DSP/FPGA技术
上一篇:单片机设计测距仪原理及其简单应用