您现在的位置:机电论文网>> 机床加工>> 正文内容

嵌入式webserver技术及其实现

作者: 来源: 发布时间:2018/2/11 16:12:47  点击数:654
引 言
利用8位微控制器通过isp(internet服务供应商),在不需要使用pc机或高档单片机的情况下接入互联网。随着嵌入式系统的迅猛发展和ia(信息电器)的出现,该应用系统正逐步取代传统的以pc为中心的应用,成为未来internet发展中的主力军;将会广泛应用于智能家居系统、工业智能化从站系统、led网络控制显示屏系统、网络安全加密系统等各个方面。
利用单片机实现嵌入式webserver方案的主要技术难点是:如何利用单片机本身有限的资源对信息进行http、smtp、pop3、tcp、udp、icmp、ip及ppp等协议的处理,使之变成可以在互联网上传输的ip数据包以及可以在内置web页上浏览的数据。
1 应用方案
1.1 方案简介
利用单片机实现嵌入式webserver,大体可有以下三种形式:
① mcu+专用网络芯片,如e1552、webchip ps2000等。此种方案的主要优点是:应用系统设计工程师完全不必考虑任何网络协议,只需要解释并执行网络芯片传送过来的指令和数据就可以实现与internet网络连接。
② emit技术。emit采用桌面计算机或高性能的嵌入式处理器作为网关,称为emgateway,上面支持tcp/ip协议并运行http服务程序,形成一个用户可以通过网络浏览器进行远程访问的服务器。emgateway通过rs232、rs485、can等轻量级总线与外设联系起来,每个外设的应用程序中包含一个独立的通信任务,称为emmicro,监测嵌入式设备中预先定义的各个变量,并将结果反馈到emgateway中;同时emmicro还可以解释emgateway的命令,修改设备中的变量或进行某种控制。该方案中复杂的网络协议是通过emgateway在pc机上实现的,应用系统mcu只处理较简单的emnet协议,进行网际连接。
③mcu直接实现形式。实现该形式的web server,可选用多种型号的mcu来实现网络协议,如at89c8252、sx52bd100等,并可根据具体要求选用不同速度的mcu作为核心芯片,但是基本硬件结构大致相同。
显然以上方案中,以“mcu直接实现形式”的硬件结构最为简洁,不失为首选方案。下面就详细论述之。
1.2 硬件平台
mcu直接实现形式的webserver的硬件平台如图1所示。

图1中,mcu以sx52bd100的运算速度最快,在100 mhz晶振驱动下指令执行速度可达100mips;rabbit2000次之,51系列最慢。但是硬件成本恰好反之,用户可以根据不同的要求来配置mcu。以太网控制芯片可采用realtek公司的rtl8019as。该芯片是一款全双工以太网控制器,可以工作在ethernet ii和ieee802.3、 10base5、10base2、10baset下,并与ne2000兼容。e2prom主要用来存web页面、图像文件、pdf文档等内容,因此没有特殊要求,可由用户自由选择,一般32 kb左右即可。
该方案中,mcu为核心芯片,通过它控制以太网控制芯片rtl8019as,进而完成接入网络的工作;而且可以通过编程来选择通信电路类型,如rs232、rs485、modem等。该技术方案最大的特点在于:用简洁硬件构架应用平台,使原本硬件成本所需的支出可用于相对复杂的软件开发上,且该方案的i/o接口可以自由扩展和支配。
1.3 工作流程和软件设计
整个系统的工作流程如图2所示。当数据包通过rj45接口传送到rtl8019as和mcu后,系统内部的tcp/ip堆栈进行数据包解析和流向判断,然后进行解包或者打包的动作,以继续进行后续工作。显然,最终的处理结果都要通过webserver来进行。

2 网络协议栈的实现
通常,所谓的tcp/ip协议是一个四层协议系统,包括数据链路层、网络层(含ip协议)、传输层(含tcp协议)和应用层,每一层负责不同的功能。基于tcp/ip协议可以实现多种功能应用,如: http(超文本传输控制协议)、telnet(远程登录)、 ftp(文件传输协议)、smtp(简单邮件传送协议)、snmp(简单网络管理协议)等。本文主要讨论http, 也就是webserver在应用层的主要构成协议。当然,用户也可以根据需要附加其它的协议功能。
2.1 tcp/ip协议栈的实现
ip包含编址方案,并提供寻址功能;tcp则是在不同主机的对等进程之间提供可靠的进程间通信。与tcp两端口所连接的实体中,一端为应用程序进程或用户,另一端则为底层协议,如ip协议。tcp在建立连接过程中采用三向握手机制,以保证数据的可靠性。
下面以zworld公司的rabbit 2000系列芯片为例,论述嵌入式webserver的具体实现过程。rabbit 2000系列芯片是一种高性能8位器件。由于其c语言友好指令集和快速数字处理功能,因而受到瞩目。rabbit结构以zilog公司的原始z80微处理器为基础,但作了几项改进:不像z80指令集那样使用16位寻址覆盖存储空间,而用一个20位或1mb的实际存储空间;采取直接与静态存储器件相连接的方式;有3条存储芯片选择线路和2组写入/输出启动线路;片上外设包括4个串行端口、1个子端口、40条i/o线、7个不同的定时器、精确脉冲发生硬件和电池支持的rtc。
系统硬件框架结构如图1所示,用户只需对应添加相关芯片及辅助设施(如电源、用户所需外设等)即可;而软件的实现,由于rabbit 2000系列芯片得到dynamic c编译器的支持以及实现tcp/ip所需的库文件dcrtcp.lib,因此只要会用c语言就可以进行开发。用户关注的重点也变为网络通信实现以后的代码编制及优化,可以极大提高开发进度。
以下是dynamic c实现tcp/ip协议通信的程序主体框架。程序中起始宏定义为默认ip配置信息;“memmap”句可使程序在芯片里面运行时,如同在扩展代码窗口下被编译;“use”句使编译器按照库文件配置编译代码。
#define tcpconfig 1
#memmap xmem
#use dcrtcp.lib
main(){
sock_init();
for (;;) {
tcp_tick(null);}
}
sock_init()和tcp_tick()都是tcp/ip函数库的基本函数,前者为初始化tcp/ip协议栈函数,使协议栈开始处理入栈数据报;后者主要有两个用途:① 支持后台处理的最新信息;② 测试 tcp套接字的状态。
可以看到利用dynamic c提供的tcp/ip协议包,用户可以轻松建立起tcp/ip通信。当通信建立以后,就可以在此基础上进行后续的进一步功能扩展,开展例如http、ppp等应用层的协议实现。
2.2 http的实现
http(超文本传输协议)服务器可使 html (超文本链接标示语言)页面,如web页等和其它文件为客户端所使用。在dynamic c中,http由http.lib来负责实现。http服务器实现的程序主体框架如下:
#define tcpconfig 1
#memmap xmem
#use "dcrtcp.lib"
#use "http.lib"
main(){
sock_init();
http_init();
tcp_reserveport(80);
while (1) {
http_handler();}
}
用户可以根据自己的需要在此程序框架上添加构成webserver的所有其它动态或静态元素(无论是否符合html标准)。限于篇幅,具体示例不再列出。
小 结
在建立起相应的硬件连接以后,就可以根据不同的硬件特点,选用不同的开发工具和开发语言进行webserver的构架工作。本文给出了目前构架webserver的主要原理和方法,并给出rabbit 2000系列芯片实现的具体应用,相信对读者的实际工作会有些帮助。至于采用其它芯片或方案的实现步骤及过程大同小异,读者可举一反三。
参考文献
1 ubicom corporation. sx52bd100 user’s manual. 2000
2 z-world inc. dynamic c user’s manual. 2002
3 z-world inc. rabbit 2000tm microprocessor designer"s handbook. 2002
4 mcgraw-hill 公司. ed taylor. networking handbook. 2001

更多
字体:【】-【】-【】【关闭此页

上一篇:基于gal器件的步进电机控制器的研究'   下一篇:蜡油离心泵泵轴及叶轮失效分析'


特别声明:机电之家(http://www.jdzj.com )所共享的机电类资料,机电论文、机电类文章、机电企业类管理制度、机电类软件都来自网上收集,其版权归作者本人所有,如果有任何侵犯您权益的地方,请联系我们,我们将马上进行处理。购买的论文都出自原创,保证作者的原创的版权的转让,任何纠纷由法律解决。