微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于1394总线通信的I/O模块在数控系统中的应用

基于1394总线通信的I/O模块在数控系统中的应用

时间:12-20 来源:互联网 点击:

et(4字节字)。由于FIFO不能直接映射到DSP空间,需要通过操作CFR寄存器(配置寄存器)来读写FIFO空间。

  发送数据时,通过Write First,Write Continue,Write Update 3个寄存器将数据写入ATF,发送器从ATF寄存器中取出数据,并把它们打包成规则的串行总线数据包的格式,然后通过物理层仲裁总线,并发送数据包。发送数据包之后若能接收到正确的ACK信号及响应包则表示发送成功,否则需要重传。接收数据时,首先接收器从物理层接口取走数据并检查目标节点是否为当前节点,CRC字段是否正确。若检测到是正确的异步包,则将数据包存入ARF中。ARF中存人数据后,可以通过读取ARFThere寄存器,了解ARF中收到的数据量,之后通过操作ARFRead寄存器读取接收到的异步数据。读取之后发送正确的响应包,完成数据接收。实现数据发送接收部分代码如下:

3 I/O模块在数控系统中的应用

  3.1 I/O模块在数控系统中的功能测试

  使用基于1394通信的I/O模块完成上位机应用程序对机床的控制。I/O模块输入端连接刀库左移极限、刀库右移极限、刀库回零、刀库定位、刀库提前感应、手轮轴选择(x、y、z、A、C共5个输入)、手轮挡位选择(1,0.1,0..01共3个输入)共13个输入。I/O模块输出端连接机床照明灯、冷却泵、主轴使能、主轴定位、主轴正转、主轴反转、主轴停止、主轴松刀、润滑泵、伺服上电、刀库左移、刀库右移、刀库正转、刀库反转、刀具夹紧、刀具松开和刀具定位共17个输出。其余输入输出端口置高。为了保证数据的准确性,1394通信采用异步传输方式。所有数据运算及处理均由上位机应用程序完成,I/O模块主要负责数据传输。程序框图如图4所示。


图4 I/0模块功能测试流程图

  上位机每4 ms向I/0发送一次异步数据,I/O模块收到上位机数据后触发中断,进入中断程序。根据收到数据命令控制机床运行,并将输入GPIO状况发送给上位机。数百万个周期测试下来,机床运行正常。查看到输入开关量被正确传输到上位机,上位机控制数据也被正确的输出给数控机床,并且机床能够实时执行指令。验证了1394总线的高速传输,及I/O模块在高档数控系统中的功能实现。

  3.2中转时延测试分析

  TSIM3AA82是一种双端口1394芯片,因此可以将多个I/O模块串联,如图5所示。模块1最后上电,并进行总线复位,强制自己为根节点。模块1的节点号为0,模块2、3、4节点号相应为1、2、3。


图5 中转时延测试结构图

  寄存器Ping_Timer记录了Ping包从发出到收回的时间,每次40 as。现在从O节点分别向1、2、3节点发送Ping包,共测试20次。0节点到l节点的Ping_Timer值稳定为14;0节点到2节点的Ping_Timer值为19共14次,值为20共6次;0节点到3节点的Ping_Timer值为24共12次,值为25共8次,测试结果如表1所示。

  0到1节点不经过转发,仅仅是数据传输时间。0节点到2节点的传输增加了1节点的两次转发时间。0节点到3节点的传输增加了1节点两次转发及2节点两次转发的时间。

  按照以上分析,采用代数平均数算法,可计算得到节点转发时间为108.7 as。而TSB43AA82芯片的PHY Internal Registers中的delay字段定义了中转时延的最大值,即从数据的第1位接收到数据包被转发所需要的最大时间,为144+(delay×20)as,其中TSB43AA82中delay为0。故最坏情况下转发器转发数据的延迟为144 ns。所测得的中转时延为108.7 n8在144 ns以内,与理论值完全符合。

  3.3 多节点的伺服同步

  一个数控系统中有多个伺服单元,这些伺服单元可以通过各自的I/O模块与上位机进行通信。高档数控系统对于各个伺服单元之间的伺服周期同步有较高的要求。

 可以利用上位机向所有节点发送1394广播包作为同步信号,各节点收到广播包后开始执行新得到的插补命令,从而实现各个伺服节点同时执行同一插补周期的数据。根据1394网络拓扑结构及1394传输协议可知,数据的传输是经过各个节点的转发实现的,所以在逻辑位置上距离上位机较远的节点收到广播包比其他节点要晚,导致同步信号不够准确。

  针对这一情况,可以利用3.2节所测节点中转时延,人为地补足这个时间差,实现更高精度的同步。由于采用的TSB43AA82是双端口1394芯片,拓扑结构比较简单,呈线性,一般上位机强制为根节点,节点号为0。假设整个数控系统共有m个节点,则逻辑位置上距离上位机最远的节点号为m-1。可以编程控制节点号为i的节点在收到广播包后延时(m-1-i)×108.7 as,之后执行插补命令,从而实现各节点之间真正的伺服同步。

4 结束语

本设计的基于IEEE 1394通信的I/O模块经测试完全满足高档数控系统的实时性要求。根据3.2节中转时延的测试

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top