基于微控制器的web服務器設計
關鍵字: SNMP;微控制器;嵌入式WEB服務器
1 引言
隨著信息技術與網(wǎng)絡的高速發(fā)展,人類開始進入后PC時代。所謂后PC時代,從它原意來理解,是指計算無所不在,它滲透到我們工作、學習和生活的方方面面,但這樣的無所不在的計算機不是以PC的形式擺上桌面上,而是以嵌入式系統(tǒng)的形式存在。與此同時,網(wǎng)絡管理的難度和要求日益提高,網(wǎng)絡的可管理性和智能化是今后各類網(wǎng)絡的發(fā)展方向。如何管理計算機網(wǎng)絡,如何建立一個有效的、滿足要求的網(wǎng)絡管理系統(tǒng),這是當今網(wǎng)絡管理技術人員必須掌握的技術。
2 嵌入式系統(tǒng)與網(wǎng)絡管理相關介紹
2.1 嵌入式系統(tǒng)
嵌入式系統(tǒng)應該具有以下特點:首先嵌入式系統(tǒng)主要應用于特定領域,它具有通用計算機系統(tǒng)不具備或不善長的專注于特定領域的功能。其次,嵌入式系統(tǒng)在結(jié)構(gòu)上具有多樣性。與通用計算機系統(tǒng)不同,嵌入式系統(tǒng)由于應用領域廣泛,其器件和結(jié)構(gòu)上都會有極大的差異。因此,在設計方法上,區(qū)別于通用計算機系統(tǒng)。通用計算機系統(tǒng)的軟硬件設計往往是分離進行的,而嵌入式系統(tǒng)則需要軟硬件協(xié)同設計。嵌入式系統(tǒng)結(jié)構(gòu)如圖1所示。
圖1 嵌入式系統(tǒng)結(jié)構(gòu)
2.2 網(wǎng)絡管理
網(wǎng)絡管理一般是指對網(wǎng)絡系統(tǒng)中的各種設備進行監(jiān)測,分析與控制,從而保障整個網(wǎng)絡系統(tǒng)可靠,有效地運行。通常,網(wǎng)管系統(tǒng)主要是由管理者和管理代理兩種實體組成。網(wǎng)絡管理員通過管理者與管理代理之間的交互通信而達到對網(wǎng)絡進行管理的目的。為了保證管理者與管理代理之間能正確地交換管理信息,需對管理信息作出定義和在兩者之間達成一致協(xié)議。網(wǎng)絡管理有五大功能:失效管理、配置管理、性能管理、安全管理和計費管理。
3 網(wǎng)管系統(tǒng)硬件設計
3.1 S3C4510B微處理器
Samsung公司的S3C4510B是高性價比的16/32位RISC微控制器,共有208只引腳,采用QFP封裝。內(nèi)含一個16/32位ARM7TDMI RISC處理器核,ARM7TDMI為低功耗、高性能的16/32核,適用于網(wǎng)絡控制、手機等這些具有龐大且復雜程序的多任務系統(tǒng)。在系統(tǒng)中S3C4510B處理器主要完成以下功能:
1. 系統(tǒng)管理器功能。
S3C4510B微控制器的系統(tǒng)管理器(System Manager)在整個系統(tǒng)工作中起至關重要作用,S3C4510B微控制器的系統(tǒng)管理器具有以下功能:
1) 基于固定的優(yōu)先級,仲裁來自幾個主功能模塊的系統(tǒng)總線訪問請求。
2) 為訪問外部存儲器提供必需的存儲器控制信號。
3) 為S3C4510B和ROM/SRAM,以及外部1l0組之間的總線交通提供必需的信號。
4) 為外部存儲器總線和內(nèi)部數(shù)據(jù)總線之間的數(shù)據(jù)流協(xié)調(diào)總線寬度的差別。
5) 對外部存儲器和I/O設備,S3C4510B同時支持小端模式和大端模式。
2. 系統(tǒng)管理器寄存器(System Manager Registers)
系統(tǒng)管理器使用一組專用的特殊功能寄存器來控制外部存儲器的讀寫操作,通過對該組特殊功能寄存器編程,可以設定:存儲器的類型,外部數(shù)據(jù)總線寬度及訪問周期,定時的控制信號(例如RAS和CAS,存儲器組的定位,存儲器組的大小,在標準系統(tǒng)配置中訪問外設必需的控制信號、地址信號和數(shù)據(jù)信號,系統(tǒng)管理器通過設置特殊功能寄存器的值來控制其產(chǎn)生和處理。
3. 系統(tǒng)存儲器映射(System Memory Map)
可以通過配置包含基指針(Base Pointer)和尾指針(End Pointer)的寄存器,設定每個存儲器組的大小和位置。用戶可利用基指針和尾指針設置連續(xù)的存儲器映射。具體操作如下:即把某個存儲器組的基指針的地址設置為前一個存儲器組的尾指針的地址。請注意在設定存儲器組的控制寄存器時,每兩個相連的存儲器組的地址空間決不能重疊,即使這些組被禁用。
3.2 系統(tǒng)接口電路設計
3.2.1 接口電路總體框圖
接口電路總體框圖如圖2所示:
圖2 系統(tǒng)框圖
3.2.2 JTAG接口電路
JTAG是一種國際標準測試協(xié)議,主要用于電路的邊界掃描測試和可編程芯片的在系統(tǒng)編程。JTAG技術是一種嵌入式調(diào)試技術,它在芯片內(nèi)部封裝了測試電路TAPC,通過專用的JTAG測試工具對內(nèi)部節(jié)點進行測試。目前大多數(shù)比較復雜的器件都支持JTAG協(xié)議。標準的JTAG接口是4線:TMS, TCK, TDI, TDO,分別為模式選擇、時鐘、數(shù)據(jù)輸入和數(shù)據(jù)輸出線。JTAG測試允許多個器件通過JTAG接口串聯(lián)在一起,形成一個JTAG鏈,能實現(xiàn)對各個器件分別測試。通過JTAG接口,可對芯片內(nèi)部的所有部件進行訪問,因而是開發(fā)調(diào)試嵌入式系統(tǒng)的一種簡潔高效的手段。目前JTAG接口的連接有兩種標準,即14針接口和20針接口。
3.2.3 Flash存儲器接口電路
Flash存儲器是一種可在系統(tǒng)(In-System)進行電擦寫,掉電后信息不丟失的存儲器。它具有低功耗、大容量、擦寫速度快、可整片或分扇區(qū)在系統(tǒng)編程(燒寫)、擦除等特點,并且可由內(nèi)部嵌入的算法完成對芯片的操作,因而在各種嵌入式系統(tǒng)中得到了廣泛的應用。本系統(tǒng)采用一片SST39VF160構(gòu)建16位的Flash存儲器系統(tǒng),其存儲容量為2MB。
3.2.4 SDRAM接口電路
與Flash存儲器相比較,SDRAM不具有掉電保持數(shù)據(jù)的特性,但其存取速度大大高于Flash存儲器,且具有讀寫的屬性,因此,SDRAM在系統(tǒng)中主要用作程序的運行空間,數(shù)據(jù)及堆棧區(qū)。當系統(tǒng)啟動時,CPU首先從復位地址0x0處讀取啟動代碼,在完成系統(tǒng)的初始化后,程序代碼一般應調(diào)入SDRAM中運行,以提高系統(tǒng)的運行速度,同時,系統(tǒng)及用戶堆棧、運行數(shù)據(jù)也都放在SDRAM中。SDRAM具有單位空間存儲容量大和價格便宜的優(yōu)點,已廣泛應用在各種嵌入式系統(tǒng)中。
3.2.5 串行接口電路
要完成最基本的串行通信功能,實際上只需要RXD,TXD和GND即可,但RS-232-C標準所定義的高、低電平信號與S3C4510B系統(tǒng)的LVTTL電路所定義的高、低電平信號完全不同,顯然,兩者間要進行通信必須經(jīng)過信號電平的轉(zhuǎn)換,目前常使用的電平轉(zhuǎn)換電路為MAX232。系統(tǒng)設計了兩個9芯的D型插頭。
3.2.6 以太網(wǎng)接口電路
以太網(wǎng)接口電路主要由MAC控制器和物理層接口(Physical Layer, PHY)兩大部分構(gòu)成,MAC控制器在S3C4510B片內(nèi),外接的物理層接口為ACl01L。ACl01L和S3C4510B均有MII接口。當AC101L正常工作在100Mbps狀態(tài)時,其發(fā)送時鐘引腳、接收時鐘引腳均應有25MHz的波形輸出,同時,對應的LED指示燈也能正確指示芯片的工作狀態(tài)。
4 網(wǎng)管系統(tǒng)軟件設計
4.1 Rabbit2000與嵌入式服務器
Rabbit 2000是專門為新一代嵌入式系統(tǒng)設計的高性能8位微處理器,與Z80, Z180, HD64180有著相似的結(jié)構(gòu),并且在很多方面有了很大的改進。目前,嵌入式Web技術是計算機領域研究的熱點,開發(fā)出低成本、高通用性、能運行在8位或16位MCU環(huán)境中的嵌入式Web服務器將會極大地促進低端控制設備的信息化。
基于Web的網(wǎng)絡管理(WBM)技術是Internet網(wǎng)絡不斷普及的結(jié)果。其根本點就是允許通過Web瀏覽器進行網(wǎng)絡管理,可以把SNMP數(shù)據(jù)匯集到Web應用中去,既集成了SNMP協(xié)議,又能較好地解決網(wǎng)絡管理平臺存在的困難。WBM融合了Web功能與網(wǎng)管技術,從而為網(wǎng)管人員提供了比傳統(tǒng)工具更強有力的能力。管理者的操作不受地理位置的限制,可在任何平臺下被訪問。對系統(tǒng)的修改只需在Web Server上進行,無需在客戶端作任何修改,減少了系統(tǒng)維護及修改的工作量與費用。具體包括HTTP協(xié)議、HTML語言、CGI原理以及B/S結(jié)構(gòu)。
4.2 基于Rabbit2000的嵌入式服務器
4.2.1 TCP/IP協(xié)議棧與HTTP的實現(xiàn)
IP包含編址方案,并提供尋址功能;TCP則是在不同主機的對等進程之間提供可靠的進程間通信。與TCP兩端口所連接的實體中,一端為應用程序進程或用戶,另一端則為底層協(xié)議,如IP協(xié)議。TCP在建立連接過程中采用三向握手機制,以保證數(shù)據(jù)的可靠性。 Dynamic C實現(xiàn)TCP/IP協(xié)議通信的程序主體框架。在Dynamic C中,HTTP由HTTP.LIB來負責實現(xiàn)。
4.2.2 系統(tǒng)工作流程
系統(tǒng)流程如下:
(1) 系統(tǒng)上電,從FLASH讀取系統(tǒng)配置信息,進行相應的配置。
(2) 各個變量初始化。
(3) 設置波特率,清空接收,發(fā)送緩沖區(qū)。
(4) 初始化各受控變量,及相關標記。
(5) 讀flash,判斷是否有數(shù)據(jù)保存標志。如有,則讀出各個設置,賦值給各相關變量。
(6) 如沒有,則認為是設置初始化,重新初始化文件系統(tǒng),格式化,寫入缺省設置。
(7) 初始化socket,啟動以太網(wǎng)。
(8) 進入通訊,與機架上的各臺設備通信。
(9) 啟動web服務器,等待連接。
(10) 8與9各作為一個線程一直循環(huán)執(zhí)行。
(11) 隔一段時間查詢,如果掉電后需要保存的數(shù)據(jù)發(fā)生變化,則把數(shù)據(jù)保存到flash o
(12) 如果用戶改變agentip,管理ip,子網(wǎng)掩碼,網(wǎng)關等,則重新配置網(wǎng)絡。
4.3 UCD-SNMP代理擴展
基于SNMP的網(wǎng)絡管理軟件及應用開發(fā)工具有很多,較為普及和流行的一種即為UCD-SNMP。由于UCD-SNMP的應用較為廣泛,而該軟件提供了較多的實用SNMP網(wǎng)絡管理工具和SNMP代理,所以在實際使用中可以直接用于網(wǎng)絡管理,進行各種操作。對該工具進行功能上的擴展,可以修改代理配置文件使SNMP代理能夠執(zhí)行外部命令,也可以擴展代理支持的MIB使代理能夠支持自定義的被管對象。包括三方面擴展: 1) MIB定義文件;2) C代碼頭文件;3) C 代碼執(zhí)行文件。
4.4 MIB設計
MIB包括代理端本身MIB和設備MIB兩大部分。
4.4.1 代理端本身MIB
代理端本身MIB:包括私有MIB和標準的MIBⅡ兩大部分。
1.私有MIB
私有MIB:代理端系統(tǒng)描述,代理端ip地址,代理端mac地址,管理端ip,子網(wǎng)掩碼,網(wǎng)關,代理OID,代理啟動時間,設備數(shù)目,一些標記等。OID前綴為1.3.6.1.4.1.20353.1。
2. MIBⅡ
MIBⅡ是目前最重要,也是獲得支持最廣泛的MIB, UCD_ SNMP支持MIBⅡ。只要把MIBⅡ編譯進agent,作一些小的修改就可以了。
4.4.2 設備MIB
設備MIB:設備型號,設備總體狀態(tài),各指示燈狀態(tài),各按鈕狀態(tài),設置按鈕(按下或彈出),其他設置等。
OID前綴為1.3.6.1.4.1.20353.2.
動態(tài)MIB的設計:
各型號設備的MIB子樹的結(jié)構(gòu)作為全局變量,在系統(tǒng)啟動時就已經(jīng)存在。系統(tǒng)啟動時,通信程序輪詢一遍各設備的狀態(tài),發(fā)現(xiàn)某個地址有設備,讀取該設備型號及MIB信息,為該設備注冊MIB子樹。這樣,一遍輪詢后,設備的MIB都已經(jīng)建立起來了。
程序不停的輪詢各設備的狀態(tài),當發(fā)現(xiàn)設備已經(jīng)不在線時,從系統(tǒng)MIB樹注銷該設備所在位置的子MIB樹。當發(fā)現(xiàn)新設備時,向系統(tǒng)MIB樹注冊該設備所在位置的子MIB樹。當設備狀態(tài)改變時,改變相應的MIB變量。這樣,就實現(xiàn)了MIB的動態(tài)刷新。
5 本文作者創(chuàng)新點
近年來,隨著計算機軟硬件技術的迅速發(fā)展,計算機的應用已逐漸深入各個領域,它滲透到我們工作、學習和生活的方方面面。本文設計并實現(xiàn)了基于RABBIT 2000的WEB服務器,基于ARM+UCLINUX的SNMP代理。這兩個系統(tǒng)均用于通信設備的網(wǎng)路管理,工作穩(wěn)定。本系統(tǒng)設計不需要多少成本,而性能與商用的嵌入式操作系統(tǒng)相差無幾。因此非常適合于對成本敏感的系統(tǒng)設計。
參考文獻:
[1] 李駒光,聶雪媛,江澤明,王兆衛(wèi),ARM應用系統(tǒng)開發(fā)詳解-基于S3C4510B的系統(tǒng)設計,清華大學出版社2003年12月
[2] 王航.嵌入式通信平臺的硬件設計與實現(xiàn),國防科學技術大學研究生院,2002年l月
[3] 周立功等,ARM微控制器基礎與實戰(zhàn),北京航空航天大學出版社2003年11月
[4] [美]Mark A.Miller, P.E.著晏明峰李靜晏峻峰譯,用SNMP管理互聯(lián)網(wǎng)絡(第三版),中國水利水電出版社2000年3月第一版
[5] 楊妮妮,趙新慧,李文超,馮錫煒. 基于Web的SNMP網(wǎng)絡管理[J]. 微計算機信息, 2006, 2-3: P110-111、P72