李嘉 杨佃福</P><P> 摘要:随着以太网技术的迅猛发展,将其应用到工控领域,可以达到降低成本,简化结构等成效。而嵌入式系统以其本身体积小,功能多,支持以太网技术等优点,成为工控领域中的新热点。本文所介绍的数据监控系统以嵌入式系统为核心,利用其串口与底层I/O节点相连,上层则直接联入Internet,允许授权的用户在Internet任意一点应用浏览器访问该系统,并实现对下层设备的监控。该系统在楼宇自动化、工厂底层网络等场合有着广泛应用的前景。</P><P> 关键词:嵌入式系统,数据监控,网络服务器,串口通讯</P><P> </P><P> <BR> Abstract: With the rapid development, Ethernet has been ready to be introduced into industry control field to save cost and simplify the system. In this process, embedded system takes an active part in because of its small volume and technique for Ethernet. The watch and control system is based on embedded system, communicates with data nodes by serial port and is directly connected to Internet on the other side. Authorized users can watch and control this system by Internet in any place. There is widespread usage of it in automation building, control system and other fields. </P><P> Keywords: embedded system, control system, web server, serial port</P><P> 一.引言</P><P> 随着以太网技术在Internet上的成功,它也逐步进入传统的工业控制领域。在各种专用于工控的现场总线协议争夺市场的同时,已经有人预言以太网将是最后的赢家。在各大公司纷纷推出其以太网计划后,这个进程被大大加快了。</P><P> 将以太网技术应用到工业底层网络中有以下好处:</P><P> 1.其高速,大容量的特性适应不断增长的信息要求。</P><P> 2.可以做到与上层信息管理层或决策层的无缝连接。</P><P> 3.设备和软件成本大幅下降。</P><P> 4.以太网技术相对普及,人才成本下降。</P><P> 这里开发的嵌入式远程监控系统就是充分利用以太网技术和嵌入式系统的特点,搭建的数据传输系统,可以应用于工控现场,智能大厦等多种领域。该系统体积小,可以放入机顶盒,控制面板,智能仪表等设备中,从而实现Internet无处不在。</P><P> 二.嵌入式系统</P><P> 嵌入式系统 (Embedded System)被定义为:以应用为中心,以计算机技术为基础,软件硬件可裁剪,适应对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。今天,嵌入式系统已经无处不在,从汽车、家用微波炉、PDA、电视机,到工控生产现场、通讯、仪器、仪表、汽车、船舶、航空、航天、军事装备、消费类产品等方面,都能发现嵌入式系统的踪影。</P><P> 在本系统中,我们选择的是由美国LINEO公司出品的嵌入式系统uCsimm。它基于Motorola公司的DRAGONBALL-EZ CPU,使用SIMM72插卡并支持μClinux操作系统。它包括MC68EZ328 MPU、可启动的FLASH MEMORY、DRAM以及UART、SPI、LCD、ETHERNET网卡等外围设备接口。</P><P> 其嵌入式操作系统μClinux就是微内核的LINUX操作系统,是在LINUX 2.0版本的基础上裁减掉存储器管理单元(Memory Management Unit, MMU)得到的。此外,为了将uCsimm设置成网络服务器,又另外添加并调试通过了支持CGI(Common Gateway Interface共用通道界面)的web server软件BOA。</P><P> 它利用RS232串口线和以太网网线与PC机相连,组成可以交叉编译的开发环境,支持C语言,而且可以对uCsimm内核进行擦写,从而加入自己开发的应用程序或升级后的新操作系统。网上还有与之相关的邮件组,世界各地的开发人员通过它来沟通信息,彼此帮助。总之,这一切使得开发人员可以专心应用部分的系统开发,缩短了系统开发周期。目前,国内几家公司(如华恒公司)也开始类似uCsimm产品的开发工作,并且也已经有了相关产品。</P><P> 三.系统结构简介</P><P> 其系统结构图见图1。</P><P> </P><P> 图1 嵌入式远程监控系统</P><P> <br><A HREF="/editor/uploadfiles/learns01/20038291162992615.gif" TARGET=_blank><IMG SRC="/editor/uploadfiles/learns01/20038291162992615.gif" border=0 alt=按此在新窗口浏览图片 onload="javascript:if(this.width>580)this.width=580"></A></P><P> 嵌入式系统uCsimm与下层数据采集节点组成主从(Master and Slave)关系,由主站不断依次发出查询信息,对下层节点进行轮询,而数据结构参考Modbus协议。从站随时监听网络,当发现地址段与自己的地址相同时,继续检查下面的功能段,比如要是读取信息,则把自己测量的数据打包返回,要是写入信息,则把数据段的信息写入相应内存。这就是该系统下层结构流程。</P><P> 而uCsimm与Internet的互联以及与用户的交互功能,则由其嵌入式操作系统中的网络服务器Web Server来完成。uCsimm上配有以太网接口RJ45,当用网线把uCsimm与Internet连接,配置好IP地址并运行网络服务器后,用户在Internet上任何一台机器上就可以在浏览器中敲入IP地址,访问存在uCsimm中的主页了。</P><P> 而用户与服务器的交互是通过CGI程序来完成的。CGI(Common Gateway Interface共用通道界面)简单地讲是个运行在Web服务器上的程序, 由浏览器的输入触发。这个脚本通常是客户端与服务器中其他程序如数据库的桥梁。用户可以通过点击页面,监视下层数据,如温度,开关状态等;或发送命令,如开关电灯等。</P><P> 四.下层串行通讯协议及程序流程</P><P> 为了系统的开放性,我们参照国际流行的Modbus协议来定义串口通讯中的数据结构。Modbus是美国Modicon公司推出的可编程序控制器 (PLC)之间进行通讯的总线标准,目前国内使用的大部分PLC都遵从这一标准。该协议描述如何向其他设备发出请求,回应请求,报错等过程,并建立了一种通用的数据结构(见图2)。它可以使设备识别传递给自己的信息,判断信息类别,并解释数据。如果请求需要回答,还会按照协议要求构造回答信息。</P><P> 起始位 地址 功能码 数据 CRC校验 结束位 <BR> 16bit 16bit N*16bit 16bit </P><P> <BR> 图2 Modbus数据结构</P><P> </P><P> Modbus对于数据的表达有两种方式:ASCII和二进制。前者的起始位是3AH,结束位是0D、0AH,里面的数据也都用ASCII码表示。对于后者起始位和结束位是一段至少3.5个字符长度的间断。本系统应用ASCII表达方式,主站地址为00H,从站地址由01H到0FH。功能码表示主站对从站的各种操作,Modbus有详细的规定,这里借用其中几个,见表1:</P><P> 功能码 操作方式 <BR> 01 读取指定从站的数据 <BR> <BR> 06 向指定从站写数据 </P><P> <BR> 表1:系统中用到的功能码</P><P> </P><P> CRC为通信校验码,用以提高通信的可靠性。它由所发送的数据经过较为复杂的计算而得到。当接收到的CRC与本机计算的CRC一致时,方认为接收数据正确,否则数据有误,将抛弃该数据。</P><P> 在通讯中由主站发出具有上述格式的帧,在地址段填上从站的地址,在功能码段、数据区段及校验段填上相应的内容。从站将与本地地址一致的帧接受进来,应答帧的地址与功能码不变,使主站能识别。在通讯过程中从站一直处于被动地位。若从站在接受过程中出错,不发任何数据包,主站在规定时间内没有收到应答则放弃。</P><P> 举例如下,如主站想看地址为11H的从站温度测量值,可发信号如表2:</P><P> 数据段名称 数据值 <BR> 地址 11 <BR> 功能码 01 <BR> 读取地址高位 00 <BR> 读取地址低位 00 <BR> 读取数据个数高位 00 <BR> 读取数据个数低位 01 <BR> 校验码CRC ―― </P><P> <BR> 而从站的回复信息为: <BR> 数据段名称 数据值 <BR> 地址 11 <BR> 功能码 01 <BR> 字节数 01 <BR> 数据1 1D <BR> 校验码CRC ―― </P><P> <BR> 表2:主从站应答数据结构</P><P> </P><P> 其主站程序流程图如图3:</P><P> <br><A HREF="/editor/uploadfiles/learns01/20038291163762007.gif" TARGET=_blank><IMG SRC="/editor/uploadfiles/learns01/20038291163762007.gif" border=0 alt=按此在新窗口浏览图片 onload="javascript:if(this.width>580)this.width=580"></A></P><P> 图3 主站程序流程图</P><P> </P><P> 五.网络服务器配置及主页设计</P><P> 前面提到在uCsimm中安装了网络服务器软件BOA。通过设置其配置文件,可以指定网页和CGI程序所在路径。这里CGI程序用C语言编写,其实就是一些应用程序,如控制显示灯的亮灭,处理串口数据等,只是它能由远程浏览器通过点击主页而激活,从而实现浏览器和服务器的交互功能。流程如图4:</P><P> </P><P> 图4 客户端与服务器通过CGI程序交互<BR> <br><A HREF="/editor/uploadfiles/learns01/20038291164514442.gif" TARGET=_blank><IMG SRC="/editor/uploadfiles/learns01/20038291164514442.gif" border=0 alt=按此在新窗口浏览图片 onload="javascript:if(this.width>580)this.width=580"></A><BR> </P><P> 用户在远程浏览器输入uCsimm的IP值以后,需要登录用户名及密码,当得到服务器确认后,进入监控界面。上面有对uCsimm上LED灯的开关控制,和串口数据的显示和下传界面,如图5。用主页来显示监控界面,不仅利用了现有IT技术,节省购买和开发监控显示软件的费用,而且使用户不受地域的限制。后一点在智能大厦中十分有意义,比如住户可以在工作单位查看家里的情况,下班前打开家中暖气等。</P><P> </P><P> 六.总结</P><P> 利用以太网和IT技术对传统控制领域进行革新,是市场的需要。在这个过程中,嵌入式系统因其体积小,处理能力强,支持以太网技术和网络服务器等功能,无疑要扮演重要角色。相信以太网与嵌入式系统的结合,将是后PC时代的新的市场技术增长点。</P><P> </P><P> 参考文献:</P><P> 1. An Introduction to Embedded Programming in a Linux Environment. LINEO company.</P><P> 2. CGI程序设计</P><P> 3. 主页设计大全</P><P> 4. LINUX下的程序设计