一种嵌入式WEB服务器的设计与实现

2006-09-14 15:06:38来源: ESIC

  在企业自动化的工业现场,下层车间的监测设备之间都是采用现场总线相互连接,而企业的管理层和生产监控层都是连于以太网的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。


  数据的流向为:请求和控制信息从局域网中来,通过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)等。这样就能够灵活方便地修改网关参数,适应不同环境,同时也考虑到以后的扩展。


  要实现嵌入式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结构具有如下优势:

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

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

·开发简单,共享性强。


  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Ⅱ码形式存储,图像内容以二进制数据形式存储。

关键字:以太网  嵌入式  总线

编辑: 引用地址:http://www.eeworld.com.cn/designarticles/network/200609/6038.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
以太网
嵌入式
总线

小广播

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 医疗电子 工业控制

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved