双端口RAM的并口设计应用

2014-10-13来源: eefocus关键字:数据交换  双口RAM  并口设计
数据获取及交换是多CPU系统的重要组成部分。在这类系统中,数据交换要求的通讯速率往往很高,平均速率一般在10k左右,有时甚至达100k以上。传统的并行接口和串行接口设计无论在通信速率,还是在可靠性方面都不易满足要求。而双端口RAM则是一个较好的实现方案。它具有通讯速率高、接口设计简单等特点,因而在设计中得到广泛的应用。


1 常用双端口RAM的结构特点

1.1 通用集成电路组成的双端口

采用通用集成电路组成的双端口RAM如图1所示。一般的RAM只有一套地址总线、数据总线和读写控制线,因此,两端CPU芯片的三总线必须经过缓冲隔离才能共享静态RAM。具体工作过程是两个CPU的地址信号和读写控制信号全中接入仲裁电路,由仲裁电路判断访问双端口RAM的CPU,并使能相应的总线缓冲器。若两个CPU在同一段时间内访问共享的RAM的发生竞争,则由仲裁电路迫使后访问的CPU处于等待状态,一旦前一个CPU访问结束,再由仲裁电路打开缓冲器,以使后一个CPU接通RAM并进行访问。

 

该电路的特点是成本低、简单且存储量大,其容量在64k~128k之间。缺点是在两个CPU发生竞争时,有一方CPU必须等待,因而降低了访问效率。

1.2 专用双端口RAM芯片

目前市场上有多种专用双端口RAM芯片,如IDT7132/7142、DS1609等。这些芯片有两套完全独立的数据线、地址线和读写控制线,因而可使两个CPU分时独立访问其内部RAM资源。由于双CPU同时访问时的仲裁逻辑电路全部集成在双端口RAM内部,因而需要用户设计的电路比较简单。双端口RAM内一般都有一个总线抢占优先级比较器,只要双CPU不同时访问同一存储单元,那么较先送出地址的CPU将拥有该单元的本次访问优先权,而另一个CPU的地址与读写信号将被屏蔽掉,同时通过“busy”引脚告知该CPU以使之根据需要对该单元重新访问或撤消访问。

专用双端口RAM的优点是通讯速度快,实时性强,接口比较简单,两边CPU都可主动进行数据传输;缺点是成本高,需要克服竞争现象。

以上两种技术方案各有优点,在要求存储量较大时,一般采用通用集成电路组成的双端口RAM;在通信实时性要求较高的而通信数据量不大时,一般采用专用双端口RAM芯片。

在实际应用中,双端口RAM与并行接口与串行接口相比,它不仅能利用其两端口异步操作来读写数据,而且可用作多CPU微处理系统CPU的数据交换接口,从而简化了对各CPU之间数据通信规约的要求,提高了系统数据通信处理的可靠性,同时提高了CPU之间数据交换的实响应速度。


2 IDT7132/7142简介

2.1 IDT7132/7142结构与连接方式

IDT7132/7142是高速2k×8双端口静态RAM,可提供两个拥有独立的控制总线、地址总线和I/O总线端口,允许CPU独立访问内部的任何存储单元。当CE引脚出现下降沿时,选中DPRAM即可通过控制OE或R/W来访问内部存储单元。IDT32一般被用作8位双端口RAM,也可以作为主片与DIT7142从片构成主从式16位双端口RAM。连接方式如图2所示:

 

2.2 IDT7132/7142时序图

IDT7132/7142的时序如图3所示,它与RAM的读写时序非常类似。当CPU选中DPRAM时,CE引脚出现下降沿,当控制纡OE为高且R/W为低时,CPU对内部存储单元进行写操作;而当控制线OE为低且R/W为高时,CPU对内部存储单元进行读操作。

 

2.3 竞争现象的处理

当外部CPU通过两个端口对双端口RAM内部的同一个存储单元进行操作时,系统将出现竞争。这种竞争一般有如一两种模式:

(1)如果两个端口的总线访问地址相同,并先于片选信号CE有铲,则片内控制逻辑将在CEL与CER之间发生竞争。

(2)如果两个端口的片选信号CE在地址信号有效之前变低,则片内控制逻辑将在地址信号到达时发生竞争。

为避免因竞争而导致的通讯失败,设计者提出了各种解决方案。常见的有三种:

(1)设置标志位:在开辟数据通讯区的同时,可通过软件方法在某个固定存储单元设立标志位。这种方法要求两端CPU每次访问双端口RAM之前,必须查询、测试和设置标志位,然后再根据标志位的状态决定是否可以访问数据区;有的双端口RAM本身就个有专用的一个或多个硬件标志锁存器和专门的测试和设置指令,可直接对标志位进行读/写操作。这种方法通常用在多个处理器共享一个存储器块时。为了保证通讯数据的完整性,在采用这种方法时往往要求每个处理器能对该存储器块进行互斥的存取。

(2)软件查询BUSY引脚状态:双端口RAM必须具有解决两个处理器同时访问同一单元的竞争仲裁逻辑功能。当双方址发生冲突时,竞争仲裁逻辑可用来决定哪个端口访问有效,同时取消无效端口的访问操作,并将禁止端口的Busy信号置为低电平。因此Busy信号可作为处理器等待逻辑的输入之一,即当Busy为低电平时,让处理器进入等待状态。每次访问双端口RAM时,CPU检查BUSY状态以判断是否发生竞争,只有BUSY为高时,对双端口RAM的操作才有效。

(3)利用硬件解决竞争:将BUSY信号引入READY引脚可在发生竞争时使BUSY为低,从而使CPU内部总线时序根据READY引脚状态自动插入WAIT信号并展宽总线,以达到分时访问的目的。对于80C196KC和8098等MCS-96系列微处理器,利用这种方法便可通过硬件解决竞争问题。

另外,在使用BUSY信号时必须首先将此信号接上拉电阻,其次应在BUSY信号有效期间使处理器保持读写操作经及相应的地址和数据,但是需要说明的是:在BUSY信号变高之前,这种情况下的所有写操作都是无效的,图4所示发生竞争时的时序图。

 


3 RAM在雷达仿真平台中的应用

雷达仿真平台是用于雷达操作手训练的仿真设备。该平是一个由计算机、主控CPU(80C196KC)、手轮控制CPU(8098)等组成的多机系统。在主控CPU判断目标是否进入雷达波瓣作用范围时,必须将目标理想诸元与雷达的高低角和方位角做比较。在雷达仿真平台中,雷达的高低角和方位角是通过对高低手轮和方位手轮的轴角转换而获得的。主控CPU每隔20ms就向手轮控制CPU发送一次模拟目标的高低角、方位角、距离以及目标属性等多组数据(共200字节),同时接收手轮控制CPU的数据。为了加快通迅速度,简化通讯,提高通信的实时性指标,系统要用了双端口RAM(DPRAM)IDT7132/7142来进行CPU之间的数据交换。具体电路见图5。

 

80C196KC和8098均有READY引脚,通过80C196KC和8098的时序可知,当READY引脚出现低电平时,CPU可自动插入WAIT等待周期,以延长读写和片选信号,因此,设计时将80C196KC和8098的READY引脚与IDT7132/7142的BUSY引脚相连就可在发生竞争时,自动使80C196KC或8098处于等待状态。

在资源分配方面,该设计还划分了电视跟踪数据区、雷达跟踪数据区、手轮实测值数据区和命令状态区,并明确规定了各个通讯区的任务和性质,从而简化了通讯程序,提高了通讯速度。

通过雷达仿真平台控制系统的实时运行实验证明:主控CPU与手轮控制CPU之间的数据交换速率很高、运行可靠,大大提高了系统的实时性能。目前,该系统已经通过了技术鉴定。

关键字:数据交换  双口RAM  并口设计

编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/2014/1013/article_16480.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:SPI串行Flash在数据存储系统中的应用
下一篇:铁电存贮器FRAM技术原理

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

配有辅助以太网接口MICA 将轻松实现数据交换

专为工业领域打造的边缘计算机MICA现已配备辅助以太网接口。其可用于在两个以太网协议(包括有线至无线网关应用)之间实现数据的轻松交换和处理。许多工业4.0应用需要隔离网络,并只能简单地在以太网协议之间来回发送数据,不允许外部应用直接访问公司网络。浩亭已为此类应用在其边缘计算MICA中添加了第二个接口。额外的USB接口可用于添加其他功能或USB存储设备。原因在于,MICA与路由器不同,其能够进行复杂的数据转换和聚合。 辅助以太网接口通过功能电路板提供,实现了MICA平台模块化系统的扩展。尤其是,通过额外以太网接口与WLAN、BLE和LTE连接的MICA Wireless成为工业和运输领域诸多项目方便管理的紧凑型解决方案
发表于 2019-03-13
配有辅助以太网接口MICA 将轻松实现数据交换

两台8031单片机通过串行口进行数据交换程序

有两台8031单片机相距很近,直接将它们的串行口相连,1#机的TXD接2#机的RXD,2#机的TXD接1#机的RXD,二机的GND相连。二机的晶振频率均为11.0592MHZ,通信的波特率为4800bps。现将第一台8031单片机片内RAM40H~5FH单元内的数据,串行发送到第二台8031单片机片内RAM60H~7FH单元中。发送与接收的参考程序如下:1#单片机发送程序:ORG 1000HTX:MOV  TMOD , #02H      MOV  TH1 , #0FAH     
发表于 2017-10-14

汽车电子行业的FlexRay解码实测分析

FlexRay通讯协议是一种具备故障容错的高速汽车总线系统,已经成熟运用在BMW X5的电控减震和主控悬吊系统中。这里将喝大家一起来了解FlexRay协议及对应的解码方案。一、FlexRay总线介绍FlexRay是一种高速可确定性的,具备故障容错的汽车总线系统。如今大多数汽车中主要是通过CAN总线进行数据交换,新的x-by-wire系统设计思想的出现,也导致了车辆系统对信息传送速度尤其是故障容错与时间确定性的需求不断增加。而FlexRay通过在确定的时间槽中传递信息,以及在两个通道上的故障容错和冗余信息的传送,满足了这些新增加的要求。FlexRay的拓扑结构可分为单信道和双信道,包括单信道总线型、单信道星型、单信道混合型和双信道
发表于 2017-08-09
汽车电子行业的FlexRay解码实测分析

ARM汇编指令集之七——数据交换指令

向的存储单元。 SWP   R0,R0,[R1]             ;该指令完成将R1所指向的存储器中的字数据与R0中的数据交换。 2、SWPB指令 SWPB指令的格式为: SWP{条件}B 目的寄存器,源寄存器1,[源寄存器2] SWPB指令用于将源寄存器2所指向的存储器中的字节数据传送到目的寄存器中,目的寄存器的高24清零,同时将源寄存器1中的字节数据传送到源寄存器2所指向的存储器中。显然,当源寄存器1和目的寄存器为同一个寄存器时,指令交换该寄存器和存储器的
发表于 2016-07-11

第12节:两个变量的数据交换。

从业十年,教你单片机入门 第12讲: 为了加深理解赋值语句的一个重要特性“覆盖性”,本节利用赋值语句“=”做一个实验。要求把变量a与b的两个数据进行交换,假设a原来的数据是1,b原来的数据是5,交换数据后,a的数据应该变为5,b的数据应该变为1。 很多初学者刚看到这么简单的题目,会想当然的根据我们日常生活的思路,你把你的东西给我,我把我的东西给你,就两个步骤,so easy!请直接复制第十节的模板程序,仅修改main函数后,main函数源代码如下: void main() //主程序 { /*---C语言学习区域的开始
发表于 2016-03-11

MATLAB与DSP使用RTDX的实时数据交换

    摘要:采用MATLAB辅助DSP程序的开发和调试,能加快DSP应用程序的开发。实时数据交换(RTDX)为设计、验证DSP算法提供了一个快速、方便的解决方案。本文对RTDX的工作原理进行了分析,讨论了MATLAB与DSP使用RTDX插件实现双向数据传输的实现方式,并通过一个简单的实例说明RTDX的具体实现过程。 引言 在传统的DSP(Digital Signal Processor)应用程序开发过程中,涉及的算法一般先用MATLAB语言进行仿真,仿真结果满意后,再进入产品的实现阶段。仿真实现后的算法用 C/C++或汇编语言实现,首先在硬件DSP目标板上调试,将中间结果通过DSP开发工具保存到PC机
发表于 2015-12-03
MATLAB与DSP使用RTDX的实时数据交换

小广播

何立民专栏

单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 EEWORLD.com.cn, Inc. All rights reserved