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

来源:互联网

点击:1899

A+ A-

所属频道:新闻中心

关键词:I/O模块 数控系统 总线通信

    数控系统作为数控机床装备的核心关键部件,是决定机床装备的性能、功能、可靠性和成本的关键因素。我国的数控系统技术基础薄弱,高档数控系统基本依赖进口,而相关高档数控系统的开发技术,国外对我国至今仍封锁限制,成为制约我国高档数控机床发展的瓶颈。自主开发高档数控系统迫在眉睫,而其中的关键技术就是数据通信速率的提高。

      IEEE 1394最初由Apple公司提出,命名为FireWire(火线),是一种高速串行总线。IEEE(电气和电子工程师协会)在1995年认可FireWire为IEEE1394—1995规范,继而又对该协议中一些模糊的定义加以修正,推出了IEEE 1394a.2000规范,解决了一些兼容性问题。2001年,更新的1394规范——1394b也被推出,其带宽、传输速度、距离和效率都有了大幅度提高。IEEE 1394支持100 Mb/s、200 Mh/s和400 Mb/s的传输速率;支持点到点的传输,各个节点可以脱离主机自主执行事务;另外,它还支持即插即用、热插拔、同步和异步传输方式,公平仲裁原则。鉴于IEEE 1394的高速传输等优越性,将其应用于高档数控系统成为一种必然的趋势。

      本研究设计出一块基于1394总线传输的I/O模块,该模块应用在高档数控系统中,负责实时采集机床开关量数据,数据传输及控制机床进给量。

    1 1394总线通信I/O模块硬件设计

      1.1 I/O模块整体结构介绍

      该模块主要包括1394芯片、DSP芯片和光耦芯片。该模块共引出32个输入口和24个输出口,具有高速传输、抗干扰的特点。该模块I/O端El通过排线与数控机床的开关量相连接,负责数据采集及实时控制。1394端口通过1394总线与上位机进行通信,负责I/O模块与上位机的数据传输。该模块与上位机及机床的整体架构。

      I/O模块中各芯片间的连接:DSP芯片选用TI公司的TMS320F2812,它是一款32位定点DSP芯片,运行速度高,处理功能强大,并且具有丰富的片内外围设备,便于接口和模块化设计。共有56位复用GPIO,可引出作为I/O端口。1394芯片选用TI公司的TSB43AA82,它是一款集成物理层和数据链路层的两端口1394控制器,兼容1394—1995和IEEEl394a一2000规范,支持异步数据传输。光耦芯片选用TOSHIBA公司的TLP521-4,每个芯片内具有4个独立隔离通道旧J。DSP芯片与1394芯片通过数据线、地址线和控制线连接。DSP芯片引出56位GPIO管脚,通过光耦芯片与外界设备连接。

      1.2 DSP芯片外围电路介绍

      TMS320F28 12的XZCS6 AND7连接TSB43 AA82的xcs(片使能),用于片选TSB43AA82,当访问区域6时有效;XWE为写有效,连接TSB43AA82的XWR(写使能),用于向TSB43AA82写入数据;XRD为读有效,连接TSB43AA82的XRD(读使能),用于读取TSB43AA82数据;XRS为复位输出,连接ARESETP(物理层模块复位输入)和ARESETL(链路层模块复位输入),用于控制TSB43AA82复位;TSB43AA82的XINT为中断信号输出,连接TMS320F2812的XINTl一XBIO中断输入),用于中断程序;XWAIT为等待信号输出,连接TMS320F2812的XREADY(数据准备输入),用于说明外设已为访问做好准备;XA0~XA7,BD108~BDI015为8位地址总线,XD0~XDl5,DA0~DAl5为16位数据总线,用于TMS320F2812与TSIM3AA82之间数据传输。TLP521-4的P为内部发光二极管正极,N为内部发光二极管负极,Out为内部三极管输出。

      1.3 光耦芯片电路介绍

      本设计的I/O模块通过引入光耦芯片,实现DSP芯片与机床的电路隔离、电平匹配等功能。输入光耦电路指I/O模块输入端,“输入1”连接机床开关量;“输出1”连接DSP的输入GPIO。输出光耦电路指IZO模块输出端,“输入2”连接DSP的输出GPIO;“输出2”通过继电器连接机床的控制量。

      根据光耦芯片TLP521-4的使用条件,Ic范围应在0~10 mA;,If范围应在0~25 mA;Ic/If范围应在100%~600%。又根据光耦芯片内部结构可知,输入部分为一个发光二极管,故其工作电流,,不可太小。对于输入光耦电路,选取R1=4.7kΩ,R2=470Ω,则有Ic=7.02 mA,If=5.11 mA,Ic/If=137Ω;对于输出光耦电路,选取R3=1kΩ,R4=4.7kΩ,则有Ic=5.11 mA,If=3.3 mA,Ic/If=155%,均在正常工作范围内。

    2 I/O模块通信软件设计

      IEEE 1394协议支持异步传输和等时传输两种机制。本设计采用的是异步传输模式,其特点是叮靠,通过发送ACK信号及响应包来实现。1394芯片为收发数据准备了FIFO空间。针对异步传输的是ARF(异步数据包接收FIFO),ATF(异步数据包传输FIFO)空间,空间大小可以进行配置分配,FIFO空间总和为512个Quadlet(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 ms向I/0发送一次异步数据,I/O模块收到上位机数据后触发中断,进入中断程序。根据收到数据命令控制机床运行,并将输入GPIO状况发送给上位机。数百万个周期测试下来,机床运行正常。查看到输入开关量被正确传输到上位机,上位机控制数据也被正确的输出给数控机床,并且机床能够实时执行指令。验证了1394总线的高速传输,及I/O模块在高档数控系统中的功能实现。

      3.2中转时延测试分析

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

      寄存器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次。

      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节中转时延的测试结果,可以利用1394广播包来同步多个节点模块。另外该模块利用光耦芯片与外界环境隔离,能够有效预防干扰。除数控系统外,该模块还可广泛应用于很多其他场合,负责实时数据采集及高速数据传输。

    (审核编辑: 智汇张瑜)