居无为 品书香手机网

主页 > 实用文摘 > 教育文摘_09 > > 详细内容

一种嵌入式WEB服务器的设计与实现_嵌入式系统论文

  摘要:介绍了一种嵌入式web服务器的设计与实现,实现了以太网与can总线网络的直接互连,使用户可以使用pc机通过internet进行远程访问和控制web服务器,从而能够将工业现场测控层监测设备得到的数据方便快捷地送到异地的管理监控层。

    关键词:web服务器 以太网 can总线

在企业自动化的工业现场,下层车间的监测设备之间都是采用现场总线相互连接,而企业的管理层和生产监控层都是连于以太网的pc,甚至是位于异地的连于互连网上的pc。为了使工业现场的现场总线上的设备和管理监控层之间的pc能够通信,同时改善故障检测和设备维护的远程访问能力,笔者在can总线网与以太网的互连系统中设计了一个嵌入式web服务器。

1 嵌入式web服务器硬件设计

通常嵌入式系统硬件包括微控制器、存储器及外设器件和i/o端口等,其核心是嵌入式微控制器。为适应上网需求,嵌入式微控制器不仅要具有传统的控制功能,还要具有与因特网连接的功能。而ubicom公司的sx52芯片能比较容易实现tcp/ip协议,选择它作为微控制器。关于传输媒质,采用最常用的连接模式即通过以太网连接internet,利用网络接口控制器rtl8019as实现数据链路层协议。rtl8019as采用台湾realtek公司生产的rtl8019as芯片。

嵌入式web服务器硬件结构框图如图1所示。

嵌入式web服务器用sx52微控制器作为处理器,以太网驱动芯片rtl8019as经耦合隔离滤波器hr61101g和rj45接口接入以太网,配有rs232和can总线两个扩展接口,可以将具有rs232接口的设备或采用can总线协议通信的设备连到以太网上。rs232接口采用max232cpe芯片,can总线控制器采用philips公司的sjal000芯片,can收发器采用philips公司的pca82c250。

图1

    数据的流向为:请求和控制信息从局域网中来,通过nj45送到rtl8019as,rtl8019as负责将以太网帧的首部和尾部信息剥离,将处理后的数据包送入sx52的tcp/ip协议栈,由协议栈对数据包进行解析,得到原始的请求和控制信息。请求和控制信息再经过sjal000进行can协议格式的数据封装,再与现场的can总线设备进行通信。请求和控制的回复到局域网的过程正好相反。

在嵌入式web服务器的硬件设计中,在确保通信功能顺利实现的同时,充分利用了sx52芯片i/o口灵活配置的特点,最大程度地节约了微控制器sx52的硬件资源。

图2为web服务器主要芯片连接电路简图,结合本图详细分析系统硬件设计。

1.1 rtl8019as驱动程序实现

rtls019as是台湾realtek公司制造的一种高集成度的全双工10mbps以太网控制芯片,实现了基于ethernet协议的mac层的全部功能,内置16kb的sram、双dma通道和fifo完成数据包的接收和发送功能。在网关设计中,使用跳线模式(jp置为高)来硬配置rtls019as为8位模式;使用了rtl8019的低五位地址线a0~a4以及低8位数据线d0~d7。为满足rtl8019as的isa时序,rtl8019as高端地址a5~a19须设置为0x300。sx52的b口的b0~b4脚作为地址线连接rtl8019as的低5位地址线,b5~b7作为控制线分别连接读写时序控制脚iorb、iowb、iochrdy;c口作为数据线连接rtls019as的低8位数据线;a口保留,用作日后扩展。设计中采用at24c64这样一个8kb的eeprom来保存web服务器的配置,如网关ip地址、mac地址和sjal000的id网络标示符、网络掩码amr和总线定时(btr0、btr1)等。这样就能够灵活方便地修改网关参数,适应不同环境,同时也考虑到以后的扩展。

图2

    要实现嵌入式web服务器接入以太网,就要对rtl8019as进行编程,完成以太网帧的数据收发,相当于实现pc机中网卡的驱动程序功能。首先要对rtl8019as进行复位,并将其设置为跳线模式;然后对rtl8019as的工作参数进行设置,以使其开始工作;接下来读写rtl8019as的ram以完成数据包的接收和发送。程序流程如图3所示。

1.2 tcp/ip协议栈的实现

并不是所有的协议在嵌入式web服务器中都要实现,应根据项目要求有选择地加以实现。以太网数据的传输采用mac地址来识别,而arp协议提供ip地址和数据链路层使用的mac地址之间的转换功能,为了保证系统在以太网的通信,首先要实现arp协议;由于嵌入式web服务器要能在internet上通信,在网络层一定要实现ip协议,还要实现能报告数据传送差错等情况的icmp协议;在应用层,主要实现远端主机通过浏览器的访问控制方式,所以要实现http协议。而http协议是基于tcp协议实现传输的,加上tcp协议是面向可靠的数据流的传输,基于应用的需要和对可靠性的要求,在传输层采用tcp协议,并对tcp协议进行简化处理,主要针对http协议开发tcp协议。

    由于嵌入式系统的资源有限,因此将tcp/ip协议最大幅度精简,以提高程序的运行速度,减少在sx52存储器中占用的空间。tcp/ip协议栈主流程图如图4所示。

    精简协议主要遵循以下两个原则:

(1)协议内容精简

嵌入式web服务器的实现需要arp、ip、tcp、icmp等网络协议的支持,每一个完整协议都很庞大,在存储容量并不大的sx52上全部实现是不现实的。应该在保证实现网络通信基本功能的前提下尽可能地精简协议,确定出协议的哪一部分是必需的,哪一部分可以省略,以满足系统要求。

(2)协议接口层次明确

tcp/ip协议分布在链路层、网络层、传输层和应用层上,是分层实现的,每一层只负责处理通信过程中的一部分问题,其它层不能实现其功能。采用模块化的设计思路,如果需要修改哪个协议,只需修改相应模块的功能,其它模块不用改动。协议分层简化了程序的设计和调试,每层的协议相互独立,使协议的开发更高效。在网络系统中,按照分层的思想,从网络最底层开始每一层都为高层提供服务,明确层间接口对软件开发十分重要。

2 嵌入式web服务器应用程序的实现

brower/server(简称b/s)模式已经成为流行的开发模式,课题中的嵌入式web服务器要实现的功能主要是现场实时数据发布功能。b/s访问模式是webserver和browser之间的直接访问。客户和服务器间的中间节点不对http请求及响应做任何操作,只需在客户端采用如ie这样的浏览器对服务器上的数据进行浏览,不用开发客户端程序。采用b/s结构具有如下优势:

·具有分布性特点,可以随时随地进行业务处理;

·系统维护或升级只在服务器端,对客户端无须进行改动,只需要改变服务器端网页,即可实现所有用户的同步更新,易于维护和升级;

·开发简单,共享性强。

图4

    b/s访问模式只需对服务器端程序进行开发。在服务器端形成动态网页最常用的工具有asp和jsp。由于采用的嵌入式芯片sx52只有4kb存储容量,在sx52中既实现tcp/ip协议栈,又实现asp和jsp的功能是很困难的。所以可以采用字节传输方式针对sx52用汇编语言编程实现动态网页。

java applet能够被传送到浏览器并且在浏览器所在的本地机上运行。本设计正是利用了这一特性改进了传统的b/s模式设计出的应用程序,java applet对于管理和处理动态数据也是一种行之有效的技术。java applet能实时表示从轮询得到的更新,利用这个特性显示实时数据。所以程序客户端采用java applet设计实现。

嵌入式web服务器接入以太网时,在程序中设置了自身的ip地址和mac地址,可以与局域网上任一台微机通信。服务器端主要实现两部分功能:利用http协议实现网页浏览功能和利用套接字编程实现与客户端applet通信的功能。服务器程序用sx52的汇编语言实现。

在web服务器中实现http协议才能实现网页文件的浏览。方案中将web服务器上扩展的eeprom与sx52相连,用来存储要浏览的web文件,eeprom里的web内容采用原始数据的形式存储,没有进行封装和编码。文本内容以ascⅡ码形式存储,图像内容以二进制数据形式存储。