肖博翰,王洪武,张东宁
(中国电子科技集团公司第二十一研究所,上海 200233)
机械臂是基于机器人技术的自动化机械装置,在多种领域具有广阔的应用前景[1]。整个机械臂电机一体化控制系统由主站、从站和通信子系统三部分组成,本文描述控制系统从站的设计。
该系统从站是采用嵌入式方案来设计的,从站控制伺服驱动器实现电机控制,EtherCAT从站控制器(ESC)实现EtherCAT通信,使机械臂电机一体化系统具备精确的位置控制[2]。
EtherCAT从站可分为简单从站和复杂从站。简单从站通过ESC实现I/O功能,复杂从站通过μC(微处理器)[3]和ESC实现复杂EtherCAT从站,本文的EtherCAT从站是复杂从站。
EtherCAT是基于以太网的现场总线系统,EtherCAT (Ethernet control automation technology)协议是以太网控制自动化技术的缩写,EtherCAT协议是由Beckoff开发并经ISO,IEC和SEMI认证的开放总线标准,EtherCAT是最快的工业以太网技术[4]。EtherCAT支持100BASE-TX(电缆,2个节点间的最大距离为100 m),100BASE-FX(光纤,2个节点间的最大距离为100 km)和LVDS(差分信号,针对模块化设备,2个节点间的最大距离为10 m)等多种以太网信号。
1.1EtherCAT工作原理
EtherCAT采用主从通信结构,一个EtherCAT数据帧就能完成所有节点数据的发送和接收。EtherCAT网络通信先由主站发出下行的数据帧,数据帧遍历所有从站,从站分析寻址到本站的报文,根据命令对数据帧中数据进行提取或插入,更新数据帧中的工作计数器(WKC)来表示从站成功访问数据帧的数据,然后将数据帧传递给下一个从站[5]。从站中数据的处理是由硬件来完成的,这使得EtherCAT数据帧经过每个从站的传输延时极小[6]。当某一网段或分支上的最后一个节点监测到开放端口(无下一从站),利用以太网技术的全双工特性,将处理后的数据帧作为上行数据帧从最后一个从站返回给主站[7]。主站处理完返回数据表示一次通信的结束。EtherCAT的通讯机制使网络不会出现通信冲突并且具有高实时性。EtherCAT网络通信原理如图1所示。
图1 EtherCAT网络通信原理图
1.2EtherCAT协议
EtherCAT帧结构如图2所示。EtherCAT协议在帧类型为0x88A4的IEEE 802.3以太网帧中嵌入报文,在标准的以太网报文头后放置EtherCAT报文头,EtherCAT报文头用来描述EtherCAT数据长度、保留位和协议类型,EtherCAT报文里的过程数据对象(PDO)用于实现EtherCAT从站之间的数据交互[8]。EtherCAT数据帧包含一个或多个EtherCAT子报文,子报文由子报文头、数据和WKC组成[9]。子报文头的命令决定主站设备对从站设备的访问方式:1)读,写或读-写;2)通过直接寻址或逻辑寻址访问多个从站设备,地址区用于寻址从站设备,R为reserved位,M为0表示该报文是最后一个子报文,M为1时表示该报文后面跟随着其他子报文。从站的寻址文方式分为物理寻址和逻辑寻址。物理寻址包括位置寻址和节点寻址;物理寻址时字段的前16位用于区分被寻址的从节点(最多接入65 535个节点),后16位表示从节点中的某一部分内存;位置寻址时字段前16位是根据从站位置显示负值的计数器,报文每经过一次从站计数器自动加1,当某一从站的计数器值为0时,依据命令对该从站执行操作,该寻址模式常用于检查总线连接的节点总数;节点寻址时主站给每个从站分配唯一地址。物理寻址会使从站产生额外开销;逻辑寻址通过FMMU单元实现单一命令寻址大量从站。
图2 EtherCAT帧的结构
EtherCAT协议的优势如下:
1) 高带宽,带宽100 Mbit/s,每帧最多可以容纳1 486字节,每帧的最大有效数据利用率达90%以上;
2) 灵活拓扑,两端口设备仅支持线形和环形拓扑,三端口设备和四端口设备可以支持星形/树形拓扑,最大可以容纳65 535个设备;
3) 纳秒级精确同步,分布式时钟技术使多轴同步偏差小于1 μs,并且能基于主站时钟进行调整;
4) 实时以太网,EtherCAT数据帧通过ESC on the fly处理,整个过程由硬件完成,无软件开销;
5) 高可靠性,EtherCAT通信中若邻近站点移除或发生故障,信息流自动环回,保障了通信网络的正常工作;
6) 低硬件成本,基于物理环形逻辑。
EtherCAT从站设计包括三个部分:物理层(网口),数据链路层(EtherCAT从站控制器ESC和EEPROM)和应用层(μC),从站硬件结构图如图3所示。
图3 从站硬件结构
ESC在数据链路层起重要作用,EtherCAT从站使用ESC作为接口,实现EtherCAT主站和从站μC的通信,ESC通过I2C和外部EEPROM连接,EEPROM中存储ESC基本配置信息。常用的ESC分为芯片形式ESC和IP核(IPcore)形式ESC。芯片形式ESC有Beckoff的ET1100和ET1200,Hilscher的netX50和netX100,Microchip的LAN9252以及TI的Sitara AM335X等;IPcore形式ESC采用FPGA方案,只需要用户购买IPcore即可。本文中从站的μC和ESC分别使用TI公司的TMS320F28335和Beckoff公司的ET1100,PDI采用SPI方式通信。
ET1100是ESC的专用芯片,其内部包含8个现场总线内存管理单元FMMU、8个存储同步管理单元SyncManager、8 kB的双端口RAM以及64位分布式时钟等。
FMMU用于实现物理地址到逻辑地址(4G地址空间)的映射,FMMU的配置样例如表1所示,样例中逻辑地址(0x00010011.3-0x00010013.0)映射到物理地址(0x0F01.1-0x0F02.6),表1中的L值表示逻辑地址跨越三个字节数。
表1 FMMU的配置样例
SyncManager是EtherCAT主从站之间用来保证数据一致性的数据交换缓存区,通过配置SyncManager来决定通信方式和方向,SyncManager产生中断来通知从站接收或者发送数据。SyncManager支持单缓存模式和三缓存模式。单缓存模式通过握手机制来保证过程数据的一致性,主从站使用同一段内存并且该内存在同一时间只能被主站或者从站访问;三缓存模式用于周期性数据通信,当缓冲区写入数据的速度快于接收方读取的速度,旧数据就会被新数据替换掉。
2.1ESC的硬件结构
ESC硬件结构如图4所示,本文中ET1100和PHY之间通过MII(Media Independent Interface)接口相连,网络接口由网卡芯片PHYKS8721和网络变压器H1102组成[10]。ET1100通过I2C和EEPROM连接,通过配置引脚RUN/EEPROM_SIZE(寄存器0x0502[7])的高低电平对EEPROM进行选型,当引脚RUN/EEPROM_SIZE为0时支持1 kB~16 kB的存储空间;引脚RUN/EEPROM_SIZE为1时支持32 kB~4 MB的存储空间;本文选用16 kB的EEPROM芯片(24LC16B)。
图4 ECS的硬件结构
ESC提供4个MII或EBUS接口,用于连接EtherCAT主从站、实现线缆冗余以及拓扑结构的改变。物理层接口数目和类型通过引脚配置实现。P_CONF[3∶0]引脚决定端口类型,P_MODE[1∶0]引脚决定接口数目,其配置方式如表2和表3所示。
表2 ESC物理层接口类型配置
续表
表3 ESC物理层端口数目配置
2.2ET1100和TMS320F28335间的PDI接口
过程数据接口(PDI)用于实现ET1100和TMS320F28335间的数据交互,ET1100支持的PDI接口如表4所示。
表4 ET1100支持的PDI接口
本文中PDI采用SPI接口,通过配置PDI控制寄存器0x0140[7∶0]实现接口选择,ET1100和TMS320F28335进行SPI通信时管脚的对应关系如表5所示。PDI接口的选择和配置在从站信息(ESI)的EEPROM配置区进行,只有在引脚EEPROM_LOADED的信号是高电平时,PDI接口才被激活[11]。
表5 ET1100和TMS320F28335进行SPI
整个EtherCAT从站软件用于实现数据的输入输出和电机控制,在DSP初始化后,主站发送EtherCAT帧到达ESC时产生中断,DSP响应中断后从ESC中读取数据,DSP将收到的数据解码后传输给控制程序,程序产生信号脉冲给伺服驱动器来运行电机,同时DSP写入反馈数据到ESC中,主站读取反馈状态后为下一步操作做准备。
EtherCAT从站的软件设计分为驱动层、EtherCAT协议栈两层。驱动层由根据从站设备编写ET1100的XML格式配置文件(ESI)和根据从站硬件平台编写相关的设备驱动组成。EtherCAT协议栈架构图如图5所示,协议栈是按通信层次划分应用层(AL)和数据链路层(DL),主要包括串行接口模块(Spihw.*),状态机模块(Ecatslv.*),应用层接口模块(Ecatappl.*),邮箱服务模块(Mailbox.*),SDO服务处理模块(Sdoserv.*)以及访问CoE对象字典模块(Objdef.*)等。
图5 EtherCAT协议栈架构图
EtherCAT协议栈的任务流程图如图6所示,EtherCAT协议栈程序先完成初始化任务,然后根据检测到的应用层请求事件,在主循环中完成周期性过程数据和非周期性事件的处理。
图6 EtherCAT协议栈的任务流程图
EtherCAT协议栈主要用于状态机转换,非周期性事件处理以及周期性事件处理。
协议栈中的状态机有五种状态,状态机各个状态对应的服务如表6所示。状态机按照“初始化状态→预运行状态→安全运行状态→运行状态”的不可逆顺序进行状态转换,只有从运行状态返回时才可逆,其中引导状态为可选状态,只能与初始化状态相互转化的[12]。
表6 EtherCAT状态机各个状态对应的服务
AL_controlInd()函数用于处理EtherCAT状态机转换,AL_controlInd()函数的功能流程图如图7所示。状态机的改变由主站发起,从站只有在SM通道参数配置和状态机转化的需求相对应时才调用通信服务函数,从站状态机向高级别转化时通信服务才被开启,反之则关闭。
图7 AL_controlInd()函数的功能流程图
协议栈中的非周期性事件即邮箱数据通信,其通信机制与CANopen协议类似并且需要对状态机进行正确的处理。协议栈中周期性事件(过程数据通信)处理可以在自由运行模式(查询方式)或者同步运行模式(中断方式)下进行,本文在中断方式下由同步管理寄存器实现周期性事件处理。
4.1EtherCAT从站I/O开关量测试
EtherCAT从站I/O开关量测试平台以装有德国倍福公司TwinCAT软件的PC作为主站,PC安装倍福官网指定类型的Intel网卡,用网线连接PC和EtherCAT从站,TwinCAT软件安装倍福EtherCAT驱动后,在TwinCAT软件中右键点击I/O Device来扫描EtherCAT设备,设置TwinCAT软件里RxPDO node的32位输出的高低电平,观察到EtherCAT从站开发板上的LED灯亮灭,表明EtherCAT从站和主站通信成功并且能够实现I/O开关量功能。其测试环境如图8所示。
图8 EtherCAT从站I/O开关量测试环境
4.2EtherCAT从站实时性测试
实时以太网网络测试平台以插有赫优讯(hilscher)公司PCI卡(CIFX)的PC作为主站,赫优讯网络分析仪(NANL-B500G-RE)通过以太网口连接到PC,网络分析仪可以连接3个EtherCAT控制系统从站设备,通过SYCON.net软件对EtherCAT网络进行配置,其配置界面如图9所示。通过netANALYZER软件采集整个网络的通信数据,分析得到网络性能、网络时间抖动和网络负载等信息,使用wireshark软件可以导出抓取到的报文数据。
图9 EtherCAT网络配置界面
本文进行实时性测试时构建了一主三从的EtherCAT网络,使用wireshark软件的时间相关参数图形化分析功能对数据帧进行分析,测得网络数据帧的平均循环周期约为1 ms(波动范围0.997~1.003 ms)如图10所示,结果表明,该EtherCAT从站具有良好的实时性。
图10 网络数据帧平均循环周期分布图
本文设计了基于EtherCAT协议的机械臂电机一体化控制系统从站,介绍了EtherCAT技术,电机一体化控制系统的从站硬件和软件设计。通过实验平台对EtherCAT从站进行了实时性和I/O开关量功能测试,测试结果表明,该从站的性能具有良好的性能。本文采用层次化和模块化的软硬件设计方案,降低了机械臂电机一体化控制系统从站的开发难度和成本;使用成熟的测试平台方案,使得调试变得简单,进一步提高了机械臂电机一体化控制系统的研发效率。