最新新闻
我要投稿
联系电话:027-87592219/20/21转188
投稿邮箱:tb@e-works.net.cn
您所在的位置:首页 > 智库 > 智能生产

双CPU共享RAM技术及其在数控系统中的应用

发布时间:2014-04-14 作者:郭冰菁 朱坚民 姜琳  来源:万方数据
关键字:RAM 数控 系统 
本文针对工业测控系统数据流量大、实时性要求高的特点, 介绍了一种基于双口RAM的双CPU共享RAM技术及其在经济型数控系统中的应用。详细阐述了共享存储器技术的原理、总线争用解决方案及系统硬件接口电路、软件设计和通信协议等。并将该技术成功地应用在CQ9107数控机床的改造上。

  随着工业测控系统自动化水平的提高, 系统需要检测的数据量逐渐增加, 控制算法也越来越复杂, 同时对实时性的要求越来越高, 由于单机本身速度和功能的限制, 因此多采用多机系统以并行工作方式采集、处理信息。通过将信息处理任务在主从CPU之间的分配, 由各自的独立性和并行性提高系统的实时性, 从而解决工业测控系统中数据流量大、要求适应动态系统的快速响应的问题。多机系统中, 多个处理器间如何进行数据共享与数据交换是设计的关键。

  本文介绍了在CQ9107机床数控改造中采用的双CPU共享RAM技术, 主CPU和从CPU并行工作, 由主CPU完成系统监控、检测及粗插补任务, 从CPU完成步进电机的细插补、步进电机的脉冲分配等任务。选用共享存储器方案完成双CPU之间的数据传递。双CPU之间通过双端口SRAM作为公用存贮器相互交换数据和协调工作, 实现了稳定可靠的工作。

1 双CPU共享RAM技术

  双机系统间的信息交换可根据具体情况采用串行或并行通讯的方式。串行通讯数据传送是按位进行的, 因此速度较慢, 适用于远距离通讯。在并行通讯方式中, 对于并行内总线通讯又分为PIO通信法及共享存储区通信法两种。PIO法采用并口芯片实现通讯, CPU之间每次只能交换一个字节; 而共享存储区通信, CPU之间每次可以以字节的方式并行交换一个数据块, 对于每侧CPU都有独立的信道, 可以实现真正的同时访问。因此在本课题中, 选用共享存储器( IDT7132) 方案完成双CPU之间的数据传递。以共享存储器区作为多台微处理机交换数据的系统是一种紧耦合系统。这种系统以并行内总线作为互连的基础。由于它耦合程度高、通信速度快, 每台仪表都具有自己专用的存储器、专用的软件, 甚至专用的外设, 具有良好的自治性。设置共享存储器区仅仅用来提供各台微机通信时交换数据, 并不作为程序执行的工作区。因此共享存储器功能单一, 但实时性高。

  1.1 双口RAM - IDT7132

  本系统采用了美国IDT公司生产的IDT7132 芯片。它是CMOS静态双口RAM, 容量为2K字节, 有左右两套完全相同的I/O 口, 即两套数据总线D0 ~D7 , 两套地址总线A0 ~A10 , 两套控制总线CE、R /W、OE、BUSY, 并有一套竞争仲裁电路。IDT7132可以通过左右两边的任一组I/O进行全异步的存储器读写操作。应用双端口SRAM可在主从CPU间建立缓冲区, 解决CPU间高速交换数据的问题。

  使用双端口RAM在两个CPU之间共享信息的优点是: 速度快、方式简单、存取共享信息所用的时间一般与存取外部RAM所用的时间一样。对两个CPU中的任一个而言, 双端口RAM等效于CPU 的外部RAM, 通过适当的设计可消除读写双端口RAM的系统等待时间。

  1.2 总线争用问题的实际解决方案

  采用双端口SRAM的主从式CPU数控系统不稳定因素在于两CPU同时访问同一单元时有可能发生争用。即当左右两个CPU 同时对同一个存储单元进行写操作或对同一个存储单元的一个口进行写操作而另一个口进行读操作时, 双口将发生竞争, 会出现写入值和读出值不是期望值的混乱状态。这时易发生读写错误、传送误数据和误指令, 即两CPU “打架”。解决这一问题的方法是实现主从CPU对双端口SRAM分时操作。通常, 有软件判优、硬件判优和中断等几种解决方案。

  (1) 硬件判优

  IDT7132芯片内部有硬件判优电路, 即竞争仲裁电路。它用于判定双口地址匹配或片选使能信号匹配时差最小达5ns以上的竞争胜负, 并用忙信号BUSY来指示竞争仲裁结果。使用时将芯片的BUSY线与该侧的CPU ( 80C196KB) 的READY线相连, 内部竞争仲裁优先的一侧CPU可以进行读/写操作, 如同没有发生竞争一样, 而竞争失败的口的BUSY端输出忙信号(0电平) , 这时对该口的读/写无效, 同时延缓了该侧CPU对该单元的访问而插入等待周期。当准许访问的一侧CPU完成了对该单元的访问后, 被延缓侧的BUSY线变高, 该侧CPU退出保持状态, 可进行存储器的操作。

  (2) 中断判优

  采用中断方案时, 将BUSY线的上升沿作为中断源, 分别与主从CPU的高速输入口HSI相连, 当发生争用时申请中断。为每个端口分别分配一个单元,即信箱, 不能再作为普通RAM单元使用。例如: 可以使主CPU (左) 使用1FFEH 单元, 从CPU (右)使用1FFFH单元。约定: 左端口写地址单元1FFEH时, INTR =L, 可向右端口发出中断请求; 右端口读地址单元1FFEH时, INTR = H, 复位左端口发出中断请求; 右端口写地址单元1FFF时, INTL = L, 可向左端口发出中断请求; 左端口读地址单元1FFF时, INTL =H, 复位右端口发出中断请求。当信箱内容为00H时, 表示正在使用该方端口; 当信箱内容为FFH, 表示结束使用该方端口。因此主从CPU在对端口的其它单元进行读/写操作时, 在读/写操作开始时, 向自己的信箱内写入00H, 当读/写操作结束时, 向自己的信箱中写入FFH。如果没有发生争用,则直接进行读/写操作, 如果发生争用, 慢的一方将产生中断, 在中断服务程序中, 查询对方的信箱。当对方信箱内容为FFH时, 慢方才可以进行自己的读/写操作。

  (3) 软件判优

  在中断方案中, 当然也少不了软件的配合。但在这里的软件判优方案中, 采用的是一种特殊的软件处理方法, 在硬件处理上, 完全不需要BUSY线的连接。即采用软件的操作, 使得两个端口在时序上错开, 保配示意图证不会对存储器的同一单元进行存取操作, 从而避免了数据的丢失。

软件判优双端口RAM内存分

图1 软件判优双端口RAM内存分

  该方法的核心是采用体切换技术, 即将双端口RAM根据实际使用要求分成3 个区, 分别为控制区、工作区1和工作区2, 如图1所示。

3
本文为授权转载文章,任何人未经原授权方同意,不得复制、转载、摘编等任何方式进行使用,e-works不承担由此而产生的任何法律责任! 如有异议请及时告之,以便进行及时处理。联系方式:editor@e-works.net.cn tel:027-87592219/20/21。
相关资料推荐