国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

可配置IP地址的微型嵌入式WEB服務器設計

2014-07-03 03:33:30李小勇婁顏超
關鍵詞:嵌入式客戶端解析

李小勇,婁顏超

(喀什師范學院,喀什844006)

引 言

隨著信息技術、網絡技術和嵌入式系統(tǒng)的飛速發(fā)展,微型化嵌入式設備接入互聯(lián)網是大勢所趨。相對于中小型WEB服務器,微型嵌入式 WEB服務器的優(yōu)點顯而易見。其體積小、價格低,最重要的是功耗非常低,攜帶和部署方便、快捷。在遠距離分布式測控系統(tǒng)中,希望控制節(jié)點具有接入網絡的功能,這樣可以方便地實現(xiàn)基于網絡的分布式測控;同時,出于成本考慮,也希望控制節(jié)點經濟、高效。本文針對分布式測控系統(tǒng)中對于監(jiān)控節(jié)點的需求而設計,考慮以一種實用的方式實現(xiàn)定制化的微型嵌入式WEB服務器。網絡通信功能采用開源微型TCP/IP協(xié)議棧uIP實現(xiàn),嵌入式WEB服務器以uIP協(xié)議棧作為基礎,采用SSI(服務器端包含)技術實現(xiàn)。當嵌入式WEB服務器上電運行后,可實現(xiàn)以動態(tài)的方式將包含有傳感器、執(zhí)行器信息的HTTP數(shù)據(jù)發(fā)送給客戶端,客戶端也能夠以HTTP請求的方式向服務器端發(fā)出控制命令。此外,設計了可配置網絡參數(shù)的功能,以方便部署服務器。

1 硬件設計

1.1 系統(tǒng)硬件總體設計

硬件部分由8位模數(shù)混合型單片機C8051F340、10/100 Mbps自適應以太網控制器CP2200、網絡轉接器、傳感器與接口電路、執(zhí)行器與驅動電路、電源組成。系統(tǒng)硬件組成框圖如圖1所示。

1.2 網絡通信硬件電路設計

網絡通信電路設計分成兩個部分:一部分為C8051F340[1]與 CP2200[2]的硬件接口電路設計,另一部分為CP2200與RJ45網絡轉接器的硬件接口電路設計。網絡通信硬件接口電路如圖2所示。

1.2.1 C8051F340與CP2200硬件接口電路設計

將CP2200的MOTEN和MUXEN引腳接地,使CP2200工作在非復用Intel總線模式。單片機P3口作為地址線,P4口作為數(shù)據(jù)線分別與CP2200地址線和數(shù)據(jù)線相連。CP2200的讀寫控制信號線分別與單片機的P1.6、P1.7兩引腳相連。C8051F340的P0.2引腳被分配給,與CP2200芯片的中斷信號相連。當CP2200的14個中斷事件中的任何一個產生中斷時,CP2200將中斷狀態(tài)寄存器中相應的標志位置1,并將引腳驅動到低電平來通知主機。在被允許的中斷的所有中斷標志位都被主機清0之前引腳將一直保持低電平。

圖1 系統(tǒng)硬件總體框圖

圖2 網絡通信硬件電路接口設計

1.2.2 CP2200與RJ45網絡轉接器硬件

CP2200與RJ45連接時使用的引腳有RX+、RX-、TX+、TX-,利用 RJ45實現(xiàn)與網絡的連接。CP2200的LINK和ACT引腳與LINK LED和ACT LED引腳相連,用來指示網絡狀態(tài),其中LINK是當檢測到有效連接脈沖時有效,ACT則是發(fā)送或接收一個數(shù)據(jù)包時有效。

2 軟件系統(tǒng)設計

2.1 軟件總體設計

軟件設計總體上采用層次式設計結構,是組合式嵌入式軟件設計方法[3]的一種實現(xiàn)方式。從TCP/IP模型的角度看,Ethernet初始化模塊和ARP協(xié)議模塊位于網絡接入層,完成以太網控制器的物理層初始化(PHY)、媒體訪問控制層初始化(MAC)和網絡地址解析(ARP),該層負責為上層提供通信接口和收發(fā)通信鏈路上的比特流信號。TCP/IP協(xié)議棧模塊分為兩個部分,以IP協(xié)議為核心的部分位于TCP/IP的網際互連層,以TCP協(xié)議為核心的部分位于TCP/IP模型的傳輸層?;赟SI技術的WEB服務器位于TCP/IP模型的應用層。軟件總體設計示意圖如圖3所示。

圖3 軟件總體設計示意圖

2.2 TCP/IP協(xié)議棧的移植

對于8位單片機,硬件資源是十分有限的,采用RTOS結合TCP/IP的設計方法用來接入網絡,目前沒有實際應用意義,而僅移植TCP/IP協(xié)議棧來實現(xiàn)網絡接入可以獲得良好的實時通信效果。在本設計中,移植目前常用的開源微型網絡協(xié)議棧uIP[4-6],版本采用uIP 0.6。圖4為網絡數(shù)據(jù)包接收處理總體流程。

2.3 TCP消息處理

圖4 網絡數(shù)據(jù)包接收處理過程

當從uIP接收到原始TCP消息后,需要調用TCP協(xié)議解析函數(shù)對消息體解析。由于HTTP協(xié)議是基于TCP的協(xié)議,因而只需檢查TCP消息體中是否包含HTTP協(xié)議。如果包含HTTP協(xié)議,則進入該協(xié)議處理流程中;如果不包含,則放棄目前的消息,繼續(xù)接收和解析下一個TCP消息體。

TCP消息處理流程如圖5所示,該流程對應于圖4中處理TCP消息部分。WEB服務器設計基于TCP協(xié)議,并采用 HTTP[7-8]協(xié)議實現(xiàn)。

圖5 TCP消息處理流程

2.4 基于SSI的動態(tài)網頁生成技術

SSI[9-10](服務器端包含)技術是動態(tài)生成網頁的一種技術實現(xiàn)方式。當需要在響應的WEB頁面中增加小段動態(tài)信息時,采用SSI技術是一種合適的選擇。在8位單片機上構建基于SSI機制的嵌入式WEB服務器,需要編寫專門的WEB模板解析函數(shù),用以在HTML模板中生成動態(tài)信息。SSI解析功能與參與HTTP響應的流程關系如圖6所示。

要實現(xiàn)WEB服務器內容動態(tài)響應客戶端請求的效果,需要做到實時改變HTTP消息頭和HTTP消息正文中WEB頁面特定內容的數(shù)據(jù)。在采用SSI技術達到這個目標時,本設計并未實現(xiàn)SSI全部功能,原因是解析SSI所有類型腳本需要編寫標準的SSI解析引擎,要占據(jù)大量的代碼空間,同時對于8位單片機的運行效率也是一個挑戰(zhàn),故在腳本類型的實現(xiàn)上作了很大的簡化。SSI解析函數(shù)僅處理一種嵌入式SSI腳本類型,即顯示變量值。SSI腳本的一般通用格式為:<!--#element attribute=value attribute=value...-->。其中,element為腳本命令類型,attribute為腳本變量,value為變量名。命令類型和變量不同,解析方式也不同。

圖6 SSI解析參與HTTP響應流程

2.5 WEB模板設計

WEB模板文件通常在單片機code區(qū)定義,該區(qū)僅具有只讀屬性,適合存放靜態(tài)的數(shù)據(jù)。WEB模板文件是一種符合HTML標準[11]的數(shù)據(jù)格式定義。如要增加數(shù)據(jù)動態(tài)顯示功能,需將動態(tài)顯示數(shù)值的地方插入SSI腳本。例如,在 WEB模板文件Test.html中需要動態(tài)顯示當前溫度的位置,插入一個名為<!--#echo var="TEMPERATURE"-->的標簽。模板定義示例如下:

(1)HTTP1.1協(xié)議響應頭模板定義

(2)Test.html的 WEB模板文件體定義

2.6 HTTP請求與響應

處理來自客戶端的HTTP1.1請求。HTTP請求由3部分組成,分別是:請求行、消息報頭、請求正文。在本文中,被處理的HTTP請求包括GET方式和POST方式。GET方式請求用來獲取服務器中特定WEB頁面,如果GET請求URL中附加用戶信息,服務器不作出處理。POST請求正文一般帶有用戶附加信息,服務器接收請求后要對這些信息進行處理。

2.6.1 處理GET方式HTTP請求

當有客戶端向服務器地址為192.168.131.112發(fā)送GET方式HTTP請求,獲取一個WEB文件名為Test.html的頁面時,通常發(fā)送一個包含但不限于如下內容的HTTP1.1請求:

TCP協(xié)議解析程序、HTTP協(xié)議解析程序分別識別這個網絡數(shù)據(jù)為TCP消息,同時是HTTP1.1 GET方式請求。當判斷存在Test.html網頁時,WEB服務器啟動SSI解析函數(shù),置換這個網頁的模板文件和HTTP1.1協(xié)議響應頭模板中所有嵌入的SSI腳本,然后以HTTP響應的形式發(fā)送給客戶端。

2.6.2 處理POST方式HTTP請求

當有客戶端向服務器地址為192.168.131.112發(fā)送POST方式HTTP請求,表示要通過表單向服務器提交數(shù)據(jù)。如向服務器提交新的網絡參數(shù)表單,通常發(fā)送一個包含但不限于如下內容的HTTP1.1請求:

服務器端通過協(xié)議解析程序判斷這是一個HTTP1.1 POST方式請求。當判斷存在IpConfig.html頁面時,服務器從請求正文中獲取新的網絡參數(shù)信息,并更新當前的網絡參數(shù)。當客戶端再次向服務器發(fā)起HTTP請求時,需要使用新的主機地址,這個示例新地址為192.168.131.113。同樣的,通過POST請求方式也可以用來向服務器發(fā)出控制指令,服務器根據(jù)指令完成動作。

2.7 連通性穩(wěn)定性測試

設定局域網路由器網絡參數(shù):IP地址為192.168.131.1,子網掩碼為255.255.255.0。設定局域網內PC機IP地址:192.168.131.100。設定嵌入式 WEB服務器IP地址:192.168.131.112。子網掩碼均相同。將嵌入式 WEB服務器接入局域網中,通過PC機ping WEB服務器檢查服務器的響應速度和丟包率,實驗結果如圖7和圖8所示。

圖7 網絡連通性測試

圖8 網絡通信穩(wěn)定性測試

結 語

通過實際運行與調試,基本達到了預期目的。客戶端發(fā)送HTTP GET方式請求獲取動態(tài)WEB頁面,發(fā)送POST方式請求時,在請求正文附加表單數(shù)據(jù),服務器通過處理表單數(shù)據(jù)完成對應的動作。

[1]Silicon Semiconductor Inc.C8051f34X datasheet[EB/OL].(2006-08)[2014-06].http://www.silabs.com/products/mcu/Pages/8-Bit-Microcontrollers.aspx.

[2]Silicon Laboratories Inc.Single chip ethernet controller CP2200/1[EB/OL].(2001-05)[2014-06].http://www.silabs.com.

[3]王博.可組合嵌入式軟件建模與驗證技術研究綜述[J].軟件學報,2014,25(2):234-253.

[4]Adam Dunkels.Full TCP/IP for 8 Bit Architectures[C]//In Proceedings of the First ACM/Usenix International Conference on Mobile Systems,Applications and Services.San Francisco:May 2003.

[5]A Dunkels.uIP-a TCP/IP stack for 8-and 16-bit microcontrollers[EB/OL].(2003-03)[2014-06].http://www.sics.se/~adam/publications.html.

[6]趙國鋒,邱作雨,張毅.基于單片機的嵌入式TCP/IP協(xié)議棧的設計與實現(xiàn)[J].計算機技術與發(fā)展,2009(3):137-140.

[7]The World Wide Web Consortium (W3C),Network Working Group.RFC 2616.Hypertext Transfer Protocol-HTTP/1.1[EB/OL].(1999-06)[2014-06].http://www.w3.org/Protocols/rfc2616/rfc2616.html.

[8]高嵩.基于HTTP協(xié)議的嵌入式遠程監(jiān)控系統(tǒng)的研究[D].北京:北京工業(yè)大學,2013.

[9]The Apache Software Foundation.Apache Tutorial:Introduction to Server Side Includes[EB/OL].[2014-06].http://httpd.apache.org/docs/2.2/howto/ssi.html.

[10]潘琢金,王秋實.嵌入式Web服務器中動態(tài) Web技術的研究[J].計算機工程與設計,2010,31(18):3975-3978.

[11]W3C org.W3C Recommendation for HTML[EB/OL].(2011-11)[2014-06].http://www.w3.org/community/webed/wiki/HTML.

猜你喜歡
嵌入式客戶端解析
三角函數(shù)解析式中ω的幾種求法
縣級臺在突發(fā)事件報道中如何應用手機客戶端
傳媒評論(2018年4期)2018-06-27 08:20:24
孵化垂直頻道:新聞客戶端新策略
傳媒評論(2018年4期)2018-06-27 08:20:16
基于Vanconnect的智能家居瘦客戶端的設計與實現(xiàn)
電子測試(2018年10期)2018-06-26 05:53:34
搭建基于Qt的嵌入式開發(fā)平臺
睡夢解析儀
電競初解析
商周刊(2017年12期)2017-06-22 12:02:01
嵌入式軟PLC在電鍍生產流程控制系統(tǒng)中的應用
相機解析
Altera加入嵌入式視覺聯(lián)盟
拉萨市| 南漳县| 佛教| 东宁县| 长顺县| 三穗县| 含山县| 赣榆县| 迁西县| 同仁县| 澄迈县| 临城县| 白河县| 唐河县| 叙永县| 绥德县| 桦甸市| 梁山县| 义马市| 高台县| 香港 | 沈丘县| 巴林右旗| 梅州市| 金门县| 东港市| 大同市| 镇沅| 剑河县| 孟津县| 西乌珠穆沁旗| 松江区| 绥江县| 寿宁县| 西乡县| 绥棱县| 会理县| 宝兴县| 大理市| 赫章县| 丁青县|