系统中有定时中断, 使其时间基准保持一致, 开始时, 让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的工作负担, 实现合理的工作结构, 保证数控系统多任务的完成。硬件设计如图2所示。
图2 硬件结构示意图
主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产生中断。从CPU 中断服务程序框图与主CPU 中对双口RAM的操作过程分别如图3、图4所示。