基于LAN9252的EtherCAT工业以太网数据采集系统
2019-02-22杨晓辉
杨晓辉,杨 超,李 楠
(1.长春光华学院电气信息学院,吉林长春 130033;2.北京航天时代激光导航技术有限责任公司,北京 100094;3.陆军装甲兵学院士官学校,吉林长春 130000)
0 引言
数据采集广泛应用于工业控制领域的多个环节,在状态监控、故障诊断、误差补偿等方面有着极其重要的作用,目前随着中国制造2025纲领的提出,工业化和信息化融合进入了全新阶段[1]。传统数据采集装置采用传统以太网技术接入工业控制系统,传统以太网技术在传输效率、实时性等方面已不能满足现代工业控制系统的需求,传统数据采集装置数据传输周期远低于工业控制系统,无法保证数据准确而实时地刷新,从而影响整体工业控制系统性能[3]。
EtherCAT是基于集束帧机制的新型工业以太网协议,其通过修改传统以太网协议底层结构,在兼容传统以太网协议的同时由实时控制器约束,EtherCAT网络拓扑构成一个逻辑环状结构,在每个周期EtherCAT主站发送一个报文,按照相关顺序通过环状网络上所有节点后报文将返回主站,因为协议特性,其具有传输效率高、速率快、网络嫁接方便、成本较低等诸多优点,在2014年10月成为我国推荐性标准[2]。
目前工业以太网总线研究主要集中在工业控制领域,数据采集系统作为工业控制系统中重要的组成部分,数据采集系统没有成熟的工业以太网总线设备,本文将EtherCAT工业以太网总线技术引入数据采集系统中,利用总线优秀的数据传输特性有效提升数据采集系统的性能,具有十分重要的意义。
1 数据采集系统中EtherCAT关键技术简述
数据采集系统中EtherCAT运行原理如图1所示,在数据传输过程中,EtherCAT使用以太网双向传输的特性,即可以同时进行发送和接收,主机发送下行报文,下行的以太网数据帧通过RX进入第一个数据采集系统中的从站控制器,根据报文进行A/D数据采集,相关数据的更新读取与写入后,通过TX发送给下一个从站。当所有的从站完成对此EtherCAT下行报文的操作后,将带有所有网络中从站相关数据的EtherCAT报文返回第一个从站,经TX发送给主站,由主站对EtherCAT报文进行分析与后续操作[4]。
图1 数据采集系统中EtherCAT运行原理
EtherCAT总线的集数帧通讯方式具有非常高的数据利用率,设数据帧只存在一个EtherCAT子报文,则最大传输数据为1 486 byte,EtherCAT报文中报文头数据共占用32 byte[5],则获得数据利用率η为97.9%。
当EtherCAT网络中存有多个从站设备时,必须设置同步时钟从而获得同步控制效果[6],EtherCAT的分布式中用网络中第一个从站的时钟作为参考时钟同步其他从站设备与主站,严格计算补偿了时钟漂移、偏移和传输延时,并以此控制同步输出信号使得网络中多设备同步执行。
2 数据采集系统结构及硬件设计
2.1 数据采集系统结构设计
本数据采集系统作为EtherCAT总线中的从站设备,主要由3部分组成:采集模块、系统控制器与从站控制器。其中采集模块用于实现传感器信号的处理,将其转化为数字信号传送给系统控制器;系统控制器用于EtherCAT总线应用层任务,同时根据总线主站指令将对应的传感器数据转存至协议处理模块内部的存储空间;从站控制器主要负责协议数据链路层与物理层的控制,实现从站协议控制。从站硬件总体结构设计如图2所示。时钟与EEPROM为从站控制器与系统控制器提供时钟与配置文件数据存储,电源模块给数据采集系统提供细分的需求电源。2个RJ45接口分别作输入、输出的物理网线接口,通过标准的100BASE-TX网线接入EtherCAT总线。
图2 数据采集系统结构
系统运行流程为:传感器将物理信号转化为模拟信号输入数据采集系统的采集模块中,经过采集模块的滤波和A/D转换处理后变成数字信号,系统控制器进行数字信号的接收,并且查询EtherCAT总线的状态,如果总线处于运行状态,则将数字信号实时存放于协议处理模块内部的存储空间中,然后通过配置同步管理器进行周期性数据发送。从站控制器将存储空间中的数字信号数据写入经过该从站的EtherCAT数据报文中对应的地方,发送至其他总线设备使用[7]。
2.2 核心芯片选择
本系统选用ADS8341为A/D转换芯片,选用STM32F407ZET7作为系统控制芯片,选择高集成度的LAN9252作为从站控制器芯片。
EtherCAT协议控制器LAN9252是一款高集成的控制芯片,它不仅具备EtherCAT从站控制功能,还集成了2路PHY控制芯片,不需要额外进行PHY芯片选择与设计,同时该芯片还支持分布式时钟功能,可以提供精准的同步信号,选择LAN9252作为协议控制器可以极大节约成本和工作量,其结构如图3所示,LAN9252的DPI接口(过程数字接口)支持16位数字量I/O并行接口,可以使用STM32F407ZET7的FSMC技术进行高速的数据传输[8],通过I2C总线访问外部EEPROM用于存放EtherCAT配置信息,系统中断为I/O信号,所需的时钟信号为25 MHz,内部集成的PHY芯片外接RJ45端口进行物理网线连接。
图3 LAN9252结构
2.3 PDI通讯接口设计
PDI通讯速率直接影响到数据采集系统的Ether CAT通信速度,LAN9252芯片PDI支持多种交互接口,本系统选用速率最高的16位数字量I/O并行接口,系统控制器STM32F407ZET7使用其特有的存储器拓展技术FSMC与之进行连接,PDI通讯接口设计如图4所示,LAN9252的16位A/D线、数据中断信号IRQ、地址锁存信号ALELO、读写信号RD与WR、总线片选信号CS、分布式时钟信号SYSNC(0)和SYNC(1)连接至STM32F407ZET7相关引脚,FSMC接口控制引脚FSMC_NE1、FSMC_NOE、FSMC_NWE、ALELO为低电平有效引脚,所以需要配置LAN9252的控制信号为低电平有效。
图4 PDI接口电路
2.4 采集模块设计
采集系统所需采集的信号分为数字信号与模拟信号2类,采集模块设计如图5所示。
图5 采集模块原理图
针对模拟信号采集,IN为传感器输出的模拟信号值,通过运算放大器OP7放大至ADS8341匹配的电压值后接入ADS8341输入引脚,其中利用DT1、DT2构成钳位电路用于保护A/D芯片不被损坏,经ADS8341将模拟信号转换为数字信号后,通过SPI接口与STM32F407ZET7相连,用于数字信号的传输;针对数字信号采集,DIN01为输入的数字信号,通过PC817光耦进行光电隔离后接入STM32F407ZET7的I/O引脚。
3 软件设计
本数据采集系统软件可以通过3层来实现,即PDI接口驱动层、协议栈层、数据采集应用层。其中PDI接口驱动层决定系统控制器对从站控制器的数据交换是否正常;协议栈层主要为配合从站控制器实现EtherCAT协议通讯;数据采集应用层用于编写数据采集系统的控制程序,实现数据采集的具体任务。
3.1 PDI接口驱动设计
本系统PDI接口为STM32F407ZET7与LAN9252通讯的16位并行总线,在STM32F407ZET7中FSMC能够同步、异步访问LAN9252数接口,由于LAN9252芯片特性,STM32F407ZET7访问的不是LAN9252中EtherCAT内核,而是LAN9252提供系统控制和状态寄存器,通过间接寻址的方式访问EtherCat内核寄存器[9]。寻址方式如图6所示,STM32F407ZET7通过FSMC直接访问LAN9252系统控制与状态寄存器,根据时序需求配置FSMC总线后即可完成地址空间映射,将底层寻址驱动程序进行封装为相关的读写函数,即实现了STM32F407ZET7对LAN9252的数据交换。
图6 LAN9252寻址方式
3.2 EtherCAT状态机设计
根据EtherCAT协议规定,本采集系统协议通讯有5种状态:初始化、预运行、安全运行、运行与引导状态。本系统需要根据主站发出的命令进行状态的切换,状态间的切换指令和切换约束如图7所示,状态机每次进行状态切换就开启或关闭相关服务,各状态切换需要按照协议规定进行,不能越级切换。
图7 状态切换示意
状态机切换流程如图8所示,根据EtherCAT主站命令,读取AL控制寄存器中相关值,根据状态转换请求结合状态切换规范进行合理性检查。如果命令状态与本采集系统当前状态能够转换,则进行状态转换,并将结果写入到AL状态寄存器中,交由EtherCAT主站读取;如果不能转换状态或者转换状态失败,则将错误代码写入到AL状态寄存器中,交由EtherCAT主站读取后处理。
图8 状态机切换流程
3.3 数据采集程序设计
STM32F407ZET7芯片通过SPI读取A/D芯片数据,由于A/D芯片的数据准备时间与传输延时时间客观存在,如果一个时钟周期对所有A/D芯片通道数据进行传输则容易出现数据丢失,因此为了保证数据采样完整,在STM32F407ZET7读取SPI上A/D芯片数据时,每次数据传输周期应等于采样数据通道数量加1个时钟周期。
完成A/D芯片数据读取后,还需将数据通过EtherCAT总线进行实时传输,EtherCAT协议传输方式有邮箱与周期性过程数据传输2种,对于实时性要求较高的采集数据选用周期性过程数据传输,对于其他数据采用邮箱的方式处理,过程如图9所示。当采集系统完成相关初始化操作后进入主循环,读取事件请求后判断数据采集系统当前运行模式,如果符合要求则进入中断程序,中断程序中进行实时性要求较高的采集数据的获取与上传,完成后退出中断进行邮箱事件查询,当存在邮箱事件时进行实时性要求低的采集数据获取与上传。
图9 采集数据传输流程
4 系统测试
根据本文所设计的数据采集系统进行PCB板卡的绘制和调试,将完成硬件和软件调试后作为EtherCAT从站接入总线网络,同时接入其他EtherCAT从站设备进行对比分析,如图10所示。EtherCAT主站采用PC电脑搭载Beckhoff的TwinCAT软件进行系统测试。
图10 数据采集系统板卡与其他EtherCAT从站
首先测试模拟量采集功能,用信号发生器产生直流信号,接入本采集系统的1、3、6通道,分别设置电压为3.809、-2.784、8.631 V,在TwinCAT上进行相关数据查看,结果如图11所示,采集数据较为准确,说明本数据采集系统数据采集功能正常可用,EtherCAT协议传输正常。
图11 A/D采集结果显示
其次是对EtherCAT传输效率进行测试,针对实时性要求高的数据,本系统采用同步模式传输,在TwinCAT软件中设置运行模式为同步模式,周期为1 ms。由于LAN9252会在接收到主站发送的过程数据时进入中断,因此在2个EtherCAT从站的IRQ中断程序中如果接收数据正确,则将一个I/O接口电平拉低,在退出中断服务时再将其拉高,可以通过示波器分别抓取2个EtherCAT从站的中断I/O信号进行比对分析,即可获得从站的同步模式传输状态与效率,结果如图12所示。
图12 同步模式两EtherCAT从站中断周期
可见两从站进入中断程序周期为1 ms,与TwinCAT设置一致,且未出现丢包、周期异常等情况,表明从站运行稳定,数据收发正确。本数据采集系统在EtherCAT总线逻辑链路中靠后,因此TwinCAT发送的报文先抵达其他EtherCAT从站设备,再进入本数据采集系统,观察两设备进入中断的时间存在0.8 μs的延迟。可见本系统具备较高的数据传输能力与较低的数据传输延迟。
5 结束语
设计了基于LAN9252的EtherCAT工业以太网数据采集系统,本系统将新的工业以太网技术引入数据采集领域,解决了数据采集系统在工业控制领域应用中存在的数据传输效率低的问题。本数据采集系统可以方便地接入EtherCAT工业以太网总线,无需交换机等其他设备组网,具备采集数据准确、数据传输量大、传输效率高等特性,能够广泛应用于工业控制领域,具备很高的应用价值与市场前景。