双口RAM在DSP与单片机数据通信中的应用

  • 格式:pdf
  • 大小:306.88 KB
  • 文档页数:3

双口RA M 在DSP 与单片机数据通信中的应用韩 钧,康 怡(华北电力大学电子与通信工程系,河北保定07l003)摘要:在多处理器的应用系统中,处理器之间的有效通信是系统能否协同工作的关键。

多处理器之间的通信方法有很多种,以双口RAM 作为共享存储器来实现2个处理器之间的通信具有实时性好、接口电路简单、数据传输量大等优点。

文中介绍了双口RAM 内部结构与功能,以及用它来实现DSP 与单片机之间通信的接口电路与通信流程,此接口电路同样适合其他类型的多处理器间的通信。

关键词:双口RAM;数据通信;DSP;单片机中图分类号:T N911.72文献标识码:B 文章编号:1005-7641(2006)08-0056-03收稿日期:2006-01-17;修回日期:2006-03-210 引言在电力系统小电流接地选线装置的研究中,由于算法的复杂性以及对装置实时性的要求,采用数字信号处理器(DSP )来实现装置的采样以及数据处理和算法实现等工作,用单片机来实现装置的人机交互和过程控制。

系统的协同工作需要2个CP U 之间有效的通信,通常多CP U 之间的通信方式有以下几种[1]。

(1)串口通信:串口通信是指利用处理器芯片带有的串口资源进行通信,适用于传输数据比较少、传输速率慢且处理器之间紧密耦合的场合。

(2)DMA 通信方式:它利用CP U 芯片上自带的DMA 功能进行通信,适用于实时性要求不高、数据传输量大的场合。

(3)利用标准总线结构进行通信:如VME 、Compact PC I 总线等,利用这种方法传输数据要求有总线控制器接口电路,系统复杂,成本高。

(4)利用共享存储器进行通信:多处理器间要交换数据则必须要有多个处理器都可以访问的共享存储体,一个处理器将数据写入存储体,由另一处理器将数据时分读出,这种方法可以实现处理器总线的隔离,使多个处理器间可以有效地交换数据。

多个处理器要共同访问一个存储体有双口RAM 法、先进先出的F I F O 法和总线开关加存储器法3种方法。

利用共享存储器进行通信的好处是实时性好、接口电路简单、数据传输量大[2]。

本文选用了双口RAM I D T71V321作为共享存储器,用它来实现系统中DSP 和单片机之间的数据通信。

1 I D T71V321内部结构及功能I D T71V321是I D T 公司的高速2k ×8位的双端口RAM ,具有2套相互独立、完全对称的地址总线、数据总线和控制总线,采用64脚T QFP 封装形式,采用主从模式可以方便地将数据总线扩展成16位或更宽。

内部功能[3]如图1所示。

图1 I D T71V321内部功能F i g .1 Arch itecture of I D T71V321从I D T71V321的内部结构可看出,该芯片的核心部分是双端口存储阵列,左右2个端口可以共用该存储阵列,并拥有各自的控制线,在单独存取数据时,和普通的RAM 相同。

同时读取不同存储・65・第27卷第166期 电 力 系 统 通 信 Vol .27No .1662006年8月10日 Telecommunicati ons for Electric Power Syste m Aug .10,2006空间的数据和相同数据空间的数据时,左右端口可同时进行。

若同时对相同的数据空间进行写操作,或一端口对一数据空间进行读操作时,另一端口对该数据空间进行写操作,左右端口将发生冲突。

I D T71V321通过BUSY管脚来处理这2种情况。

当左右端口对不同存储空间进行读写操作时,可同时存取,此时,左右端口的BUSY信号同时置高。

若对同一存储空间同时进行存储操作时,哪一端的存储请求信号先出现,则该端的BUSY信号置高,允许存储;哪一端的存储信号后出现,则这一端BUSY信号置低,禁止存储。

需要注意的是,左右两端存取请求信号出现的时间差必须大于5ns,否则仲裁逻辑无法判断哪一边的存取请求信号出现在前。

如果出现两端存取请求信号出现的时间差小于5ns的情况,仲裁逻辑将一边的BUSY信号置高,将另一边的BUSY信号置低,从而保证两个端口一个执行数据存储,另一端口进行数据读取,避免了冲突。

双口RAM有一个中断逻辑电路,如果用户使用中断功能,则存储器会给每个端口分配一个信箱。

所谓的“信箱”是指芯片将存储器的高地址7FF作为左端口的“信箱”,而7FE作为右端口的“信箱”。

下面以左端口向右端口传送数据为例,说明中断功能的用法。

当左端口将数据写入右端口的“邮箱”时,右端口的I N TR管脚就会产生中断信号,即I N T R管脚置低,右端口读取该数据后中断信号自动复位。

右端口向左端口传送数据的情况与上述情况相同。

如果用户不使用此中断功能,则2个端口的信箱都当作普通的存储器来使用。

2 双口RAM与处理器之间的接口设计在小电流单相接地选线系统的研究中,选线装置要实时对电力线路的零序电压和零序电流等参数采样,并进行计算与分析,系统具有实时性高和运算量大的特点。

如果所有任务都由一个CP U来完成,那么CP U在进行采样运算的同时,还要兼顾过程控制和开关量输入输出以及人机接口,并响应频繁的中断,必然降低系统运行效率。

因此,为了兼顾系统运行效率,减轻CP U计算负担,设计以T MS320LF2407为主机和以AT MEG A16L为接口机的双CP U主从式系统。

I D T71V321与DSP芯片T MS320LF2407和单片机芯片AT MEG A16L之间的接口电路如图2所示。

T MS320LF2407的数据线宽度为16位,而图2 双口RAM与处理器的接口电路F i g.2 I n terface c i rcu it of D ua l2port RA M w ith D SPI D T71V321的数据位宽为8位,因此将T MS320LF2407数据总线的低8位与双口RAM的数据总线相连。

但AT MEG A16L与双口RAM间的接口电路中就需要对AT MEG A16L进行总线扩展。

利用锁存器74HC373的锁存功能,通过对其使能信号的控制,进行分时读写,实现数据总线的扩展[4]。

使用双口RAM的关键是解决左右端口,同时操作同一RAM单元的竞争问题。

图2采用了硬件判优的方法,将左右端口的BUSY信号分别引至支持插入等待时序的DSP和单片机的对应引脚,以解决左右端口对同一单元的争用问题。

处理器在对双口RAM进行读写操作前,首先要读取BUSY 引脚的状态,如为低电平,则要插入等待时序,直到高电平时才能对双口RAM进行读写操作[5]。

为了增加系统的灵活性,简化软件设计,将双口RAM的I N TL和I N TR引脚分别接到DSP和单片机的外部中断上,利用双口RAM的中断逻辑,通过中断功能实现两处理器间的数据传递。

采用上述接口电路,使得单相接地选线系统电路简单、可靠性高,同时使主从计算机之间具有很高的通信速度。

经实验测试,在传输4k字节的系统数据过程中,其传输速率高达5.8Mbit/s,能很好地满足系统的实时性要求。

3 双口RAM的分区处理及软件设计利用双口RAM的BUSY信号线,虽然可以保证左右2个端口能可行地完成数据传送,但当2个端口对同一地址单元同时存取数据时,其中一个端口要处于等待状态。

插入等待状态会降低数据交换率,这在一定程度上会影响系统的实时性。

为了尽可能地避免出现等待状态,结合系统中数据处理的特点,在对双口RAM编程时,采用了地址分区・75・ ・技术研究・ 韩 钧,等 双口RAM在DSP与单片机数据通信中的应用方式,即将共享数据区按一定的标准划分成若干个数据,并制定相应的软件协议,使得主、从机以适当的时序读写数据,从而避免对同一单元的竞用,提高实时性。

在本系统中,主、从机间需要交换的数据主要是数据采集系统、人机交互部分及算法实现部分的数据。

软件分区处理时,按照交换数据的类型将双口RA M 的共享存储区从起始单元开始分成几个不同的数据区,数据区大小由实际的数据长度确定。

每个大数据区又细分为一个数据接收缓冲区和一个数据发送缓冲区,每个处理器只能对接收缓冲区进行读操作,而对发送缓冲区进行写操作,这样就避免了两边的处理器同时对一个地址写入数据。

为了保证数据交换的实时性和有效性,采用双口RAM 的中断方式通知对方,信号I N T L 和I N T R 作为CP U 的一个中断输入。

数据交换时,先将数据放入对应的双口RAM 存储区,然后写入对方信箱,以通知对方有数据发送;接收方在相应的中断中对数据进行处理,同时读自己的信箱以清除中断信号,然后再写入对方信箱以告知其数据已处理完毕。

单片机和DSP 的软件流程分别如图3和图4所示[1]。

从图3和图4的流程图可以看出,采用地址分区方式后,主从微型计算机对双口RAM 的软件控制变得较为简单。

同时,为了验证地址分区方式避免双口RAM 地址争用现象的有效性,在系统的数据传输过程中,用示波器监测双口RAM 左口端口BUSY 引脚的电平,发现无等待状态信号出现,这表明对双口RAM 的软件分区处理模式的确是一种比较理想的处理方法。

(F )参考文献:[1] 赵建东,王广炎.双口RAM 在嵌入式调试系统中的应用[J ].电子产品世界,2002,1(A ):62-63.图3 单片机的程序流程F i g .3 Programm i n g flow chart of M i crocon troller图4 DSP 的程序流程F i g .4 Programm i n g flow chart of D SP[2] 张雄伟,陈亮,徐光辉.DSP 集成开发与应用实例[M ].北京:电子工业出版社,2002.[3] H igh S peed 3.3V 2k ×8Dual -Port Static RAM W ithI nterrup ts[Z].I D T I nc .2001.[4] 8bit AVR M icr ocontr oller with 64K Bytes I n -SystemPr ogra mmable Flash[Z].AT ME L I nc .2002.[5] 黎玉刚,张英敏,付强文.双口RAM 在组合导航系统中的应用[J ].电子技术应用,2005,(9):71-74.韩 钧(1982-),男,河北保定人,硕士研究生,主要研究方向为基于DSP 的小电流接地选线装置的研究。

康 怡(1957-),女,河北保定人,副教授,从事实时信号处理方向的研究工作。

Appli ca ti on of D ua l 2Port RAM i n da t a comm un i ca ti on between D SP and m i crocon trollerHAN Jun,K AN G Yi(Dep t .of Electr onic and Communicati on,North China Electric Power University,Baoding 071003,China )Abstract:I n the multi 2p r ocess ors app licati on system,the effective communicati on bet w een t w o p r ocess ors is the key ele ment for the effective operati on of the syste m.There are several communicati on methods bet w een the t w o p r ocess ors .There are several advantages by using Dual 2Port RAM t o realize communicati on,such as real 2ti m e capability,si m p le interface circuit and high volu me data trans 2m issi on etc .This paper intr oduces the architecture and functi on of dual 2port RAM as well as the interface circuit and p r ogra mm ing diagra m.This interface circuit is als o app licable t o other kinds of multi 2p r ocess ors communicati on .Key words:Dual 2Port RAM;data communicati on;DSP;m icr ocontr oller・85・ 电 力 系 统 通 信 2006,27(166)。