科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网服务器频道基于微控制器的web服务器设计

基于微控制器的web服务器设计

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

近年来,随着计算机软硬件技术的迅速发展,计算机的应用己逐渐深入各个领域。基于WEB方式和SNMP方式是目前两种流行的网络管理方式。

来源:微计算机信息 2008年4月3日

关键字: 微处理器 嵌入式 PC SNMP 服务器 Web服务器 微控制器

  • 评论
  • 分享微博
  • 分享邮件

  摘要: 近年来,随着计算机软硬件技术的迅速发展,计算机的应用己逐渐深入各个领域。基于WEB方式和SNMP方式是目前两种流行的网络管理方式。本文介绍了基于RABBIT 2000微控制器,不带操作系统的嵌入式WEB服务器的设计,并且介绍了基于ARM7TDMI处理器,及其接口电路的硬件电路与软件的设计,本系统成本低廉,用户通过WEB浏览器就可以管理设备。

  关键字: SNMP;微控制器;嵌入式WEB服务器

  1 引言

  随着信息技术与网络的高速发展,人类开始进入后PC时代。所谓后PC时代,从它原意来理解,是指计算无所不在,它渗透到我们工作、学习和生活的方方面面,但这样的无所不在的计算机不是以PC的形式摆上桌面上,而是以嵌入式系统的形式存在。与此同时,网络管理的难度和要求日益提高,网络的可管理性和智能化是今后各类网络的发展方向。如何管理计算机网络,如何建立一个有效的、满足要求的网络管理系统,这是当今网络管理技术人员必须掌握的技术。

  2 嵌入式系统与网络管理相关介绍

  2.1 嵌入式系统

  嵌入式系统应该具有以下特点:首先嵌入式系统主要应用于特定领域,它具有通用计算机系统不具备或不善长的专注于特定领域的功能。其次,嵌入式系统在结构上具有多样性。与通用计算机系统不同,嵌入式系统由于应用领域广泛,其器件和结构上都会有极大的差异。因此,在设计方法上,区别于通用计算机系统。通用计算机系统的软硬件设计往往是分离进行的,而嵌入式系统则需要软硬件协同设计。嵌入式系统结构如图1所示。

  

  图1 嵌入式系统结构

  2.2 网络管理

  网络管理一般是指对网络系统中的各种设备进行监测,分析与控制,从而保障整个网络系统可靠,有效地运行。通常,网管系统主要是由管理者和管理代理两种实体组成。网络管理员通过管理者与管理代理之间的交互通信而达到对网络进行管理的目的。为了保证管理者与管理代理之间能正确地交换管理信息,需对管理信息作出定义和在两者之间达成一致协议。网络管理有五大功能:失效管理、配置管理、性能管理、安全管理和计费管理。

  3 网管系统硬件设计

  3.1 S3C4510B微处理器

  Samsung公司的S3C4510B是高性价比的16/32位RISC微控制器,共有208只引脚,采用QFP封装。内含一个16/32位ARM7TDMI RISC处理器核,ARM7TDMI为低功耗、高性能的16/32核,适用于网络控制、手机等这些具有庞大且复杂程序的多任务系统。在系统中S3C4510B处理器主要完成以下功能:

  1. 系统管理器功能。

  S3C4510B微控制器的系统管理器(System Manager)在整个系统工作中起至关重要作用,S3C4510B微控制器的系统管理器具有以下功能:

  1) 基于固定的优先级,仲裁来自几个主功能模块的系统总线访问请求。

  2) 为访问外部存储器提供必需的存储器控制信号。

  3) 为S3C4510B和ROM/SRAM,以及外部1l0组之间的总线交通提供必需的信号。

  4) 为外部存储器总线和内部数据总线之间的数据流协调总线宽度的差别。

  5) 对外部存储器和I/O设备,S3C4510B同时支持小端模式和大端模式。

  2. 系统管理器寄存器(System Manager Registers)

  系统管理器使用一组专用的特殊功能寄存器来控制外部存储器的读写操作,通过对该组特殊功能寄存器编程,可以设定:存储器的类型,外部数据总线宽度及访问周期,定时的控制信号(例如RAS和CAS,存储器组的定位,存储器组的大小,在标准系统配置中访问外设必需的控制信号、地址信号和数据信号,系统管理器通过设置特殊功能寄存器的值来控制其产生和处理。

  3. 系统存储器映射(System Memory Map)

  可以通过配置包含基指针(Base Pointer)和尾指针(End Pointer)的寄存器,设定每个存储器组的大小和位置。用户可利用基指针和尾指针设置连续的存储器映射。具体操作如下:即把某个存储器组的基指针的地址设置为前一个存储器组的尾指针的地址。请注意在设定存储器组的控制寄存器时,每两个相连的存储器组的地址空间决不能重叠,即使这些组被禁用。

  3.2 系统接口电路设计

  3.2.1接口电路总体框图

  接口电路总体框图如图2所示:

  

  图2 系统框图

  3.2.2JTAG接口电路

  JTAG是一种国际标准测试协议,主要用于电路的边界扫描测试和可编程芯片的在系统编程。JTAG技术是一种嵌入式调试技术,它在芯片内部封装了测试电路TAPC,通过专用的JTAG测试工具对内部节点进行测试。目前大多数比较复杂的器件都支持JTAG协议。标准的JTAG接口是4线:TMS, TCK, TDI, TDO,分别为模式选择、时钟、数据输入和数据输出线。JTAG测试允许多个器件通过JTAG接口串联在一起,形成一个JTAG链,能实现对各个器件分别测试。通过JTAG接口,可对芯片内部的所有部件进行访问,因而是开发调试嵌入式系统的一种简洁高效的手段。目前JTAG接口的连接有两种标准,即14针接口和20针接口。

  3.2.3Flash存储器接口电路

  Flash存储器是一种可在系统(In-System)进行电擦写,掉电后信息不丢失的存储器。它具有低功耗、大容量、擦写速度快、可整片或分扇区在系统编程(烧写)、擦除等特点,并且可由内部嵌入的算法完成对芯片的操作,因而在各种嵌入式系统中得到了广泛的应用。本系统采用一片SST39VF160构建16位的Flash存储器系统,其存储容量为2MB。

  3.2.4SDRAM接口电路

  与Flash存储器相比较,SDRAM不具有掉电保持数据的特性,但其存取速度大大高于Flash存储器,且具有读写的属性,因此,SDRAM在系统中主要用作程序的运行空间,数据及堆栈区。当系统启动时,CPU首先从复位地址0x0处读取启动代码,在完成系统的初始化后,程序代码一般应调入SDRAM中运行,以提高系统的运行速度,同时,系统及用户堆栈、运行数据也都放在SDRAM中。SDRAM具有单位空间存储容量大和价格便宜的优点,已广泛应用在各种嵌入式系统中。

  3.2.5串行接口电路

  要完成最基本的串行通信功能,实际上只需要RXD,TXD和GND即可,但RS-232-C标准所定义的高、低电平信号与S3C4510B系统的LVTTL电路所定义的高、低电平信号完全不同,显然,两者间要进行通信必须经过信号电平的转换,目前常使用的电平转换电路为MAX232。系统设计了两个9芯的D型插头。

  3.2.6以太网接口电路

  以太网接口电路主要由MAC控制器和物理层接口(Physical Layer, PHY)两大部分构成,MAC控制器在S3C4510B片内,外接的物理层接口为ACl01L。ACl01L和S3C4510B均有MII接口。当AC101L正常工作在100Mbps状态时,其发送时钟引脚、接收时钟引脚均应有25MHz的波形输出,同时,对应的LED指示灯也能正确指示芯片的工作状态。

  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.1TCP/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代理。这两个系统均用于通信设备的网路管理,工作稳定。本系统设计不需要多少成本,而性能与商用的嵌入式操作系统相差无几。因此非常适合于对成本敏感的系统设计。

  参考文献:

  [1] 李驹光,聂雪媛,江泽明,王兆卫,ARM应用系统开发详解-基于S3C4510B的系统设计,清华大学出版社2003年12月

  [2] 王航.嵌入式通信平台的硬件设计与实现,国防科学技术大学研究生院,2002年l月

  [3] 周立功等,ARM微控制器基础与实战,北京航空航天大学出版社2003年11月

  [4] [美]Mark A.Miller, P.E.著晏明峰李静晏峻峰译,用SNMP管理互联网络(第三版),中国水利水电出版社2000年3月第一版

  [5] 杨妮妮,赵新慧,李文超,冯锡炜. 基于Web的SNMP网络管理[J]. 微计算机信息, 2006, 2-3: P110-111、P72

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章