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

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

发布时间:2013-11-21 作者:崔如娜 李坤 杨煜普  来源:万方数据
关键字:I/O模块 数控 系统 
本文设计了一种基于IEEE 1394总线通信,应用于高档数控系统中的I/O控制模块。该模块采用IEEE 1394通信方式,实现上位机与机床之间的高速数据传榆;采用光耦芯片对模块内部与外界进行隔离,并实现该I/O模块与机床之间的电平匹配,模数转换等功能。给出了软件和硬件设计,并进行了I/O模块功能测试和分析,验证了该模块满足高档数控系统要求数据传输的准确性和实时性。

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所示。

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

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

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