APP下载

基于以太网的Web服务器的设计与实现

2015-01-24杨振昊李汉兵王轶楷

电子设计工程 2015年21期
关键词:微控制器以太网浏览器

杨振昊,李汉兵,王轶楷

(1.武汉邮电科学研究院 湖北 武汉 430074;2.烽火科技集团 湖北 武汉 430074)

塔桅动力环境监控单元是为通信行业基站、一体化机房等无人值守现场内的环境状况、动力设备等进行信息采集、管理和监控的网络一体化嵌入式主机;可实时采集并显示各智能设备的状态信息、报警信息及控制命令。要实现其功能,必须要设计一个完善的基于以太网的Web服务器。通过嵌入式Internet技术将嵌入式系统与Internet结合起来实现网络互连,完成对接入到Internet的设备进行监控、测试、管理及维护等功能。

1 Web服务器硬件设计

要实现将嵌入式系统接入以太网,其中最关键的部分就是要实现TCP/IP协议。在此设计中,我们采取了最常用的连接方式,即通过以太网来连接Internet,同时利用网络接口控制器来完成数据链路层协议的实现。美国国家半导体公司的以太网控制芯片DP83848C支持10/100 M的以太网通信,同时也支持MII和RMII接口模式,集成度高,具有全功能、低功耗等性能,在嵌入式应用领域中广泛采用。因此以太网控制器选择DP83848C芯片。

嵌入式Web服务器的硬件框图如图1所示。

在该监控单元中,嵌入式Web服务器的硬件包括微控制器、以太网控制器、I/O接口、存储器和外接设备等。为了满足网络传输的需求,嵌入式微控制器不仅要能执行基本的控制功能,还要能实现与Internet相连接的功能。

微控制器采用ST公司的STM32F207,是一款基于ARM内核32位高性能微控制器,片上集成了多个外围接口(A/D和 D/A 模块、JTAG、I2C、SPI、CAN 等), 具有 ISP 及 IAP 编程功能,STM32F207工作频率最高达120 MHz,具有150 DMIPs的执行速率,存储空间高达1 MB的Flash程序存储器,可扩展支持片外Flash,适合用于处理比较复杂的TCP/IP协议,故将其选为微控制器。

图1 嵌入式Web服务器硬件框图Fig.1 Hardware block diagram of the embedded web server

微控制器STM32F207与以太网控制器之间以MII方式连接,DP83848C通过RJ45接口接入到以太网,存储器采用24LC256,存储容量256 kbit,它是I2C接口串行 EEPROM,可以存储浏览器的网页信息。MAX232可完成RS232电平与TTL电平的转换,同时提供了本地接口,供设备进行串口连接。数据可以从串口输入到微控制器,微控制器处理后再把数据送到DP83848C传送出去。

嵌入式Web服务器中数据的流向为:以太网中的请求和控制信息通过RJ45被送到以太网控制芯片DP83848C,DP83848C则负责将以太网帧的首尾部信息剥离,然后将处理后的数据包送到STM32F207的TCP/IP协议栈中,在TCP/IP协议栈中解析接收到的数据包,解析后得到数据最基本的控制信息。这些原始控制信息通过外部总线接口(RS232C)和其他外部设备完成通信。回复信息到以太网的过程与以上顺序相反。

2 嵌入式Web服务器软件设计

2.1 以太网接口驱动程序的实现

要实现将Web服务器接入以太网,就需要对以太网控制芯片DP83848C进行编程,以此来完成以太网帧的数据接收与发送。这和计算机中实现网卡驱动程序的功能很相似。以太网控制器的驱动程序用来设置其工作状态,通过对地址和数据端口的读写来完成以太网帧的收发。工作方式如下:先将以太网控制芯片进行复位,然后开始设置其工作参数,接下来对DP83848C的RAM进行读写操作来完成数据帧的接收和发送。工作流程图如图2所示。

图2 DP83848C工作流程Fig.2 Working process of the DP83848C

DP83848C包含物理接口收发器 (PHY),其工作在OSI参考模型的物理层。物理层定义了数据的传送与接收所需要的线路状态、数据编码及时钟基准等,并给数据链路层设备提供一些标准接口;而数据链路层则提供了数据帧的构建、数据帧的差错检查、寻址机构、传送控制以及向网络层提供标准的数据接口等功能。数据链路层的芯片称为MAC。

媒体访问控制子层(MAC)协议位于OSI参考模型协议中数据链路层的下半部分,其主要负责与物理层介质的连接与控制。在发送数据帧时,MAC协议要首先判断是否可以发送数据,如果判断结果为可以发送,就将控制信息加到要发送的数据上,最终发送到物理层的数据帧包含相应的控制信息;而在接收数据帧时,MAC协议首先判断输入的信息是否产生了传输失误,如果没有失误,则丢掉控制信息然后将其发送给逻辑链路控制子层(LLC)。

2.2 嵌入式W eb服务器TCP/IP协议栈的实现

实现嵌入式Web Server的关键在于串口数据与TCP/IP数据之间的转换,也即要实现TCP/IP协议。嵌入式Web服务器采用精简的TCP/IP协议栈,在该协议栈中实现了ARP、IP、ICMP、TCP和HTTP协议。

以太网与嵌入式设备之间传递数据是通过MAC地址来辨别的,而在发送数据前ARP协议能够将目标IP地址转换成为目标的MAC地址。所以要完成系统在以太网间的通信,ARP协议是首先要实现的。嵌入式Web服务器在网络层除了要实现IP协议,同时报告数据传送差错与控制信息的ICMP协议也要满足才可实现在Internet上的通信。在应用层,远端主机通过浏览器来访问和控制服务器,所以HTTP协议是必须要满足的。由于HTTP协议是基于TCP协议实现传输的,而TCP协议是面向连接的可靠数据传输,考虑到可靠性的需求,因此在传输层采用简化了的TCP协议。

嵌入式TCP/IP协议栈处理数据的流程如图3所示。

系统首先进行初始化,然后进入主程序循环部分。详细过程为:先检查是否收到以太网数据帧,若已收到则检测以太网数据帧首部,判断其所载数据的类型,接着进行相应处理。若接收到的以太网数据帧中包含ARP数据,则调用ARP处理程序;若接收到的以太网数据帧中包含IP数据报,则针对其是否为TCP、ICMP等协议而分别进行相应的解包处理。若不包含IP数据报,则丢掉此数据帧。

若未接收到以太网数据帧,此时如果要发送数据,则先对数据进行封装,然后把数据以以太网数据帧的格式发送;如果没有数据要发送,则回到主程序继续下一轮循环。

2.3 嵌入式Web服务器应用程序的实现

塔桅动力环境监控所获得的数据通过嵌入式Web服务器上传到以太网上才能被远端的用户使用,因此网络用户和Web服务器之间应用程序的开发也是很关键的一步。本设计里嵌入式Web服务器主要实现现场数据的收发功能。现场实时数据包括设备的实时状态、通信状态等。Web服务器将实时数据以网页形式发布到Internet上,远端的客户通过接入Internet即可浏览该服务器发布的实时数据信息。

目前Web服务器比较通用的架构有 C/S(Client/Server)模式和B/S(Brower/Server)模式。C/S访问模式需要同时开发客户端和服务器端的应用程序,在客户端还必须安装客户机软件才能保证其正常工作;而且C/S架构投资大且需高昂的维护成本。B/S模式则统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。故本设计采用B/S访问模式。B/S访问模式是服务器和浏览器之间的直接访问。该结构的系统只需安装一个浏览器,如Internet Explorer;浏览器就可以通过Web Server同数据库进行数据交互。

相比C/S结构,B/S结构具有分布式的特点,共享性强。B/S结构中的客户端可以处于Internet的任何一个端点,只要接入网络都可以访问权限允许内的相关服务器。维护方便,开发简单,花费成本大大降低。

图3 嵌入式TCP/IP协议栈流程图Fig.3 Flow chart of the embedded TCP/IP protocol stack

要在浏览器端浏览网页,就需要在浏览器的地址栏中输入该网页的 URL(Uniform Resource Locator)地址,或者是通过超链接链接到该网页。浏览器会向该网页所在的服务器发送一个HTTP请求,服务器会对接收到的请求信息进行处理,然后将处理的结果返回给浏览器,最终将浏览器处理后的结果呈现给用户。

本设计中将Web服务器上扩展的EEPROM与单片机相连,用来存储浏览的Web文件,EEPROM里的Web内容采用原始数据的形式存储,外文使用ASCII码形式存储,图像使用二进制数据形式存储。

3 结束语

文中所设计的基于以太网的Web服务器,可以取代传统的接口卡,实现现场设备与Internet的直接连接。该Web服务器性能优越,设计简单,不仅可以应用于动力环境监控领域,实现基站动环实时监控;还可以应用于其他工业控制领域。随着网络通信技术、嵌入式控制技术和数据采集技术的快速发展,此种基于以太网的Web[10-11]服务器具有很好的应用空间及发展前景。

[1]李朝青.单片机原理及接口技术[M].3版.北京:北京航空航天大学出版社,2005.

[2]习博.基于工业以太网的嵌入式数据监控技术的研究[D].武汉:武汉大学控制理论与控制工程,2005.

[3]JINANG Jian-ming,NI Tong-guang.The electrical ethernet monitoring system based on embedded Web server[J].Computer and Automation Engineering,2010(3):300-303.

[4]WANG Lu-feng.The embedded ethernet gateway software design on web server[J].Computer and Automation Engineering,2010(4):530-534.

[5]Deepak C.Karia,Vispi Adajania.Embedded Web server application based automation and monitoring system[J].Signal Processing,Communication,Computing and Networking Technologies,2011:634-637.

[6]Yongzhe Shi.Remote Control System of Classroom Based on Embedded Web Server[M].Informatics and Management Science,2013,209:165-171.

[7]Richard Stebens W.TCP/IP详解 卷1:协议[M].北京:机械工业出版社,2000.

[8]张萍.基于以太网的嵌入式Web Server的研究及实现[D].西安:西安科技大学控制理论与控制工程,2008.

[9]许海燕,付炎.嵌入式系统技术与应用[M].北京:机械工业出版社,2002.

[10]张乾,吴宏春,曹良志,等.嵌入式自屏方法研究[J].现代应用物理,2014(4):290-293.ZHANG Qian,WU Hong-chun,CAO Liang-zhi,et al.Study on embedded self-shielding method[J].Modern Applied Physics,2014(4):290-293.

[11]张坤.基于FPGA的PicoBlaze嵌入式通信系统设计[J].电子科技,2013(5):53-56.ZHANG Kun.Design and implementation of embedded communication system based on FPGA picoblaze[J].Electronic Science and Technology,2013(5):53-56.

猜你喜欢

微控制器以太网浏览器
基于1500以太网养猪场的智能饲喂控制系统的设计与实现
反浏览器指纹追踪
物联网技术在微控制器实验教学中的应用
用于高品质电动汽车的分布式并行计算
谈实时以太网EtherCAT技术在变电站自动化中的应用
环球浏览器
浅谈EPON与工业以太网在贵遵高速公路中的应用
Mouser推出TI C2000Delfino微控制器LaunchPad套件
万兆以太网在连徐高速公路通信系统改造中的应用
意法半导体(ST)推出世界首款基于ARM Cortex-M7的STM32 F7系列微控制器