基于C/S结构的数据协议转发系统服务器的实现
2009-05-19
作者:朱其慎1,杨军霞2,田 巍2
摘 要:根据电力企业现场总线的特点以及企业对设备运行数据进行远程采集管理的需求,实现了一种在嵌入式软硬件平台下开发的系统——数据采集协议转发管理系统。
关键词:总线协议;数据转发;服务器
嵌入式系统技术是目前电子设计领域最为热门的技术之一,目前已经广泛地应用于军事国防、消费电子、网络通信、工业控制等各个领域。根据对电力工业现场总线控制信息数据交互系统的研究,其现场总线非常多,如RS485、CAN和工业以太网等,总线上的数据协议也很多,最常见的有RS232、Modbus、CAN、TCP/IP等等,但这些协议数据之间不能进行直接的交互,而且随着工业控制服务器以及企业管理信息系统的发展,需要将这些数据进行远程传输,并能进行远程控制,这就需要能够完成这种任务需求的设备。本设计就是针对上述情况,满足企业的数据控制需求而进行设计开发的嵌入式网关设备。该嵌入式网关能够接收RS232、RS485总线协议的数据并能实现对TCP/IP协议的数据包的转发,实现数据的双向传输。
1 系统方案
根据数据采集协议转发管理系统所要实现的不同总线协议之间进行数据转换的任务,需要实现如下的几个功能:
(1) 串行通信接口RS232的通信功能;
(2) RS485接口的通信功能;
(3) TCP/IP协议网络接口的通信功能;
(4) 串口和TCP/IP协议数据协议转发功能。
2 实现原理
嵌入式系统处理器采用ARM处理器—S3C2410,嵌入式操作系统为Linux。其硬件组成如图1所示。
该协议转换管理系统能够接收RS232、RS485总线协议的数据和TCP/IP协议的数据包,实现RS232、RS485和TCP/IP的双向数据转换。当接收到来自于以太网的控制信息时,协议转换器对其解包提取原始信息,并以RS232、RS485总线可以接收的格式发出;当接收到来自于RS232、RS485总线的1报文时,提取信息后加上IP帧头,以以太网帧格式发出,其系统模型如图2所示。
3 软件系统设计
3.1 串口通信编程
Linux中对于每一个串行端口,内核有一个设备驱动程序来负责端口的输入输出。该串口的驱动在Linux内核中已经完成,因此,对串口的操作是通过对串口设备文件的操作来实现的。访问串口只需要打开相应的设备文件。在Linux下,串行口COM1和COM2对应的设备文件分别为/dev/ttyS0和/dev/ttyS1。串口编程的一般步骤如图3所示。
RS485接口通信通过RS232转RS485通信接口硬件实现,其程序开发流程与上文所述类似,这里不再赘述。
3.2 网络通信编程
网络通信程序设计分为服务器端和客户端,本文利用面向连接的TCP/IP协议进行程序设计,完成数据交互。服务器/客户机模式是网络通信交互的最常用模式,基于TCP/IP数据流的socket网络编程流程如图4所示。
3.3 系统完成功能
客户端通过以太网与数据转发服务器连接,现场Modbus、CAN、DNP总线协议仪表通过接口与数据转发服务器连接,用户通过客户端发送仪表报文,报文经过数据转发服务器转发给仪表,仪表接收到报文后,进行相应处理,并把数据通过数据转发服务器转发给客户端,其结构如图5所示。
4 系统测试
数据发送测试:在客户机A上通过青云ComMax通信调试软件,设定系统数据转发服务器参数,连接服务器,并发送正确Modbus报文,如图6所示。
发送的报文通过转发服务器转发到现场仪表中,现场仪表根据报文中的指令,返回远程Modbus仪表数据报文,如图7所示。
返回的Modbus报文中包含了仪表采集的现场数据,可以根据这些数据进行分析,也可以把数据保存在企业现场仪表数据库中,满足企业运行的分析、决策。
通过以上对数据交互管理平台Modbus协议的严格测试表明:数据交互管理对Modbus协议能够及时快速地响应,能够响应多客户机的访问,响应时间能够在项目要求的范围内,响应数据无错误。多台客户机可以同时对数据交互管理平台进行访问,数据交互管理平台能够及时响应多台客户机的访问。
参考文献
[1] 刘震,徐学洲.一种基于多级分布式管理的数据采集软件模型[J].现代电子技术,2003,26(19):75-77,80.
[2] 汪奇,朱煜华.基于B/S结构的数字视频监控系统的设计与实现[J].计算机工程,2006,32(19):251-252,272.
[3] 李善平,刘文峰,王焕龙.Linux与嵌入式系统[M].北京:清华大学出版社,2003.
[4] 陈赜.ARM9嵌入式技术及Linux高级实践教程[M].北京:北京航空航天大学出版社,2005.
[5] 邹思轶.嵌入式Linux设计与应用[M].北京:清华大学出版社,2002.