运动控制卡与端子板间实现数据通信的电路结构及方法

文档序号:6273621阅读:240来源:国知局
专利名称:运动控制卡与端子板间实现数据通信的电路结构及方法
技术领域
本发明涉及工业自动化控制领域,特别涉及数控系统运动控制卡控制技术领域,具体是指一种数控系统中基于异步串行总线实现运动控制卡与端子板之间数据通信的电路结构及其方法。
背景技术
工业自动化控制领域中运动控制卡与端子板之间出现了并行通信和串行通信两种方式。其中并行通信方式多采用直连,两者之间没有通信协议,只是简单的端口数据输入输出。接口方式如图1所示。此种并行通信方式的设计简单,通信速度较快,但不易于扩展,且板卡与端子板之间的连线较多,易受干扰,随着信号的增加,产品成本较高。随着制造工艺的提高,芯片速度越来越快,传输速度不再是制约数据传输的主要问题。近年来,工业自动化控制领域串行通信兴起,如CAN总线、485总线、工业以太网等,使用串行通信方式的设备层出不穷。CAN总线及工业以太网协议实时性高,性能较好,但其协议较为复杂,开发成本较高。因此,迫切需要一种低成本、性能好、设计简单、可靠性高、易于扩展的新的通信机制。

发明内容
本发明的目的是克服了上述现有技术中的缺点,提供一种数据通信速度较快、协议简单、开发周期较短、产品性能可靠、集成度较高、扩展性较强、工作性能稳定可靠、适用范围较为广泛的数控系统中基于异步串行总线实现运动控制卡与端子板之间数据通信的电路结构及其方法。为了实现上述的目的,本发明的数控系统中基于异步串行总线实现运动控制卡与端子板之间数据通信的电路结构及其方法如下:该数控系统中基于异步串行总线实现运动控制卡与端子板之间数据通信的电路结构,包括运动控制卡、端子板和数个扩展端子板,所述的运动控制卡与外部计算机相连接,且所述的运动控制卡、端子板和数个扩展端子板依次串接,其主要特点是,所述的运动控制卡上承载有主机接口和UART接口,所述的端子板上承载有端子板第一 UART接口和端子板第二 UART接口,所述的各个扩展端子板上均承载有各自的扩展端子板第一 UART接口和扩展端子板第二 UART接口,所述的运动控制卡的主机接口与外部计算机相连接,且该运动控制卡的UART接口与所述的端子板第一 UART接口相连接,所述的端子板第二 UART接口与一扩展端子板上的扩展端子板第一 UART接口相连接,该扩展端子板上的扩展端子板第
二UART接口与其余的扩展端子板依次串接。该数控系统中基于异步串行总线实现运动控制卡与端子板之间数据通信的电路结构中的运动控制卡的主机接口为PCI金手指插条。该数控系统中 基于异步串行总线实现运动控制卡与端子板之间数据通信的电路结构中的UART接口和端子板第一 UART接口均为高速UART接口。该利用上述的电路结构实现数控系统中基于异步串行总线进行运动控制卡与端子板之间数据通信的方法,其中包括运动控制卡进行数据接收和发送处理操作、端子板进行数据接收响应和转发数据处理操作,所述的运动控制卡进行数据接收和发送处理操作,包括以下步骤:(11)所述的运动控制卡进行初始化配置并设定定时器中断;(12)当定时器超时时启动定时器中断服务;(13)判断是否收到外部计算机发送来的数据帧;(14)如果未收到,则发送重发帧,并结束;如果接收到,则判断CRC校验是否正确;(15)如果CRC校验不正确,则发送重发帧,并结束;如果CRC校验正确,则判断上
一次通信是否正常;(16)如果不正常,则结束;如果正常,则读取缓冲控制寄存器,并进行缓冲控制处理操作;

(17)查找命令帧地址映射表;(18)对命令帧进行打包;(19)设置重发帧为命令帧,并发送至所述的端子板;所述的端子板进行数据接收响应和转发数据处理操作,包括以下步骤:(21)所述的端子板进行初始化配置并设置定时器中断初始化;(22)当定时器超时时启动定时器中断服务,将从所述的端子板第一 UART接口所接收到的数据存储于相应的缓冲区中;(23)判断是否已经配置数据起始帧;(24)如果是,则设置更新模式有效;(25)判断接收到的数据是否为OUT数据帧;(26)如果是,则设置正常模式有效;(27)判断是否为配置模式;(28)如果是,则进行端子板配置操作处理;如果否,则进行数据缓存和转发操作处理;(29)将定时器变量清零。该实现数控系统中基于异步串行总线进行运动控制卡与端子板之间数据通信的方法中的数据帧可以为数据起始帧、脉冲数据帧、OUT帧或者扩展数据帧。该实现数控系统中基于异步串行总线进行运动控制卡与端子板之间数据通信的方法中的进行初始化配置并设定定时器中断,包括以下步骤:(111)所述的运动控制卡读取配置数据;(112)所述的运动控制卡建立映射表;(113)设置重发帧为初始帧;(114)初始化定时器的超时时间;(115)开启定时器中断;(116)所述的运动控制卡进行数据映射表计算。该实现数控系统中基于异步串行总线进行运动控制卡与端子板之间数据通信的方法中的进行缓冲控制处理操作,包括以下步骤:(161)所述的运动控制卡判断是否有缓冲控制;(162)如果有缓冲控制,则继续步骤(163);如果没有缓冲控制,则继续步骤(165);(163)判断端子板脉冲数据帧的FIFO队列是否满;(164)如果满,则发送OUT帧,并返回上述步骤(17);如果不满,则发送脉冲数据帧,并返回上述步骤(17);(165)判断端子板脉冲数据帧的FIFO队列是否空;(166)如果空,则发送脉冲数据帧,并返回上述步骤(17);如果不空,则发送OUT帧,并返回上述步骤(17)。该实现数控系统中基于异步串行总线进行运动控制卡与端子板之间数据通信的方法中的端子板进行初始化配置并设置定时器中断初始化,包括以下步骤:(211)开启串口中断初始化;(212)判断是否处于更新模式;(213)如果是,则进行配置更新处理操作;(214)如果否,则进行数据缓存转发处理操作。该实现数控系统中基于异步串行总线进行运动控制卡与端子板之间数据通信的方法中的进行配置更新处理操作,包括以下步骤:(2131)判断闪存擦除是否未完成且标识ID是本系统;(2132)如果是,则擦除闪存;(2133)判断是否闪存擦除完成且配置缓冲区有数据;(2134)如果是,则继续步骤(2135);如果否,则继续步骤(2137);(2135)将配置缓冲区中的数据写入到闪存中,再进行读回并比较是否与缓冲区中的数据是否相同;(2136)如果否,则设置配置错误标志有效;(2137)判断配置数据缓冲区的地址是否是擦除的首地址且配置没有错误;(2138)如果是,则设置配置完成标志有效并返回步骤(22);否则直接返回步骤(22)。该实现数控系统中基于异步串行总线进行运动控制卡与端子板之间数据通信的方法中的进行数据缓存转发处理操作,包括以下步骤:(2141)判断是否中断超时;(2142)如果否,则取输出OUT缓冲区的数据写入输出OUT端口,同时读取输入IN端口数据写入输入IN缓冲区,并继续步骤(2144);(2143)如果是,则进行超时处理,将相应的端口关闭,并继续步骤(2144);(2144)将数据写入到端子板第一 UART接口的发送缓冲区;(2145)将数据写入到端子板第二 UART接口的发送缓冲区,并返回步骤(22)。该实现数控系统中基于异步串行总线进行运动控制卡与端子板之间数据通信的方法中的进行端子板配置操作处理,包括以下步骤:(281)判断是否为配置数据起始帧;(282)如果是,则 继续步骤(283);如果否,则继续步骤(288);
(283)初始化变量;(284)将配置信息进行缓存处理;(285)向所述的端子板第一 UART接口进行应答回复;(286)清空所述的端子板第二 UART接口的数据;(287)发送配置数据起始帧到所述的端子板第二 UART接口,并返回步骤(29);(288 )将配置信息进行缓存处理;(289)向所述的端子板第一 UART接口进行应答回复;(2810)判断是否配置数据;(2811)如果是,则配置数据缓冲标志有效;(2812)接收所述的端子板第二 UART接口的数据;(2813)判断是否数据接收成功且与下行通信的CRC校验标志位有效且配置数据缓冲区数据有效;(2814)如果否,则继续步骤(2817);如果是,则判断上一帧数据是配置数据起始帧或者擦除标志完成,且上一帧数据下行系统已经接收到;(2815)如 果是,则继续步骤(2816);如果否,则继续步骤(2817);(2816)发送配置数据帧至所述的端子板第二 UART接口,并返回步骤(29);(2817)发送重发帧至所述的端子板第二 UART接口,并返回步骤(29)。该实现数控系统中基于异步串行总线进行运动控制卡与端子板之间数据通信的方法中的进行数据缓存和转发操作处理,包括以下步骤:(291)判断是否为数据起始帧;(292)如果是,则继续步骤(293);如果否,则继续步骤(295);(293)将端子板的信息数据进行缓存处理;(294)向所述的端子板第一 UART接口进行应答回复,并继续步骤(2911);(295)判断发送缓冲区是否有效;(296)如果是,则继续步骤(297);如果否,则继续步骤(299);(297)回复发送缓冲区数据至所述的端子板第一 UART接口 ;(298)清除发送缓冲区有效标志,并继续步骤(2911);(299)将端子板输入IN数据进行缓存处理;(2910)向所述的端子板第一 UART接口进行应答回复,并继续步骤(2911);(2911)判断是否成功接收所述的端子板第一 UART接口的数据且CRC校验标志位有效;(2912)如果是,则继续步骤(2913);如果否,则继续步骤(2917);(2913)清除错误计数 ErrCnt ;(2914)判断退出报警EXT_ALARM标志是否有效;(2915)如果是,则继续步骤(2921);如果否,则回复发送缓冲区数据至所述的端子板第一 UART接口 ;(2916)清除发送缓冲区有效标志,并返回上述步骤(29);(2917)判断错误计数ErrCnt是否小于系统预设的最大错误数;(2918)如果否,则继续步骤(2921);如果是,则继续步骤(2919);
(2919)将错误计数ErrCnt增加I ;(2920)将重发帧回复至所述的端子板第一 UART接口,并返回上述步骤(29);(2921)将数据起始帧回复至所述的端子板第一 UART接口,并返回上述步骤(29)。该实现数控系统中基于异步串行总线进行运动控制卡与端子板之间数据通信的方法中的最大错误数为100。采用了该发明的数控系统中基于异步串行总线实现运动控制卡与端子板之间数据通信的电路结构及其方法,由于其中采用串行差分通信方式与端子板之间进行数据传输,端子板与端子板之间采用级联的方式进行端子板扩展,并采用DB9芯线连接,连线较少,成本较低,而且采用xilinx spantar6系列的FPGA芯片,整个系统的数据处理以及通信协议实现均由FPGA完成,集成度较高,数据帧采用16字节等长数据帧传输,携带CRC等校验信息,具有重发机制,保证了数据的有效、可靠传输,性能好,设计简单,可靠性高,易于扩展,工作性能稳定可靠、适用范围较为广泛。


图1为现有技术中的运动控制卡与端子板之间的通信接口方式示意图。图2为本发明的数控系统中基于异步串行总线实现运动控制卡与端子板之间数据通信的电路结构的整体示意图。图3为本发明的数控系统中基于异步串行总线实现运动控制卡与端子板之间数据通信的电路结构的整体系统架构示意图。图4为本发明的数控系统中基于异步串行总线实现运动控制卡与端子板之间数据通信的电路结构中的运动控制卡功能 架构示意图。图5为本发明的数控系统中基于异步串行总线实现运动控制卡与端子板之间数据通信的电路结构中的端子板功能架构示意图。图6为本发明的数控系统中基于异步串行总线实现运动控制卡与端子板之间数据通信的电路结构中的运动控制卡电路布局结构示意图。图7为本发明的数控系统中基于异步串行总线实现运动控制卡与端子板之间数据通信的电路结构中的端子板电路布局结构示意图。图8为本发明的实现数控系统中基于异步串行总线进行运动控制卡与端子板之间数据通信的方法中的运动控制卡中的FPGA逻辑功能模块框图。图9为本发明的实现数控系统中基于异步串行总线进行运动控制卡与端子板之间数据通信的方法中的端子板中的FPGA逻辑功能模块框图。图10为本发明的实现数控系统中基于异步串行总线进行运动控制卡与端子板之间数据通信的方法中的数据帧通信协议示意图。图11为本发明的实现数控系统中基于异步串行总线进行运动控制卡与端子板之间数据通信的方法中的运动控制卡与端子板通信过程示意图。图12为本发明的实现数控系统中基于异步串行总线进行运动控制卡与端子板之间数据通信的方法中的运动控制卡进行初始化配置并设定定时器中断流程图。图13为本发明的实现数控系统中基于异步串行总线进行运动控制卡与端子板之间数据通信的方法中的运动控制卡进行数据接收和发送处理操作过程中的中断服务程序处理流程图。图14为本发明的实现数控系统中基于异步串行总线进行运动控制卡与端子板之间数据通信的方法中的端子板进行初始化配置并设置定时器中断初始化流程图。图15为本发明的实现数控系统中基于异步串行总线进行运动控制卡与端子板之间数据通信的方法中的端子板进行数据接收响应和转发数据处理操作过程中的中断服务程序处理流程图。
具体实施例方式为了能够更清楚地理解本发明的技术内容,特举以下实施例详细说明。请参阅图2至图7所示,该数控系统中基于异步串行总线实现运动控制卡与端子板之间数据通信的电路结构,包括运动控制卡、端子板和数个扩展端子板,所述的运动控制卡与外部计算机相连接,且所述的运动控制卡、端子板和数个扩展端子板依次串接,其中所述的运动控制卡上承载有主机接口和UART接口,所述的端子板上承载有端子板第一 UART接口和端子板第二 UART接口,所述的各个扩展端子板上均承载有各自的扩展端子板第一UART接口和扩展端子 板第二 UART接口,所述的运动控制卡的主机接口与外部计算机相连接,且该运动控制卡的UART接口与所述的端子板第一 UART接口相连接,所述的端子板第二UART接口与一扩展端子板上的扩展端子板第一 UART接口相连接,该扩展端子板上的扩展端子板第二 UART接口与其余的扩展端子板依次串接。其中,所述的运动控制卡的主机接口为PCI金手指插条,所述的UART接口和端子板第一 UART接口均为高速UART接口。再请参阅图8至图15所示,该利用上述的电路结构实现数控系统中基于异步串行总线进行运动控制卡与端子板之间数据通信的方法,其中包括运动控制卡进行数据接收和发送处理操作、端子板进行数据接收响应和转发数据处理操作,所述的运动控制卡进行数据接收和发送处理操作,包括以下步骤:(11)所述的运动控制卡进行初始化配置并设定定时器中断,包括以下步骤:(a)所述的运动控制卡读取配置数据;(b)所述的运动控制卡建立映射表;(c)设置重发帧为初始帧;(d)初始化定时器的超时时间;(e)开启定时器中断;(f)所述的运动控制卡进行数据映射表计算;(12)当定时器超时时启动定时器中断服务;(13)判断是否收到外部计算机发送来的数据帧;该数据帧可以为数据起始帧、脉冲数据帧、OUT帧或者扩展数据帧;(14)如果未收到,则发送重发帧,并结束;如果接收到,则判断CRC校验是否正确;(15)如果CRC校验不正确,则发送重发帧,并结束;如果CRC校验正确,则判断上
一次通信是否正常;(16)如果不正常,则结束;如果正常,则读取缓冲控制寄存器,并进行缓冲控制处理操作;该进行缓冲控制处理操作,包括以下步骤:
(a)所述的运动控制卡判断是否有缓冲控制;(b)如果有缓冲控制,则继续步骤(C);如果没有缓冲控制,则继续步骤(e);(c)判断端子板脉冲数据帧的FIFO队列是否满;(d)如果满,则发送OUT帧,并返回步骤(17);如果不满,则发送脉冲数据帧,并返回步骤(17);(e)判断端子板脉冲数据帧的FIFO队列是否空;(f)如果空,则发送脉冲数据帧,并返回步骤(17);如果不空,则发送OUT帧,并返回步骤(17);(17)查找命令帧地址映射表;( 18)对命令帧进行打包;(19)设置重发帧为命令帧,并发送至所述的端子板;

所述的端子板进行数据接收响应和转发数据处理操作,包括以下步骤:(21)所述的端子板进行初始化配置并设置定时器中断初始化,包括以下步骤:(a)开启串口中断初始化;(b)判断是否处于更新模式;(c)如果是,则进行配置更新处理操作,包括以下步骤:(i)判断闪存擦除是否未完成且标识ID是本系统;(ii)如果是,则擦除闪存;(iii)判断是否闪存擦除完成且配置缓冲区有数据;(iv)如果是,则继续步骤(V);如果否,则继续步骤(vii);(V)将配置缓冲区中的数据写入到闪存中,再进行读回并比较是否与缓冲区中的数据是否相同;(Vi)如果否,则设置配置错误标志有效;(vii)判断配置数据缓冲区的地址是否是擦除的首地址且配置没有错误;(viii)如果是,则设置配置完成标志有效并返回步骤(22);否则直接返回步骤
(22);(d)如果否,则进行数据缓存转发处理操作,包括以下步骤:(i)判断是否中断超时;(ii)如果否,则取输出OUT缓冲区的数据写入输出OUT端口,同时读取输入IN端口数据写入输入IN缓冲区,并继续步骤(iv);(iii)如果是,则进行超时处理,将相应的端口关闭,并继续步骤(iv);(iv)将数据写入到端子板第一 UART接口的发送缓冲区;(V)将数据写入到端子板第二 UART接口的发送缓冲区,并返回步骤(22);(22)当定时器超时时启动定时器中断服务,将从所述的端子板第一 UART接口所接收到的数据存储于相应的缓冲区中;(23)判断是否已经配置数据起始帧;(24)如果是,则设置更新模式有效;(25)判断接收到的数据是否为OUT数据帧;(26)如果是,则设置正常模式有效;
(27)判断是否为配置模式;(28)如果是,则进行端子板配置操作处理;如果否,则进行数据缓存和转发操作处理;该进行端子板配置操作处理,包括以下步骤:(i)判断是否为配置数据起始帧;(ii)如果是,则继续步骤(iii);如果否,则继续步骤(viii);(iii)初始化变量;(iv)将配置信息进行缓存处理;(V)向所述的端子板第一 UART接口进行应答回复;(Vi)清空所述的端子板第二 UART接口的数据;(vii)发送配置数据起始帧到所述 的端子板第二 UART接口,并返回步骤(29);(viii)将配置信息进行缓存处理;(ix)向所述的端子板第一 UART接口进行应答回复;(X)判断是否配置数据;(Xi)如果是,则配置数据缓冲标志有效;(Xii)接收所述的端子板第二 UART接口的数据;(Xiii)判断是否数据接收成功且与下行通信的CRC校验标志位有效且配置数据缓冲区数据有效;(xiv)如果否,则继续步骤(xvii);如果是,则判断上一帧数据是配置数据起始帧或者擦除标志完成,且上一帧数据下行系统已经接收到;(XV)如果是,则继续步骤(xvi);如果否,则继续步骤(xvii);(xvi)发送配置数据帧至所述的端子板第二 UART接口,并返回步骤(29);(xvii)发送重发帧至所述的端子板第二 UART接口,并返回步骤(29);该进行数据缓存和转发操作处理,包括以下步骤:(I)判断是否为数据起始帧;(II)如果是,则继续步骤(III);如果否,则继续步骤(V);(III)将端子板的信息数据进行缓存处理;(IV)向所述的端子板第一 UART接口进行应答回复,并继续步骤(XI);(V)判断发送缓冲区是否有效;(VI)如果是,则继续步骤(VII);如果否,则继续步骤(IX);(VII)回复发送缓冲区数据至所述的端子板第一 UART接口 ;(VIII)清除发送缓冲区有效标志,并继续步骤(XI);(IX)将端子板输入IN数据进行缓存处理;(X)向所述的端子板第一 UART接口进行应答回复,并继续步骤(XI);(XI)判断是否成功接收所述的端子板第一 UART接口的数据且CRC校验标志位有效;(XII)如果是,则继续步骤(XIII);如果否,则继续步骤(XVII);(XIII)清除错误计数 ErrCnt ;(XIV)判断退出报警EXT_ALARM标志是否有效;(XV)如果是,则继续步骤(XXI);如果否,则回复发送缓冲区数据至所述的端子板第一 UART 接口 ;(XVI)清除发送缓冲区有效标志,并返回上述步骤(29);(XVII)判断错误计数ErrCnt是否小于系统预设的最大错误数;该实现数控系统中基于异步串行总线进行运动控制卡与端子板之间数据通信的方法中的最大错误数为100 ;(XVIII)如果否,则继续步骤(XXI);如果是,则继续步骤(XIV);(XIX)将错误计数ErrCnt增加I ;(XX)将重发帧回复至所述的端子板第一 UART接口,并返回上述步骤(29);(XXI)将数据起始帧回复至所述的端子板第一 UART接口,并返回上述步骤(29)。
(29)将定时器变量清零。在实际使用当中,本发明的整个系统采用DB9芯线连接,连线较少,成本较低。其中采用xilinx spantar6系列的FPGA芯片,整个系统的数据处理以及通信协议实现均由FPGA完成,集成度较高。请再参阅图5所示,各端子板之间采用级联方式进行扩展,采用差分串行总线通信,以数据帧的方式进行传输。再请参阅图8所示,其为运动控制卡FPGA逻辑功能模块框图,其中,Uart IP负责建立microblaze处理器与PC系统之间的数据传输以及建立控制卡与端子板之间的数据传输,Timer IP实现定时中断。整个架构设计简单,占用资源较少,易于实现。再请参阅图9所示,其为端子板FPGA逻辑功能模块框图,其中,架构与运动控制卡架构相同,比运动控制卡多一个Uart IP0Uart IP O负责接收运动控制卡的数据传输,UartIP I负责下行扩展端子板的数据通信。与运动控制卡不同的是,运动控制卡采用定时中断,而端子板采样Uart IP的接收中断,所有的数据传输均有控制卡发起,端子板负责接收并作出相应的响应。本发明的方法中所采用的数据帧通信协议请见图10所示,其中,数据帧采用16字节等长数据帧传输,携带CRC等校验信息,具有重发机制,保证数据的有效、可靠传输。控制卡和端子板均采用4层板布局布线,具有较强的抗干扰能力。运动控制卡和端子板中均使用软核处理器microblaze负责通信和相应数据处理,代码使用C语言编写,其通信过程请参阅图11所示。其中,每块端子板应用程序中主动管理自己的本身1/0,中断服务程序负责上下行通信。中断服务程序先接收来自上行串行端口的数据,将其写入共享内存区域,然后根据帧格式从内存中读取相应数据作为响应帧回复上行端口 ;再接着接收下行串行端口的数据,写入共享内存区域,然后从共享区域内读取相应数据发送到下行串行端口,中断服务程序结束。数据传输采用IOMHz串口传输速率,以16字节数据帧的形式传输,既保证了加工
要求,又能保证较高的数据通信周期,其数据帧格式 如下表所示:
权利要求
1.一种数控系统中基于异步串行总线实现运动控制卡与端子板之间数据通信的电路结构,包括运动控制卡、端子板和数个扩展端子板,所述的运动控制卡与外部计算机相连接,且所述的运动控制卡、端子板和数个扩展端子板依次串接,其特征在于,所述的运动控制卡上承载有主机接口和UART接口,所述的端子板上承载有端子板第一 UART接口和端子板第二 UART接口,所述的各个扩展端子板上均承载有各自的扩展端子板第一 UART接口和扩展端子板第二 UART接口,所述的运动控制卡的主机接口与外部计算机相连接,且该运动控制卡的UART接口与所述的端子板第一 UART接口相连接,所述的端子板第二 UART接口与一扩展端子板上的扩展端子板第一 UART接口相连接,该扩展端子板上的扩展端子板第二UART接口与其余的扩展端子板依次串接。
2.根据权利要求1所述的数控系统中基于异步串行总线实现运动控制卡与端子板之间数据通信的电路结构,其特征在于,所述的运动控制卡的主机接口为PCI金手指插条。
3.根据权利要求1或2所述的数控系统中基于异步串行总线实现运动控制卡与端子板之间数据通信的电路结构,其特征在于,所述的UART接口和端子板第一 UART接口均为高速UART 接口。
4.一种利用权利要求1所述的电路结构实现数控系统中基于异步串行总线进行运动控制卡与端子板之间数据通信的方法,其特征在于,所述的方法包括运动控制卡进行数据接收和发送处理操作、端子板进行数据接收响应和转发数据处理操作,所述的运动控制卡进行数据接收和发送处理操作,包括以下步骤: (11)所述的运动控制卡进行初始化配置并设定定时器中断; (12)当定时器超时时启动定时器中断服务; (13)判断是否收到外部计算机发送来的数据帧; (14)如果未收到,则发 送重发帧,并结束;如果接收到,则判断CRC校验是否正确; (15)如果CRC校验不正确,则发送重发帧,并结束;如果CRC校验正确,则判断上一次通 目是否正常; (16)如果不正常,则结束;如果正常,则读取缓冲控制寄存器,并进行缓冲控制处理操作; (17)查找命令帧地址映射表; (18)对命令巾贞进行打包; (19)设置重发帧为命令帧,并发送至所述的端子板; 所述的端子板进行数据接收响应和转发数据处理操作,包括以下步骤: (21)所述的端子板进行初始化配置并设置定时器中断初始化; (22)当定时器超时时启动定时器中断服务,将从所述的端子板第一UART接口所接收到的数据存储于相应的缓冲区中; (23)判断是否已经配置数据起始帧; (24)如果是,则设置更新模式有效; (25)判断接收到的数据是否为OUT数据帧; (26)如果是,则设置正常模式有效; (27)判断是否为配置模式; (28)如果是,则进行端子板配置操作处理;如果否,则进行数据缓存和转发操作处理;(29)将定时器变量清零。
5.根据权利要求4所述的实现数控系统中基于异步串行总线进行运动控制卡与端子板之间数据通信的方法,其特征在于,所述的数据帧为数据起始帧、脉冲数据帧、OUT帧或者扩展数据帧。
6.根据权利要求5所述的实现数控系统中基于异步串行总线进行运动控制卡与端子板之间数据通信的方法,其特征在于,所述的进行初始化配置并设定定时器中断,包括以下步骤: (111)所述的运动控制卡读取配置数据; (112)所述的运动控制卡建立映射表; (113)设置重发帧为初始帧; (114)初始化定时器的超时时间; (115)开启定时器中断; (116)所述的运动控制卡进行数据映射表计算。
7.根据权利要求6所述的实现数控系统中基于异步串行总线进行运动控制卡与端子板之间数据通信的方法,其特征在于,所述的进行缓冲控制处理操作,包括以下步骤: (161)所述的运动控制卡判断是否有缓冲控制; (162)如果有缓冲控制,则继续步骤(163);如果没有缓冲控制,则继续步骤(165); (163)判断端子板脉冲数据帧的FIFO队列是否满; (164)如果满,则发送OUT帧,并返回上述步骤(17);如果不满,则发送脉冲数据帧,并返回上述步骤(17); (165)判断端子板脉冲数据帧的FIFO队列是否空; (166)如果空,则发送脉冲数据帧,并返回上述步骤(17);如果不空,则发送OUT帧,并返回上述步骤(17)。
8.根据权利要求5所述的实现数控系统中基于异步串行总线进行运动控制卡与端子板之间数据通信的方法,其特征在于,所述的端子板进行初始化配置并设置定时器中断初始化,包括以下步骤: (211)开启串口中断初始化; (212)判断是否处于更新模式; (213)如果是,则进行配置更新处理操作; (214)如果否,则进行数据缓存转发处理操作。
9.根据权利要求8所述的实现数控系统中基于异步串行总线进行运动控制卡与端子板之间数据通信的方法,其特征在于,所述的进行配置更新处理操作,包括以下步骤: (2131)判断闪存擦除是否未完成且标识ID是本系统; (2132)如果是,则擦除闪存; (2133)判断是否闪存擦除完成且配置缓冲区有数据; (2134)如果是,则继续步骤(2135);如果否,则继续步骤(2137); (2135)将配置缓冲区中的数据写入到闪存中,再进行读回并比较是否与缓冲区中的数据是否相同; (2136)如果否,则设置配置错误标志有效;(2137)判断配置数据缓冲区的地址是否是擦除的首地址且配置没有错误; (2138)如果是,则设置配置完成标志有效并返回步骤(22);否则直接返回步骤(22)。
10.根据权利要求8所述的实现数控系统中基于异步串行总线进行运动控制卡与端子板之间数据通信的方法,其特征在于,所述的进行数据缓存转发处理操作,包括以下步骤: (2141)判断是否中断超时; (2142)如果否,则取输出OUT缓冲区的数据写入输出OUT端口,同时读取输入IN端口数据写入输入IN缓冲区,并继续步骤(2144); (2143)如果是,则进行超时处理,将相应的端口关闭,并继续步骤(2144); (2144)将数据写入到端子板第一UART接口的发送缓冲区; (2145)将数据写入到端子板第二UART接口的发送缓冲区,并返回步骤(22)。
11.根据权利要求5所述的实现数控系统 中基于异步串行总线进行运动控制卡与端子板之间数据通信的方法,其特征在于,所述的进行端子板配置操作处理,包括以下步骤: (281)判断是否为配置数据起始帧; (282)如果是,则继续步骤(283);如果否,则继续步骤(288); (283)初始化变量; (284)将配置信息进行缓存处理; (285)向所述的端子板第一UART接口进行应答回复; (286)清空所述的端子板第二UART接口的数据; (287)发送配置数据起始帧到所述的端子板第二UART接口,并返回步骤(29); (288)将配置信息进行缓存处理; (289)向所述的端子板第一UART接口进行应答回复; (2810)判断是否配置数据; (2811)如果是,则配置数据缓冲标志有效; (2812)接收所述的端子板第二UART接口的数据; (2813)判断是否数据接收成功且与下行通信的CRC校验标志位有效且配置数据缓冲区数据有效; (2814)如果否,则继续步骤(2817);如果是,则判断上一帧数据是配置数据起始帧或者擦除标志完成,且上一帧数据下行系统已经接收到; (2815)如果是,则继续步骤(2816);如果否,则继续步骤(2817); (2816)发送配置数据帧至所述的端子板第二UART接口,并返回步骤(29); (2817)发送重发帧至所述的端子板第二UART接口,并返回步骤(29)。
12.根据权利要求5所述的实现数控系统中基于异步串行总线进行运动控制卡与端子板之间数据通信的方法,其特征在于,所述的进行数据缓存和转发操作处理,包括以下步骤: (291)判断是否为数据起始帧; (292)如果是,则继续步骤(293);如果否,则继续步骤(295); (293)将端子板的信息数据进行缓存处理; (294)向所述的端子板第一UART接口进行应答回复,并继续步骤(2911); (295)判断发送缓冲区是否有效;(296)如果是,则继续步骤(297);如果否,则继续步骤(299); (297)回复发送缓冲区数据至所述的端子板第一UART接口 ; (298)清除发送缓冲区有效标志,并继续步骤(2911); (299)将端子板输入IN数据进行缓存处理; (2910)向所述的端子板第一UART接口进行应答回复,并继续步骤(2911);(2911)判断是否成功接收所述的端子板第一UART接口的数据且CRC校验标志位有效; (2912)如果是,则继续步骤(2913);如果否,则继续步骤(2917); (2913)清除错误计数ErrCnt; (2914)判断退出报警EXT_ALARM标志是否有效; (2915)如果是,则继续步骤(2921);如果否,则回复发送缓冲区数据至所述的端子板第一UART 接口 ; (2916)清除发送缓冲区有效标志, 并返回上述步骤(29); (2917)判断错误计数ErrCnt是否小于系统预设的最大错误数; (2918)如果否,则继续步骤(2921);如果是,则继续步骤(2919); (2919)将错误计数ErrCnt增加I; (2920)将重发帧回复至所述的端子板第一UART接口,并返回上述步骤(29);(2921)将数据起始帧回复至所述的端子板第一UART接口,并返回上述步骤(29)。
13.根据权利要求12所述的实现数控系统中基于异步串行总线进行运动控制卡与端子板之间数据通信的方法,其特征在于,所述的最大错误数为100。
全文摘要
本发明涉及一种运动控制卡与端子板间实现数据通信的电路结构,运动控制卡的主机接口与外部计算机连接,运动控制卡的UART接口与端子板第一UART接口连接,端子板第二UART接口与一扩展端子板上的扩展端子板第一UART接口连接,扩展端子板上的扩展端子板第二UART接口与其余的扩展端子板依次串接。本发明还涉及一种利用该电路结构实现运动控制卡与端子板之间数据通信的方法。采用该种运动控制卡与端子板之间数据通信的电路结构及方法,连线较少,成本较低,数据处理以及通信协议实现集成度较高,采用等长数据帧传输,携带校验信息,具有重发机制,数据传输有效可靠,性能好,设计简单,可靠性高,易于扩展,工作性能稳定可靠、适用范围较为广泛。
文档编号G05B19/042GK103235533SQ20131009867
公开日2013年8月7日 申请日期2013年3月26日 优先权日2013年3月26日
发明者王少阳, 邓美龙, 汪定军, 汤同奎, 郑之开 申请人:上海维宏电子科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1