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