1. 引言
随着工业4.0的提出,实时以太网凭借其成熟的特性与工业自动化结合的更为紧密,成为该领域不可或缺的技术。EtherCAT (Ethernet for Control Automation Technology)作为高性能工业以太网的代表,以其延迟低、速率快、拓扑灵活等优点得到国内外许多专家、学者和企业的关注,已经成为工业控制领域流行的工业以太网解决方式 [1] [2] [3]。
目前生产车间存在由于工人误操作或被测对象故障等原因引起线路烧毁等安全隐患。
传统的消防类烟雾检测系统在组网时一般采用无极性二线制编码方式组网,系统相对独立,网络带宽低,难以接入工业物联网,已经不能满足智能工厂建设环节的需求,而针对工业物联网设计的烟雾检测传感器成本又相对较高 [4] [5] [6]。
本文针对这种情况,提出一种将技术成熟、成本低、应用广泛的消防类烟雾检测传感器融入EtherCAT网络的设计方案。本设计中使用FPGA芯片代替国外专用控制器芯片完成EtherCAT从站设计,EtherCAT主站则是作为协议转换器接入网络,将每个从站烟雾报警信息上报给应用服务器。这样就可以在数据终端实时监测生产车间每个烟雾报警器的运行状况。
2. EtherCAT协议帧结构
EtherCAT帧结构遵循IEEE802.3标准,使用保留的帧类型0x88A4来区别于其它以太网帧。多个子报文被无间隙的打包到一个以太网帧中。每个从站在数据帧经过时根据子报文头中的寻址地址判断是否

Figure 1. EtherCAT data frame structure
图1. EtherCAT 数据帧结构
自己是目标从站,根据子报文中命令判断是读取还是插入数据或者是二者都需要执行 [7] [8]。一个EtherCAT子报文有三部分组成:子报文头、子报文数据、工作计数器WKC。子报文头中包含一些关键信息,包括寻址地址、读写命令、子报文长度等。子报文数据区存储的则是用户数据,WKC的作用是主站判断子报文有没有被对应从站正确处理 [9] [10] [11]。EtherCAT报文既可以按照标准以太网帧传输,也可以封装在UDP/IP数据帧中进行传输。EtherCAT数据帧结构如图1所示。
3. 基于EtherCAT烟雾报警系统架构
基于EtherCAT的烟雾报警系统框架如图2所示,整个系统可以实现一主多从的EtherCAT通讯,主从站之间采用线性拓扑的连接方式。该烟雾报警系统主要包括三大模块:电流型烟雾检测传感器接入、网络传输控制系统和报警系统。烟雾检测传感器接入包括传感器供电、状态检测、报警信号检测和传感器状态硬件重置;网络传输控制系统包括基于EtherCAT总线技术的传输协议帧设计、终端节点数目的实时获取、网络拓扑结构的实时获取和烟雾检测传感器状态的实时上报;报警系统包括烟雾检测传感器终端的声光报警、EtherCAT主站的声光报警和报警信息的实时上报与显示。

Figure 2. Smoke alarm system architecture
图2. 烟雾报警系统架构
3.1. 烟感报警系统从站通讯协议设计
本设计从站通讯协议中主要包含三种报文类型:初始化报文、广播报文、普通子报文。初始化报文主要用于终端节点数目和网络拓扑结构的实时获取,广播报文实现报警状态的解除,普通子报文实现烟雾检测传感器状态的实时上报。从站完全处于被动模式,只有主站发送命令后从站才响应,从站不主动向主站发送任何信息。主站发送广播报文则每个从站都要接收该广播报文,而主站发送普通子报文时则只有对应从站处理相应报文。本设计在不使用专用从站控制器的情况下,使用FPGA芯片实现EtherCAT协议中的“on the fly”技术,每个从站在报文经时读出属于自己的报文,同时将要发送出去的数据插入报文中转发给下一个从站。由于主要工作都由硬件实现可以大大降低传输的延时,提高了网络的实时性。将EtherCAT从站通讯协议分为两个模块:从站初始化模块、从站控制器模块。
1) 从站初始化模块
从站初始化模块主要在系统启动阶段工作,此时每个从站会从ARM处获得自己的ID编号。同时会启动自检流程,判断网络拓扑结构 [12]。当接收到EtherCAT主站发送的初始化报文后需要将报文中的从站个数计数器加1后发送给下一个从站,最后一个从站将处理后的报文在返回给上一个从站,直至传回给主站。烟感报警系统的拓扑结构如图3所示。

Figure 3. Smoke alarm system topology
图3. 烟感报警系统拓扑结构
2) 从站控制器模块
从站控制器模块主要是在系统启动后执行报文解析功能,一旦检测到有上行报文发送过来就暂存所有数据。首先判断是否是空帧,如果是空帧则判断是否有报警信息需要发送,如果有则组成标准EtherCAT子报文插入EtherCAT协议数据区,没有则直接转发给下一个从站。如果不是空帧则取出一个子报文判断其类型,如果是广播帧就将广播帧数据发给ARM,并判断ARM是否有报警信息需要发送,如果有则组成标准EtherCAT子报文插在广播帧之后发给下一个从站,如果没有报警信息则直接将广播帧转发给下一个从站。如果是普通帧则判断子报文中寻址ID是否是当前从站,如果是就将子报文数据取出发给ARM。如果不是则继续判断下一帧数据,直至取出所有子报文后判断ARM是否有报警信息,如果有则组成标准EtherCAT子报文插入到所有子报文之后发送给下一个从站,如果没有则直接转发给下一个从站。通过这样的方式就可以实现对每个从站数据的飞读飞写功能。EtherCAT从站报文解析流程如图4所示。
3.2. 烟感报警系统主站通讯协议设计
EtherCAT主站在初始化阶段也会向ARM索要主站ID、主站MAC地址、主站IP地址、服务器Mac地址、服务器IP地址等参数。参数配置完毕后启动自检流程,发送初始化帧判断系统中有多少个EtherCAT从节点。在数据发送接收阶段,判断ARM是否有广播报文或普通子报文发送,如果没有则发送空帧去携带下行从站的烟雾报警信息,接收到报警信息后主站发出声光报警并通过UDP协议上报给应用服务器,实现报警信息的远程查看。
4. 硬件平台设计
为了验证基于EtherCAT现场总线的烟雾报警系统的可行性,搭建了如图5所示的硬件平台。这个硬件平台既可以作为EtherCAT主站,也可以作为EtherCAT从站使用。FPGA选用的是Altera公司CycloneIV系列的芯片EP4CE6E22C8N,工作频率为50 M。ARM芯片选用的是NXP公司的Cortex_M3,工作频率是100 M。百兆以太网的晶振频率是25 M,FPGA芯片与百兆以太网之间采用MII接口协议。
5. 系统测试
为了验证本文设计的烟雾报警系统是否可以执行预期的功能,搭建了如图6所示的测试平台。这里选择1个主站和5个从站来验证基于EtherCAT高速数据总线的烟雾报警系统的可靠性。具体做法为:先在第四个从站传感器处产生烟雾,解除报警后在第五个从站传感器处产生烟雾,控制终端结果如图7所示。其中1A、1B、2A、2B、3A代表5个EtherCAT从站,绿色代表运行正常,红色代表产生报警信息。多次实验结果表明该报警系统准确可靠,实时性好,易于管理。

Figure 4. Flow chart of message analysis of slave station
图4. 从站报文解析流程图

Figure 5. EtherCAT main control board
图5. EtherCAT主控板
6. 结束语
针对传统消防类烟雾检测系统检测传感器成本高、难以接入工业物联网的问题,提出一种基于EtherCAT高速数据总线的烟雾报警系统。本设计使用FPGA芯片代替专用控制芯片完成EtherCAT主从站设计。通过实验验证该系统具有稳定可靠、成本低、易于接入工业物联网等特点。
基金项目
浙江省重点研发计划资助项目(No.2018C01093)。