面向物聯(lián)網(wǎng)的嵌入式以太網(wǎng)終端平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)
3 WEB服務(wù)器的實(shí)現(xiàn)
HTTP定義了瀏覽器與服務(wù)器交互的不同方法,最基本的方法有4種。本系統(tǒng)的實(shí)現(xiàn)只涉及到GET和POST這兩種最基本的方法。GET一般用于向服務(wù)器獲取和查詢資源信息,而POST一般用于向服務(wù)器上傳和更新沒(méi)有長(zhǎng)度限制的、大容量的資源信息。一個(gè)基本的WEB服務(wù)器要實(shí)現(xiàn)動(dòng)態(tài)網(wǎng)頁(yè)服務(wù)的關(guān)鍵是要能夠?qū)g覽器發(fā)送的GET或POST請(qǐng)求做出響應(yīng)。一般情況下制作動(dòng)態(tài)網(wǎng)頁(yè)需要使用語(yǔ)言:HTML+ASP或HTML+PHP或HTML+ JSP等。要在資源有限的嵌入式系統(tǒng)上實(shí)現(xiàn)這樣的功能是不現(xiàn)實(shí)的,一種明智的辦法是通過(guò)使用回調(diào)函數(shù)的方式,為瀏覽器的每一種請(qǐng)求都設(shè)計(jì)一個(gè)服務(wù)函數(shù)與之對(duì)應(yīng)。當(dāng)有新增加的GET或POST請(qǐng)求時(shí),則只需要增加相應(yīng)的服務(wù)函數(shù)即可。具體實(shí)現(xiàn)時(shí)可設(shè)計(jì)一個(gè)存放服務(wù)函數(shù)地址的結(jié)構(gòu)體,其成員包括所請(qǐng)求服務(wù)參數(shù)的長(zhǎng)度、名稱和對(duì)應(yīng)服務(wù)函數(shù)的地址。然后將所有的結(jié)構(gòu)體都初始化在一個(gè)數(shù)組中,代碼如下:
在編寫應(yīng)用程序的時(shí)候,只需抓取瀏覽器所發(fā)送的請(qǐng)求類型和參數(shù),即可根據(jù)不同的請(qǐng)求來(lái)調(diào)用相應(yīng)的服務(wù)函數(shù)。當(dāng)有新的GET或者POST請(qǐng)求增加時(shí),只需要增加與之對(duì)應(yīng)的服務(wù)函數(shù)即可,這樣就實(shí)現(xiàn)了擴(kuò)展性很強(qiáng)的動(dòng)態(tài)網(wǎng)頁(yè)服務(wù)。WEB服務(wù)器響應(yīng)瀏覽器訪問(wèn)的流程如圖3所示。本文引用地址:http://2s4d.com/article/148553.htm
POST請(qǐng)求分為帶參數(shù)和不帶參數(shù)兩類,帶參數(shù)的POST請(qǐng)求,如:設(shè)置IP地址,子網(wǎng)掩碼等操作,需要提取相關(guān)參數(shù)后再調(diào)用服務(wù)函數(shù)進(jìn)行處理。不帶參數(shù)的POST請(qǐng)求只需直接調(diào)用相應(yīng)服務(wù)函數(shù)即可,如:重啟系統(tǒng)、恢復(fù)默認(rèn)參數(shù)等操作。遠(yuǎn)端PC可以通過(guò)該動(dòng)態(tài)WEB服務(wù)器來(lái)對(duì)平臺(tái)進(jìn)行訪問(wèn),完成上述幾項(xiàng)操作。在第一次啟動(dòng)本系統(tǒng)時(shí),系統(tǒng)通過(guò)運(yùn)行DHCP客戶端程序,向DHCP服務(wù)器(路由器等設(shè)備)主動(dòng)申請(qǐng)IP地址,獲得IP后,遠(yuǎn)端PC即可通過(guò)該IP地址對(duì)本系統(tǒng)進(jìn)行訪問(wèn)和設(shè)置。網(wǎng)頁(yè)界面如圖4所示。
4 結(jié)束語(yǔ)
平臺(tái)采用AT91SAM7X512處理器和DM9161以太網(wǎng)物理層芯片。兩者通過(guò)MII接口連接,高集成度的處理器提高了系統(tǒng)穩(wěn)定性,降低了數(shù)據(jù)傳輸出錯(cuò)機(jī)率。通過(guò)向終端平臺(tái)移植LwIP協(xié)議,使終端具備連入以太網(wǎng)的能力,并通過(guò)調(diào)用函數(shù)的方式在該低成本平臺(tái)上實(shí)現(xiàn)了動(dòng)態(tài)網(wǎng)頁(yè)服務(wù)器。在局域網(wǎng)條件下運(yùn)行該終端和上位機(jī)PC進(jìn)行連接,能很好的通過(guò)網(wǎng)絡(luò)傳遞RFID讀卡器采集的信息,并且上位機(jī)PC能夠通過(guò)網(wǎng)頁(yè)對(duì)本終端進(jìn)行訪問(wèn)和參數(shù)設(shè)置。針對(duì)更復(fù)雜的遠(yuǎn)程網(wǎng)絡(luò)連接和訪問(wèn),網(wǎng)絡(luò)延遲和丟包等問(wèn)題還有待進(jìn)一步的研究。
p2p機(jī)相關(guān)文章:p2p原理
評(píng)論