郝夢(mèng)巖
(長(zhǎng)治學(xué)院 計(jì)算機(jī)系,山西 長(zhǎng)治 046011)
基于PCM-3386單片機(jī)的嵌入式WEB服務(wù)器
郝夢(mèng)巖
(長(zhǎng)治學(xué)院 計(jì)算機(jī)系,山西 長(zhǎng)治 046011)
文章提出一種基于PCM-3386單片機(jī)的嵌入式WEB服務(wù)器的實(shí)現(xiàn)方案,重點(diǎn)探討了系統(tǒng)的硬件平臺(tái)、嵌入式TCP/IP協(xié)議以及安全機(jī)制。其關(guān)鍵是在PCM-3386單片機(jī)內(nèi)部嵌入TCP/IP協(xié)議棧。
嵌入式系統(tǒng);Web服務(wù)器;以太網(wǎng);TCP/IP協(xié)議
隨著互聯(lián)網(wǎng)的日益普及,信息共享的程度不斷提高,嵌入式系統(tǒng)的Internet接入已成為人們?cè)絹?lái)越關(guān)注的研究課題。
嵌入系統(tǒng)的硬件平臺(tái)必須具有運(yùn)行速度快、存儲(chǔ)容量大等基本特點(diǎn),同時(shí)為了能傳輸各種信息,硬件系統(tǒng)還必須具有能接入Internet的網(wǎng)絡(luò)接口?;谝陨弦蛩氐目紤],本設(shè)計(jì)采用了深圳某公司生產(chǎn)的PCM-3386開發(fā)板。開發(fā)板具有RISC架構(gòu)、流水線技術(shù)、指令集與80C186處理器兼容、主頻100MHz和在板1MB SDRAM內(nèi)存以及高速以太網(wǎng)符合IEEE 802.3,802.3u規(guī)范等支持等特點(diǎn)。在軟件方面直接支持BorlandC集成開發(fā)環(huán)境(包括BC3.1、BC4.0等)、Turbo Debugger源碼調(diào)試(交叉調(diào)試環(huán)境)。
嵌入式WEB服務(wù)器技術(shù)的核心是在嵌入式系統(tǒng)中部分或完整的實(shí)現(xiàn)TCP/IP協(xié)議以及HTTP引擎。由于嵌入式設(shè)備資源一般都比較有限,并且也不需要同時(shí)處理很多用戶的請(qǐng)求,因此我們?cè)O(shè)計(jì)了基于PCM-3386單片機(jī)的嵌入式Web服務(wù)器。這種Web服務(wù)器在存貯空間和運(yùn)行時(shí)所占有的內(nèi)存空間都會(huì)非常適合于嵌入式應(yīng)用場(chǎng)合。
ARP用于實(shí)現(xiàn)IP地址到網(wǎng)絡(luò)接口硬件地址的映射。ARP可以同時(shí)工作在其他類型的數(shù)據(jù)鏈路下,但對(duì)于我們的嵌入式WEB服務(wù)器,只考慮將IP地址映射到48 bit的以太網(wǎng)地址。
ARP主要實(shí)現(xiàn)以下兩個(gè)函數(shù):
(1)void arprequest(struct arpcom*ac,u_long*sip,*tip,u_char*enaddr),該函數(shù)建立ARP請(qǐng)求分組,并將它傳送到接口的輸出函數(shù)。
(2)in_arpinput(structmbuf*m),該函數(shù)用于處理接收到的ARP請(qǐng)求/應(yīng)答。
IP協(xié)議是TCP/IP協(xié)議簇中的核心協(xié)議,提供數(shù)據(jù)傳輸?shù)淖罨痉?wù)。這是一個(gè)不可靠、無(wú)連接的數(shù)據(jù)報(bào)協(xié)議,它盡最大的努力使不同的設(shè)備之間利用IP地址進(jìn)行通信,使處于不同網(wǎng)絡(luò)的主機(jī)之間能發(fā)送IP數(shù)據(jù)報(bào)。針對(duì)嵌入式系統(tǒng)的特點(diǎn),該IP模塊不實(shí)現(xiàn)路由選擇功能,不支持路由器的一系列路由選路信息協(xié)議,這樣就簡(jiǎn)化了IP協(xié)議的實(shí)現(xiàn)。在IP數(shù)據(jù)報(bào)中,通過(guò)子網(wǎng)掩碼比較IP報(bào)頭的目的地址字段是否與本機(jī)在同一子網(wǎng)內(nèi)。如果是則直接發(fā)送給目的主機(jī),否則把它轉(zhuǎn)發(fā)給一個(gè)默認(rèn)的路由器。對(duì)于接收到的IP數(shù)據(jù)報(bào),它會(huì)根據(jù)IP報(bào)頭中的協(xié)議字段內(nèi)容交由相應(yīng)的ICMP模塊或傳輸層TCP/UDP模塊處理。
(1)void ipintr (long ipaddr,char xdata*outbuff,char proto_id,int len)發(fā)送IP數(shù)據(jù)。該程序用來(lái)創(chuàng)建一個(gè)發(fā)送數(shù)據(jù)報(bào)。當(dāng)系統(tǒng)需要發(fā)送數(shù)據(jù)時(shí),IP層以上的協(xié)議將調(diào)用該函數(shù)。
(2)void ip_rcev(char xdata*buff)接收 IP 數(shù)據(jù)。該函數(shù)檢測(cè)一個(gè)收到的數(shù)據(jù)包,并對(duì)數(shù)據(jù)包作相應(yīng)的處理。
ICMP協(xié)議是IP協(xié)議的補(bǔ)充,用于IP層的差錯(cuò)報(bào)告、擁塞控制、路徑控制以及路由器或主機(jī)信息的獲取。在嵌入式WEB服務(wù)器中,該ICMP模塊只實(shí)現(xiàn)ICMP回顯請(qǐng)求與應(yīng)答報(bào)文,它是網(wǎng)絡(luò)管理人員最有力的診斷工具。TCP/IP網(wǎng)絡(luò)系統(tǒng)所提供的ping命令大多是利用ICMP回應(yīng)請(qǐng)求與應(yīng)答報(bào)文來(lái)實(shí)現(xiàn)的,該命令通常用于測(cè)試信宿的可到達(dá)性。
根據(jù)PCM-3386單片機(jī)資源現(xiàn)狀,在本設(shè)計(jì)中只實(shí)現(xiàn)了一個(gè)簡(jiǎn)化的ping命令。包括ICMP_ECHO和ICMP_ECHOREPLY兩個(gè)主要函數(shù)。
在嵌入式Web服務(wù)器中,TCP協(xié)議只支持一種應(yīng)用程序即HTTP協(xié)議來(lái)傳送網(wǎng)頁(yè)文件,并且把每個(gè)網(wǎng)頁(yè)文件大小限制在一個(gè)數(shù)據(jù)報(bào)內(nèi),而不會(huì)出現(xiàn)在網(wǎng)絡(luò)層IP數(shù)據(jù)報(bào)的分片。作為嵌入式Web服務(wù)器,TCP連接只處于被動(dòng)服務(wù)的狀態(tài),即省去主動(dòng)創(chuàng)建連接的發(fā)送SYN、主動(dòng)關(guān)閉連接的FIN等待這些狀態(tài)。為了保持嵌入式Web服務(wù)器更為高效,在設(shè)計(jì)中讓它一直處于監(jiān)聽狀態(tài),用以監(jiān)聽客戶端的連接請(qǐng)求,避免主動(dòng)或被動(dòng)打開操作。另外,在嵌入式Web服務(wù)器中,TCP協(xié)議使用簡(jiǎn)單確認(rèn)機(jī)制以及僅對(duì)發(fā)送的TCP報(bào)文進(jìn)行校驗(yàn)和計(jì)算。
人們?cè)诟惺芤蛱鼐W(wǎng)為科學(xué)研究、經(jīng)濟(jì)建設(shè)、商業(yè)活動(dòng)和日常生活帶來(lái)便利的同時(shí),也開始注意到日益突出的網(wǎng)絡(luò)安全問(wèn)題。因此我們?cè)谇度胧絎eb服務(wù)器系統(tǒng)中加入一些安全措施。目前考慮的安全策略有:
1)閉環(huán)網(wǎng)絡(luò)訪問(wèn)策略:即把所有可能的攻擊點(diǎn)全部局限在本網(wǎng)絡(luò)范圍內(nèi)。
2)訪問(wèn)控制策略:為特定的用戶提供訪問(wèn)資源的權(quán)限。對(duì)一些關(guān)鍵信息,將其標(biāo)記為只讀特性,尤其是外網(wǎng)用戶。
3)密碼和防火墻策略:防火墻是通過(guò)物理上阻塞所有不經(jīng)過(guò)防火墻的網(wǎng)絡(luò)訪問(wèn)通道,從而保證所有從內(nèi)到外和從外到內(nèi)的通信量都必須經(jīng)過(guò)防火墻。同時(shí)所有數(shù)據(jù)傳送必須要進(jìn)行加密。
因此,基于安全機(jī)制的考慮,本論文把訪問(wèn)控制權(quán)限加入到嵌入式WEB服務(wù)器中,用戶第一次登陸時(shí)會(huì)要求輸入用戶名和密碼,并且用戶通過(guò)動(dòng)態(tài)網(wǎng)頁(yè)處理模塊對(duì)遠(yuǎn)程系統(tǒng)進(jìn)行控制時(shí)也要求有一定的客戶權(quán)限。它們是通過(guò)在配置文件http.conf中的定義給其分配不同的資源權(quán)限來(lái)完成的。
本文通過(guò)對(duì)嵌入式設(shè)備接入Internet技術(shù)的研究,分析了嵌入式Internet接入的幾種解決方案,提出并實(shí)現(xiàn)了一個(gè)基于PCM-3386的解決方案。所完成的主要工作如下。
(1)以PCM-3386為硬件平臺(tái),以Borland C為軟件開發(fā)環(huán)境,開發(fā)并實(shí)現(xiàn)了一個(gè)嵌入式Web服務(wù)器,成功的實(shí)現(xiàn)了嵌入式系統(tǒng)的Internet接入。
(2)設(shè)計(jì)實(shí)現(xiàn)的嵌入式Web服務(wù)器具有以下功能:提供ARP、IP、ICMP、TCP、HTTP協(xié)議;支持 ping命令的響應(yīng);可以用TCP進(jìn)行數(shù)據(jù)傳送、可以為用戶提供WWW服務(wù)。
(3)經(jīng)過(guò)試驗(yàn),所設(shè)計(jì)實(shí)現(xiàn)的精簡(jiǎn)TCP/IP協(xié)議棧和HTTP協(xié)議工作正常。
本文設(shè)計(jì)實(shí)現(xiàn)的嵌入式Web服務(wù)器具有小巧輕便、成本低、功能易于擴(kuò)充、符合小客戶端要求等優(yōu)勢(shì),同時(shí)維護(hù)方便、安全性較高、動(dòng)態(tài)性好,客戶通過(guò)Web頁(yè)面能夠方便地對(duì)網(wǎng)站內(nèi)容進(jìn)行管理。同時(shí)本產(chǎn)品可應(yīng)用在信息家電、工作控制自動(dòng)化、環(huán)境工程、智能儀器及傳感技術(shù)等方面。
[1]CharlesM.Kozierok.TCP/IP 指南[M].北京:人民郵電出版社,2008.
[2]Behrouz A.Forouzan.TCP/IP協(xié)議族[M].北京:清華大學(xué)出版社,2006.
[3]Laura A.Chappell.TCP/IP協(xié)議原理與應(yīng)用[M].北京:清華大學(xué)出版社,2006.
[4]蘭少華.TCP/IP網(wǎng)絡(luò)與協(xié)議[M].北京:清華大學(xué)出版社,2006.
Abstact:With the increasing popularization of Internet and the improvement of information sharing,how to implement the interconnection between embedded systems and Internet,has been a very popular research subject.A method based on PCM-3386 to implement an embedded Web Server is provided in this dissertation.How to implement the TCP/IP Lean in PCM-3386 is the key to implementaWeb Server.
Keywords:embedded system;Web server;ethernet;TCP/IP protocols
(責(zé)任編輯 李學(xué)斌)
An Embedded Web Server Based on PCM-3386 to Implement
HAOMeng-yan
(the Departmentof Computer Science,Changzhi University,Changzhi Shanxi 046011)
TP393< class="emphasis_bold">文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1
A
1673-2014(2010)02-0017-02
2009—12—14
郝夢(mèng)巖(1979— ),女,山西長(zhǎng)治人,助教,主要從事計(jì)算機(jī)網(wǎng)絡(luò)研究。