1 引言
经过多年的发展,互联网技术已经在全球普及。嵌入式产品设计师也已经把嵌入式设计普遍用于专用的、非PC的设备中。嵌入式系统与Internet技术相互结合产生了嵌入式Internet技术。嵌入式Intemet技术已成为当今嵌入式系统发展的热点之一,它的许多方案都在不断地被提出和验证着。嵌入式Internet技术具有广阔的应用前景,它的应用领域主要包括智能公路、信息家电、工业自动化、电子商务和设备管理等。嵌入式WEB服务器的主要设计思想就是将嵌入式系统和WEB技术结合起来,将WEB技术引入到现场测量和控制设备中,从而实现基于嵌入式WEB服务器的控制系统。用户可以通过现有的公共通信网络,使用标准的WEB浏览器作为接口直接对现场的控制设备进行访问,监控和维护等操作,实现了异构设备之间的跨平台互访。
2 系统结构与工作原理
系统采用当前流行的B/S结构,这种结构是随着Internet技术的发展,对传统C/S结构的扩展和改造。实质上B/S结构是一种特殊的C/S结构,所不同的是,在B/S结构中,系统主要功能都在服务器端实现,浏览器是客户端,提供用户接口,将用户的请求传递到服务器,并将服务器的响应展现给用户。系统结构如图1所示。
分析嵌入式系统的具体情况,发现对于一般的嵌入式系统,基本的功能需求大体上分为两大类,可以用两个字来概括“监控”。
(1)嵌入式服务器端包含———“监”功能的实现。对于上行的数据流,通过嵌入式服务器端包含技术(ESSI)来实现。本系统中,自定义了一条ESSI指令“DATA”,用来实现动态信息的实时显示,该指令的语法如下: 《 DATA var = state func = Get-State》,该指令与标准的HTML标记兼容,其属性有两个,分别为var和func, var表示设备的状态名称,一个设备可以定义多个状态名; func管理接口函数,用来获得相应设备的状态信息,原型为uint8* func( )。
(2)嵌入式通用网关接口———“控”功能的实现。对于下行的控制流,通过嵌入式通用网关接口(ECGI)来实现,如图2所示。在需要向嵌入式设备下达控制命令的情况下,借助表单的POST方法向服务器传递数据,表单的语法格式如下:
表单的name属性指定了管理接口函数名,此函数用来处理表单数据,原型为void TestForm(uint8*
content), content是浏览器传送过来的参数;表单的另一个属性method指定了浏览器向服务器传送数据的方式。例如:
包含有上述表单的HTML文件传送到浏览器之后,网页上出现三个编辑框和一个submit按钮,用户在编辑框中输入参数,点击submit按钮后,浏览器向Web服务器传送以下内容:
var1=value1&var2=value2&var3=value3&Go=OK
3 硬件系统设计
3.1 硬件原理框图
系统的硬件原理框图如图3所示,嵌入式处理器LPC2292处于中心位置,设备的状态数据经过处理器打包后,经由RTL8019AS发布到网络上,用户的控制命令经过RTL8019AS传递到处理器LPC2292,再由处理器控制相应的设备执行相应的控制命令。
3.2 嵌入式处理器
嵌入式处理器采用了Philips公司的基于ARM7TDMI内核的处理器LPC2292,该处理器具有16 kB片内静态RAM和256 kB片内Flash程序存储器;可以通过片内boot装载程序实现在系统编程(ISP)和在应用编程(IAP),编程速度快, 512字节行编程时间为1ms,单扇区或整片擦除时间为400ms;同时还内置丰富的外设接口,极大的简化和方便了应用系统的设计,提高了系统的可靠性。
3.3 网络接口芯片
网络接口芯片采用Realtek公司的RTL8019AS,它是一种高度集成的以太网控制芯片,能简单的实现Plug and Play并兼容NE2000、掉电等特性。同时还支持全双工模式,能够实现网络数据的同时发送和接收。RTL8019AS芯片内部集成了DMA控制器、ISA总线控制器和16K SRAM、网络PHY收发器。
3.4 其它模块
RS232电路有两个作用,首先可以用作在系统编程(ISP),方便了LPC2292中软件的升级和调试,提高了效率;其次,在系统运行时,充当与外界通讯的一个通道。I2C和CAN电路可以用于扩展外围设备,完成系统在工业现场的控制任务和数据采集任务等。
4 软件系统设计
该系统的软件主要由以下几个部分组成:嵌入式操作系统、嵌入式TCP/IP协议栈、嵌入式Web服务器。
4.1 嵌入式操作系统
为了满足多任务和实时性的要求,本系统移植了嵌入式多任务实时操作系统μC/OS-II,并针对系统的具体情况和相应软硬件资源的情况,做了适当的裁剪和修改。
4.2 嵌入式TCP/IP协议栈
为了搭建一个Web服务器平台,网络协议栈是必不可少的。TCP/IP协议是目前广泛应用的网络协议栈,并且成了事实上的国际标准。本系统设计并实现了针对嵌入式系统的简易TCP/IP协议栈,该协议栈利用μC/OS-II实时操作系统的信号机制来实现多任务和可重入的特性,并且完全使用ANSIC进行编写,在设计实现时充分考虑了重用性和可移植性,可以像μC/OS-II那样支持多种CPU。
4.3 嵌入式Web服务器
在整个软件体系中,嵌入式Web服务器处于最上层,在它之下的是上述的嵌入式操作系统和嵌入式TCP/IP协议栈。嵌入式Web服务器除了实现静态文档以外,还利用嵌入式服务器端包含(ESSI)技术实现了动态文档,从而支持实时显示系统的工作状态;此外,通过嵌入式通用网关接口(ECGI)技术实现了浏览器端数据向服务器的传递,从而为对系统的控制提供了数据通道。
4.3.1 嵌入式Web服务器层次模型
如图4所示,嵌入式Web服务器包含四个层次,分别为套接字层、协议解析层、功能模块层和用户定义层。套接字层负责本系统与网络上的数据收发;协议解析层负责解析HTTP协议,从中获取有效数据或按照HTTP协议要求,生成HTTP协议报文;功能模块层有三个部分,分别是嵌入式文件系统(EFS)、嵌入式服务器端包含(ESSI)、嵌入式通用网关接口(ECGI);用户定义层的三个部分由用户(开发人员)自定义,从而在不改变其他模块的情况下,增加、减少或修改系统的功能,使得系统具有二次开发功能。
4.3.2 嵌入式文件系统
为了方便Web服务器的实现,设计并实现了一个嵌入式文件系统[10-12]用来存储网页。此文件系统结构简洁、效率高,所有文件被集合成一个顺序结构,文件系统中每个文件包含一下几个域:HEAD,文件报头,两个字节,标记一个文件的开始(0xFA, 0xF3);NAME,文件名,长度不定,以NULL结尾; SIZE,文件长度,四个字节,指示文件长度(以字节为单位);FILE,文件内容,长度由SIZE指定。
4.3.3 用户定义层
用户定义层为用户开放了系统的编程接口,包括三个方面:
(1)文件系统构造。当用户需要更改Web服务器的网页时,只需在PC上用任何一种网页设计工具设计好网页,然后用ConverFile工具转化称fiLEData. c,即完成了文件系统的设计。
(2)ESSI变量定义。如需在浏览器上显示设备的工作状态等信息,可为每个状态定义一个变量,并绑定一个能够返回该状态值的函数即可。
(3)ECGI句柄定义。为了在服务器端获得用户的命令信息,需要为每一个命令定义一个虚拟网址,并绑定该网址到一个服务器端的函数,该函数获得浏览器端发送过来的参数,执行相应的命令。
5 实验结果分析
为了验证方案的可行性和实用性,在上述的软硬件平台的基础上,搭建了一个测试环境:在ARM处理器上外接八个LED指示灯,通过嵌入式Web服务器显示并控制每一个LED指示灯的亮和灭。系统测试的网络环境如图5所示,该网络由两个网段组成,用一台路由器连接,网段一的地址为172. 18. 136. 0/24,段内连接终端1和嵌入式设备,网段二的地址为172.18. 135. 0/24,段内连接终端2和终端3,具体的地址分配如图5所示。嵌入式Web服务器运行在IP地址为172. 18. 136. 8的嵌入式设备上,测试结果如图6。结果表明,无论是在同一网段内的终端1上访问嵌入式Web服务器,还是在不同网段的终端2和终端3上访问嵌入式We服务器,系统都可以正常、稳定地运行,并实现对嵌入式设备的监控功能。
以上设计及实现的通用嵌入式Web服务器模块,可移植到多种ARM7系列的处理器上,采用此模块可简化系统的设计,加快开发速度,具有一定的应用前景。
全部0条评论
快来发表一下你的评论吧 !