APP下载

嵌入式网关设计及其在异构系统集成中的应用

2011-06-01

自动化仪表 2011年6期
关键词:通信协议电平网关

任 雯

(三明学院物理与机电工程系,福建 三明 365004)

0 引言

随着计算机技术和通信技术的飞速发展,底层监测设备(如数据采集模块、智能仪表和数控机床等)与局域网或Internet实现了无缝连接。这就使远程监测成为工业发展越来越迫切的需求。许多传统的工业监控设备基于RS-485、RS-232和CAN Bus等通信协议构成轻量级串口网络,但由于设备自身的特点和协议无法接入更大的计算机网络等原因,使得串行通信设备与TCP/IP网络主机之间桥接设备的研究,以及通过Web实现嵌入式设备和控制中心的交互成为当前嵌入式技术的热点问题。

1 嵌入式工业以太网网关

1.1 嵌入式Internet技术及网关简介

嵌入式Internet技术的出现是Internet发展历史上的一个里程碑,它依托于Internet、Web和嵌入式三大技术。嵌入式Internet技术是一种设备接入技术和异构网络互连技术。它主要解决的问题是通过Web和嵌入式技术,实现从不同子网和不同的物理区域对接入到Internet的设备和异类子网进行监控、诊断、测试、管理和维护等功能,从而使接入到Internet的各种设备或其他类型的子网具有远程监控、诊断和管理的功能[1-2]。本文的总体设计目标是开发出低成本、高性能、配置简便灵活、可支持多种简单的通信协议以及针对不同类型的工业现场监控设备及其网络的Internet解决方案。

网关又被称为网间协议转换器,用于连接采用不同通信协议的网络,实现网络之间的数据传输和共享。如要将串行口的数据转发到网络上,实现数据的远程传输,就必须使用网关。

1.2 网关总体设计方案

本文提出了一种基于嵌入式Internet技术的工业以太网网关设计方案,以实现串口和以太网之间的数据传输。该网关采用32位高性能的ARM9嵌入式处理器S3C2410,通过移植嵌入式操作系统Linux,实现TCP/IP协议和HTTP Server的运行,形成一个用户可以通过网络浏览器进行远程访问的服务器。同时,通过RS-485和CAN等轻量级网络,将众多的嵌入式设备连接起来,使用户可以利用IE网页直观地看到界面,且通过嵌入式网关对嵌入式设备进行监控和管理,可实现异构系统的集成。

以工业以太网网关为基础的现场监控设备接入Internet的实现框图如图1所示。

图1 设备接入Internet框图Fig.1 Connection diagram of equipment to Internet

2 网关硬件系统设计

网关电路以Samsung公司生产的、内含ARM920T核的S3C2410芯片为核心,采用系统核心板和系统接口底板分开设计的方法进行设计。网关硬件系统结构如图2 所示[3]。

图2 嵌入式网关硬件结构图Fig.2 Hardware structure of the embedded gateway

图2中,核心电路板选用了北京博创兴业科技公司生产的UP-NETARM2410系统核心板,包括S3C2410芯片;1片K29F2808,用来构建64 MB的Flash存储系统;2片HY57561620BT-H,用来构建64 MB的SDRAM存储系统。系统接口底板电路为自行设计,主要单元电路及接口说明如下。

①系统电源电路为系统提供5 V、3.3 V两组电压,并为S3C2410及外围电路供电;

②20脚JTAG接口可对芯片内部的所有部件进行访问,并对系统进行软硬件调试和编程等;

③复位电路采用74HC04,可完成系统上电复位和在系统工作时的用户按键复位;

④9芯RS-232C串行接口,选用MAX232CSE芯片;

⑤ 以太网接口芯片选用AS88796芯片,10/100 Mbit/s自适应;

⑥CAN总线接口芯片选用MCP2510芯片;

⑦通用I/O接口电路,外接7个LED显示器和4个按键,主要用于硬件调试、程序控制流程和中断等。

2.1 串行接口电路

RS-232C是目前较为通用的串行数据传输总线标准,采用的接口为9芯或25芯的D型插头。在实际使用中,要完成最基本的串行通信功能,只需RXD(数据接收)、TXD(数据发送)和 GND(地)三根线。由于RS-232C标准定义的逻辑电平信号与S3C2410系统的LVTTL电路定义的逻辑电平信号完全不同:LVTTL的逻辑“1”电平对应 2~3.3 V,逻辑“0”电平对应 0~0.4 V;而 RS-232C标准采用负逻辑方式,逻辑“1”电平对应-15~-3 V,逻辑“0”电平对应+3~+15 V。因此,两者之间要通信就需要进行电平和逻辑关系的变换。

本设计采用MAX232CSE芯片来实现RS-232C与S3C2410的逻辑电平转换,并采用目前常用的9芯D型插头为接口。相关的基本电路如图3所示。同时,根据需要,本系统设计了2个RS-232接口,一个用来和主机通信,另一个用来读取挂接的工业采集设备数据。

图3 RS-232接口电路图Fig.3 Circuit of RS-232 interface

2.2 以太网接口电路

网络控制器S3C2410内嵌了1个可以以10/100 Mbit/s的速率工作在半双工或全双工模式下的以太网控制器。在半双工模式下,控制器支持 IEEE 802.3的CSMA/CD协议;在全双工模式下,控制器支持IEEE 802.3 MAC控制层协议。以太网控制器的MAC层支持媒体独立接口(media independent interface,MII)和带缓冲的DMA接口(buffered DMA interface,BDI)。由于S3C2410片内带有1个MAC层控制器,因此,本系统的以太网接口选择了同时包含MAC层控制器和物理层接口的以太网接口芯片AX88796[4]。

S3C2410 的数据总线 XDATA[15,…,0]与 AX88796的数据总线SD[15,…,0]直接相连;IOCS16B脚通过一个电阻接高电平,使 AX88796工作在16位模式;AX88796的地址使能端与S3C2410的nECS<3>相连,提供AX88796作为外部I/O设备的片选信号;IORB、IOWB分别为AX88796的读、写使能端,分别与S3C2410的nOE、nWBE<0>相连;为减少连线、降低成本,将JP脚接高电平,使AX88796工作在跳线模式。

S3C2410通过 AX88796收发数据,即通过控制AX88796的32个端口寄存器来完成收发功能,所以,只用S3C2410的5条地址总线与AX88796的地址总线相连即可。又由于AX88796作为S3C2410的一个外部I/O设备,且工作在16位方式,因此,其地址线SA[0,...,4]与 ADDR[1,…,5]相连。AX88796 为高电平复位芯片,其复位端与系统复位电路的非门前一级相连。AX88796的媒体接口TPIN±、TPOUT±与自带隔离变压器的RJ45接口相连,实现与以太网的物理连接。AX88796与S3C2401接口框图如图4所示。

图4 AX88796与S3C2410接口框图Fig.4 Interfacing block diagram between AX88796 and S3C2410

3 网关软件系统设计

系统的软件设计主要包括嵌入式Linux操作系统的移植(Boot Loader、内核和根文件系统的移植)、嵌入式Web服务器Boa的移植和设备驱动程序编写3部分[5-7]。由于前两部分实现方法比较规范[8],参考资料较多,限于篇幅,其内容不做说明,请参考文献[8]。

许多企业在逐年的设备改造与升级过程中,由于没有足够的资金一次性投入购置同一品牌的设备,因此,往往是分阶段采购设备。而各种设备自动化水平参差不齐,就会出现多种设备和多种信息子系统并存的异构环境。为了在企业升级的过程中降低成本,需要将以往的分散控制系统(distributed control system,DCS)与现场总线控制系统(fieldbus control system,FCS)整合起来。但这些子系统独立性强、软件封闭和互操作性差,导致系统集成难度较大。对此,本网关采取把特定工业监控设备串口通信协议集成到网关软件里的办法,使这些被监控的数据对象都能通过Internet/Intranet传送,实现多总线异构系统的集成。

为了实现在线测试,以厦门宇电AI808智能仪表为例,介绍其采集THJ-2型高级过程控制系统试验装置提供的锅炉液位值的过程。AI系列仪表使用异步串行通信接口,接口电平符合RS-232C或RS-485标准中的规定,数据格式为1个起始位、8位数据、无校验位、1个或2个停止位。所开发的网关中嵌入了厦门宇光自动化公司生产的AI系列显示控制仪表的专用串行通信协议——AIBUS。

AIBUS采用16进制数据格式表示各种指令代码和数据,标准的通信指令有两条,即读指令和写指令。两条指令使得上位机软件编写更容易,且能完整地对仪表进行操作。标准读、写指令格式如下。

读:地址代号+52H(82)+要读的参数代号+

写:地址代号+43H(67)+要写的参数代号+

为了在一个通信接口上连接多台AI仪表,需要给每台AI仪表编一个互不相同的通信地址,即地址代号。有效的地址代号为0~80(部分型号为0~100)。所以,一条通信线路上最多可连接81台AI仪表,仪表的通信地址由参数ADDR决定。

仪表参数采用1个8位二进制数(一个字节,写为16进制数)的参数代号来表示。它在指令中表示要读/写的参数名。

校验码采用16位求和校验方式,其中读指令的校验码计算方法为:

写指令的校验码计算方法为以下公式做16位二进制加法计算得出的余数(溢出部分不处理),即:

无论是读还是写,仪表都会返回以下10个字节数据,即:测量值PV+给定值SV+输出值MV及报警状态+所读/写参数值+校验码。

系统采用主从式多机通信结构,每向仪表发一个指令,仪表即返回一个数据。编写客户端(上位机)软件时,注意每条有效指令仪表应在0~150 ms内作出应答,而上位机也必须等仪表返回数据后,才能发送新的指令,否则将引起错误。如果仪表超过最大响应时间(150 ms)仍没有应答,则原因可能是指令无效、通信线路故障、仪表没有开机或通信地址不合等,此时上位机应重发指令或跳过该地址仪表。

在本测试系统内部,厦门宇电AI808智能仪表的通信协议以文件的形式在Linux下实现,以便日后扩展和集成更多的工业监控设备的通信协议。

由于要通过客户端的IE浏览器访问网关内嵌的Web服务器,因此,需要在网关网络配置中添加网口的IP地址、子网掩码、网关地址和DNS(域名服务器)地址。这就需要修改Linux中的一部分网络配置文件。修改的文件如下。

① /linux-dist/vendors/Samsung/2410/rc文件:rc文件主要定义了操作系统在启动过程中需要完成的一些初始化工作。网卡的IP地址、子网掩码和网关地址都在此配置。

② 在/linux-dist/vendors/Samsung/2410/路径下添加resolv.conf配置文件,用来配置DNS服务器地址。在这个文件中,可以配置最多3个DNS服务器地址,网口在进行域名解析时,依次查找服务器地址。

③ /linux-dist/vendors/Samsung/2410/Makefile,由于在下载的Linux源码包中并没有加入resole.conf文件,因此,如果要将该文件编译进文件系统,还需要修改Makefile。在文件中添加 $(ROMFSINST)/etc/resolv.conf,再重新编译 romfs文件系统,即 make romfs,就可以在etc/文件夹中看到此DNS的配置文件。

以上文件修改好之后,重新编译内核,并下载启动Linux系统,系统中以太网口的IP地址、子网掩码、网关地址和DNS服务器的地址就生效了。

试验结果表明,通过对客户端IE网页中tempr变量的刷新,能实现厦门宇电AI808智能仪表所采集的液位值的动态实时刷新,实现在客户端通过Web浏览器实时监控宇电AI808智能仪表。

4 结束语

本文基于嵌入式Internet技术,探索设计了工业以太网智能高速网关的方法,为工业现场大量实际使用中的监控设备提供了上网解决方案,提高了系统的开放性和兼容性,实现了异构网络集成,使得远程用户可随时随地通过Web浏览器的友好界面,浏览和管理现场监控设备。本文提出的使用嵌入式网关实现异构系统集成方案已成功应用于某针织厂的信息化改造工程,通过将不同总线PLC控制器的通信协议集成到网关,为该厂节约了大笔更换设备的费用。实践表明,本方案能为企业信息化系统的建立及自动化改造提供高性能和低成本的解决途径,具有广阔的工业应用前景。

[1]李丽娜,邵敏权,马庆峰.浅谈嵌入式系统的现状及发展[J].长春工业大学学报:自然科学版,2004,25(2):74-75.

[2]陈明.网络设备教程[M].北京:清华大学出版社,2004:155-162.

[3]徐联贵.基于嵌入式的工业以太网网关设计[D].乌鲁木齐:新疆大学,2007.

[4]熊茂华.基于AX88796的嵌入式网络设备驱动程序设计[J].自动化仪表,2008,29(3):29 -34.

[5]田泽.ARM9嵌入式Linux开发实验与实践[M].北京:北京航空航天大学出版社,2006:100-102.

[6]赵跃华,杜云海.嵌入式安全Web网关的设计与实现[J].计算机工程与设计,2006,27(4):565 -567.

[7]杜辉,舒莲卿.基于嵌入式Web服务器的网络设备测控系统设计[J].自动化仪表,2006,27(3):7 -10.

[8]江崇科,黄智刚,张军,等.嵌入式网关的设计与实现[J].计算机工程与设计,2006,27(1):43-46.

猜你喜欢

通信协议电平网关
三电平PWM整流器下的地铁牵引供电系统探讨
基于Wireshark的列控中心以太网通信协议解析器的研究与实现
信号系统网关设备的优化
三相三电平PFC(VIENNA)控制策略研究
三电平H桥逆变器差模干扰源研究
关于电力物联网信息模型及通信协议的设计要点分析
LTE Small Cell网关及虚拟网关技术研究
应对气候变化需要打通“网关”
一种实时高效的伺服控制网关设计
基于风险分析的安全通信协议简化研究