1 引言
WWcW_PLCJS_COM-PLC-技.术_网
目前在工业控制网络的底层(设备层),控制信息流的传递主要采用现场总线技术,它具有良好的数据采集有效性和实时性,而在工业控制网络中间的控制、管理层大多采用以太网技术互联,它具有开放的统一协议标准,互联成本低廉的优点,使得现场总线控制系统通过以太网与企业信息网集成实现工厂管控一体化成为大势所趋[1]。因此着力解决工业控制以太网与现场总线之间互联存在的问题,如统一底层之间的传输协议,降低衔接难度,提高总线的传输速率,缩短调试时间、降低维护成本和二次开发的难度,有着十分现实的意义。WWW_PL※CJS_COM-PLC-技.术_网
LonWorks现场总线的标准完全开放、即插即用互联方便、多通讯媒介、自由拓扑网络等性能在自动化系统中占有重要的地位。Lon总线与以太网相连需经过一个网关,Echelon公司提供了这种产品,但因为成本较高,使用范围有限。如果采用单片机开发这种网关,则具有投资少,成本低,开发周期短,应用范围广的优点。本文在对以太网协议与LonTalk的协议分析的基础上,自行设计了两者之间的转换协议格式,在ATmega128控制器的基础上完成了系统的各部分硬件模块的设计,实现了以太网与Lon总线互联。——可——编——程——控-制-器-技——术——门——户
2 以太网与LonWorks现场总线的协议转换WWW_PLCJS@_COM%-PLC-技.术_网
以太网是遵照IEEE 802.3标准的局域网,使用带冲突检测的载波监听多路访问(CSMA/CD)技术,采用以太网的介质访问控制(MAC)算法。它的帧格式如表1所示。
WWW_PL※CJS_COM-PLC-技.术_网
表1 以太网帧格式
WWW.PLCJS.COM——可编程控制器技术门户
WWcW_PLCJS_COM-PLC-技.术_网
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
LonTalk协议是LonWorks技术的网络通信协议,它遵循由国际标准化组织(IS0)定义的开放系统互连(OSI)参考模型。它提供参考模型所定义的全部七层服务,Neuron芯片的三个处理器分别承担七层协议的服务功能,它们之间的对应关系如表2所示[2]。 WWW_PLC※JS_COM-PmLC-技.术_网
表2 LonTalk协议与OSI模型的对应关系
WWW_PLC※JS_COM-PmLC-技.术_网
plcjs.技.术_网
WWW_P※LCJS_CO※M-PLC-技-.术_网
以太网与LonWorks互联关键是在网络层完成以太网TCP/IP协议与Lon网LonTalk协议的转换,实现以太网与Lon网间的互联。其中ATmega128单片机是通信控制主体,通过对ATmega128单片机编程控制网络接口控制器RTL8019AS的各种寄存器实现对以太网数据帧的发送和接收,完成以太网与主CPU(ATmega128单片机)间的数据传输,并向下与神经元芯片通信,它将从神经元芯片读到的数据封装成以太网帧发送,或将从以太网接收数据帧解包读出数据并封装成LonWorks协议报文发送给神经元芯片。为了使它们之间的数据能相互传送,自行定义了一种神经元芯片Neuron3150与ATmega128相互通讯的协议,协议的格式如表3所示:WWW_PLC※JS_COM-PmLC-技.术_网
表3 ATmega128与Neuron3150通信的数据包协议格式
WWW_P※LCJS_CO※M-PLC-技-.术_网
P.L.C.技.术.网——可编程控制器技术门户
WW.W_PLC※JS_C,OM-PL,C-技.术_网
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
表3中格式定义:WW.W_PLCJS_COM-PLC-技.术_网
(1) ‘E’(即字母E换成十六进制的ASCII)为同步头,长度为8bit;P.L.C.技.术.网——可编程控制器技术门户
(2) TYPE为后续数据的意义,长度为8bit。0xCC为复位,ATmega128复位后,第一个数据包的TYPE必须是复位,NEURON不对TYPE为复位的数据进行处理。0xAA为正常收发,(NEURON复位也发0xAA,只是其不对复位后第一个收到的数据包进行处理);plcjs.技.术_网
(3) DO_LEN为其后表示DO字节的个数;WWW_P※LCJS_COM-PLC-)技.术_网
(4) DO_Data反映DO端口的状态,为字节类型,每个字节表示8个DO端口状态,第一个字节的最低位为DO01;WWW_PLC※JS_COM-PmLC-技.术_网
(5) DI_LEN为其后表示DI字节的个数;WW.W_PLC※JS_C,OM-PL,C-技.术_网
(6) DI_Data反映DI端口的状态,为字节类型,每个字节表示8个DI端口状态,第一个字节的最低位为DI01;WWW.PLCJS.COM——可编程控制器技术门户
(7) AO_LEN为其后表示AO字节的个数;WWW_PLCJS@_COM%-PLC-技.术_网
(8) AO_Data反映AO端口的状态,为16bit数据,每个数据表示1个端口,第一个数据为AO01。先高字节,后低字节;W1WW_P4LCJS_COM-PLC-技.术_网