基于以太网的同步伺服通讯协议设计
2012-06-26白帆马钧华
白帆,马钧华
(浙江大学 电气工程学院,浙江 杭州 310027)
1 引言
随着电机伺服驱动技术的不断发展,分布式多轴同步伺服系统得到了越来越广泛的应用。分布式多轴同步伺服系统由若干个独立的伺服控制器组成,只是各个伺服控制器节点需按照一定的拓扑结构连接成网络,通过特定的通讯方式,保持各节点的同步运行。
本文提出了一种同步伺服通讯协议:在常规以太网的基础上,通过加入脉冲同步信号来实现伺服传动的同步性。以下简称为EtherPSP(ethernet pulse-synchronized protocol),即以太网脉冲同步协议。
2 基本原理
以太网(Ethernet)是一种计算机组网技术。IEEE制定的IEEE 802.3标准给出了以太网的技术标准。它规定了包括物理层的连线、电信号和介质访问层协议的内容。以太网是当前应用最普遍的局域网技术。以太网的标准拓扑结构为总线型拓扑,但目前都使用交换机(Switch)来进行网络连接和组织,这样,以太网的拓扑结构就成了星型[1]。在1个以交换机来进行连接的局域网中,所有报文的发送都要经过交换机转发至目标节点。由于交换机的“存储-转发”机制,当交换机在极短时间内收到多个报文时,首先将报文进行存储,然后按照先后顺序依次转发至各自目标节点,这样,排队等待转发的报文就会经历一个不确定的延时后才能被发送至目标节点[1]。这使得以太网通讯技术在实时性要求很高的场合上的应用受到限制。
在1个小型的孤立局域网内,如果各节点均按照1个固定的时间间隔发送固定长度的UDP(user datagram protocol)报文,那么报文传输的最大延时是可以计算的。例如,在由8个节点组成的孤立的局域网中(嵌入式节点常用10Mb/s带宽网络),规定各节点均周期性发送74字节(42字节报文头部、32字节数据)长度的UDP报文,那么交换机引入的报文发送接收的可能最大延时为
考虑到节点内部报文处理时间Tproc(实测在100μs以内),那么,在这个局域网中,要保证各节点的报文在T0周期内得到顺利传输,需满足:
本文提出的EtherPSP的基本原理如下:
1)主节点以T0为周期使用独立通道广播发送同步脉冲信号,作为该网络中的同步时钟信号,各个节点按此同步信号作为各自的控制周期;
2)主节点同时使用常规以太网发送组播命令报文,包含各节点伺服控制信息;从节点发送单播报文反馈各自的状态信息。T0已满足式(2),所有收发过程在1个T0周期内完成;
3)从节点以当前周期执行前一周期指令的操作方式,实现网络内各节点的同步运行。
3 方案设计
采用与以太网一致的星型结构作为Ether PSP网络的拓扑结构,这样可以继承以太网通讯的大部分特性。同时,规定网络中的某个节点为同步基准节点(主节点),其余节点为从节点。如图1所示。
图1 EtherPSP网络结构图Fig.1 Structure of EtherPSP network
在物理层传播介质上,采用连接局域网最常见的UTP(unshielded twisted pair)双绞线作为EtherPSP网络连接线,使用常规以太网交换机作为EtherPSP网络中心节点。UTP双绞线有4对(8根)数据线,其中2对(4根)数据线用作以太网数据的传输,剩余2对空闲中的1对数据线用来传输同步脉冲信号。这样,既保证了2种信号互相隔离互不干扰,又简化了线路连接,同一条网线即可同时传输2种不同的信号,而且,同步脉冲信号也使用隔离变压器进行隔离,继承了以太网各节点保持电隔离的优点。
每个节点均需配置终端信号处理模块,如图2所示。将以太网信号和同步脉冲信号整合到1条网线中。在交换机侧,集中配置1个同步信号交换模块,如图3所示。分离各条网线中的以太网信号和同步脉冲信号:同步信号通过隔离变压器进行耦合,而以太网信号直接送入交换机/路由器。
图2 终端信号处理模块原理图Fig.2 Schematic of terminal signal processing block
图3 同步信号交换模块原理图Fig.3 Schematic of sync signal exchanging block
这样,网络中的各节点可以无阻碍的发送和接收以太网报文,主节点发出的同步脉冲信号可以无延时地被从节点接收。
4 测试网络硬件连接
测试用EtherPSP网络按图1所示的拓扑加以组网。
节点1作为主节点,由TMS320F2812DSP芯片外扩RTL8019AS芯片构成。RTL8019AS是一种全双工即插即用的10Mb/s以太网控制器,它在1块芯片上集成了RTL8019内核和1个16kB的SDRAM存储器。它支持UTP,AUI,BNC和PNP自动检测模式,支持外接闪烁存储器读写操作,支持I/O口地址的完全解码。其接口符合Ethernet2和IEEE802.3标准,广泛应用于工业现场控制领域[2]。
节点2,3,…,N 等由 TMS320F28035DSP芯片外扩ENC28J60芯片构成。ENC28J60是带有行业标准串行外设接口(serial peripheral interface,SPI)的10Mb/s独立以太网控制器,符合IEEE 802.3的全部规范,采用了一系列包过滤机制以对传入数据包进行限制。与主控制器的通信通过2个中断引脚和SPI实现,数据传输速率高达10Mb/s,可以广泛应用于各类嵌入式系统,非常方便地实现以太网通讯[3]。
同步脉冲信号的发送和接收由DSP控制MAX485芯片完成[4],并使用20F001N变压器进行隔离。主节点和从节点的终端处理模块硬件是通用的,差别在于DSP控制MAX485是发送还是接收同步脉冲信号。同步信号交换模块的各端口也是对等的。
将上述各节点用网线接入同步信号交换模块,并转接到标准以太网交换后,就构成了1个以太网脉冲同步网络-EtherPSP。
5 软件流程
根据式(1)和式(2)的分析计算,在当前EtherPSP测试网络中,主节点以T0=1ms为周期产生一硬的宽度为2.5μs的同步脉冲信号,并发送74字节长度、包含各节点伺服控制信息和顺序流水号的以太网UDP报文。T0满足式(2)的条件,故可保证在一周期内所有发出的UDP报文均可被所有节点接收。
EtherPSP的软件流程分主、从节点来讨论。
DSP启动后,首先进行初始化工作,其中启动EtherPSP包括初始化以太网和同步脉冲收发配置。主节点要配置1ms的定时中断,作为系统的同步时钟基准,从节点要配置接收同步脉冲的外部中断和故障监测用的CPU定时中断。随后进入后台循环等待。
主节点的正常周期过程如图4所示。主节点按照周期T0=1ms定时中断:发送硬同步脉冲信号;以太网UDP组播方式发送固定长度的控制报文(当前测试网络中,规定控制报文长度为74字节,其中42字节为报文头部,32字节为数据,包括各个节点的位置或者速度的给定值);再接收来自网络中从节点的以太网报文,并作处理。
图4 主节点软件流程图Fig.4 Software flow chart of master node
从节点的正常周期过程如图5所示。从节点接收同步脉冲信号触发外部中断,进入工作周期:用上一周期接收到的指令,作为当前周期的指令,执行电机伺服功能模块,完成伺服同步控制;收发本周期的以太网报文,计算出新的位置给定值,等待下一周期的同步信号来完成同步过程。如报文中还有其他非同步控制指令,立即执行相应的功能,如转变运行模式、停机等。最后,从节点通过以太网UDP单播的方式将节点状态反馈给主节点。
图5 从节点软件流程图Fig.5 Software flow chart of slave nodes
此外,从节点还设置1个周期为T1=10ms的CPU定时器中断服务,用于故障处理。正常状态下,从节点每次收到同步脉冲进入新的工作周期时,将CPU定时器计数值重置,保证下一同步脉冲和工作周期到来之前不会触发CPU定时器中断服务(T1>T0)。当EtherPSP网络运行出现故障时,比如线路断开、节点故障等,会导致部分节点无法与网络正常通讯。如果从节点在10 ms时间段内没有收到同步触发脉冲进入工作周期,就会触发CPU定时器中断,即认为该节点处于离线故障状态,可立即转入应急模式,采取停机或其他适当的措施。
6 结果测试
EtherPSP网络运行中,分别采集了主节点发出和从节点收到的同步脉冲信号。测试结果见图6。
图6 测试结果波形Fig.6 Waveforms of testing result
图6a中,CH1为主节点发出的脉冲波形,CH2为从节点收到的脉冲波形。图6b中,CH1和CH2为2个从节点接收到的脉冲波形,显示从节点收到的同步脉冲信号时间上保持了一致。
图6c是对图6a时间坐标展开所示,显示主节点发出的同步脉冲的上升沿和从节点收到的脉冲的下降沿有约100~150ns的延时。对于伺服同步的应用而言,硬件上的这个延时可以接受。当然,各个从节点的软件处理过程要保持一致性,避免引入不等量的软件延时,影响最终的同步性。
由于EtherPSP网络中所有节点的同步脉冲信号均经过隔离变压器进行隔离耦合,当节点的个数逐步增加时,受脉冲收发器的驱动能力所限,脉冲信号会有一定的波形畸变。图6d是当EtherPSP网络带7个从节点时的波形,CH1为经过脉冲收发器(MAX485)整形后的脉冲波形,CH2为从节点接收到的隔离变压器上的波形。虽然经过隔离后的脉冲波形有较大畸变,但是经过脉冲收发器处理后依然能够保持原样。
当EtherPSP网络规模不断增大,需要多个交换机级联时,会增加存储-转发的次数,增加以太网报文的收发延时。实测表明,交换机级联的影响不大,报文发送接收的最大延时主要与网络中总的报文发送数成正比关系,符合式(1)的表述。
7 EtherPSP与SERCOS协议对比及结论
目前,SERCOS(serial real-time communication specification,串行实时通讯协议)是工业领域中实时数据通讯协议的国际标准,专门用于工业机械电气设备的控制单元与数字伺服装置之间。它全面而严格的定义了物理层、数据链路层以及数据交换的报文结构等内容,并给出了大量数据结构和过程命令,可用于操作控制单元、伺服装置及相关机械设备。SERCOS协议被欧洲各国及美国和日本的数控系统和伺服系统制造商广泛接受,开发和生产符合该协议的产品,应用领域也从最初的数控机床扩大到各类数控机械[5]。
SERCOS接口采用环形拓扑结构,每个节点通过“一进一出”两根光纤依次串联,形成数据单向流通的环形通讯网络。如图7所示,每个环路由1个主站和若干个从站构成,主站的功能是将控制电报发送到网络中,并接收从站发回的电报;从站的功能是接收和转发电报并将提取出的控制信息传递给伺服装置。
图7 SERCOS协议拓扑结构Fig.7 Structure of SERCOS protocol
SERCOS系统周期性进行环路通讯,很短的时间内遍历各节点,从而使网络内各节点实现同步,且拥有固定的周期。实际测试中,SERCOS协议可以达到很高的同步精度,同步值小于100ns[6]。
由于SERCOS协议采用环形串联的拓扑结构,网络中任何1个节点、任何1条线路的故障,均会导致下游从站无法收到主站的信息。而采用星型拓扑的EtherPSP协议,网络内线路和节点的故障不会对其他节点和整个系统的运行造成严重干扰。基于这个特性,EtherPSP网络可以在正常运行的情况下随时加入和删除节点。
SERCOS协议物理层采用光纤介质传递数字信号,可以彻底消除传输过程中的电磁干扰,大大提高了系统的稳定性和对复杂环境的适应能力[5]。而EtherPSP协议中,同步脉冲信号经过了隔离变压器处理,可以消除一定的谐波干扰并保持节点间电隔离的特性,而且UTP双绞线也有较好的抗干扰能力。
SERCOS协议理论上每个主站可驱动最多254个伺服装置[5]。EtherPSP网络的最大节点数则受多个因素的限制。根据式(1)和式(2)的分析计算,EtherPSP报文的理论传输最大延时受以太网通讯速率和网络内节点数的影响。因此,当整个系统的工作周期确定时,网络的节点数会受到限制。通过提高以太网通讯速率(如采用100 Mb/s甚至1000Mb/s速率的以太网设备),可以提高EtherPSP网络的传输性能和负载能力。
SERCOS协议可以使用专门的芯片(如SERCON410B、SERCON816等)实现,高度标准化集成化,便于大规模生产和应用[5]。而EtherPSP协议完全兼容以太网协议,灵活性更高。物理层基于最常见的以太网设备(网线、交换机等),由于以太网在各个领域极其普遍的应用,因此实现EtherPSP将变得非常方便,成本低廉,易于取材。
而且,对于嵌入式的控制平台,可以很方便地直接扩展RTL8019AS芯片或通过SPI扩展ENC28J60芯片来实现以太网通讯,使得Ether PSP更容易在各种嵌入式平台上推广应用。表1对比了SERCOS与EtherPSP的特性。
表1 SERCOS和EtherPSP特性对比Tab.1 Comparison between SERCOS and EtherPSP
综上所述,SERCOS协议和EtherPSP协议均能较好地完成多轴伺服系统要求的高精度的实时通讯。相对而言,SERCOS协议更适用于大系统、多负载,对稳定性和适应性要求更高的场合,而EtherPSP在小型系统上更能发挥其灵活、廉价、便利的特性。
[1]KUROSE James,ROSS Keith.Computer Networking[M].Beijing:Higher Education Press,2005.
[2]REALTEK,RTL8019AS Realtek Full-Duplex Ethernet Controller with Plug and Play Function(RealPNP)SPECIFICATION[Z].
[3]MICROCHIP,ENC28J60Datasheet[Z].
[4]MAXIM,RS-485/RS-422Transceivers Datasheet[Z].
[5]郇极,尹旭峰.数字伺服通讯协议SERCOS驱动程序设计及应用[M].北京:北京航空航天大学出版社,2005.
[6]吕日昌,葛万成.SERCOS-Ⅲ在运动控制网络中实时与同步的实现[J].信息技术,2009,33(4):8-11.