基于ARM和DS18B20設(shè)計(jì)網(wǎng)絡(luò)化的智能溫度傳感器
3.2.2 Web服務(wù)器的建立
要在微處理器中建立Web服務(wù)器,主要需要實(shí)現(xiàn)TCP/IP協(xié)議棧的移植。設(shè)計(jì)中主要采用ZLG/IP軟件包,它是廣州周立功單片機(jī)發(fā)展有限公司開發(fā)的面向嵌入式系統(tǒng)開發(fā)的TCP/IP協(xié)議棧,是ZLG系列中間件的重要成員之一。ZLG/IP提供實(shí)現(xiàn)Internet網(wǎng)絡(luò)上IP接點(diǎn)的功能,是一種高性能的嵌入式TCP/IP協(xié)議棧軟件。它使用μC/OS—II實(shí)時(shí)操作系統(tǒng)的信號(hào)機(jī)制來實(shí)現(xiàn)一個(gè)多任務(wù)并行、可重入的協(xié)議棧,完全使用ANSI C編寫,可以像μC/OS—II那樣支持多種CPU。ZLG/IP還具有層次清晰、易于升級(jí)和修改等特點(diǎn)。該ZLG/IP軟件包具體可見參考文獻(xiàn)。
ZLG/IP采用模塊化層次結(jié)構(gòu)設(shè)計(jì),其結(jié)構(gòu)如圖5所示。
圖5中,TCP/IP應(yīng)用程序是用戶自己編寫的μC/OS—II任務(wù),是ZLG/IP的使用者,位于整個(gè)程序的最高層。TCP/IP應(yīng)用程序調(diào)用ZLG/IP提供的Socket API接口函數(shù)對(duì)網(wǎng)絡(luò)進(jìn)行相應(yīng)的操作。Socket API接口位于TCP/IP協(xié)議與應(yīng)用程序之間,是用戶操作協(xié)議棧程序的工具,在應(yīng)用程序中通過調(diào)用Socket API接口函數(shù)來對(duì)協(xié)議棧軟件進(jìn)行操作。TCP、UDP處理模塊是協(xié)議棧程序中處理傳輸層協(xié)議的模塊,負(fù)責(zé)對(duì)傳輸層的數(shù)據(jù)進(jìn)行封裝和解拆,保存?zhèn)鬏攲舆B接狀態(tài)。點(diǎn)劃線內(nèi)部就是接收處理,包括IP報(bào)、ARP報(bào)、ICMP報(bào)的處理,及以太網(wǎng)層的數(shù)據(jù)接收驅(qū)動(dòng)。接收驅(qū)動(dòng)模塊在接收到數(shù)據(jù)后先進(jìn)行分類,若是IP報(bào)就由IP處理模塊處理,若是ARP報(bào)就進(jìn)行ARP協(xié)議處理。ARP請(qǐng)求報(bào)調(diào)用以太網(wǎng)發(fā)送模塊發(fā)送ARP應(yīng)答報(bào)。IP處理模塊把數(shù)據(jù)分類,TCP或UDP報(bào)則轉(zhuǎn)由上層的傳輸層模塊處理,而ICMP協(xié)議處理模塊負(fù)責(zé)對(duì)IC—MP協(xié)議進(jìn)行處理。IP發(fā)送模塊負(fù)責(zé)封裝IP報(bào),并把封裝好的IP報(bào)傳送到下層發(fā)送模塊。IP發(fā)送模塊有4個(gè)上層模塊調(diào)用:分別是Socket API接口、UDP處理、TCP處理和ICMP處理。它們把相應(yīng)的參數(shù)傳送給IP發(fā)送模塊,由IP發(fā)送模塊來封裝。Ethernet發(fā)送驅(qū)動(dòng)模塊是屬于以太網(wǎng)層的處理模塊,負(fù)責(zé)封裝以太網(wǎng)報(bào)和數(shù)據(jù)的發(fā)送,調(diào)用它的模塊有ARP處理模塊和IP發(fā)送模塊。
由于使用的是B/S結(jié)構(gòu),則編程是采用的是TCP通信的Socket API。編寫TCP通信的任務(wù)時(shí)分為服務(wù)器方式和客戶機(jī)方式兩種。服務(wù)器方式是需要監(jiān)聽連接,只有在與客戶機(jī)建立連接后才能進(jìn)行數(shù)據(jù)處理??蛻魴C(jī)方式是主動(dòng)連接服務(wù)器,也是在連接成功后才能進(jìn)行數(shù)據(jù)處理。圖6是TCP通信時(shí)服務(wù)器端和客戶機(jī)端通信的函數(shù)應(yīng)用圖。
在編程時(shí)溫度傳感器有其唯一的一個(gè)IP地址,即192.168.O.174。子網(wǎng)掩碼是255.255.255.0,網(wǎng)關(guān)地址與IP地址相同。Web服務(wù)器建立在微處理器中,個(gè)人PC機(jī)為客戶端,當(dāng)個(gè)人需要查詢溫度傳感器的值時(shí),通過HTTP協(xié)議在瀏覽器中輸入該傳感器的IP地址(即ht—tp://192.168.O.174),便可進(jìn)入該系統(tǒng)的網(wǎng)頁溫度瀏覽界面。
Web服務(wù)器任務(wù)程序代碼如下:
結(jié) 語
本系統(tǒng)已經(jīng)過測(cè)試運(yùn)行良好,能方便地通過瀏覽器實(shí)時(shí)查詢溫度傳感器所采集的溫度值。網(wǎng)絡(luò)化智能傳感器是如今傳感器技術(shù)發(fā)展的一個(gè)新的方向,本系統(tǒng)采用嵌入式技術(shù)實(shí)現(xiàn)了一個(gè)基本的基于網(wǎng)絡(luò)的智能化傳感器,其中設(shè)計(jì)的重點(diǎn)主要是對(duì)TCP/IP通信協(xié)議的實(shí)現(xiàn),即將TCP/IP協(xié)議棧移植到系統(tǒng)中,然后調(diào)用相關(guān)的API函數(shù)實(shí)現(xiàn)網(wǎng)絡(luò)通信。而Web功能的實(shí)現(xiàn)主要采用了B/S模式,通過上層的HTTP協(xié)議實(shí)現(xiàn)了瀏覽器與嵌入式網(wǎng)絡(luò)傳感器的交互。實(shí)現(xiàn)傳感器的網(wǎng)絡(luò)化控制可以很好地應(yīng)用在對(duì)家電設(shè)備的控制或工業(yè)現(xiàn)場(chǎng)的控制中,具有良好的應(yīng)用前景。
tcp/ip相關(guān)文章:tcp/ip是什么
評(píng)論