基于微控制器的web服务器设计
时间:07-04
来源:TechWeb
点击:
4 网管系统软件设计
4.1 Rabbit2000与嵌入式服务器
Rabbit 2000是专门为新一代嵌入式系统设计的高性能8位微处理器,与Z80, Z180, HD64180有着相似的结构,并且在很多方面有了很大的改进。目前,嵌入式Web技术是计算机领域研究的热点,开发出低成本、高通用性、能运行在8位或16位MCU环境中的嵌入式Web服务器将会极大地促进低端控制设备的信息化。
基于Web的网络管理(WBM)技术是Internet网络不断普及的结果。其根本点就是允许通过Web浏览器进行网络管理,可以把SNMP数据汇集到Web应用中去,既集成了SNMP协议,又能较好地解决网络管理平台存在的困难。WBM融合了Web功能与网管技术,从而为网管人员提供了比传统工具更强有力的能力。管理者的操作不受地理位置的限制,可在任何平台下被访问。对系统的修改只需在Web Server上进行,无需在客户端作任何修改,减少了系统维护及修改的工作量与费用。具体包括HTTP协议、HTML语言、CGI原理以及B/S结构。
4.2 基于Rabbit2000的嵌入式服务器
4.2.1 TCP/IP协议栈与HTTP的实现
IP包含编址方案,并提供寻址功能;TCP则是在不同主机的对等进程之间提供可靠的进程间通信。与TCP两端口所连接的实体中,一端为应用程序进程或用户,另一端则为底层协议,如IP协议。TCP在建立连接过程中采用三向握手机制,以保证数据的可靠性。 Dynamic C实现TCP/IP协议通信的程序主体框架。在Dynamic C中,HTTP由HTTP.LIB来负责实现。
4.2.2 系统工作流程
系统流程如下:
(1) 系统上电,从FLASH读取系统配置信息,进行相应的配置。
(2) 各个变量初始化。
(3) 设置波特率,清空接收,发送缓冲区。
(4) 初始化各受控变量,及相关标记。
(5) 读flash,判断是否有数据保存标志。如有,则读出各个设置,赋值给各相关变量。
(6) 如没有,则认为是设置初始化,重新初始化文件系统,格式化,写入缺省设置。
(7) 初始化socket,启动以太网。
(8) 进入通讯,与机架上的各台设备通信。
(9) 启动web服务器,等待连接。
(10) 8与9各作为一个线程一直循环执行。
(11) 隔一段时间查询,如果掉电后需要保存的数据发生变化,则把数据保存到flash o
(12) 如果用户改变agentip,管理ip,子网掩码,网关等,则重新配置网络。
4.3 UCD-SNMP代理扩展
基于SNMP的网络管理软件及应用开发工具有很多,较为普及和流行的一种即为UCD-SNMP。由于UCD-SNMP的应用较为广泛,而该软件提供了较多的实用SNMP网络管理工具和SNMP代理,所以在实际使用中可以直接用于网络管理,进行各种操作。对该工具进行功能上的扩展,可以修改代理配置文件使SNMP代理能够执行外部命令,也可以扩展代理支持的MIB使代理能够支持自定义的被管对象。包括三方面扩展: 1) MIB定义文件;2) C代码头文件;3) C 代码执行文件。
4.4 MIB设计
MIB包括代理端本身MIB和设备MIB两大部分。
4.4.1 代理端本身MIB
代理端本身MIB:包括私有MIB和标准的MIBⅡ两大部分。
1.私有MIB
私有MIB:代理端系统描述,代理端ip地址,代理端mac地址,管理端ip,子网掩码,网关,代理OID,代理启动时间,设备数目,一些标记等。OID前缀为1.3.6.1.4.1.20353.1。
2. MIBⅡ
MIBⅡ是目前最重要,也是获得支持最广泛的MIB, UCD_ SNMP支持MIBⅡ。只要把MIBⅡ编译进agent,作一些小的修改就可以了。
4.4.2 设备MIB
设备MIB:设备型号,设备总体状态,各指示灯状态,各按钮状态,设置按钮(按下或弹出),其他设置等。
OID前缀为1.3.6.1.4.1.20353.2.
动态MIB的设计:
各型号设备的MIB子树的结构作为全局变量,在系统启动时就已经存在。系统启动时,通信程序轮询一遍各设备的状态,发现某个地址有设备,读取该设备型号及MIB信息,为该设备注册MIB子树。这样,一遍轮询后,设备的MIB都已经建立起来了。
程序不停的轮询各设备的状态,当发现设备已经不在线时,从系统MIB树注销该设备所在位置的子MIB树。当发现新设备时,向系统MIB树注册该设备所在位置的子MIB树。当设备状态改变时,改变相应的MIB变量。这样,就实现了MIB的动态刷新。
5 本文作者创新点
近年来,随着计算机软硬件技术的迅速发展,计算机的应用已逐渐深入各个领域,它渗透到我们工作、学习和生活的方方面面。本文设计并实现了基于RABBIT 2000的WEB服务器,基于ARM+UCLINUX的SNMP代理。这两个系统均用于通信设备的网路管理,工作稳定。本系统设计不需要多少成本,而性能与商用的嵌入式操作系统相差无几。因此非常适合于对成本敏感的系统设计。
|
Top