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