一种双口RAM互斥访问的实现方法技术

技术编号:5254183 阅读:624 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及一种双口RAM互斥访问的实现方法,所述一种双口RAM互斥访问的实现方法包括如下操作步骤:1)采用地址分区方式,将共享数据区划分成多个数据区,并制定相应软件协议;2)软件分区处理时,按照交换数据的类型将RAM的共享存储区从起始单元开始分成若干个大的数据区,数据区大小由实际的传输数据确定,每个大数据区又细分为一个数据接收区和一个数据发送区,且每个区都定义有相应的数据存取地址和控制标识;3)在本系统中,所有对外部系统的通信工作均由从机来完成,主机只需对双口RAM中相应的数据缓冲区写入要发送的数据或读取需要的数据即可。

【技术实现步骤摘要】

本专利技术为一种双口 RAM互斥访问的实现方法,属于处理器信号交换领域。
技术介绍
在现代工业控制系统中,由于对系统的功能和性能要求越来越高,一般都采用高 性能的处理器来实现控制功能,并将这些智能设备联网组成分布式系统,所以双口 RAM作 为共享存储器,在满足实时性要求高、数据量大的控制系统中得到越来越广泛地应用。一般双口 RAM都提供了两个完全独立的端口,每个端口都有自己的控制线、地址 线和数据线。但当两个CPU同时对同一地址单元写入数据,或者两个CPU同时对同一地址 单元操作、一个写入数据,另一个读出数据时,双口 RAM会产生共享冲突问题。目前有几种 防止共享冲突的方式。1.插入等待状态的防冲突方式该方式也称为硬件判优方式。当左右端口同时对同一地址的RAM存储单元进行存 取时,双口 RAM内部的仲裁单元将会给出BUSY信号,具体来说,BUSYL、BUSYR信号的正常状 态为高电平。当左侧端口对一存储单元进行存取时,若右侧端口也对该存储单元进行操作, 则芯片内部的仲裁单元会使信号BUSYR为低,直到左侧端口操作完成后再将BUSYR恢复为 高电平。设计中可以利用BUSY信号作为CPU的等待状态输入,并利用该信号使CPU在操作 过程中插入等待状态,避免两端同时对双口 RAM进行操作。2.中断防冲突方式该方式也称为中断判优方式,芯片具有两套中断逻辑。通过两个INT引脚分别接 收到两个CPU的中断引脚上,以实现CPU的握手。双口 RAM中最高地址的两个存储单元可以作为邮箱使用。在双口 RAM的数据传送 中,两端的CPU都把双口 RAM作为自己存储器的一部分。当两个CPU需要数据传送时,假设 左端CPUL向右端CPUR传送。首先CPUL将需要传送的数据存放到双口 RAM某段约定的地 址单元中,然后向双口 RAM的右端口的邮箱进行写操作,用以向CPUR发出一个中断。这样 CPUR就进入其相应的中断服务子程序。将约定地址单元的数据读出,然后对双口 RAM右端 口的邮箱进行写操作,用以清除该中断。这样通过邮箱向对方传递自己使用存储单元的状 态来达到防止冲突之目的。3.信号量防冲突方式该方式也称为令牌判优方式。在此方式中有信号锁存逻辑,CY7C056V内部提供了 八个相互独立的锁存逻辑单元,最多可将RAM空间分成八个区段。这些锁存逻辑单元独立 于双口 RAM存储区,并不能控制RAM区、封锁两端CPU的读/写操作,而是被作为命令,只提 供指示逻辑,由两端CPU按约定的规则,轮流地占用它们划定的RAM区。各区的大小及地址 由软件自由设定,且左右端操作完全一样,只要不超过令牌的限制次数即可。当左右端同时 申请同一令牌时,令牌逻辑裁定谁先占用,从而保证只有一个端口获取令牌。而在占用令牌 期间,CPU可以按最高速无等待存取数据。这对实现高速、多CPU数据采集与处理系统无疑是非常有利的。但是,为了避免令牌方式争用出错,应尽可能使两端CPU分时占用同一 RAM 区。它们分别存在以下缺点>中断防冲突方式当发生中断时,会打断当前的执行流程,造成运行过程不确 定;>插入等待状态的防冲突方式对于高速接口来说会影响数据的传送速率,而且 该方式下CPU在访问数据时需要检查BUSY信号并做出判断,并可能出现等待情况。很难满 足时间确定性的要求;>信号量防冲突方式在两个CPU共享内存空间时,如果双口 RAM主要用于两个 CPU之间交换数据,则交换的实时性很难用软件来保证。
技术实现思路
本专利技术的目的是解决两端CPU在操作双口 RAM中,避免产生冲突。即不允许两个 CPU同时对同一地址单元写入数据;或者两个CPU同时对同一地址单元一个写入数据,另一 个读出数据。本专利技术的技术方案为一种双口 RAM互斥访问的实现方法,所述一种双口 RAM互斥访问的实现方法包括 如下操作步骤1)采用地址分区方式,将共享数据区划分成多个数据区,并制定相应软件协议;2)软件分区处理时,按照交换数据的类型将RAM的共享存储区从起始单元开始分 成若干个大的数据区,数据区大小由实际的传输数据确定。每个大数据区又细分为一个数 据接收区和一个数据发送区,且每个区都定义有相应的数据存取地址和控制标识;3)开始写入双RAM数据,读取双RAM接收缓冲区的写指针,将数据写入基地址加上 写指针对应的双RAM单元,接收缓冲区写指针加1,判断写指针,如果写指针是最后一位,对 写指针回零,否则结束写入数据;4)开始读取双RAM数据,读取双RAM接收缓冲区的写指针和读指针进行判断,读指 针与写指针不相等,从基地址加上读指针对应的双RAM单元读取数据,接收缓冲区读指针 加1,判断读指针,如果读指针是最后一位,对读指针回零,否则结束读取数据;读指针与写 指针相等结束操作。所述的双口 RAM互斥访问的实现方法,其特征在于,双口 RAM所对外部系统的通信 工作均由从机来完成,主机只对双口 MM中相应的数据缓冲区写入要发送的数据或读取需 要的数据。将双口 RAM划分成两个区域,其中一个区域只允许一方向双口 RAM写入数据,另一 方只允许读取数据,不允许有写操作。在上述每个交换区中设置一对缓冲,这两个缓冲区的大小、结构相同,在其中一个 缓冲区被占用的情况下,可以访问另一缓冲区;通信双方通过判断两个交换缓冲区的状态选择相应的缓冲区。每个缓冲区采用一种计数值来判断数据的状态。双口通信双方在各自的缓冲区首尾两端各设置了完全相同计数值;主写设备在更新缓冲区时,要同时更新两个计数值;当通信对方读取缓冲区数据后,要检查这两个计数值 是否一致,如果一致则认为计数值正确。所述的一种双口 RAM互斥访问的实现方法在此基础上在缓冲区设置了控制标志; 该占用标志只允许主写设备设置,其它设备只读。从机在读数据时,先检查哪个缓冲区被占用;优先读取未被占用的缓冲区。在系统 的数据传输过程中,为了提高系统通信的可靠性,在缓冲区末端添加了数据校验和;双方通 过该方式可以检查缓冲区的数据是否正确。本专利技术的优点在于1、将共享数据区按一定的标准划分成若干个数据并制定相应的软件协议,使得 主、从机以适当的时序读写数据,从而避免对同一单元的竞争,提高实时性;2、主、从机根据缓冲区数据存取基地址及读、写指针,对相应单元进行读、写操作, 整个缓冲区等效于一个环形数据;3、在两缓冲区的机制下,不同操作通过算法获得应访问的缓冲区。这样可以保证 每次读取的数据是完整的。这样可以避免读取的数据是不同时间段写入的可能性;4、有效避免了双RAM接口数据流冲突。附图说明图1为写双口 RAM数据程序流程图;图2为读双口 RAM数据程序流程图;图3为双口 RAM分区管理图;图4计数值分布。具体实施例方式安全级控制保护系统完成数据通讯、信号输入、数据处理、保护和控制运算、符合 逻辑和触发信号输出等功能。它一般由运算、通讯和输入输出单元构成。在信号输入和输 出过程中,通常采用高性能嵌入式处理器构成的主从式系统完成相应功能。主从式系统设 计的关键是主机与从机之间的数据通信。随着双口 RAM功能的不断成熟和完善,现在很多 采用双口 RAM来实现这些数据交互。由于安全级系统对程序确定性的严格要求,本系统不采用中断机制。在插入等待 状态的防冲突方式中,利用双口本文档来自技高网
...

【技术保护点】
一种双口RAM互斥访问的实现方法,所述一种双口RAM互斥访问的实现方法包括如下操作步骤:1)采用地址分区方式,将共享数据区划分成多个数据区,并制定相应软件协议;2)软件分区处理时,按照交换数据的类型将RAM的共享存储区从起始单元开始分成若干个大的数据区,数据区大小由实际的传输数据确定,每个大数据区又细分为一个数据接收区和一个数据发送区,且每个区都定义有相应的数据存取地址和控制标识;3)开始写入双RAM数据,读取双RAM接收缓冲区的写指针,将数据写入基地址加上写指针对应的双RAM单元,接收缓冲区写指针加1,判断写指针,如果写指针是最后一位,对写指针回零,否则结束写入数据;4)开始读取双RAM数据,读取双RAM接收缓冲区的写指针和读指针进行判断,读指针与写指针不相等,从基地址加上读指针对应的双RAM单元读取数据,接收缓冲区读指针加1,判断读指针,如果读指针是最后一位,对读指针回零,否则结束读取数据;读指针与写指针相等结束操作。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:杜乔瑞石桂连程建明冀建伟
申请(专利权)人:北京广利核系统工程有限公司中国广东核电集团有限公司
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1