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