APP下载

轻量一体化机器人关节的SPI通信及EtherCAT通讯研究

2019-08-30宋孙浩郑天江陈庆盈杨桂林

制造业自动化 2019年8期
关键词:驱动器数据包控制器

宋孙浩,郑天江,张 驰,陈庆盈,杨桂林

(中科院宁波材料技术与工程研究所,宁波 315201)

0 引言

近年来工业机器人已经成为“制造业皇冠上的明珠”,被越来越多地应用在制造业等领域,然而传统的工业机器人不具备本质安全以及与人协同工作等能力,因而研发轻量化协作式机器人已成为机器人研究的热点。为了提高负载载重比以及轻量化的特征,协作式的机器人往往具有模块化的结构和紧凑的设计、安装和调试空间,其软硬件的设计十分重要。在协作式的一体化机器人中,往往电机直接安装于运动部位,因而通常需要采用分布式通讯,而通讯的实时性则是制约机器人运动控制性能的关键。

近年来,实时工业以太网技术的快速发展为解决传统运动控制器控制问题提供了良好的解决方案。EtherCAT(Ethernet for Control Automation Technology)总线是德国倍福公司提出的一种实时以太网技术,它于2007年成为国际电工委员会IEC的61158标准[1]。EtherCAT具有系统配置简单、拓扑结构灵活、良好的实时性和传输速度快等优点,解决了数据的长距离高速传输和信号干扰等问题[2]。EtherCAT总线对标准的以太网技术进行了优化,其有效数据率可达90%以上,同时还具有良好的同步性,同步精度可小于1us,使得运动控制性能得到了极大的提升。基于EtherCAT工业以太网的运动控制系统已成为当前工业现场控制总线技术的一个重要发展方向[3]。

现有的轻量化机器人设计要么采用了CAN总线等技术进行通讯,要么购买标准的EtherCAT商业化模块。采用CAN总线的问题是通讯速率比较低,采用商业的EtherCAT模块的机器人更注重的是机器人的系统集成,缺乏自主设计能力,并且商业化的软件和硬件无法自行更改设计和定制。本文针对轻量一体化机器人关节模块的通讯技术进行了研究,机器人关节采用模块化设计,并且驱动模块和控制模块分离,便于系统软硬件的开发和维护。本文重点研究了控制模块和驱动模块的实时通讯问题以及关节模块间的通讯问题,针对驱动模块和控制模块提出了一种新型的SPI总线通讯方法,针对关节之间的实时通讯问题,自主设计了实时性较强的EtherCAT模块,并研究了其实时性。经过实验验证,本文提出的SPI通讯方法,收发速率快,每帧可传输10个Word数据,通讯丢包率低,本文设计的EtherCAT模块实时性强,可靠性高。

1 运动控制器整体结构设计

本设计系统采用“PC+运动控制器”的模式来构建机器人运动控制系统,实现高速高精度运动控制功能,原理框图如图1所示。与传统的驱控方案不同,本文的控制器和驱动器之间采用高速SPI总线通信,控制器可以实时给驱动器发送电流指令和速度指令,同时接收驱动器反馈的电流、编码器和电机速度等数值。

控制系统硬件主要由基于PC的EtherCAT主站和基于EtherCAT从站ESC的运动控制器组成,采用DSP作为运动控制器的主控芯片,其通过SPI总线与伺服驱动器进行数据交互并控制电机的运转。

图1 基于EtherCAT的运动控制器原理框图

由于一体化关节机器人内部空间的限制,我们对其进行了小型化设计。控制器的整体硬件架构如图2所示。

图2 运动控制器硬件架构图

DSP芯片选用32位实时浮点处理器TMS320F28335,其工作频率高达150MHz,片上资源丰富,能够实现复杂的控制算法。整个运动控制器可分为两大部分:运动控制部分和EtherCAT通讯模块。EtherCAT通讯模块包括从站专用芯片ET1100、PHY芯片KS8721、网络变压器H1102和RJ45网口等。DSP和ET1100之间采用同步16位微控制器接口方式来传输过程数据[4]。运动控制部分包括电源模块、存储模块、AD模块、DA转换和信号放大模块、JTAG接口、外部中断口、通用I/O接口、差分接收模块以及SPI板级连接端口等。DSP通过DAC芯片和精密运算放大器电路可输出±10V模拟电压。编码器输入信号通过差分接收芯片转换后可直接输入DSP端口进行采集。控制器的SPI端口通过LVDS差分收发器转接后,与驱动器的SPI端口进行全双工通信。控制器发送电流指令或控制指令给驱动器,同时接收驱动器反馈的电流值以及电机端编码器值等数据,从而实现控制器和驱动器之间的高速实时数据传输。

2 自定义SPI通信协议设计

与传统的控制器发送模拟量或PWM信号给伺服驱动器以控制电机运转不同,在本文的运动控制系统中,为了实现模块化设计并提升控制性能,将控制器与驱动器的接口做了改进,采用SPI总线进行通信,并使用了自定义SPI通信协议实现驱控之间的高速数据传输。

在本文的SPI通信系统中,SPI主设备为控制器,SPI从设备为驱动器,每次传输一帧数据包,传输过程中SPI主设备和从设备进行双向应答。传输模式可以分为常规模式和调试模式,数据传输长度为10个Word,包括1个帧头,7个数据和2个CHKSUM校验值。SPI主从设备采用DMA方式传输数据,SPI主设备和SPI从设备的接口端都配有LVDS差分收发器,延长了SPI通信距离,增强了抗干扰性能。SPI主从设备通信框图如图3所示。

图3 SPI主从设备通信框图

2.1 SPI主从设备通信机制

传统的SPI通信由一个主设备和一个从设备组成,使用四条线:串行时钟信号SCK、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI和从机片选信号CS,并没有一个有效的通信协议确保其通信的稳定性。在本文设计的SPI通信系统中,增加了应答信号线ACK、复位信号线RST和异常反馈信号线ABN,如图3所示,以完善SPI应答机制。

其中,一帧完整的数据包括:数据包帧头标识(HeadWord)、数据长度、通信数据序列和CRC校验值。SPI主设备和从设备的发送数组都有两组,采用双缓冲发送模式。SPI主从设备的通信示意图如图4所示。

图4 SPI通信示意图

待发送数据包可分为常规数据和调试数据,二者对应的帧头不同。采用常规模式时,SPI主设备可发送电机命令代码、期望电流、速度和位置等数据;在控制器进入调试模式时,可发送PID微调参数,以改善驱动器电流环性能。

待接收数据包亦可分为常规数据和调试数据。SPI主设备正常通信时,可接收电机的运行状态参数、反馈电流、编码器值和速度值等数据。如果启动了控制器调试模式,则切换到调试数据,此时会将驱动器的PID参数和其他状态值反馈给控制器端。

2.2 SPI主从设备之间采用单线应答机制。

当一帧数据传输完毕时,SPI从设备端发送ACK应答正确信号给主设备,SPI主设备端收到应答信号后,继续进行下一帧数据的传输。如果SPI主设备收到ACK应答错误信号,则重新发送该数据包。

SPI主设备每次都会对发送数据包进行CRC校验,并生成两个校验值:CHKSUM1和CHKSUM2。主设备端在构建发送包时,计算得到两个CHKSUM值,接收端在接收数据包时重新计算一轮,得到的结果与收到的两个CHKSUM值做比较,不一致时作出处理。同样,主设备在接收从设备反馈的数据包时,也会进行接收数据包CRC校验,生成校验值并做比对处理。

2.3 SPI通信异常处理机制

为保证数据传输的准确性,增加了异常处理机制。当连续10次收发数据帧的过程中,若SPI从设备的数据接收端出现任意3次及3次以上CRC校验错误,则说明SPI通信不稳定。此时SPI从设备需通过异常反馈信号线ABN给SPI主设备发送报警信号,SPI主设备收到ABN报警信号后通过RST信号线给SPI从设备发送复位信号,同时对SPI主设备和SPI从设备进行软复位,重新开始数据传输,并将通信不稳定的次数保存到EEPROM以备 追溯。

2.4 SPI双机通信性能测试

在本文的运动控制器中,SPI传输速率、通信延迟以及稳定性对整体性能有着至关重要的影响。SPI通信采用DMA方式传输数据,以降低MCU的工作负荷。SPI通信程序使用了DSP定时器CPU-Timer 0.

经过实测,一体化机械臂单个关节所有程序的完整运行时间大约为140us,包括SPI双机通信、EtherCAT通信、CiA402协议处理、运动控制算法和机器人轨迹规划、绝对式编码器数值读取、传感器信号采集和I/O处理等所有程序时间。为提高SPI通信速率,我们将Timer 0周期设为125us,SPI双机通信程序每个周期都运行,控制器其他程序则分成两个周期来运行。这样,SPI通信速率为8kHz,整个控制器的刷新速率(EtherCAT从站速率)为4kHz,即以250us刷新一帧EtherCAT数据,预留了44%(110us)的裕量。整个运动控制器的运行周期如图5所示。

图5 控制器运行周期

为了验证SPI双机通信的性能,我们对控制器和驱动器分别进行了SPI透传测试和带电机测试,测试实物图如图6所示。

图6 运动控制器与电机调试图

测试条件如下:

1)SPI时钟频率为9.375MHz,SPI程序的运行周期为125us;

2)EtherCAT从站运行周期250us,启用DC同步时钟模式;

3)控制器发送正弦电流,频率为1kHz。

本测试使用了自定义的SPI通信协议,驱动器在收到控制器的SPI数据包后需要进行数据类型和帧头的判定处理,并在下一个周期将数据回发给控制器。透传测试结果如图7所示,蓝线为控制器给驱动器发送的正弦电流值,红线为驱动器将收到的数据直接反馈给控制器。图7所示的SPI透传测试实际延迟为1个定时器周期,与设定的预期目标吻合,达到了较为理想的传输 效果。

图7 控制器和驱动器SPI透传测试

带电机负载测试时,控制器将正弦电流发送给驱动器以控制电机的运转,驱动器将电机端电流值实时反馈给控制器。测试曲线如图8所示。

图8 控制器和驱动器SPI带电机测试

在本测试中,控制器还使用了在线调试功能,通过调试模式对驱动器的电流环PID等参数进行了多次微调。如图8所示,蓝线为控制器发送的正弦电流值,绿线为第1次参数微调后的反馈电流值,红线为第2次微调后的反馈电流值。相比较而言,第2次微调后的电流值相位延迟更小,驱动器的带宽性能更好。实测速度响应带宽可达1kHz,可以满足机器人运动控制的需求。

2.5 SPI通信误码率测试

在运动控制系统中数据通讯越来越重要,评估误码率是评判传输系统性能的最终标准。为了验证SPI传输的可靠性,我们对SPI通讯系统进行了误码率测试。

整个测试在CCS5.4集成开发环境下进行,使用XDS100V3仿真器在线连接运动控制器并记录参数值,实测结果如图9所示。在电机转速为1800 RPM时,SPI发送成功的数据包为473394个,只有1个数据包发送错误,误码率低于3×10-6,证明了采用自定义协议的SPI通信可靠性很高,非常适用于控制器和驱动器之间的高速数据传输。

图9 SPI通信误码率测试

3 CiA402协议在运动控制器中的实现

要研究控制器的伺服控制性能,首先要在其内部实现CANopen伺服运动控制行规CiA402协议。CiA402在运动控制器代码上的实现可分为三个部分:CiA402状态机、CiA402对象字典和CiA402应用程序。

CiA402定义控制设备的状态机切换如图10所示。该状态机根据电压级别分为三个区域:A区为低电压区,B区为高电压区,C区中伺服系统处于运行状态,此时电机有输出电流,可启动力矩模式。在本文的运动控制系统中,A区采用DC 24V,用于给控制板、驱动板和电机制动器等部件供电;B区为电机工作电压,采用DC 48V供电;在控制板中设计了力矩传感器接收端口,可实时采集机器人关节反馈的力矩信号值。

图10 CiA402状态转换图[5]

CiA402的应用程序支持多种运行模式,在本设计中同时采用了两种运动控制模式,分别是周期性同步速度模式CSV和周期性同步位置模式CSP,可通过EtherCAT上位机主站修改模式参数进行切换。这样即可根据机器人控制系统的算法负荷及运行需求合理选用对应的模式,灵活分配任务,提升了控制器性能。在本运动控制器中,嵌入CiA402协议对象字典中配置了24个字节的RxPDO和32个字节的TxPDO,用于实现CSV/CSP伺服运动控制。

4 EtherCAT从站同步性能研究

4.1 EtherCAT从站同步功能的实现

EtherCAT在周期性数据通信模式下,主站和从站之间有三种同步运行模式,分别是:1)自由运行(Free-run);2)同步于数字输入或输出事件;3)同步于分布时钟同步事件(DC-Sync)[6]。

为了更好地提升EtherCAT同步性能,本文控制器采用了优化的SYNC0运动控制周期设计。EtherCAT数据帧比SYNC0同步信号提前T1时间到达,从站在SYNC0中断产生前已对EtherCAT数据和控制计算做预处理,接到SYNC0中断后可立即执行其他运动控制操作,从而使同步性能更佳。

为实现上述效果,本文采用了双定时器方式实现SYNC0中断和SM2中断相对位置固定偏移的调节方式,实测运行周期的波形如图11所示。

图11 SYNC0和控制器周期波形

在本设计中,EtherCAT从站周期设置为250us,主站SYNC0同步时钟周期默认为500us(最快可达250us),一个主站DC周期对应两个从站周期,从站数据包可以刷新两次,最大程度地降低了数据丢包率,提升了主/从站的数据同步性。

图11中的T1为DSP芯片从ET1100复制数据并计算输出数据的预处理时间。在本控制器中需要实时刷新的PDO数据为12个Word,每个数据的读写时间大约为1.3us,所以我们把T1设定为20us,预留了一定的缓存时间。在控制器的DSP主程序中使用了两个定时器:CPUTimer 0和CPU-Timer 1。其中,将Timer 0设定为主定时器,Timer 1用作辅助定时器。

在运行程序时,将Timer 1设定为20us,并首先启动Timer 1定时器,触发SM2中断,进行DSP和ET1100芯片的数据计算和控制交换。Timer 1执行完毕,则以SYNC0中断为触发信号,启动Timer 0中断。Timer 0周期设定为125us,以250us即每2个Timer 0周期刷新一帧EtherCAT数据。经过主站时钟同步到参考从站时钟算法处理,SYNC0中断和SM2中断的相对位置偏移不再变化,即EtherCAT主站时钟已经同步到参考从站时钟,实现了优化的同步于SYNC0运行周期的效果。

4.2 EtherCAT从站同步性能测试

EtherCAT从站的DC时钟同步性能对于机器人运动控制系统的多轴精准控制有着至关重要的影响。因此,在实际项目的测试中,我们级联了7个运动控制器、驱动器和电机等,用以实现七自由度的一体化关节机器人的控制系统,如图12所示。

图12 七轴关节电机测试图

首先,我们测试了第1轴和第7轴关节控制器之间的SYNC0中断时间间隔,其代表了整个从站系统DC中断的最大时间差值。测试条件如下:

1)本文采用了基于Linux系统的开放式PC机作为上位机,通过加入RTAI内核实时补丁以提高Linux操作系统的实时性,EtherCAT主站采用商业版的主站软件安装于操作系统,主站启动DC-Synchron操作模式,SYNC0对应的Cycle Time设定为500us.

2)从站运行在CSP模式下,控制周期设定为250us,用500MHz混合域示波器对其DC时钟信号线SYNC0进行周期测量,并比较第1个从站和最后一个从站之间的SYNC0信号触发时间间隔。

根据图13和图14的示波器测量结果,第1轴和第7轴控制器从站的DC周期均500us,非常准确。第7轴控制器比第1轴控制器的SYNC0中断时间滞后88ns,即整个控制系统中7个从站的分布式时钟同步精度小于100ns,能够满足实时运动控制的需求。

图13 控制器SYNC0中断时间间隔

图14 从站之间SYNC0中断最大时间间隔

4.3 EtherCAT从站同步性能测试验证

为了进一步验证EtherCAT DC同步模式的性能,我们采用了Free-run和DC-Sync两种模式对主站和从站的第7轴进行了数据传输测试,测试结果如图15和图16所示。其中,蓝线为主站发送的数据包,红线为第7轴从站反馈的数据包。图15为Free-run模式测试结果,图16为DC-Sync模式测试结果,两幅图的左边部分均为测试曲线的局部放大图。

图15 Free-run模式数据传输曲线

从测试结果来看,在Free-run模式下,第7轴从站反馈的数据会产生延时,实测大约延迟1~2个主站控制周期;而在DC-Sync模式下,由于做了优化的控制周期处理,反馈数据和发送数据实现了周期性同步,在一个主站DC周期内没有延时。由此可见,DC-Sync模式经过优化后很好地解决了EtherCAT数据的同步性问题,有效提升了运动控制器的实时性能。

图16 DC-Sync模式数据传输曲线

5 结语

本文设计了一款基于EtherCAT总线的运动控制器用于一体化机器人关节模块,其采用自定义SPI通信协议,实现控制器与驱动器的高速可靠数据传输。同时,还对控制器和驱动器、电机进行了联调测试,实测速度响应带宽可达1kHz。本控制器嵌入了CiA402伺服运动控制协议,并通过研究EtherCAT同步时钟优化技术,提升了运动控制效果。测试结果表明,本运动控制器运行稳定,实时性强,能够支持多种运动控制模式,很好地满足了多轴机器人实时高速控制的需求。

猜你喜欢

驱动器数据包控制器
二维隐蔽时间信道构建的研究*
工商业IC卡控制器改造为物联网控制器实践
气动网络多腔室弯曲软体驱动器结构优化
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
藏起驱动器号确保数据安全
PLC可编程控制器相关外置的选择计算研究
C#串口高效可靠的接收方案设计
空间大载荷石蜡驱动器研制
模糊PID控制器设计及MATLAB仿真
Freescale公司的可编程电磁阀控制器MC33816