高速协调控制网络及节点芯片转让专利

申请号 : CN200910183353.9

文献号 : CN101692181B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张建华李宏胜方力葛红宇

申请人 : 南京工程学院

摘要 :

一种高速协调控制网络及节点芯片,包括主控计算机、主节点和从节点;所述主控计算机与主节点通过局部总线连接;所述主节点与一个或多个从节点通过总线通信;所述从节点连接控制一个或多个执行机构。1)先由主控计算机把多点运动控制指令数据传送给主节点;2)然后主节点通过所述总线把指令数据传给各个从节点;3)最后由从节点根据所述指令数据控制一个或多个执行机构。所述从节点采用无CPU结构;所述步骤2)中,主节点先对收到的主控计算机传来的指令数据进行处理,再把处理得到的指令数据传给相应的从节点;步骤3)中,由从节点接收所述指令数据,根据指令数据,独立控制执行机构之间协调动作。

权利要求 :

1.一种高速协调控制网络,包括主控计算机、主节点和从节点;所述主控计算机与主节点通过局部总线连接;所述主节点与一个或多个从节点通过总线通信;所述从节点连接控制一个或多个执行机构;

1)先由主控计算机把多点运动控制指令数据传送给主节点;2)然后主节点通过所述总线把指令数据传给各个从节点;3)最后由从节点根据所述指令数据控制一个或多个执行机构,其特征是所述从节点采用无CPU结构;

所述步骤2)中,主节点先对收到的主控计算机传来的指令数据进行处理,再把处理得到的指令数据传给相应的从节点;

步骤3)中,由从节点接收所述指令数据,根据指令数据,独立控制执行机构之间协调动作:所述步骤2)中,主节点先对收到的主控计算机的指令数据进行处理,转换得到4位数据,同时响应数据发送时钟TXC,在TXC的上升沿把数据发送到所述网络上;

步骤3)中,从节点接收来自主节点的4位数据,先转化为16位数据,再进行循环冗余码校验;如果数据出错,则向主控芯片发出重发请求;反之,根据指令协调控制执行机构的动作。

2.根据权利要求1所述的高速协调控制网络,其特征是所述总线的物理介质是基于以太网的物理层结构。

3.根据权利要求1或2所述的高速协调控制网络,其特征是所述从节点采用FPGA;所述主节点完成指令数据的发送和从节点接收状态的接收;所述从节点的FPGA完成指令数据的接收与接收状态的发送,并根据指令数据对执行机构进行协调动作控制。

4.根据权利要求3所述的高速协调控制网络,其特征是所述步骤2)中,主节点发送数据和从节点接收数据依据先入先出FIFO存入指令队列。

5.根据权利要求4所述的高速协调控制网络,其特征是步骤2)中,所述总线上的数据传输的通信协议是:

1)在发送端,数据发送包括参数设置段和数据传送段,分别发送设置封包和数据封包,具体步骤如下:

1.1)参数设置段:

发送设置封包,是以字为单位通知接收端本次传输数据长度与传输地址;

发送中,先采样发送时钟TXC,如果发送队列FIFO不空,则根据FIFO的读写指针计算队列中的数据数量、备份FIFO的读写指针、发起始字及其校验码;

如果接收端无错误产生,则计算数据长度反码作为发送数据的低16位,同时传输数据长度作为发送数据的高16位发至接收端;

如果接收无误,则发结束字及其校验码,设置封包发送成功,结束;反之,如果过程中接收端出错,发送模块初始化,发起始字,重发设置封包;

1.2)数据传送段:

先发送起始字与校验码,置位发送使能TXEN启动数据封包发送,校验无误后,发送模块从FIFO中取一字作为发送数据的高16位,同时计算循环冗余码作为发送数据的低16位,从高到低,依次从发送数据中截取4位,在TXC降沿上送至TXD,同时置位TXEN;

发送中,如果接收端出错,则结束,在下一个TXC降沿重发数据封包起始字,重新开始数据封包的传送;

数据发送结束,发送结束标志字及其校验码,完成整个数据包的发送,同时完成一次完整的数据发送过程;

所述步骤1.1)中,参数设置段采用反码校验,即在传送数据的同时传送数据的反码,分别作为32位数据的高16位与低16位,接收端对二者做异或运算即可判断数据是否有效;

所述步骤1.2)中,数据传送段采用循环冗余码校验CRC方式校验,即利用除法及余数的原理来作错误侦测;

2)在接收端,数据接收包括参数设置段与数据接收段,分别接收设置封包和数据封包,具体步骤如下:

2.1)参数设置段:

收到发送端送出的传送起始字及其校验码,备份接收队列FIFO的读写指针,并据此计算队列的空余存储空间;而后接收32位数据作为传送数据的字数及其校验码,其中高16位为本次传送总字数,低16位为用作校验的反码;

对高、低16位进行异或运算,各位均为1则发送无误,模块等待结束字及校验码,完成参数设置封包的接收;否则,错误标志置1,通知状态发送模块发送重传请求和校验码,请求发送端重发设置封包;

2.2)数据接收段:

参数设置结束,等待数据封包起始字及校验码;而后,在RXC上升沿上按照先高后低的顺序,依次读入8组4位数,构成16位的数据及其循环冗余码;其中16位为原始数据,低16位为冗余码,按所述循环冗余码计算方法计算并比较收到的数据,如果传输无误,则继续传输过程,如果传输出错,则错误标志置位,并发送重传请求,重新开始数据传送;

数据传送结束,等待传送结束字及其校验码;收到后传送结束字及其校验码后,调整接收队列的读写指针,恢复各信号与寄存器,准备接收新的传送请求;

数据接收中,接收数据一旦有误,则在TXC降沿上连续发出重传请求及其校验码;发送端收到请求,发出起始字及校验码,接收端收到起始字,撤销错误标志,开始新一轮数据传输。

6.根据权利要求5所述的高速协调控制网络,其特征是所述步骤3)中,从节点控制执行机构的动作是,先根据指令类型分别初始化运动参数,再进行运动插补,最后送出指令脉冲给相应驱动器。

7.根据权利要求3所述的高速协调控制网络,其特征是所述主节点包括主控芯片和PHY;主控芯片连接PHY;主控芯片的数据通过PHY传送到所述网络上;主控芯片包括CPU读写逻辑控制模块、FIFO模块、16-4位数据转换模块、FIFO状态监控模块,数据发送模块和发送状态监控模块;

所述CPU读写逻辑控制模块得到主控计算机传来的16位指令数据,再把该指令数据传到FIFO模块;16-4位数据转换模块把FIFO模块中的指令数据进行转换,然后由数据发送模块根据FIFO状态监控模块得到的FIFO模块中的数据情况,把16-4位数据转换模块得到的指令数据通过PHY传送到所述网络上;同时,数据发送模块通过发送状态监控模块对从节点中的重发请求进行监控。

8.根据权利要求7所述的高速协调控制网络,其特征是所述从节点包括运动控制芯片和PHY;运动控制芯片连接PHY;所述运动控制芯片通过PHY接收所述网络上的数据;运动控制芯片包括数据接收模块、转换模块、校验模块、FIFO模块、FIFO状态控制模块、指令读取控制模块、初始化、运动插补模块和输出控制模块;

所述数据接收模块接收所述网络上的指令数据,再由转换模块把4位指令数据转换成

16位指令数据,转换得到的16位指令数据进入校验模块进行校验,校验合格的指令数据进入FIFO模块,如果校验不合格,则向主节点发送重发请求;所述指令读取控制模块通过FIFO状态控制模块监控FIFO模块中的数据情况,并接收FIFO模块中的指令数据;再把指令数据在初始化模块中进行初始化运动参数,然后驱动相应的动作插补模块,最终由插补模块通过输出控制模块控制执行机构。

9.根据权利要求1所述的高速协调控制网络,其特征是所述主节点采用有CPU结构,CPU采用MCU。

10.根据权利要求1所述的高速协调控制网络,其特征是所述主节点采用无CPU结构,主节点采用FPGA。

说明书 :

高速协调控制网络及节点芯片

技术领域

[0001] 本发明属于工业控制领域,具体是一种高速协调控制网络及节点芯片。

背景技术

[0002] 目前,使运动控制技术与网络技术有机结合,即基于网络的运动控制技术研究,在国内外尚处于发展阶段。通过对基于网络的运动控制技术进一步深入研究和开发应用,以形成在网络环境下的运动控制所需的开放性、同步性、可重构性、可移植性、可裁剪性、实时网络性以及高可靠性的控制系统,将有助于充分利用现有丰富的PC软/硬件资源、低成本且可共享的网络资源,改造传统数控装备制造业,并为许多高科技产品的开发奠定关键技术基础。
[0003] 高性能运动网络要求严格管理的同步体制来保证多个轴之间的同步和实时更新。尽管以太网为采用分布控制的一般用途的应用提供足够的性能,但它的实时性差,难以满足多机构协调动作的要求。在这些情况下,就需要一个快速同步网络,将集中运动处理器的指令实时送到协调动作的多个执行机构。
[0004] 现有技术中,Synqnet网络已经被用于工业控制,Synqnet网络中,控制计算机完成人机交互、刀具补偿、译码、校验等工作,将运算结果通过Synqnet总线传给电机控制器,各运动参数再由电机控制器通过Synqnet传至各运动轴,从而实现各轴的运动。运动中的粗插补与各轴的运动控制协调由电机控制器(主节点)完成,Synqnet各节点只完成单轴的运动控制及参数传递。这样,造成电机控制器的负荷太重,网络中传输的数据太多,易造成网络阻塞等故障,实时性不高。

发明内容

[0005] 为了解决现有技术中存在的上述问题,本发明提出一种新的高速协调控制网络及节点芯片,具体技术方案如下:
[0006] 一种高速协调控制网络,包括主控计算机、主节点和从节点;所述主控计算机与主节点通过局部总线连接;所述主节点与一个或多个从节点通过总线通信;所述从节点连接控制一个或多个执行机构;
[0007] 1)先由主控计算机把多点运动控制指令数据传送给主节点;2)然后主节点通过所述总线把指令数据传给各个从节点;3)最后由从节点根据所述指令数据控制一个或多个执行机构,
[0008] 所述从节点采用无CPU结构;
[0009] 所述步骤2)中,主节点先对收到的主控计算机传来的指令数据进行处理,再把处理得到的指令数据传给相应的从节点;步骤3)中,由从节点接收所述指令数据,根据指令数据,独立控制执行机构之间协调动作。
[0010] 所述总线的物理介质是基于以太网的物理层结构,即主节点与从节点之间采用IEEE802协议的物理层介质接口PHY,数据线缆是以太网线缆。
[0011] 所述主节点完成指令数据的发送和从节点接收状态的接收;所述从节点采用FPGA;所述从节点的FPGA完成指令数据的接收与接收状态的发送,并根据指令数据对执行机构进行协调动作控制。
[0012] 所述步骤2)中,主节点先对收到的主控计算机的指令数据进行处理,转换得到4位数据,同时响应数据发送时钟TXC,在TXC的上升沿把数据发送到所述网络上;
[0013] 步骤3)中,从节点接收来自主节点的4位数据,先转化为16位数据,再进行循环冗余码校验;如果数据出错,则向主控芯片发出重发请求;反之,根据指令协调控制执行机构的动作。
[0014] 所述步骤2)中,主节点发送数据和从节点接收数据依据先入先出FIFO存入指令队列。
[0015] 所述步骤2)中,所述总线上的数据传输的通信协议是:
[0016] 数据发送过程分为两个阶段:参数设置与数据发送。参数设置阶段,发送模块检测FIFO状态,计算FIFO中的数据个数,并作为数据封包长度通过PHY发出;数据发送阶段,发送模块响应发送时钟TCK的下降沿,根据模块状态与FIFO状况依次将发送FIFO中的数据发出。
[0017] 数据接收对应于发送过程,分为参数设置与数据接收两个阶段。参数设置阶段,接收模块检测接收队列FIFO的状态,计算FIFO中的空余存储空间,根据设置封包所传参数确定是否开始数据传送;数据发送阶段,接收模块响应接收时钟RCK的上身沿,根据模块状态与FIFO状况依次取走RXD上的4位数据,经校验无误后送入接收队列FIFO,供运动控制模块读取。
[0018] 所述步骤3)中,从节点控制被控器件的动作是,先根据指令类型分别初始化运动参数,再进行运动插补,最后送出指令脉冲给相应驱动器;所述运动插补包括直线插补和圆弧插补。
[0019] 所述主节点的控制器是主控芯片;主控芯片连接有PHY;主控芯片的数据通过PHY传送到所述网络上;主控芯片包括CPU读写逻辑控制模块、FIFO模块、16-4位数据转换模块、FIFO状态监控模块,数据发送模块和发送状态监控模块;
[0020] 所述CPU读写逻辑控制模块得到主控计算机传来的16位指令数据,再把该指令数据传到FIFO模块;16-4位数据转换模块把FIFO模块中的指令数据进行转换,然后由数据发送模块根据FIFO状态监控模块得到的FIFO模块中的数据情况,把16-4位数据转换模块得到的指令数据通过PHY传送到所述网络上;同时,数据发送模块通过发送状态监控模块对从节点中的重发请求进行监控。
[0021] 所述从节点的控制器包括运动控制芯片;运动控制芯片连接有PHY;所述运动控制芯片通过PHY接收所述网络上的数据;运动控制芯片包括数据接收模块、转换模块、校验模块、FIFO模块、FIFO状态控制模块、指令读取控制模块、初始化、直线插补模块、圆弧插补模块和输出控制模块;
[0022] 所述数据接收模块接收所述网络上的指令数据,再由转换模块把4位指令数据转换成16位指令数据,转换得到的16位指令数据进入校验模块进行校验,校验合格的指令数据进入FIFO模块,如果校验出错,则向主节点发送重发请求;所述指令读取控制模块通过FIFO状态控制模块监控FIFO模块中的数据情况,并接收FIFO模块中的指令数据;再把指令数据在初始化模块中进行初始化运动参数,然后相应地驱动直线插补模块或圆弧插补模块,最终由直线插补模块或圆弧插补模块通过输出控制模块输出控制。
[0023] 所述主节点可以采用有CPU或无CPU结构。有CPU结构中,CPU采用MCU;无CPU结构中,主节点采用FPGA。
[0024] 与现有技术相比,本网络的有益效果如下:
[0025] 1、本网络的物理介质是基于以太网的物理层结构,利用现有的成熟技术可以大大降低研发时间和风险;同时可以实现本网络的高速传输。
[0026] 2、主节点的工作主要是进行指令数据的转换和发送/接收,从节点在接收/发送数据的基础上完成对多运动机构(执行机构可以是多个运动装置)的协调控制,主、从节点分担了运动控制工作,这样两个节点的控制器无需采用CPU而仅仅采用FPGA即可实现运动控制的全部功能。
[0027] 3、主、从节点分担了数据传输和运动控制工作,网络上的通信量少,有利于提高网络速度和效率。网络通信的协议和方法使通信的准确性和快速性都得到了保障。
[0028] 4、FPGA的资源丰富、运算由硬件完成速度快,本方法提供了一个开放的IP核,本网络的节点控制器的开发和成本也更加便宜。

附图说明

[0029] 图1是Synqnet的运动控制网络结构;
[0030] 图2是本工业运动控制网络结构图;
[0031] 图3是本工业运动控制网络主节点及节点芯片的逻辑结构图;
[0032] 图4是本工业运动控制网络从节点及节点芯片的逻辑结构图;
[0033] 图5是本工业运动控制网络数据发送流程图;
[0034] 图6是本工业运动控制网络数据接收流程图;
[0035] 图7是数字积分法直线插补基本原理图;
[0036] 图8是采用数字积分法流程图;
[0037] 图9是逐点比较法圆弧插补原理图;
[0038] 图10是逐点比较法流程图。

具体实施方式

[0039] 下面结合附图,以本发明用于多轴运动控制为例对本发明作进一步说明。
[0040] 参考图2,一种高速协调控制网络,包括主控计算机、主节点和从节点;所述主控计算机与主节点通过局部总线连接;所述主节点与一个或多个从节点通过总线通信;所述从节点连接控制一个或多个执行机构。本例中的执行机构是多个由驱动器驱动的伺服轴。
[0041] 所述主节点采用有CPU或无CPU结构,由于有CPU结构应用现有技术很容易实现,本例中,给出了无CPU结构的实施方式。所述从节点采用无CPU结构。
[0042] 主节点的主控(host)芯片接收主控计算机送来的并行数据,根据网络介质的要求将其转换为四位数据,同时响应数据传送时钟TXC,在TXC的升沿将数据发送到网络上,供从节点的运动控制(slave)芯片接收。运动控制芯片接收来自主控芯片的四位数据,转化为16位数据后进行循环冗余码校验(本例中采用16位行循环冗余码校验),如果数据出错,则通过自带的发送功能向主控芯片发出重发请求。反之,根据指令类型分别初始化运动参数,驱动插补模块(本例中采用圆弧或直线插补),送出指令脉冲给相应驱动器。由于以太网物理介质只能传输4位数据的的限制,所以必须把16位数据转换成4位数据进行传输。
[0043] 参考图3,主控芯片的数据通过PHY传送到以太网上;主控芯片包括CPU读写逻辑控制模块、FIFO模块、16-4位数据转换模块、FIFO状态监控模块,数据发送模块和发送状态监控模块;
[0044] 考虑到系统传输数据的方便,主控芯片设计中增加了处理器接口。使用过程中,主控芯片从主控计算机接收传来的并行数据、计算循环冗余码(本例中采用16位循环冗余码。由于该类循环冗余码校验在现有技术中很常见,本例选用16位循环冗余码进行校验),根据网络介质的要求将其转换为四位数据,同时响应数据发送时钟TXC,在TXC的升沿将数据发送到网络上,供运动控制芯片接收。
[0045] 考虑到实际系统的要求,处理器的总线接口采用16位数据总线。整个控制芯片由CPU读写逻辑控制、FIFO、16-4位数据转换、FIFO状态监控,数据发送与发送状态监控等模块构成。由于采用了工业以太网的传输介质,因而芯片设计中不含PHY。
[0046] 芯片工作中,运动控制芯片(slave)收到数据后,根据收到的16位循环冗余码判断数据是否正确,如错误,发送重发请求,主控芯片(host)发送状态监控模块接收重发请求,通知数据发送模块重发数据包。
[0047] 参考图4,从节点包括运动控制芯片和PHY;所述运动控制芯片通过PHY接收以太网上的数据;运动控制芯片包括数据接收模块、转换模块、校验模块、FIFO模块、FIFO状态控制模块、指令读取控制模块、直线插补模块、圆弧插补模块和输出控制模块。
[0048] 芯片接收来自主控芯片的四位数据,转化为16位数据后进行16为循环冗余码校验,数据出错,则通过自带的发送功能向主控芯片发出重发请求。反之,存入FIFO供读取控制模块读取。读取控制模块得到控制指令,根据指令类型分别初始化运动参数,驱动圆弧或直线插补模块,送出指令脉冲给相应驱动器。
[0049] 参考图5、6,主节点和从节点之间的通信。
[0050] 传输过程处理两类数据封包:设置包与数据包,设置封包传递传输参数,数据封包传递数据。
[0051] 设置封包的结构如下表所示:
[0052] 表1设置封包结构表:
[0053]
[0054] 传输过程中,芯片利用四位起始码、结束码启动设置封包的传输,起始码为四位数据“1000”,结束码为四位数据“1001”。设置封包的校验采用取反校验,芯片在传送起始字、结束字、设置数据的同时,输出反码供校验。传送出错,芯片重新输出起始字,再次传送。
[0055] 数据封包的结构与设置封包类似,也包括起始字、数据与结束字三个段,且起始字、结束字与校验码均与设置封包相同,只是所传输的坐标数据采用16位循环冗余码进行校验。
[0056] 数据传输中,主控(Host)芯片计算数据的16位循环冗余码,一同发至接收端,根据系统的运动控制指令结构,数据封包的数据包括圆弧轨迹运动指令与直线轨迹运动指令,对于圆弧轨迹,数据包括轨迹标志0002H、圆弧起点坐标与终点坐标三部分构成,均采用16位数表示。
[0057] 数据发送过程分两段:参数设置段与数据传送段,分别发送设置封包与数据封包。
[0058] 传送开始,发送模块首先发送设置封包,以字为单位通知接收端本次传输数据长度与接收地址。发送中,模块采样发送脉冲TXC,如果发送队列FIFO不空,模块根据FIFO的读写指针计算队列中的数据数量(以字为单位),备份FIFO的读写指针,发起始字及其校验码,请求发送,接收端无错误产生,计算数据长度反码作为发送数据的低16位,同时传输数据长度作为发送数据的高16位发至接收端。接收无误,发结束字及其校验码,设置封包发送成功,设置阶段结束。反之,如果过程中接收端出错,发送模块初始化,发起始字,重发设置封包。
[0059] 数据传送段,发送模块发送起始字与校验码,置位TXEN启动数据封包发送,校验无误,发送模块从FIFO中取一字(2字节)作为发送数据的高16位,同时计算16位循环冗余码作为发送数据的低16位,从高到低,依次从发送数据中截取4位,在TXC降沿上送至TXD,同时置位TXEN。数据发送中,接收端出错,在下一个TXC降沿冲发数据封包起始字“1000”,重新开始数据封包的传送。
[0060] 数据发送结束,模块发送结束标志字“1001”及其校验码“0110”,完成整个数据包的发送,同时实现一次完整的数据发送过程。
[0061] 3)数据校验
[0062] 从传输可靠性的角度出发,发送模块提供数据校验功能,设置参数的校验采用反码校验,即在传送数据的同时传送数据的反码,分别作为32位数据的高16位与低16位,接收端对二者做异或运算即可判断数据是否有效。
[0063] 本文的数据传输采用循环冗余码校验的校验方式(Cyclical RedundancyCheck,简称CRC)。它利用除法及余数的原理来作错误侦测(Error Detecting)的。CRC校验的基本思想是利用线性编码理论,在发送端根据要传送的k位二进制码序列,以一定的规则产生一个校验用的监督码(即CRC码)r位,并附在信息后边,构成一个新的二进制码序列数共(k+r)位,最后发送出去。在接收端,则根据信息码和CRC码之间所遵循的规则进行检验,以确定传送中是否出错。CRC校验检错能力强,容易实现,是目前应用最广的检错码编码方式之一。
[0064] 16位的CRC码产生的规则是先将要发送的二进制序列数左移16位(即乘以216)后,再除以一个多项式,最后所得到的余数即是CRC码。
[0065] 求CRC码所采用模2加减运算法则,既是不带进位和借位的按位加减,这种加减运算实际上就是逻辑上的异或运算,加法和减法等价,乘法和除法运算与普通代数式的乘除法运算是一样,符合同样的规律,生成16位CRC码的多项式如下。
[0066] CRC-16码:G(x)=X16+X15+X2+1
[0067] 这里取″11000000000000101″作为CRC_16采用的生成多项式,程序计算CRC校验码,在接收时将数据进行CRC校验后如果余数为0,传输正常,将数据信息分离即可,若不正确,丢弃并要求数据重发,启动复位信号。
[0068] 在接收端,空闲状态下,接收模块收到发送端送出的传送起始字及其校验码,备份接收队列FIFO的读写指针,并据此计算队列的空余存储空间。而后接收32位数据作为传送数据的字数及其校验码,其高16位为本次传送总字数,低16位为用作校验的反码,对二者异或运算,各位均为‘1’则发送无误,模块等待结束字及校验码,完成参数设置封包的接收。接收出错,错误标志置‘1’,通知状态发送模块发送重传请求“1010”即及校验码“0101”,请求发送端重发设置封包。
[0069] 参数设置结束,模块等待数据封包起始字“1000”及校验码“0111”。而后,在RXC上升沿上,按照先高后低的顺序,依次读入8组4位数,构成16位的数据及其循环冗余码,其中16位为原始数据,低16位为冗余码,按前文所述的循环冗余码计算方法计算并比较收到的数据,传输无误,继续传输过程。传输出错,错误标志置位,状态发送模块发送重传请求,重新开始数据传送。
[0070] 数据传送结束,模块等待传送结束字“1001”及其校验码“0110”,收到后调整接收队列的读写指针,恢复各信号与寄存器,准备接收新的传送请求。
[0071] 数据接收中出错标志的置位与复位由接收模块完成,接收数据一旦有误,接收模块立即置位接收错误标志,状态发送模块采样到错误标志,在TXC降沿上连续发出重传请求“1010”及其校验码“0101”,发送端收到请求,发出起始字“1000”及校验码“0111”,接收端收到起始字,撤销错误标志rec_er,开始新一轮数据传输。
[0072] 在从节点的运动控制芯片完成运动插补包括直线插补和圆弧插补;本例中,所述直线插补采用数字积分法;所述圆弧插补采用逐点比较法。
[0073] 参考图7、8,直线插补采用数字积分法:
[0074] 图7中坐标以脉冲当量为单位。对图示空间直线OE,假定运动过程中速度均匀,则XYZ向分速度正比于终点坐标Xe、Ye、Ze,可以用Xe/n、Ye/n、Ze/n描述,每经过一个时间单位,XYZ向位移分别增加Xe/n、Ye/n、Ze/n,假定三个方向最小位移量为N,则当位移大于N时,走一步。取位移单位为1/n,则三轴位移速度分别为Xe、Ye、Ze,三个方向最小位移量为N/n,经过一个时间单位,坐标轴按Xe、Ye、Ze增加,大于N/n,相应轴走一步,依次类推得到数字积分法直线插补过程:
[0075] 开辟被积函数寄存器JVX、JVY、JVZ,余数寄存器JRX、JRY和JRZ。
[0076] 脉冲源发送脉冲Δt,XY轴积分器各加Xe、Ye、Ze。
[0077] 累加结果超出余数寄存器容量2N-1,产生溢出脉冲ΔX、ΔY或ΔZ。
[0078] 经2N次累加,坐标轴溢出脉冲总数就等于被积函数值Xe、Ye和Ze。
[0079] 图8中,运动控制模块状态有两种:忙状态和空闲态,忙状态下不允许模块读入新的运动段。空闲态下,模块采样到数据更新标志,计算各轴运动步数与总步数,初始化被积函数寄存器与余数寄存器,设置读取标记,通知其他模块数据已取走,同时设置忙状态,进入初步处理过程。
[0080] 插补过程中,模块采样脉冲源,在降沿上各余数寄存器完成一次与被积函数寄存器的加运算,有溢出则使能相应轴的脉冲口,送出一个指令脉冲,同时总步数与相应轴的运动步数减1。单个轴运动完毕,积分器不再积分。
[0081] 所有运动结束,模块置空闲态,通知芯片可以读入新数据。
[0082] 参考图9、10,圆弧插补采用逐点比较法:
[0083] 图9为第I象限逆向圆弧SE,圆心O(0,0),半径R,起点S(XS,YS),终点E(Xe,Ye),动点N(Xi,Yi)。
[0084] 动点N的情况:
[0085] 动点在圆外,-X向进一步,
[0086] 动点在圆上,-X向进一步,
[0087] 动点在圆内,+Y向进一步,
[0088] 第i次插补,动点N(Xi,Yi),偏差函数
[0089] Fi≥0,-X进一步,则:Xi+1=Xi-1,Yi+1=Yi
[0090] ∴
[0091] Fi<0,+Y向进一步,则:Xi+1=Xi,Yi+1=Yi+1
[0092] ∴
[0093] 参考图10,插补模块采样数据更新标志,根据圆弧运动指令的起终点坐标计算X、Y轴的运动步数,置系统忙状态与数据已读标志,完成初始化。在脉冲源的降沿完成终点及偏差判别。未到运动终点,当偏差F≥0时,使能X,同时X轴步数减1;否则,使能Y,Y轴步数减1。运动结束,置系统闲状态,完成插补。
[0094] 基于本网络的主控节点和运动控制芯片特点,都可以采用FPGA芯片实现。参考上面描述,可得到芯片的设计要求,用常用的FPGA芯片实现即可。主节点如果改用MCU同样可以完成。