通常,所谓的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.libmain(){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
广告服务 | 关于我们 | 网站地图 | 分类索引 | 服务条款 | VIP会员服务 |《电气自动化企业大全》| 版权声明