刘山源,
(1.清华大学 工程物理系,北京100084;2.清华大学 粒子技术与辐射成像教育部重点实验室)
现如今的工业控制领域中,传统的经典现场总线已经很难满足当今的工业要求,而现场总线的实时性能也越发重要。来自德国的Beckhoff(倍福自动化公司)研发出了工业以太网EtherCAT,它具有非常高的实时性能,将功能强大和成本低廉结合在一起。
追溯到2003年,倍福公司的EtherCAT正式进入了市场,同样也是在2003年,ETG技术协会基于推广EtherCAT的发展和其技术提升的目的而成立[1]。通过EtherCAT技术方案,从站成本大大降低,因为厂商在采用EtherCAT研发的时候在通信研究方面花费的成本是很低的,而与此同时主站又不需要添加任何硬件,只需一台带有标准以太网卡的PC机即可。对于网络的基础设施,这方面的成本也极大地降低了,普通的交换机就可以集成到EtherCAT网络中去。除此之外,EtherCAT技术支持的拓扑结构非常灵活,涵盖几乎所有的网络拓扑,强大的灵活性使EtherCAT的系统规划非常简单快捷,工作效率成倍提高。EtherCAT将性能和成本结合在一起,提高了产品的核心竞争力,在现场总线领域堪称榜首。
整个系统分成了两部分:主站和从站。其中,主站的作用是将以太网帧发送给各个从站,而从站的作用是对主站发送来的以太网数据帧进行处理,包括抽取数据和反过来插入数据帧。各个从站按顺序依次接收报文并处理后,把处理后的报文传输给下一个从站,末尾从站发回被完整处理过后的报文[2],如图1所示。
图1 EtherCAT运行原理
EtherCAT数据帧可以在普通以太网中传输,这是因为EtherCAT使用的是0x88a4的以太网帧来进行数据传输,这就是EtherCAT的优势之一。EtherCAT数据帧能够在以太网中传输,其它以太网数据帧还可以和其互补。
EtherCAT本身来自以太网,因为它使用了以太网的物理层,兼容以太网,但又从普通以太网中跳脱出来,实现低延时,突破了传统以太网的弊病。以太网网关采用的是“存储转发”,通过存储转发来交换数据,节点越多,每个节点上面的延时就会重重叠加,再加上以太网收发数据存在的冲突检测,致使数据出现了不确定的时延。但是EtherCAT不同,它将所有节点的数据都放在同一帧内,并且用硬件寻址来取代“存储转发”,解决了以太网的弊病,最终实现了兼具高速度与高效率的数据传输。打个比方,EtherCAT就像地铁一样,乘客们像数据包在同一帧上,在某站点快速上下,停留时间非常短,方便快捷,同时时延确定。
EtherCAT帧头和数据域共同组成了EtherCAT数据帧,其中帧头中包含有EtherCAT数据帧的长度和类型等各种信息,而EtherCAT的数据域为主要数据内容部分,可发送至多1498个字节的数据,帧格式如下:[3]
在研究针对工业的CT机中,整个系统主要由5个部分组成:射线源主管发出高能线束来穿透工件;探测器系统则用来精确测量穿透工件的射线信号强度;机械扫描系统带动了整个装置工件的运动;计算机系统主要用来处理各个角度的切片图,通过特定算法形成CT图;最后屏蔽设施保证了整个机器的安全性,如图2所示。
图2 工业CT系统
机械扫描系统在实现CT扫描工件的旋转与位移时,机械系统旋转的编码值跳变需要提供给触发器,通过触发器来控制射线源与探测器系统的开关过程。图3为触发器。
图3 触发器设备
为了实现工业CT的实时性,使用了倍福的运动控制器来控制机械系统运动,必须通过EtherCAT来获取编码值跳变,需要做的板子部分如图4、图5所示,具体从站硬件部分框架如图6所示。
图4 旧的触发器
图5 新的需要完成的触发器
图6 从站硬件整体框图
2.2.1XMC4800芯片部分
XMC4800是Infineon(英飞凌)公司在2015年推出的一款片内集成EtherCAT的微处理器,基于ARM Cortex-M4内核,配备了144 MHz CPU、最高可达2 MB的Flash、352 KB的RAM,还配有可用于编码器、旋转变压器和霍尔传感器的接口单元,有多种外设,例如6个捕获/比较单元、4个△-Σ解调器模块、2个定位接口模块、2个12位D/A转换器、4个12位A/D转换器等[4]。
XMC4800的集成度非常高,完全不需要配置专门的器件,这样的高集成度使PCB空间更加简约,并且大大提高了系统可靠性。与此同时,EtherCAT ASIC或FPGA、外接存储器和PHY专用晶体振荡器等器件全都省略之后,对研究和工程成本开支也是极大的节省。另外,它可以轻易处理数字模拟混合信号,采样速率可达4 Msps,完全能够满足高速采样的需求,在125 ℃的严酷环境温度下依然可以正常高效率工作,在各种工业应用场景中应用广泛。本次设计选用的是XMC4800-F144F2048,封装为LQFP-144,2 MB内部Flash。
2.2.2EtherCAT电路部分
EtherCAT的总线物理层除了需要ESC部分外,还需要PHY电路,而PHY电路与以太网是相同的,通过MII(媒体独立接口)与XMC4800相对接,而后将数据发送至网络变压器,通过变压器耦合后从RJ45接头传输到网络电缆。本设计中选用了BCM5241KMLG芯片作为PHY电路,网络接头选择RJ45。
在本设计中,使用普通带有以太网网口的PC机作为主站,快捷方便,同时通过倍福的TwinCAT软件来实现主站的各种功能,主要负责控制所有从站设备的工作状态,同时管理主从站间的数据通信。
在EtherCAT网络中,主从站之间数据交换的形式有非周期性数据通信和周期性过程数据通信。其中非周期通信主要是邮箱通信,采用查询方式,在非实时场合应用广泛,比如传递设备信息文件等。而周期性通信主要是过程数据通信,应用于实时场合,从站程序对周期性通信可以采用中断方式,通过现场总线逻辑单元来进行寻址,缓冲区本身是在内存中分配的一段空间,它可以被主从节点同时访问[5]。本次设计采用的是周期性过程数据通信,中断方式流程图如图7所示。
图7 中断方式流程图
在Windows系统中使用TwinCAT软件,配置主从站XML文件[6],扫描I/O后添加Box从而连接上主从站,即可实现主从通信[7]。
设计出的EtherCAT从站板卡设备硬件电路如图8所示。
图8 从站板卡
通过J-link调试器经过ARM标准JTAG连接器与Cortex调试连接器转换进行烧录,在平台DAVE上写入点亮V232小灯程序,小灯即被点亮,如图9所示。
图9 LED点亮实验
DAVE中写入UART程序,可以在超级终端中显示TsinghuaUniversity以及输入的前10个字母,因此能够通过串口进行通信,如图10、图11所示。
图10 UART实验
图11 超级终端显示
从站通过Window 环境中的TwinCAT来进行测试,通过 TwinCAT 对从站中信息的读取,可以验证从站设计的正确与否,从站是否能与主站之间进行通信。经过数据输入TwinCAT测试证明,该系统可以将倍福运动控制系统的编码值提取出来提供给触发器,并完成触发器对射线源与探测器系统的控制开启,如图12、图13、图14所示。
图12 EtherCAT通信实验
图13 数据输入TwinCAT测试
图14 数据输入TwinCAT测试
通过TwinCAT在小灯V232写入高电平可以点亮小灯,写入低电平可以熄灭小灯。经过数据输入TwinCAT测试证明,该系统可以将倍福运动控制系统的编码值提取出来提供给触发器,并完成触发器对射线源与探测器系统的控制开启。