以ARM7为核心的嵌入式工控网络设计
式Web服务器的基本实现
嵌入式Web服务器可基于Socket套接字来开发,它主要由初始化模块、监听模块、请求解析模块、脚本引擎模块、输出模块和命令模块等组成,各模块之间的关系如图4所示。
μClinux下主要有三个Web服务器:httpd、thttpd和Boa。其中httpd是最简单的一个Web服务器,它的功能最弱,不支持认证,不支持CGI。thttpd和Boa都支持认证、CGI等。功能都比较齐全。其中boa是一个单任务的http服务器,源代码开放,性能比较高,占用系统资源也比较少。boa服务器在接收到请求时,不启动多个服务器进程处理多个请求,而在一个进程内处理所有服务请求。为了实现动态Web技术,可选择实现一个支持CGI的、非常适合于嵌入式系统的BoaWebServer。然后再通过CGI用C语言进行编程,就可以实现动态WEB。
3.2boaWebServer的移置
boa是一个单任务的http服务器,源代码开放、性能高。目前,μC1inux的代码中已经包含boa的源代码。在μClinux下实现Boa时,需要对Boa做一些配置和修改。boa服务器的核心文件主要有boa.conf和mime.types,本设计主要通过对boa.conf和mime.types文件进行修改来实现。
3.3编译内核
配置过程完成后,便可重新编译内核。编译时先选中Boa选项,并把编译好的内核下载到开发板,再启动μClinux,完成IP配置,启动BoaWebServer,然后就可以通过IE访问你的网页了。如果想启动μClinux时自动启动BoaWebServer,则可修改rc文件,并进入/μClinux-amsung/ven-dors/Samsung/S3C44BOX目录,再在运行脚本rc中增加如下两行:
"ifconfigeth0192.168.1.10
boa-c/home/&"
修改后,重新编译内核,再下载到目标系统运行。这样,运行μClinux后,不需要配置就可以直接通过IE来访问网页了。
3.4μClinux下的CGI监控技术
通过CGI(通用网关接口)可为Web服务器提供一个执行外部程序的通道,这种服务端技术可使浏览器和服务器之间具有交互性。CGI程序属于外部程序,需要编译成可执行文件才能在服务端运行。浏览器可将用户输入的数据送到Web服务器,Web服务器再将数据用STDIN送给CGI程序。在执行CGI程序后,还会访问存储数据的一些文档,最后使用STDOUT输出HTML形式的结构文件,再经Web服务器送回浏览器,即可显示给用户。
若CGI程序是本地程序,也需要编译成可执行文件,以便在被CGI调用时运行。Web服务器将用户数据传输给CGI程序,并重定向CGI程序的输出到Web页,这样,CGI程序在处理时,再将数据封装成HTML形式发送到输出,从而在客户端看到对应的Web页。
访问者可通过CGI程序远程控制数码管(模拟工业现场的控制),并显示相应的数字。在CGI程序的编写中,每个程序的大致框架都比较类同,其CGI程序流程如图5所示,它主要是遵循HTTP协议的通讯。也包括对输入输出的读写和控制。
3.5嵌入式工业监控系统的应用
基于Internet的远程监控有代理方案和嵌入式方案两种实现方案。两种实现方案均采用三层B/S体系结构,即表示层、应用逻辑层和数据层。三层B/S体系结构可避免两层体系结构中客户端程序单独实现应用逻辑而产生的冗余;应用逻辑可在应用逻辑层上而不是在客户层上实现。由于表示层与应用逻辑相分离,因而降低了网络传送的信息量,使系统具有更高的可伸缩性、可维护性和灵活性。本文讨论的嵌入式方案的基本结构如图6所示。
4结束语
本文推出的方案对每台现场设备均配有微型嵌入式Web服务器,可负责对现场设备进行数据采集、数据存储、数据转发以及与监控主机进行数据的交互。该方案的优点是实时性强、可靠性高、现场设备的数量不受限制等。
- 基于ARM7核处理器VxWorks系统BSP设计 (02-27)
- ARM7和ARM9双核平台的技术分析(02-27)
- LPC2294的实时时钟显示工程设计分析(05-03)
- 基于ARM7的新型嵌入式心电监护仪的研制(07-30)
- 基于LPC2292的手持JPEG图像显示器设计(10-28)
- ARM7与FPGA相结合在工业控制和故障检测中的应用(11-17)