摘 要:介绍了所开发的Ethernet接入模块,重点论述了基于Ethernet接入模块的机动车安全性能检测线监控系统各种功能的实现。
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
引言
以太网(Ethernet)因其技术成熟,通信速率高,硬件产品种类丰富、价格低廉,已在商用计算机的通讯领域和工业控制系统的信息管理领域得到了广泛的应用。但长期以来由于Ethernet采用的介质访问控制方式是冲突检测载波监听多点访问CSMA/CD,决定了Ethernet通信具有不确定性,成为其应用于工业自动化控制网络的主要障碍。
随着以太网通讯速率成几何级数的增长,百兆/千兆网技术的成熟、交换机技术和全双工通信方式的发展,以太网在低网络负荷时通信响应确定,并能可靠传输工业现场数据,使以太网用于工业现场具备了现实可能性。与其它现场总线相比,采用以太网的工业控制网络具有结构简单、设备成本低、传输距离远等诸多显著的优点。
以太网进入控制现场的关键是现场设备的嵌入式Internet技术,目前已开发出的产品主要是在现场设备的16位或32位高性能MCU上驻留TCP/IP协议栈,通过与设备上的WEB服务器交互来达到监控设备的目的。对于中小型的普通工业控制现场而言,这类产品价位偏高,并不实用。笔者开发了基于通用8位单片机的Ethernet接入模块,应用于机动车安全性能检测线现场,设计并完成了一套功能完备的机动车安全性能检测线监控系统。
监控系统结构
机动车安全性能检测线监控系统如图1所示。现场各检测设备(含光电管、继电器等)通过Ethernet接入模块与监控节点、数据库服务器、WEB服务器构成总线式Ethernet网络,其物理层实质上是基于交换式集线器的星形结构。
系统中,Ethernet接入模块嵌入各检测设备,一端与检测设备的I/O接口或RS-232等串口通信,另一端接入基于TCP/IP协议的以太网。现场检测的控制主要靠主控机来完成,依据流程,主控机通过Ethernet接入模块和各检测设备之间进行控制信息交互,从检测设备读取的检测数据存入网络数据库中。监控管理机除可以进行检测项目、标准、权限设定等静态管理外,还可对现场的任一检测设备进行实时监控。远程监控中心通过Internet访问检测线的Web服务器,根据权限实现对检测线的远程监控,亦可借助Internet供应商提供的服务,通过Ethernet接入模块直接对现场设备进行控制。
图1 机动车安全性能检测线监控系统
图2 Ethernet接入模块结构
图 3 现场级以太网节点的通信协议
Ethernet接入模块
模块结构
Ethernet接入模块实质上是一个网络协议转换器,主要完成TCP/IP协议与现场总线RS-232协议的转换。模块结构如图2所示。该模块将通用的8位单片机与以太网控制芯片相结合,加上相应的外围电路而构成。可分成三个子模块:以太网控制芯片子模块,负责接收以太网帧,并把数据送给单片机处理;接收单片机发来的数据,按以太网帧格式发到以太网。单片机子模块,负责控制整个模块,从以太网控制芯片子模块中将数据包读入内存,进行拆包处理,并将有关数据发向RS-232串行接口;将RS-232串行口来的数据按有关协议进行打包,送以太网控制芯片子模块发至以太网上。扩展子模块,单片机外围扩展了程序和数据存储器,满足程序和数据的存储需要。
为模块开发的软件主要有:模块初始化程序、以太网控制器驱动程序、TCP/IP协议栈程序、系统网络配置程序等。模块初始化程序用于设置单片机工作模式及外围芯片选择字;以太网控制器驱动程序用于设置以太网控制芯片的工作状态及工作方式,配置收发数据的缓冲区;TCP/IP协议栈程序实现ARP、IP、UDP协议;系统网络配置程序用于给监测系统分配IP地址及域名。
TCP/IP协议“剪裁”
用于现场级的以太网TCP/IP协议如图3所示。
受8位单片机自身结构和功能的限制,从实用、够用角度出发,该模块对嵌入单片机的TCP/IP协议栈进行了“瘦身”处理,对TCP/IP进行“剪裁”,主要保留数据传输的基本功能。
由于机动车安全性能检测线负责监控的站点相对固定,线上测控数据量非常小(一次数据传送量一般不超过100Byte),“剪裁”的方案是:在链路层,单片机维护一个静态的IP地址与MAC地址的映射表,取消RARP,实现的ARP也仅响应网络ARP请求,发送ARP回答包。请求者广播出包含ARP请求的以太网帧(帧类型为0X0806),目的以太网地址为全1的广播地址,本模块收到后,发送一个包含自身MAC地址的ARP回答,以使以太网上PC主机建立和维护IP地址和MAC地址的映射表;在网络层,取消ICMP协议,在处理IP报头时,不考虑数据分片和优先权问题,在服务类型和标志偏移域全部填“0”,在“协议”域填“17”,程序仅对头核校和和上层是否是UDP协议进行判断; 在传输层,选择基于无连接的UDP,而不用TCP。TCP虽然是基于连接的可靠性传输协议,但开销大,对汽车安全性能检测线监控网络而言,通过采用超时重发、应用层端口判断、校验值检查等措施,可以有效解决UDP的无连接和不可靠问题。“剪裁”后的TCP/IP协议栈程序只有8KB大小,既适应了单片机的存储结构,也完全满足现场单片机通讯需求。
模块工作流程
模块上电、初始化后,单片机采用查询方式判断以太网控制芯片中是否收到数据包,若有就读入内存,拆包,若是ARP包,则进行ARP响应;若是UDP包,拆包,检查应用层端口、检验值,判断应用层数据是否为I/O操作命令,是则执行I/O操作命令,其中读I/O端口的数据要打包发往网络;若不是I/O操作命令,将应用层数据从TXD口送出。采用中断方式接收RXD口来的数据,打包送以太网。UDP数据包在网络中采用超时重发、出错重发机制,保证模块与控制节点间按流程进行通信。
监控实现
主控机等监控计算机与现场检测模块之间的节点通信、现场测控管理的实现以及从远程监控计算机对现场节点的访问等全面监控方式的实现在设计了Ethernet接入模块后均可方便的直接触及现场模块,从现场实时采集数据、控制管理,真正做到点对点测控管理,简化监控管理的模型。
节点通信实现
主控机、监控管理机和WEB服务器与各Ethernet接入模块的通信基于Delphi6.0的TNMUDP组件,是无连接的Socket机制。UDP数据报传送时,双方各先建立一个套接字,然后将各自的套接字和本地网络地址绑定在一起,调用sendto()函数发送数据,调用recvfrom()函数接收,UDP数据拆包后按定义的通信协议进行处理(包括安全验证、出错重发等)。
现场测控管理实现
用Delphi6.0结合SQL Server 2000开发主控机程序和监控管理机程序。主控机将检测项目分成若干工位,上线检测的汽车登录后在线上获取唯一ID标识,并利用多线程技术控制多辆汽车同时在线,按登录时确定的项目进行检测。主控制机工作时,禁止网络其它主机与现场检测设备进行通信。监控管理机一是在现场检测设备工作时,从数据库服务器实时地读取车辆的检测信息和设备状态信息,监控数据超差和状态异常等情况;二是在检测线空闲或出现故障时,可直接与现场设备分别进行通信,读取设备的自检信息和设备的状态信息,分析判断设备正常与否或故障原因。
远程监控实现
由于采用以太网技术给每个现场模块设定IP地址,使其在网络上具有了唯一性的节点,对其的访问也就变得比其他总线形式更加简单,主机只需要根据Socket编写通用的访问网络节点的程序,Ethernet接入模块均可按照UDP协议进行识别和处理,使得程序结构简化。
本系统远程监控基于B/S模式,采用AcTIveX控件通过Socket的机制与网关接口服务程序相连,由服务程序读取数据库检测数据和信息,并送到客户端。当检测线需要远程维护或诊断时,服务程序与各检测设备的Ethernet接入模块通信,读出设备自检和光电管、继电器状态等信息,显示在远程客户端浏览器页面上。为使远程监控或诊断具有更强的现场感和实时性,可将监控管理机的程序功能移植于远程客户端,借助Internet上的VPN服务,远程对现场各检测设备直接进行测控。
安全控制措施
监控系统在检测线内网加装测毒、杀毒软件,内网与外网之间构筑防火墙,采用包过滤、应用网关技术和身份认证技术,防止非授权的外网用户访问内网数据或操作控制现场检测设备。
结语
Ethernet接入模块体积小,功耗低,成本低廉,接入方便,在机动车检测线现场使用,减少了监控网络的结构层次,使整个工业管理现场总线统一化,信息管理层与现场控制层首次采用一样的总线技术完成;省去了485总线方式中的多串口卡、串并行数据线等硬件设备和大量的数据线路;使控制程序与检测设备之间的通信统一起来,有效解决了为适应不同设备的不同通信方式而更改控制软件的问题,提高了控制软件的独立性,增强了软件的移植性。通过现场工作验证,本系统具有工作稳定、可操作性强、通讯实时性好等特点。
下一篇:开关电源电感值的确定