基于嵌入式uClinux的远程监控系统
2014-07-28徐德琴卞维新
徐德琴 卞维新
摘要: 该文提出了一种基于ARM-uClinux和Web技术的嵌入式远程监控系统,讨论了系统的具体技术及实现方案,该系统可以实现远程数据的现场采集,经以太网口通过网络将采集到的数据传送给远程用户。通过Web浏览器远程用户可以对远程数据访问并做出相应的远程控制决策。
关键词: 远程数据;采集;控制;uClinux;S3C44B0X
中图分类号:TP368 文献标识码:A 文章编号:1009-3044(2014)17-4147-03
The Remote Monitoring System Based on Embedded uClinux
XU De-qin, BIAN Wei-xin
(College of Mathematics and Computer Science, Anhui Normal University, Wuhu 241003, China)
Abstract: The remote data acquisition and control system is designed based on uClinux operating system in this paper, and the specific technology and implementation of this system are discussed. By Ethernet,this system can collect field data and transmit them to the remote users who can also access and control the system via web browser.
Key words: remote data; acquisition; control; uClinux; S3C44B0X
早期的数据采集与控制系统大多采用8位或16位单片机作为硬件平台,用户在此平台之上开发一些简单的软件实现相应的监测控制功能。早期的数据采集与控制系统由于硬件的限制,实现TCP/IP协议比较困难,要想实现必须附加一些额外的开销,实现成本相对较高。因此,传统的数据采集与控制系统无法满足数据的远距离采集与传输,并且存在安全性和通用性问题。为了解决以上问题,该文采用了基于ARM7TMDI的嵌入式处理器S3C44B0X和uClinux嵌入式操作系统相结合构建嵌入式Web远程监控系统[1]。
1 系统硬件平台结构
基于嵌入式uClinux的远程监控系统的硬件平台的核心是建立适合uClinux运行的硬件环境,这里选用的是S3C44B0X处理器[2]。远程监控系统的基本框架如图1所示。本系统中嵌入式系统Web服务器的成功搭建是该系统能够实现远程监控的关键。Web服务器把现场的传感器与终端的人机界面连接起来,实现远程监控。通过HTTP协议和Web页面形式实现对监控系统的远程访问和控制[3]。通过标准的接口形式和通信协议,监控系统借助Web服务器提供的基于浏览器方式的可视化操作和控制界面可以向任何网内的合法用户提供便利的远程控制操作,用户熟悉的Web浏览器成为远程监控系统的最前端控制平台。
2 嵌入式Web服务器硬件设计
本文设计的嵌入式Web服务器主要由系统主板和系统扩展板两大部分构成,如图2所示。具体包括:S3C44B0X处理器、FlASH存储器、SDRAM存储器及相应功能扩展模块,它们构成了系统服务的各个功能模块。
2.1 S3C44B0X微处理器
S3C44B0X是拥有以ARM7TDMI为内核的16/32位RISC处理器[3],为手持设备及远程监测控制等特殊性应用提供了非常好的微控制器解决方案。此外,它还拥有基于以太网应用系统的许多优良性能。它的CPU内核为ARM7TDMI处理器核,集成了Thumb代码压缩器,具有低功耗、全静态和高性能的特点。S3C44B0X还提供了大量内置部件:8K一体化的Cache/SRAM、LCD控制器、DMA控制器、系统管理器、可编程I/O端口、中断控制器和以太网控制器,并可方便地进行总线扩展。
2.2 基于ARM核的微控制器S3C44B0X的系统存储器
S3C44B0X处理器采用统一编址的方式,最大可寻址范围为256MB,并映射到8个32MB的地址空间。S3C44B0X的系统存储器主要由闪速存储器(FLASH)同步动态随机存储器(SDRAM)两部分构成。FLASH存储器具有带电时系统自身可以进行电擦写,掉电时数据不遗失,功耗低、容量大和檫写速度快等优点。在S3C44B0X的存储器系统中FLASH存储器主要用于存放系统的启动代码、系统内核以及一些系统掉电后需要保存的用户数据等。该文选用的是16位的SST39VF160芯片,容量是1M×16位(2M字节)。
SDRAM是在标准DRAM中加入同步控制逻辑,使得SDRAM能够和系统工作在同一频率上。它的优点是存取速度快,远远高于FALSH存储器的存取速度,支持突发性存取操作,硬件成本低,价格低廉;其缺点是掉电后数据会丢失。SDRAM在嵌入式系统中常常用作主存,系统工作时用于运行操作系统、用户程序等,以提高系统的运行速度,相当于PC机的内存。本系统SDRAM选用HY57V641620,存储容量为4组×16M位(8M)字节。
2.3 以太网接口
以太网接口由媒体接入控制器(MAC)和物理层接口收发器(PHY)两部分构成。S3C44B0X处理器内部集成了一个以太网控制器RTL8019AS,它集成了MAC和PHY的功能。RTL8019AS与NE2000相兼容,具有8/16位总线模式,内置的双DMA通道和FIFO完成简单有效的包管理(数据帧的接收和发送)功能,本地DMA通道的传输速率高达10Mbit/s。endprint
3 基于嵌入式uClinux的Web服务器
3.1 嵌入式Web服务器的设计方案
uClinux支持Httpd、Thttpd和Boa 3种Web服务器。其中Httpd Web服务器是最简单的一种,不支持认证,不支持CGI,功能最弱,可实现静态Web服务。Thttpd和Boa都支持认证、CGI等,可提供与用户交互的动态Web服务。为了实现动态Web技术[4,5],必须选用支持CGI的Web服务器。而Boa Web服务器是一单任务的小型HTTP服务器[6],支持CGI并且源代码开放、性能高,在嵌入式系统中得到了广泛应用。在uClinux可以简单的对Boa进行构造,并可以使其驻留在很小的代码空间。基于以上优点,所以本文选用Boa为系统搭建Web服务器。
3.2 Boa Web 服务器的配置
uClinux是开源的,其内核含有Boa的源码。因此,要在uClinux下搭建Boa Web服务器,可根据实际需要轻松地对Boa源码进行配置和修改即可。
1) 编译Boa到uClinux内核
执行make menuconfig,在应用程序选项network application项下面选中Boa,然后重新编译内核。
2) 新建待用目录
在编译内核的过程中要用到一些用户目录,但uClinux默认的根文件系统romfs是只读的,所以不能用mkdir等命令来创建目录。因此必须在编译内核之前通过修改makefile文件来创建编译过程中要用到的目录。
3) 设置Web服务器的访问路径
为了设定Web服务器的访问路径,可通过修改\uCLinux-Samsung\user\boa\src\目录下的define.h文件的#define SERVER_ROOT “/home/httpd”来指定SERVER_ROOT,从而设定Web服务器的访问路径。
4) 修改boa.conf文件
完成Boa的配置,使其能够支持CGI程序的执行。可以在Boa源码目录下已有的boa.conf基础上对其进行修改,确定用户访问Web时服务器时根目录路径SERVER_ROOT。boa.conf文件的具体配置包括:
(1) 将User root和Group root分别修改为User 0和Group 0;
(2) 修改DocumentRoot/etc,配置Web服务器的文件根目录为DocumentRoot/home;
(3) 修改MimeTypes/etc/mime.types,将类型配置文件路径指定为MimeTypes/home /mime.types;
(4) 侦听端口为80端口;
(5) 为了使系统支持CGI方式,将#AddType application/x-httpd-cgi cgi前面的#去掉;
(6) 设置ScriptAlias/cgi-bin//home/cgi-bin/为CGI程序所在目录。
进行以上配置和修改后,Web服务器的根目录即为/home,用户用C编写的CGI程序经编译后必须放到\home\cgi-bin目录下,这样用户编写的处理特定任务的CGI程序就可以正确执行。\home\index.html为远程浏览用户访问Web服务器所看到的默认首页。最后要把类型配置文件mime.types和修改后的Web配置文件bao.conf拷贝到根目录“\home\”目录下。
5) 修改inittab文件
系统在加载上根本文件系统之后,紧接着执行init程序,Inittab为init进程的配置文件。这里在inittab文件中的inet:unknown:/bin/inetd后加入:boa:unknown:/bin/ boa c/home,使其能启动用户的脚本文件。
3.3 动态网页的实现
配置好Boa服务器后,接下来的主要工作就是Web服务器端动态网页的具体实现[7,8]。
1) 设计Web服务器的默认首页文件
Web服务器的默认首页文件Index.html的设计可根据用户的实际控制需要来进行设计,具体实现可以利用网页制作工具或HTML语言来完成。Index.html设计实现后,将Index.html文件和其对应的脚本文件打包放到Boa server中。
2) 基于CGI的二次开发
CGI的主要功能是实现Web浏览器和服务器之间的信息交互,它定义了Web服务器和CGI脚本之间的接口标准。嵌入式系统可以通过内嵌于设备的Web服务器向任何通过Internet或其他专用网络接入它的合法用户提供便利的基于浏览器方式的操作和控制方式。Web浏览器的可视化页面就相当于远程设备的前端物理控制台,从而可以依据实际应用情况实现对远程监测和控制设备的相应操作。uClinux系统只能运行二进制文件,因此用户应将编写好的动态网页文件重新编译,并将编译后的二进制文件放在uClinux的根目录下。该文基于Web服务器的监控主程序通过用户编写的CGI程序来完成。
启动其脚本rc文件,在启动uClinux时自启动Boa Web服务器,完成Web服务器的IP地址、子网掩码等网络配置。
最后重新编译内核,把编译好的内核下载到S3C44B0X开发板,启动Boa Web服务器,在PC机的IE浏览器地址栏中输入:http://192.168.0.2即可访问设计好的Web服务器管理页面,从而实现基于浏览器方式的远程操作和控制,运行结果如图3所示。
4 结论
本文采用S3C44B0X微处理器在uClinux操作系统构建Web服务器,可以实现对远程进行实时监测,并在客户端PC的Web浏览器上实时连续显示。该系统灵活性强,便于改造和开发升级,性价比高,具有较高的应用价值。
参考文献:
[1] 房芳,马旭东.基于嵌入式 Web 技术的监控系统设计与实现[J].计算机工程,2009,35(23):237-239.
[2] 李岩.基于S3C44B0X嵌入式uClinux系统原理及应用[M].北京:清华大学出版社,2005.
[3] 戴国平,朱孝勇.基于嵌入式Web服务器的远程监控系统[J].南通大学学报,2013,12(3):39-42.
[4] 宋凯,严丽平,甘岚.嵌入式Web服务器的设计与实现[J].计算机工程与设计,2009,30(4):808-810.
[5] 张骏,王俊峰,张世永.Web 应用程序的设计与分析[J].计算机工程与应用,2000(3):116-121.
[6] 陈红梅,陈静.嵌入式Linux下基于CGI的动态Web的实现[J].计算机时代,2010(4):4-5.
[7] 马洪兵,张秋玲.HTML语言与Web站点开发技术[M].北京:清华大学出版社,1999.
[8] 莫瑞森. HTML与XML网页程序设计基础[M].北京:北京大学出版社,2002.endprint