基于μC/OS -II和嵌入式Web服务器技术的温度监测系统
本文作者:admin
点击:
2006-08-10 00:00
前言:
系统硬件设计
嵌入式web服务器的实现通常有两种设计方案:①嵌入式处理器+网络接口芯片;②选用带有以太网接口的嵌入式处理器。在本设计中我们选用方案①,嵌入式处理器采用Philips LPC2214微处理器,网络接口芯片采用以太网控制器RTL8019AS。
LPC2214微控制器是基于一个支持实时仿真和嵌入跟踪的32/16位ARM7TDMI-S CPU,片内有16KSRAM和256KFLASH。LPC2214采用144脚封装、极低的功耗、多个32位定时器、8路10位ADC、PWM输出、最多可提供76个GPIO以及多达9个外部中断管脚,并采用3级流水线技术,极大的提高了指令执行效率,通过可编程的片内锁相环(PLL)可实现最大为60MHz的CPU操作频率,从而为需要快速传输数据的网络应用提供了可能。网络接口芯片采用Realtek公司的NE2000兼容芯片RTL8019AS,它内置了10BASE-T收发器,外接一个隔离低通滤波器,通过RJ- 45标准端口接入以太网。
系统硬件结构框图如图1所示,RTL8019AS与LPC2214通过外部总线进行连接,电路设计为16位总线方式对RTL8019AS进行访问,即数据总线D0~D15与RTL8019AS的SD0~SD15连接。RTL8019AS使用LPC2214外部存储器控制的Bank3部分,而RTL8019AS的I/O地址为0x00300~0x0031F,所以RTL8019AS在SA8=1、SA5=0的时候选通,其数据地址为0x83400000~0x8340001F。NET_RST为LPC2214输出状态,RTL8019AS中断信号为中断输入信号,且为外部中断,与LPC2214的P0.7脚EINT2(外部中断2)相连。多个单总线温度传感器DS18B20共享一条总线,由P0.8口进行控制。需要注意的地方是,考虑到RTL8019AS工作电源是5V而LPC2214的I/O电压为3.3V,所以在总线上串接470Ω的保护电阻(硬件结构框图中没有标出),即RTL8019AS的SD0~SD15串联一个470Ω电阻和LPC2214的D0~D15相连。
系统软件设计
1.μC/OS -II操作系统平台的搭建
系统软件核心为μC/OS-II,它是一个源码公开的、占先式多任务管理的实时操作系统内核,专为嵌入式系统应用设计。其性能完全可与许多商业产品竞争,已在相当多的系统得到成功应用,是一个经实践证明稳定可靠的内核。μC/OS-II采用C语言和汇编语言,其中绝大部分用C语言,结构非常简单,并且可移植性非常好,很容易被移植到各种微处理器上,在移植过程中用户只需要做很少量的工作即可。
μC/OS-II是系统内核,只提供系统多任务实时管理等基本功能。因此,为实现网络通信应用,需在其基础上扩展和构建网络功能模块——TCP/IP协议栈,并提供相应的API接口实现与系统的无缝连接,以最终实现在μC/OS-II下多应用任务的实时调度。
2.嵌入式Web服务器设计
嵌入式Web服务器的实现采用模块化的设计方法,所有代码采用C语言编写并按照TCP/IP协议的层次结构,分为以太网驱动模块、TCP/IP协议栈模块、应用层Web服务器模块。
通过main函数中调用OSStart()进入μC/OS-II多任务调度环境,并创建一个优先级最高的任务TaskCreateInit()来创建其他任务和对以太网驱动、TCP/IP协议栈的初始化。
● 以太网驱动模块
该模块实现以太网控制器RTL8019AS的配置和驱动。有关网络接口方面的配置将在这个模块里面实现。通过调用该模块提供的初始化函数InitRTL8019A()实现有关引脚的初始化,实现对RTL8019AS的软件复位和设置它的MAC地址等。信息初始化完毕并且初始化正确,才能通过调用其他的函数进行数据的传输。
● TCP/IP协议的实现
对于嵌入式系统而言,TCP/IP协议过于复杂。然而并不是所有的TCP/IP协议都需要在嵌入式网络服务器中实现,注意到TCP/IP协议族中的许多协议在实际应用中完全可以不采用。因此需根据具体应用进行适当裁减,几个必要的网络协议包括:ARP协议,它提供IP地址和MAC地址的转换,是TCP/IP协议中不可缺少的部分;IP协议,它用于网络层的数据传输;ICMP协议,用于报告数据传送传过程中的差错情况;另外就是工作在传输层的TCP协议,它是整个TCP/IP协议的核心也最为复杂。
TCP/IP协议分为4层:链路层、网络层、传输层、应用层。链路层主要由以太网控制器RTL8019AS来实现,其数据通信协议采用IEEE802.3标准。它只处理接收地址与本机物理地址相符或为广播地址的以太帧。网络层实现IP、ARP和ICMP协议。IP数据报的首部保留20字节的基本控制信息,每个IP数据包包含一个分片;实现完整的ARP协议;对于ICMP协议,只实现ICMP中类型号为0,代码为0的Ping应答协议。传输层实现TCP协议。在系统中,TCP协议只用于支持HTTP协议,由于在连接时一直处于被动服务的状态,因此在设计中让它一开始就处于LISTEN状态,来监听客户端的连接请求,避免了主动打开的操作,可更高效的服务于客户机。应用层实现HTTP协议。现场监测设备与用户的交互式数据交换通过HTTP协议来实现。HTTP在端口80上使用TCP的服务。
系统需要监听网络状态,对从RTL8019AS接收到的以太网数据帧进行解包分析,根据结果分别进入ARP、ICMP、TCP、UDP和HTTP处理程序,完成嵌入式TCP/IP协议处理,将现场的监测数据发送到以太网,网内所有采用TCP/IP协议的计算机都能收到此数据帧。系统TCP/IP程序流程图如图2所示。●应用层HTTP服务器模块
嵌入式Web服务器的实现是以TCP/IP协议来传输数据,以HTTP协议来进行客户端与服务器之间的请求和响应。Web服务系统采用B/S模式,由位于服务端的Web服务器和位于客户端的Web浏览器构成。Web服务器的任务是等待客户机的连接,及时响应客户机的请求,并给出相应的回答。Web系统主要采用HTTP协议,并使用URL、HTML和CGI等方法进行信息的定位、存取和显示。
HTTP协议是实现客户端到服务器之间的静态文件传输协议,采用请求/响应的握手方式,客户端向服务器请求文件对象,服务器把文件对象发往客户端作为响应。每个HTTP交互都由从客户端发往服务器的请求和从服务器发往客户端的响应组成。HTTP采用TCP连接,该连接状态仅在此次连接中保持,无论浏览器或服务器都不会记忆上次连接的状态。