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

来源:互联网

点击:1201

A+ A-

所属频道:新闻中心

关键词:RAM 数控系统 应用

      随着工业测控系统自动化水平的提高, 系统需要检测的数据量逐渐增加, 控制算法也越来越复杂, 同时对实时性的要求越来越高, 由于单机本身速度和功能的限制, 因此多采用多机系统以并行工作方式采集、处理信息。通过将信息处理任务在主从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根据实际使用要求分成3 个区, 分别为控制区、工作区1和工作区2,。

     系统中有定时中断, 使其时间基准保持一致, 开始时, 让CPU1 工作在1 区, CPU2 工作在2 区, 控制区中存放两者的工作区的标志。按照实际需要定时切换两个CPU的工作区。显然用这种方法有效地避免了争用问题。

      (4) 方案比较及确定

      软件判优方案针对特殊处理系统, 不具有普遍性, 且要求有准确的时序关系。硬件判优要求CPU插入等待周期。考虑到实时性的要求以及软硬件实现的方便性, 在本系统中我们采用的是中断方案, 使主从CPU分时工作, 保证主从CPU 分时使用双端口SRAM及协调工作。进入双端口后, 首先检查信箱中预设置的标志位是否正确, 确认已正确控制双端口后, 再进行读写数据。

    2 应用与研究

      2.1 硬件设计

      本系统采用两个80C196KB单片机组成主从分布数控系统。该数控系统由主CPU子系统、从CPU子系统及双端口SRAM三部分构成。主CPU子系统由CPU、LCD显示、操作开关、程序存储器等构成; 从CPU子系统由从CPU、程序存储器、驱动单元接口等构成。数控系统的工作可分为实时性和非实时性两大类, 主CPU子系统完成非实时性工作, 从CPU子系统完成实时性控制工作, 这可减轻CPU的工作负担, 实现合理的工作结构, 保证数控系统多任务的完成。

      主CPU负责CNC系统的任务调度和管理, 主要完成数控指令的译码和预处理, 界面显示, 操作面板的扫描等任务, 并把这些信息放在双口RAM中。从CPU定时从双口RAM 中获取相关信息, 经过插补后, 利用软件环分发送脉冲, 经过驱动电路驱动步进电机拖动工作台, 从而使刀具产生要求的轨迹。这样, 每个CPU 分别承担一定的任务, 因而具有很高的并行处理能力, 它们之间的通信依靠双口RAM进行协调。主CPU进行的非实时工作任务为:

      (1) 通过液晶显示零件加工轨迹; ( 2) 管理操作开关, 实现人机对话; ( 3) 完成对数控指令解释;(4) 将零件加工参数置入公用存储器; ( 5) 对公用存储器进行管理等。

      从CPU完成的实时工作任务为:

      (1) 对各坐标轴进行实时控制, 包括各坐标轴间直线插补、圆弧插补、点动等; ( 2) 步进电机的脉冲分配; (3) 与主CPU交换数据等。

      工作过程如下: 主CPU 从零件程序存储器中取得零件数据, 经译码后, 将加工参数(如坐标原点、坐标值) 及工作方式(如直线插补、圆弧插补、点动方向、自动方式等) 送入双方约定好的双口RAM的指定单元, 同时在液晶显示屏上动态显示当前加工轨迹的示意图, 供用户观察, 从CPU按照通讯协议从双口RAM中取出数据, 进行细插补, 驱动步进电机工作, 并向双口RAM中写入标志, 供主CPU查询和管理。

      2.2 双口RAM操作软件设计

      在硬件设计中, 双口RAM的争用问题是采用中断方案解决。分别与主、从CPU的高速输入口HSI10相连。采用双口RAM 进行通信, 可简化硬件设计,提高数据传输速率。

      软件采用中断判优来解决总线争用问题, 中断向量为2008H。经硬件译码后, 系统中双口RAM的左端口地址为8000H ~9FFFH, 设9FFFH 单元为其信箱。右端口地址为A000H~BFFFH, 设BFFEH为其信箱。若产生争用, 则慢方将进入中断服务程序, 需查询对方信箱, 确认对方已放弃对双口RAM的控制权后, 再进入双口RAM进行数据的存取。以主CPU操作双端口RAM的左端口占优为例, 从CPU产生中断。

      2.3 通信协议

      系统工作过程中, 主、从CPU 通过双口RAMIDT7132来进行。在双口RAM中设置一些标志字节和标志位, 通过对这些标志位进行置位和清零来传达状态。具体规定如下:

      (1) 8000H单元: 程序自动加工标志。该字节的内容由主CPU送置, 从CPU进行查询, 并根据其不同内容进行插补、发送环分脉冲、驱动电机运动。每一种线型的数据由主CPU粗插补后送双口RAM的8002H单元向后依次排放。从CPU从双口RAM中取出数据, 按要求完成规定的任务后, 将8000H 单元清零, 主CPU查询到后, 可再向8002H单元依次传送下一线型所需数据。

      (2) 8001H 单元: 限位标志。由从CPU 填写,主CPU查询。1: 限位; 0: 不限位。

      (3) 8002H~9FF9H: 数据区, 用于存放主CPU传送的零件数据。

      (4) 9FFAH 单元: 自动, 手动选择。1 表示自动; 2表示手动。

      (5) 9FFBH单元: 手动标志。表明机床两轴手动时四个运动方向: + X, - X, + Z, - Z。分别由该字节不同位的内容来表示, 如前所示。

      (6) 9FFCH单元: 开始加工标志。1表示自动加工开始; 0表示下位机处于等待状态。该标志主要和操作面板上的开始按钮相对应。

      (7) 9FFDH 单元: 工件加工完毕标志。1 表示一个工件加工完毕; 0表示工件未加工完毕。

      (8) 9FFEH单元: 从CPU的信箱。

      (9) 9FFFH单元: 主CPU的信箱。

    3 实验系统与结论

      数控系统具有数据处理量大(如插补算法) 、实时性要求高(位置控制) 的特点, 因此用双CPU和双口RAM 的硬件结构构成的双CPU 控制器来对CQ9107机床进行数控化改造是比较适合的。该数控系统属于经济型数控, 是由步进电机组成的一个开环系统。

      该控制器提出了以一种高斯函数作为扩展的感受域函数的局部神经网络来实现T - S型模糊逻辑控制, 由于模糊神经网络控制算法的复杂性和工业系统的实时性要求, 本系统采用了Intel16位单片机双机共享存储器技术的主从分布式硬件设计, 构建了基于模糊神经网络和双CPU的通用型智能控制器。

      在该数控系统上, 我们编制了多种工件的加工程序, 进行实验加工, 都取得了预定的效果。在CQ9107数控机床上, 我们以一定的速度运行, 得到的轨迹完全符合要求。同时也验证了采用双端口RAM进行信息共享的通讯接口的可靠性以及采用双CPU进行任务分配的合理性和有效性。从而验证系统方案的可行性。

      实验结果表明, 以16 位单片机80C196KB 为核心, 由双CPU和双口RAM组成的主从分布式数控系统, 每个CPU都可单独执行一定的任务, 因此可以提高整个系统的效率, 它们之间通过公共存储器(双口RAM) 来交换信息, 使不同的任务彼此协调,共同构成一个有机的整体, 完成复杂的任务。结构合理、性能可靠、价格低廉, 较好地满足了数控系统对控制实时性和多任务的要求, 有比较广阔的应用前景。

    (审核编辑: 智汇张瑜)