CN109459955B - 基于fpga的多轴伺服电机位置读取、解码系统及方法 - Google Patents
基于fpga的多轴伺服电机位置读取、解码系统及方法 Download PDFInfo
- Publication number
- CN109459955B CN109459955B CN201811389441.XA CN201811389441A CN109459955B CN 109459955 B CN109459955 B CN 109459955B CN 201811389441 A CN201811389441 A CN 201811389441A CN 109459955 B CN109459955 B CN 109459955B
- Authority
- CN
- China
- Prior art keywords
- signal
- state machine
- decoding
- absolute position
- character
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0423—Input/output
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/25—Pc structure of the system
- G05B2219/25314—Modular structure, modules
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Control Of Position Or Direction (AREA)
- Numerical Control (AREA)
Abstract
本发明公开了一种基于FPGA的多轴伺服电机位置读取解码系统,包括上位计算机、FPGA芯片、接口电路、伺服电机驱动器、伺服电机编码器。本发明还公开了一种基于所述系统的多轴伺服电机位置读取、解码方法,采用多个轴信号解码状态机和一个信号发送状态机实现多轴绝对位置信息的解码与发送,其中,每个轴绝对位置信息解码对应一个信号解码状态机。本发明中的读取信号解码状态机与信号发送状态机为硬件电路实现,并采用LabVIEW FPGA设计与编译。本发明的解码读取系统和方法可实现向上位机发送串行化多轴绝对位置信息,充分利用了FPGA芯片时钟速率高、并行处理、可重接线等特性,具有电路设计简单、实时性高的优点。
Description
技术领域
本发明涉及伺服电机与控制装置的通讯解码方法,特别是涉及一种通过伺服驱动器获取伺服电机绝对位置信息的多轴伺服电机位置读取、解码系统及方法。
背景技术
现代加工技术对加工精度、加工效率的要求催生了伺服控制系统的诞生。为了保证操作对象的精确定位,伺服控制系统需要获取末端执行器的精确位置信息。伺服控制主要分为两种:闭环控制和半闭环控制。闭环控制的位置检测元件直接安装在控制对象上并直接获得其位置信息,主要的位置获取手段有光栅尺、激光干涉测量头、磁栅尺等;半闭环控制将位置检测元件安装在驱动控制对象的旋转/直线运动单元(如滚柱丝杠)上,获取运动量后推算出移动距离,主要的位置获取手段为旋转式编码器。
伺服系统中常通过伺服驱动器把增量或绝对值编码器的编码信息传出。这样就可在上位机中实时获取旋转轴或目标的实时位置。由于不同的伺服驱动器对绝对位置信息的编码方式不同,导致上位机获取旋转轴或目标的绝对位置信息较为困难,特别是对一些不开放编码协议的伺服驱动系统,如日本安川的伺服驱动系统。这类编码方式一般采用串行信号与增量脉冲的组合方式。
这种信号的组合对上位机的读取极为不利,因为通常脉冲计数和特定协议的串口通讯不会共用引脚。这意味着用户或系统集成技术人员需要花大量精力设计接口电路板,实现脉冲接收与串行信号解码两种接收模式之间的切换。在接收到按照协议编码的信号后,上位计算机需要对信号进行解码才能得到实际的绝对位置。对于单线程工作的计算机程序而言,这将会占用极多的计算机资源从而降低系统的实时性。目前,为了同步读取多轴伺服的多轴绝对位置信息,常采用独立单线程的解码方法与读取系统,并通过安排电机的同步顺序或者配置通讯网络实现多轴位置信息解码与读取。这种解码与读取系统复杂,成本也相对较高。因此,有必要为应对这种状况提出一种实时性高、具有并行处理、可对特定协议进行多轴位置信息的同步解码方法与读取系统。
发明内容
本发明的目的在于提出一种基于FPGA的多轴伺服电机位置读取、解码系统及方法,可实现采用串行信号与增量脉冲组合编码方式的多运动轴绝对位置信息的解码与读取。在保证读取精度和实时性的前提下,可以实现多轴绝对位置信息同步读取、解码和处理,简化系统电路。
为实现本发明的目的,本发明采用的技术方案如下:
一种基于FPGA的多轴伺服电机位置读取、解码系统,系统包括上位计算机、FPGA芯片、接口电路、伺服电机驱动器、伺服电机编码器;
所述接口电路分别与上位计算机、伺服电机驱动器、FPGA芯片电路连接;
所述伺服电机编码器用于将对应伺服电机的绝对位置信号借助专用电缆发送到伺服电机驱动器,并按通讯协议编码;
所述伺服电机驱动器通过专用电缆将对应伺服电机的绝对位置信号以串行电信号方式传送至所述接口电路进行电平变换后,传送至所述FPGA芯片;
所述FPGA芯片安装于接口电路中,用于读取并处理信号后将串行化后的多轴绝对位置信息按串行协议发送给所述上位计算机;
所述上位计算机通过串口接收用电缆与所述接口电路连接。
进一步地,所述FPGA芯片内部包括有采用LabVIEW FPGA设计与编译的多轴解码和通讯接口单元电路,用于接收、解码和串行化经接口电路变换导入的绝对位置信号,然后把串行化后的多轴绝对位置信息按串行协议发送给上位计算机。
进一步地,所述FPGA芯片内部的多轴解码和通讯接口单元电路包括信号解码状态机和信号发送状态机,所述信号解码状态机用于绝对位置信号的接收、检验和解码;所述信号发送状态机的用于解码后绝对位置信号的算术处理及串行化;信号解码状态机和信号发送状态机之间信息传递由绝对值圈数寄存器、增量值脉冲数寄存器和处理许可寄存器完成,所述绝对值圈数寄存器和增量值脉冲数寄存器分别用于将绝对位置信息中的圈数字符串和增量值脉冲数从信号解码状态机向信号发送状态机传递;所述处理许可寄存器用于传递对绝对位置信息处理的许可到信号发送状态机;所述信号解码状态机与各伺服电机一一对应,各信号解码状态机均有对应的绝对值圈数寄存器、增量值脉冲数寄存器和处理许可寄存器。
进一步地,所述的接口电路包括绝对位置信号输入接口、FPGA芯片插座及上位机信号输出接口,所述接口电路将编码后的绝对位置信号电平变换为TTL电平;在电源负载允许范围内,所述接口电路同时接入多个伺服电机驱动器;所述伺服电机编码器的输出的绝对值编码信号经伺服电机驱动器编码后并以差分电平的形式输出,协议为RS485;所述FPGA芯片插座的针脚与FPGA芯片的GPIO一一对应。
一种基于所述系统的多轴伺服电机位置读取、解码方法,采用多个轴信号解码状态机和一个信号发送状态机实现多轴绝对位置信息的解码与发送,其中,每个轴绝对位置信息解码对应一个信号解码状态机,包括步骤:
1)信号解码状态机以FPGA芯片的最高时钟速率对各电机接入接口电路的绝对位置信号线或握手信号线的电位进行读取,判断信号发送是否开始;若该信号线中有疑似发送开始的标志性信号产生,则对该信号进行验证,一旦符合条件便启动初始量信号接收功能;
2)接收串行信号时,信号解码状态机按照通讯协议的要求确定字符串中包括各字符的数据位数、奇偶校验构成,按照位周期对信号进行读取;
3)串行信号接收完成后,信号解码状态机开始检测初始增量脉冲序列,并在各电机的初始增量脉冲序列接收完毕后完成全部电机的同步,开始等待后续电机转动时产生的增量脉冲;
4)当完成所有电机轴的初始量信号的接收后,向信号发送状态机发送处理许可,令其开始重整数据,重整结束后信号发送状态机根据接口顺序向上位计算机发送符合串口接收规则的串行化多轴位置信息,此时信号解码状态机保持运行状态,实时接收后续的增量脉冲。
进一步地,所述步骤1)中,编码器绝对值信号的组成形式为绝对值圈数字符串和增量值脉冲序列,绝对值圈数字符串的通讯协议为UART,内容包括首字符、转向标识及圈数;增量值脉冲序列为两相增量脉冲,首字符为电机生产厂家规定的特定字符,转向标识及圈数包含了代表转向正反的转向标识和整数圈数共六个字符,其中,转向标识为ASCII符号“+”、“-”,圈数是五个范围为0~9的ACSII字符,接收字符顺序分别对应圈数中从高到低的位数,数据尾是标志着圈数数据发送的结束,具体包括:
11)高速率对FPGA I/O电位进行采样,检测下降沿;
12)在检测到下降沿的四分之一个位周期时再次对FPGA I/O电位进行采样,若电位为低电位即认为到达开始位并开始接收;如为高电位则重新回到步骤11);
13)发出字符接收许可,进入状态“首字符接收”。
进一步地,所述的步骤2)具体包括:
21)获得字符接收许可后,状态“首字符接收”将会以设定波特率读取串行信号,每个读取到的每个位均以布尔型存储并组成布尔型数组;布尔型数组对应一个二进制整数,数值的大小均有对应ASCII字符,因此在状态“首字符接收”中接收到的整数可能是绝对位置信息的首字符;
22)信号解码状态机在接收完疑似的首字符后进入状态“首字符检测”和状态“字符接收计数”,如果该字符与协议设定的首字符相符,状态机将会发出进一步的接收许可;相反,则系统认为开始时检测到的起始位为伪,返回状态“等待开始位”,并重置状态“接收字符计数”;
23)确认首字符真伪后信号解码状态机进入状态“转向标识及圈数接收”407,开始进行剩余字符的接收,字符接收过程与状态“等待开始位”和状态“首字符接收”相同,并由状态“字符接收计数”进行控制;当转向标识及圈数接收完毕后,信号解码状态机将绝对值圈数数据通过绝对值圈数寄存器传递到信号发送状态机等待处理,并进入状态“初始增量脉冲序列接收”。
进一步地,所述的步骤3)具体包括:
31)初始增量脉冲序列接收完成后,解码系统的初始化结束,初始化完成后各电机保持静止,因此伺服电机编码器和伺服电机驱动器暂缓绝对位置信号的发送直至电机再次转动;所有信号解码状态机借助绝对位置信号发送的暂缓进入状态“等待增量脉冲”,以此完成同步,同步完成的同时,信号解码状态机向信号发送状态机传递信号处理许可;
32)进入状态“等待增量脉冲”后,信号解码状态机不间断地检测增量脉冲,持续刷新增量值脉冲数寄存器的值。
进一步地,所述的步骤4)具体包括:
41)系统上电后到多轴电机和各信号解码状态机完成同步为止,信号发送状态机保持在状态“等待处理许可”;
42)同步完成后,信号发送状态机接收到由信号解码状态机传递过来的信号处理许可,开始进行数据的重整和解码工作,存储在绝对值圈数寄存器中的数据先进入状态“圈数转总脉冲”,将其从ASCII形式的字符串转化成整型数,然后进入状态“绝对位置整合”,按照所使用的编码器规范定义的电机转子每一圈所对应的脉冲数,计算出对应的数值;
43)状态“绝对位置整合”计算结果的整数将经状态“绝对位置(整数)转ASCII”转化成ASCII形式的字符串,转向标识“+”“-”的选择则根据所述计算结果的正负进行判断,若计算结果为负值时,则认定电机相对于参考点的转动方向改变,若初始绝对位置数据中的转向标识为“+”,则发送信号的转向标识为“-”,反之若初始绝对位置数据中的转向标识为“-”时,则发送信号的转向标识为“+”;
44)处理结束后状态“数据打包”将多轴电机的绝对位置信息按设定的次序打包并按UART协议使用串口发送至上位计算机;
45)在系统正常运作时,信号发送状态机反复进行绝对位置信息的算术运算和打包上传;同时,信号解码状态机不断更新增量值脉冲数寄存器的值,将实时的绝对位置信息提供给信号发送状态机,该过程中上位计算机按设定通讯波特率持续接收多轴电机绝对位置信息。
进一步地,所述的步骤42)中,将其从ASCII形式的字符串转化成整型数具体包括:
1)信号发送状态机从字符串中提取出转向标识和数据位;
2)以查找表的方式确认转向标识为“+”或“-”,据此判断电机相对于参考点为正转还是反转;
3)数据位按ASCII标准从字符串转码到各字符对应的整数,并按照位的高低乘以10的幂,相加后获得五位十进制圈数;
4)将该五位十进制圈数与协议中设定的单圈对应脉冲数相乘,得出不计增量值脉冲的总脉冲数,即精确到每圈起始点的旋转量数据,该脉冲数将会作为FPGA程序自身保存的计算用参考点;
5)通过步骤2)的计算结果确定初始增量脉冲数与步骤4)的计算结果间的关系,若转向标识为“+”时,两者相加;为“-”时,两者相减;
6)每个FPGA程序的运行周期均刷新增量值脉冲数寄存器的值,并进行一次步骤5)的运算。
本发明与现有技术相比,具有如下优点和有益效果:
(1)本发明采用基于FPGA的多轴位置信息解码方式。FPGA具有可编程和可重接线的特性,可取代部分集成电路,降低了多轴电机读取的系统复杂度,开发和制造成本低,维护简单。
(2)本发明方法与系统基于FPGA技术,其本身的高度并行特性与传统的单线程方法相比有更高的实时性。
附图说明
图1是本发明优选实施例的LabVIEW FPGA伺服电机位置读取系统
图2是本发明优选实施例的编码器信号协议示意图
图3是本发明优选实施例的FPGA内部电路构成示意图
图4是本发明优选实施例的LabVIEW FPGA伺服电机绝对位置信号的接收和解码数据流示意图
图5是本发明优选实施例的LabVIEW FPGA伺服电机绝对位置信号的处理和向上位机发送的数据流示意图
图中示出:101-伺服电机;102-伺服电机驱动器;103-接口电路;104-FPGA芯片;105-上位计算机;201-绝对值圈数字符串;202-增量值脉冲序列;203-首字符;204-转向标识及圈数;205-数据尾。
具体实施方式
为了更好地理解本发明,下面结合附图对本发明作进一步地描述,但本发明的实施方式不限于此。
如图1所示,一种基于FPGA的多轴伺服电机位置读取解码系统,包括上位计算机105、FPGA芯片104、接口电路103、伺服电机驱动器102、伺服电机编码器;
所述接口电路103分别与上位计算机、伺服电机驱动器102、FPGA芯片104电路连接;
所述伺服电机编码器用于将对应伺服电机101的绝对位置信号借助专用电缆发送到伺服电机驱动器102,并按通讯协议编码;
所述伺服电机驱动器102通过专用电缆将对应伺服电机101的绝对位置信号以串行电信号方式传送至所述接口电路103进行电平变换后,传送至所述FPGA芯片104;
所述FPGA芯片104安装于接口电路103中,用于读取并处理信号后将串行化后的多轴绝对位置信息按串行协议发送给所述上位计算机;
所述上位计算机105通过串口接收用电缆与所述接口电路103连接。
该具体实施中,使用日本安川(YASKAWA)产品ΣV系列伺服电机及其编码器作为信号源,使用Mangotree生产的基于塞灵斯(XILINX)Spartan 6FPGA芯片设备Pocket-RIO。Pocket-RIO包含FPGA芯片及部分接口电路。
伺服电机编码器将绝对位置信号借助专用电缆发送到伺服电机驱动器102,并按如图2所示通讯协议编码。接口电路103通过专用电缆接收来自伺服电机驱动器102的绝对位置信号,并通过接口电路103进行电平转换。在该例中从驱动器输入的信号为RS485电平,FPGA芯片GPIO的工作电平为TTL,转换由接口电路上的线性接收器完成。FPGA芯片通过插座安装在接口电路中,其中,FPGA芯片包含用LabVIEW FPGA设计与编译的多轴解码和通讯接口单元电路。FPGA芯片内部电路完成接收和处理后,会根据接口顺序对绝对位置信号进行串行化。串行化的绝对位置信号被FPGA芯片按UART协议通过串口接收用电缆向上位机发送。
如图2所示,该例中的编码器绝对值信号的组成形式为绝对值圈数字符串201和增量值脉冲序列202。绝对值圈数字符串的通讯协议为UART,内容包括首字符、转向标识及圈数;增量值脉冲序列为两相增量脉冲。该例中的编码器不具有握手信号线,FPGA电路需要自行对数据的发送位进行检测。首字符(数据头)203为电机生产厂家规定的特定字符“P”。转向标识及圈数204包含了代表转向正反的转向标识和整数圈数共六个字符。其中,转向标识为ASCII符号“+”、“-”,圈数是五个范围为0~9的ACSII字符,接收字符顺序分别对应圈数中从高到低的位数,数据尾205是标志着圈数数据发送的结束,为字符“(CR)”即“回车”。
如图3所示,FPGA芯片内部电路主要分为信号解码状态机和信号发送状态机。信号解码状态机301主要承担绝对位置信号的接收、检验和解码;而信号发送状态机302的职能为解码后绝对位置信号的算术处理及串行化。两个状态机之间信息传递由绝对值圈数寄存器、增量值脉冲数寄存器和处理许可寄存器完成。所述绝对值圈数寄存和增量值脉冲数寄存分别将绝对位置信息中的圈数字符串和增量值脉冲数从信号解码状态机向信号发送状态机传递;处理许可寄存305则负责传递对绝对位置信息处理的许可到信号发送状态机。信号解码状态机与电机一一对应,各信号解码状态机均有对应的绝对值圈数寄存器、增量值脉冲数寄存器和处理许可寄存器。
一种基于所述系统的多轴伺服电机位置读取解码方法,采用多个轴信号解码状态机和一个信号发送状态机实现多轴绝对位置信息的解码与发送,其中,每个轴绝对位置信息解码对应一个信号解码状态机,包括步骤:
1)信号解码状态机以FPGA芯片104的最高时钟速率对各电机接入接口电路的绝对位置信号线或握手信号线的电位进行读取,判断信号发送是否开始;若该信号线中有疑似发送开始的标志性信号产生,则对该信号进行验证,一旦符合条件便启动初始量信号接收功能;
2)接收串行信号时,信号解码状态机按照通讯协议的要求确定字符串中包括各字符的数据位数、奇偶校验构成,按照位周期对信号进行读取;
3)串行信号接收完成后,信号解码状态机开始检测初始增量脉冲序列,并在各电机的初始增量脉冲序列接收完毕后完成全部电机的同步,开始等待后续电机转动时产生的增量脉冲;
4)当完成所有电机轴的初始量信号的接收后,向信号发送状态机发送处理许可,令其开始重整数据,重整结束后信号发送状态机根据接口顺序向上位计算机发送符合串口接收规则的串行化多轴位置信息,此时信号解码状态机保持运行状态,实时接收后续的增量脉冲。
具体地,绝对位置信号的接收和解码数据流如图4所示。
读取系统中的FPGA芯片、接口电路和上位计算机先于伺服电机上电,工作中的信号解码状态机进行初始化并进入状态“等待开始位”。以下是信号读取解码方法的具体过程:
(1)从伺服电机上电到绝对位置信号发出之间的时间间隔并不明确,且驱动器没有提供独立的同步信号。为解决这个问题,信号解码状态机设计成在状态“等待开始位”403中以最大刷新速率读取FPGA I/O节点301的电位数据,并等待下降沿。该电位下降沿对应的事件为:1)外部电磁干扰;2)编码器信号发送的起始。因此,工作中的信号解码状态机401在状态“等待开始位”403的工作为:
1)高速率对FPGA I/O电位进行采样,检测下降沿;
2)在检测到下降沿的四分之一个位周期时再次对FPGA I/O电位进行采样,若电位为低电位即可认为到达开始位并开始接收;如为高电位则重新回到步骤1);
3)发出字符接收许可,进入状态“首字符接收”。
(2)获得字符接收许可后,状态“首字符接收”将会以设定波特率读取串行信号,每个读取到的每个位均以布尔型存储并组成布尔型数组。布尔型数组对应一个二进制整数,数值的大小均有对应ASCII字符。因此在状态“首字符接收”中接收到的整数可能是绝对位置信息的首字符。
(3)获得字符接收许可后,状态“首字符接收”将会以设定波特率读取串行信号,每个读取到的每个位均以布尔型存储并组成布尔型数组;布尔型数组对应一个二进制整数,数值的大小均有对应ASCII字符,因此在状态“首字符接收”405中接收到的整数可能是绝对位置信息的首字符。
(4)信号解码状态机在接收完疑似的首字符后进入状态“首字符检测”和状态“字符接收计数”,如果该字符与协议设定的首字符203相符,状态机将会发出进一步的接收许可;相反,则系统认为开始时检测到的起始位为伪,返回状态“等待开始位”,并重置状态“接收字符计数”;本例中,协议规定的信号首字符为“P”,对应十进制整数80。
(5)确认首字符真伪后信号解码状态机进入状态“转向标识及圈数接收”,开始进行剩余字符的接收,字符接收过程与状态“等待开始位”和状态“首字符接收”相同,并由状态“字符接收计数”进行控制;当转向标识及圈数204接收完毕后,信号解码状态机将绝对值圈数数据通过绝对值圈数寄存器传递到信号发送状态机等待处理,并进入状态“初始增量脉冲序列接收”。
(6)初始增量脉冲序列接收完成后,解码系统的初始化结束,初始化完成后各电机保持静止,因此伺服电机编码器101和伺服电机驱动器102暂缓绝对位置信号的发送直至电机再次转动;所有信号解码状态机借助绝对位置信号发送的暂缓进入状态“等待增量脉冲”,以此完成同步,同步完成的同时,信号解码状态机向信号发送状态机传递信号处理许可;
(7)进入状态“等待增量脉冲”后,信号解码状态机不间断地检测增量脉冲,持续刷新增量值脉冲数寄存器的值。
(8)绝对位置信号的处理和向上位机发送的数据流如图5所示,系统上电后到多轴电机和各信号解码状态机完成同步为止,信号发送状态机保持在状态“等待处理许可”。
(9)同步完成后,信号发送状态机接收到由信号解码状态机传递过来的信号处理许可,开始进行数据的重整和解码工作。存储在绝对值圈数寄存器中的数据不能和增量脉冲数进行合并,要先进入状态“圈数转总脉冲”,将其从ASCII形式的字符串转化成整型数,然后进入状态“绝对位置整合”,按照所使用的编码器规范定义的电机转子每一圈所对应的脉冲数,计算出对应的数值。将其从ASCII形式的字符串转化成整型数具体包括:
1)信号发送状态机从字符串中提取出转向标识和数据位;
2)以查找表的方式确认转向标识为“+”或“-”,据此判断电机相对于参考点为正转还是反转;
3)数据位按ASCII标准从字符串转码到各字符对应的整数,并按照位的高低乘以10的幂,相加后获得五位十进制圈数;
4)将该五位十进制圈数与协议中设定的单圈对应脉冲数相乘,得出不计增量值脉冲的总脉冲数,即精确到每圈起始点的旋转量数据,该脉冲数将会作为FPGA程序自身保存的计算用参考点;
5)通过步骤2)的计算结果确定初始增量脉冲数与步骤4)的计算结果间的关系,若转向标识为“+”时,两者相加;为“-”时,两者相减;
6)每个FPGA程序的运行周期均刷新增量值脉冲数寄存器的值,并进行一次步骤5)的运算。
(10)状态“绝对位置整合”计算结果的整数将经状态“绝对位置(整数)转ASCII”转化成ASCII形式的字符串,转向标识“+”“-”的选择则根据所述计算结果的正负进行判断,若计算结果为负值时,则认定电机相对于参考点的转动方向改变,若初始绝对位置数据中的转向标识为“+”,则发送信号的转向标识为“-”,反之若初始绝对位置数据中的转向标识为“-”时,则发送信号的转向标识为“+”。
(11)处理结束后状态“数据打包”将多轴电机的绝对位置信息按设定的次序打包并按UART协议使用串口发送至上位计算机。
(12)在系统正常运作时,信号发送状态机会反复进行绝对位置信息的算术运算和打包上传;同时,信号解码状态机不断更新增量值脉冲数寄存器的值,将实时的绝对位置信息提供给信号发送状态机。这个过程中上位计算机可按设定通讯波特率持续接收多轴电机绝对位置信息。
直到系统关闭为止,以上两种状态机都会并行运行。除分享数据外,两者的运行状态不会互相影响。
本发明以LabVIEW FPGA为基础,针对多轴伺服电机使用特定通讯协议,提出一个多轴伺服电机位置读取解码系统及方法。本系统具有电路设计简单、可并行处理、实时性高的优点,主要应用于按特定协议对多轴电机的位置信息进行解码,并用于伺服电机的位置控制。
本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
Claims (10)
1.一种基于FPGA的多轴伺服电机位置读取、解码系统,其特征在于:包括上位计算机、FPGA芯片、接口电路、伺服电机驱动器、伺服电机编码器;
所述接口电路分别与上位计算机、伺服电机驱动器、FPGA芯片电路连接;
所述伺服电机编码器用于将对应伺服电机的绝对位置信号借助专用电缆发送到伺服电机驱动器,并按通讯协议编码;
所述伺服电机驱动器通过专用电缆将对应伺服电机的绝对位置信号以串行电信号方式传送至所述接口电路进行电平变换后,传送至所述FPGA芯片;
所述FPGA芯片安装于接口电路中,用于读取并处理信号后将串行化后的多轴绝对位置信息按串行协议发送给所述上位计算机;
所述上位计算机通过串口接收用电缆与所述接口电路连接。
2.根据权利要求1所述的基于FPGA的多轴伺服电机位置读取、解码系统,其特征在于:所述FPGA芯片内部包括有采用LabVIEW FPGA设计与编译的多轴解码和通讯接口单元电路,用于接收、解码和串行化经接口电路变换导入的绝对位置信号,然后把串行化后的多轴绝对位置信息按串行协议发送给上位计算机。
3.根据权利要求2所述的基于FPGA的多轴伺服电机位置读取、解码系统,其特征在于:所述FPGA芯片内部的多轴解码和通讯接口单元电路包括信号解码状态机和信号发送状态机,所述信号解码状态机用于绝对位置信号的接收、检验和解码;所述信号发送状态机的用于解码后绝对位置信号的算术处理及串行化;信号解码状态机和信号发送状态机之间信息传递由绝对值圈数寄存器、增量值脉冲数寄存器和处理许可寄存器完成,所述绝对值圈数寄存器和增量值脉冲数寄存器分别用于将绝对位置信息中的圈数字符串和增量值脉冲数从信号解码状态机向信号发送状态机传递;所述处理许可寄存器用于传递对绝对位置信息处理的许可到信号发送状态机;所述信号解码状态机与各伺服电机一一对应,各信号解码状态机均有对应的绝对值圈数寄存器、增量值脉冲数寄存器和处理许可寄存器。
4.根据权利要求1所述的基于FPGA的多轴伺服电机位置读取、解码系统,其特征在于:所述的接口电路包括绝对位置信号输入接口、FPGA芯片插座及上位机信号输出接口,所述接口电路将编码后的绝对位置信号电平变换为TTL电平;在电源负载允许范围内,所述接口电路同时接入多个伺服电机驱动器;所述伺服电机编码器的输出的绝对值编码信号经伺服电机驱动器编码后并以差分电平的形式输出,协议为RS485;所述FPGA芯片插座的针脚与FPGA芯片的GPIO一一对应。
5.一种基于权利要求1至4中任一项所述系统的多轴伺服电机位置读取、解码方法,其特征在于,采用多个轴信号解码状态机和一个信号发送状态机实现多轴绝对位置信息的解码与发送,其中,每个电机对应配置一个轴信号解码状态机,包括步骤:
1)信号解码状态机以FPGA芯片的最高时钟速率对各电机接入接口电路的握手信号线或绝对位置信号线的电位进行读取,判断信号发送是否开始;若该信号线中有疑似发送开始的标志性信号产生,则对该信号进行验证,一旦符合条件便启动初始量信号接收功能;
2)接收串行信号时,信号解码状态机按照通讯协议的要求确定字符串中包括各字符的数据位数、奇偶校验构成,按照位周期对信号进行读取;
3)串行信号接收完成后,信号解码状态机开始检测初始增量脉冲序列,并在各电机的初始增量脉冲序列接收完毕后完成全部电机的同步,开始等待后续电机转动时产生的增量脉冲;
4)当完成所有电机轴的初始量信号的接收后,向信号发送状态机发送处理许可,令其开始重整数据,重整结束后信号发送状态机根据接口顺序向上位计算机发送符合串口接收规则的串行化多轴位置信息,此时信号解码状态机保持运行状态,实时接收后续的增量脉冲。
6.根据权利要求5所述的多轴伺服电机位置读取、解码方法,其特征在于:步骤1)中,编码器绝对值信号的组成形式为绝对值圈数字符串和增量值脉冲序列,绝对值圈数字符串的通讯协议为UART,内容包括首字符、转向标识及圈数;增量值脉冲序列为两相增量脉冲,首字符为电机生产厂家规定的特定字符,转向标识及圈数包含了代表转向正反的转向标识和整数圈数共六个字符,其中,转向标识为ASCII符号“+”、“-”,圈数是五个范围为0~9的ACSII字符,接收字符顺序分别对应圈数中从高到低的位数,数据尾是标志着圈数数据发送的结束,具体包括:
11)高速率对FPGA I/O电位进行采样,检测下降沿;
12)在检测到下降沿的四分之一个位周期时再次对FPGA I/O电位进行采样,若电位为低电位即认为到达开始位并开始接收;如为高电位则重新回到步骤11);
13)发出字符接收许可,进入状态“首字符接收”。
7.根据权利要求5所述的多轴伺服电机位置读取、解码方法,其特征在于:步骤2)具体包括:
21)获得字符接收许可后,状态“首字符接收”将会以设定波特率读取串行信号,每个读取到的每个位均以布尔型存储并组成布尔型数组;布尔型数组对应一个二进制整数,数值的大小均有对应ASCII字符,因此在状态“首字符接收”中接收到的整数可能是绝对位置信息的首字符;
22)信号解码状态机在接收完疑似的首字符后进入状态“首字符检测”和状态“字符接收计数”,如果该字符与协议设定的首字符相符,状态机将会发出进一步的接收许可;相反,则系统认为开始时检测到的起始位为伪,返回状态“等待开始位”,并重置状态“接收字符计数”;
23)确认首字符真伪后信号解码状态机进入状态“转向标识及圈数接收”407,开始进行剩余字符的接收,字符接收过程与状态“等待开始位”和状态“首字符接收”相同,并由状态“字符接收计数”进行控制;当转向标识及圈数接收完毕后,信号解码状态机将绝对值圈数数据通过绝对值圈数寄存器传递到信号发送状态机等待处理,并进入状态“初始增量脉冲序列接收”。
8.根据权利要求5所述的多轴伺服电机位置读取、解码方法,其特征在于:步骤3)具体包括:
31)初始增量脉冲序列接收完成后,解码系统的初始化结束,初始化完成后各电机保持静止,因此伺服电机编码器和伺服电机驱动器暂缓绝对位置信号的发送直至电机再次转动;所有信号解码状态机借助绝对位置信号发送的暂缓进入状态“等待增量脉冲”,以此完成同步,同步完成的同时,信号解码状态机向信号发送状态机传递信号处理许可;
32)进入状态“等待增量脉冲”后,信号解码状态机不间断地检测增量脉冲,持续刷新增量值脉冲数寄存器的值。
9.根据权利要求5所述的多轴伺服电机位置读取、解码方法,其特征在于:所述的步骤4)具体包括:
41)系统上电后到多轴电机和各信号解码状态机完成同步为止,信号发送状态机保持在状态“等待处理许可”;
42)同步完成后,信号发送状态机接收到由信号解码状态机传递过来的信号处理许可,开始进行数据的重整和解码工作,存储在绝对值圈数寄存器中的数据先进入状态“圈数转总脉冲”,将其从ASCII形式的字符串转化成整型数,然后进入状态“绝对位置整合”,按照所使用的编码器规范定义的电机转子每一圈所对应的脉冲数,计算出对应的数值;
43)状态“绝对位置整合”计算结果的整数将经状态“绝对位置转ASCII”转化成ASCII形式的字符串,转向标识“+”“-”的选择则根据所述计算结果的正负进行判断,若计算结果为负值时,则认定电机相对于参考点的转动方向改变,若初始绝对位置数据中的转向标识为“+”,则发送信号的转向标识为“-”,反之若初始绝对位置数据中的转向标识为“-”时,则发送信号的转向标识为“+”;
44)处理结束后状态“数据打包”将多轴电机的绝对位置信息按设定的次序打包并按UART协议使用串口发送至上位计算机;
45)在系统正常运作时,信号发送状态机反复进行绝对位置信息的算术运算和打包上传;同时,信号解码状态机不断更新增量值脉冲数寄存器的值,将实时的绝对位置信息提供给信号发送状态机,该过程中上位计算机按设定通讯波特率持续接收多轴电机绝对位置信息。
10.根据权利要求9所述的多轴伺服电机位置读取、解码方法,其特征在于:步骤42)中,将其从ASCII形式的字符串转化成整型数具体包括:
a)信号发送状态机从字符串中提取出转向标识和数据位;
b)以查找表的方式确认转向标识为“+”或“-”,据此判断电机相对于参考点为正转还是反转;
c)数据位按ASCII标准从字符串转码到各字符对应的整数,并按照位的高低乘以10的幂,相加后获得五位十进制圈数;
d)将该五位十进制圈数与协议中设定的单圈对应脉冲数相乘,得出不计增量值脉冲的总脉冲数,即精确到每圈起始点的旋转量数据,该脉冲数将会作为FPGA程序自身保存的计算用参考点;
e)通过步骤b)的计算结果确定初始增量脉冲数与步骤d)的计算结果间的关系,若转向标识为“+”时,两者相加;为“-”时,两者相减;
f)每个FPGA程序的运行周期均刷新增量值脉冲数寄存器的值,并进行一次步骤e)的运算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811389441.XA CN109459955B (zh) | 2018-11-21 | 2018-11-21 | 基于fpga的多轴伺服电机位置读取、解码系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811389441.XA CN109459955B (zh) | 2018-11-21 | 2018-11-21 | 基于fpga的多轴伺服电机位置读取、解码系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109459955A CN109459955A (zh) | 2019-03-12 |
CN109459955B true CN109459955B (zh) | 2021-07-20 |
Family
ID=65611157
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811389441.XA Active CN109459955B (zh) | 2018-11-21 | 2018-11-21 | 基于fpga的多轴伺服电机位置读取、解码系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109459955B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109968356A (zh) * | 2019-03-18 | 2019-07-05 | 华南理工大学 | 基于嵌入式运动控制器的机械臂力反馈控制系统及方法 |
CN112539771A (zh) * | 2019-09-20 | 2021-03-23 | 九江精密测试技术研究所 | 一种多轴绝对编码器解算电路系统 |
CN112923957B (zh) * | 2019-12-06 | 2022-05-20 | 合肥欣奕华智能机器股份有限公司 | 伺服驱动器与编码器的信号处理方法及装置 |
CN111338896B (zh) * | 2020-02-23 | 2022-05-31 | 苏州浪潮智能科技有限公司 | 一种基于fpga的状态机状态监控处理方法及系统 |
CN113390448B (zh) * | 2021-07-15 | 2023-04-07 | 中国科学院长春光学精密机械与物理研究所 | 海德汉绝对式光栅尺解码方法及系统 |
CN114407026A (zh) * | 2022-04-01 | 2022-04-29 | 至新自动化(北京)有限公司 | 机器人控制系统及机器人 |
CN115017095B (zh) * | 2022-08-05 | 2022-11-08 | 微传智能科技(常州)有限公司 | 电流输出型ak协议轮速芯片通信系统及方法 |
CN116909951B (zh) * | 2023-09-11 | 2023-12-19 | 归芯科技(深圳)有限公司 | 芯片及其控制方法 |
CN117826687B (zh) * | 2023-12-29 | 2024-09-17 | 无锡镭可施光电技术有限公司 | 多激光振镜同步控制方法、装置、电子设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4878002A (en) * | 1988-10-27 | 1989-10-31 | Advanced Engineering Systems, Operations & Products, Inc. | Multi-axis DSP-based parallel processing servo controller for machine tools and robots |
CN101916098A (zh) * | 2010-08-04 | 2010-12-15 | 中国科学院自动化研究所 | 具有绝对码盘读取功能的多轴运动控制卡 |
CN103123476A (zh) * | 2011-11-18 | 2013-05-29 | 中国科学院沈阳计算技术研究所有限公司 | 一种单伺服电机驱动多轴机床的数控系统控制方法 |
CN105260574A (zh) * | 2015-11-15 | 2016-01-20 | 北京工业大学 | 一种基于临界面法疲劳破坏准则的高周多轴疲劳寿命预测方法 |
CN106411184A (zh) * | 2016-11-04 | 2017-02-15 | 华中科技大学 | 一种网络化的多轴电机同步控制装置及方法 |
-
2018
- 2018-11-21 CN CN201811389441.XA patent/CN109459955B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4878002A (en) * | 1988-10-27 | 1989-10-31 | Advanced Engineering Systems, Operations & Products, Inc. | Multi-axis DSP-based parallel processing servo controller for machine tools and robots |
CN101916098A (zh) * | 2010-08-04 | 2010-12-15 | 中国科学院自动化研究所 | 具有绝对码盘读取功能的多轴运动控制卡 |
CN103123476A (zh) * | 2011-11-18 | 2013-05-29 | 中国科学院沈阳计算技术研究所有限公司 | 一种单伺服电机驱动多轴机床的数控系统控制方法 |
CN105260574A (zh) * | 2015-11-15 | 2016-01-20 | 北京工业大学 | 一种基于临界面法疲劳破坏准则的高周多轴疲劳寿命预测方法 |
CN106411184A (zh) * | 2016-11-04 | 2017-02-15 | 华中科技大学 | 一种网络化的多轴电机同步控制装置及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109459955A (zh) | 2019-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109459955B (zh) | 基于fpga的多轴伺服电机位置读取、解码系统及方法 | |
CN103176450B (zh) | 伺服驱动装置及伺服控制系统 | |
CN101480347B (zh) | 一种四维超声探头电机控制系统 | |
CN102170326B (zh) | 一种位置测量装置的串行通信方法及其装置 | |
CN107565861A (zh) | 基于stm32控制l6470h驱动器的多轴步进电机控制系统 | |
CN201435003Y (zh) | 两相混合步进电机控制系统 | |
CN107797493A (zh) | 伺服驱动器、伺服驱动系统及其自动检测方法 | |
CN201355804Y (zh) | 一种四维超声探头电机控制系统 | |
CN106200561A (zh) | 编码器控制器及配置方法 | |
CN202649763U (zh) | 一种同步串行传输绝对式编码器解码装置 | |
CN106655928A (zh) | 一种用于步进电机的驱动控制和转角测量系统 | |
CN105958864A (zh) | 超声电机控制系统及其控制方法 | |
CN108647175A (zh) | 一种多协议数据采集小型cpci板卡 | |
CN107703919B (zh) | 数据采集装置、包含其的控制系统以及通信方法 | |
CN200941053Y (zh) | 把仪表中机械读数转换为数字电信号的装置 | |
CN104596557A (zh) | 一种绝对式编码器及其测量方法 | |
CN201039215Y (zh) | 一种串行通讯及解码装置 | |
CN103105823A (zh) | 一种用于上下料机器人与数控机床群信息无线传输的系统和方法 | |
CN208969474U (zh) | 一种电机运行控制系统 | |
CN108536636B (zh) | 一种基于peci总线的主从协商时序机 | |
CN204044551U (zh) | 一种交流伺服电机智能控制管理系统 | |
CN109962656A (zh) | 一种微电脑精确定位控制系统 | |
CN109388101A (zh) | 一种微电脑精确定位控制系统 | |
CN118168584B (zh) | 一种用于伺服电机的多圈编码器装置 | |
CN204347555U (zh) | 一种微电脑精确定位控制系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210719 Address after: 510640 No. five, 381 mountain road, Guangzhou, Guangdong, Tianhe District Patentee after: SOUTH CHINA University OF TECHNOLOGY Patentee after: Gemstar Intelligent Technology (Guangdong) Co.,Ltd. Address before: 510640 No. five, 381 mountain road, Guangzhou, Guangdong, Tianhe District Patentee before: SOUTH CHINA University OF TECHNOLOGY |
|
TR01 | Transfer of patent right |