李振 張勤 王磊
摘要 隨著科學(xué)技術(shù)的飛速發(fā)展,嵌入式系統(tǒng)在計(jì)算機(jī)領(lǐng)域中顯得尤為重要。嵌入式系統(tǒng)具有軟硬件性能的裁剪性。除此之外,嵌入式系統(tǒng)還具有精簡(jiǎn)的系統(tǒng),時(shí)效性非常高和功耗非常低的特點(diǎn)。因?yàn)镠TML具有語(yǔ)言標(biāo)準(zhǔn)統(tǒng)一性的特點(diǎn),所以只要將網(wǎng)絡(luò)服務(wù)器嵌入到嵌入式設(shè)備中,就可以實(shí)現(xiàn)客戶(hù)端瀏覽器收發(fā)信息和控制外圍設(shè)備等功能。本論文根據(jù)ARM的嵌入式系統(tǒng)的網(wǎng)絡(luò)互連技術(shù)和網(wǎng)絡(luò)通信基礎(chǔ)知識(shí),對(duì)嵌入式設(shè)備用到的TCP/IP協(xié)議進(jìn)行了合理的分析和簡(jiǎn)化,最后選擇了TCP/IP協(xié)議中簡(jiǎn)化的UIP協(xié)議棧,實(shí)現(xiàn)了嵌入式Web服務(wù)器。
【關(guān)鍵詞】STM32 Web服務(wù)器 遠(yuǎn)程控制
目前,通過(guò)網(wǎng)絡(luò)來(lái)實(shí)現(xiàn)對(duì)局域網(wǎng)甚至是互聯(lián)網(wǎng)的外圍設(shè)備的監(jiān)測(cè)與控制,在工業(yè)控制系統(tǒng)中變得尤為重要?,F(xiàn)在的嵌入式Intemet技術(shù)在不受網(wǎng)絡(luò)異構(gòu)問(wèn)題的基礎(chǔ)上,完美的實(shí)現(xiàn)了遠(yuǎn)程控制技術(shù)。相對(duì)于傳統(tǒng)的網(wǎng)絡(luò)智能化水平取得了很大的進(jìn)步,從而使得傳統(tǒng)的產(chǎn)業(yè)結(jié)構(gòu)得到了很大的改善。嵌入式Web服務(wù)器作為其代表,能夠讓使用Internet的用戶(hù)更加快捷方便處理信息。而且能夠通過(guò)以太網(wǎng)和調(diào)制解調(diào)器的連接,實(shí)現(xiàn)在連接的任何網(wǎng)絡(luò)上運(yùn)行,最終達(dá)到對(duì)遠(yuǎn)程設(shè)備的監(jiān)測(cè)和控制。
1 嵌入式Web服務(wù)器的現(xiàn)狀
嵌入式Web技術(shù),其含義就是嵌入式系統(tǒng)連接到網(wǎng)絡(luò)的實(shí)現(xiàn)。嵌入式Web技術(shù)必須具備較好的計(jì)算能力和存儲(chǔ)能力,這樣處理IP數(shù)據(jù)包的網(wǎng)絡(luò)帶寬以及吞吐量的速度會(huì)較快。在軟件上能夠?qū)崿F(xiàn)網(wǎng)絡(luò)的相關(guān)通信協(xié)議,從而處理數(shù)據(jù)的封裝編碼和發(fā)送接收等一系列相關(guān)問(wèn)題。
由于嵌入式系統(tǒng)所連接的互聯(lián)網(wǎng)非常大,設(shè)計(jì)的協(xié)議很多,所以用傳統(tǒng)的方法將PC端連接到網(wǎng)絡(luò)還是有很大的困難。嵌入式系統(tǒng)中除了少些處理器,大部分是存儲(chǔ)容量比較小,運(yùn)行速度比較慢的是8為和16位的嵌入式控制單元,而因特網(wǎng)上面的各種協(xié)議需要計(jì)算機(jī)能夠存儲(chǔ)大容量、運(yùn)行速度要快等一些方面,它們不相吻合,所以造成了比較多的困難。除此之外,傳統(tǒng)的TCP/IP協(xié)議由于實(shí)時(shí)性方面相對(duì)比較差,所以重點(diǎn)都花在了數(shù)據(jù)傳輸?shù)姆€(wěn)定性能方面和數(shù)據(jù)流量操控方面,導(dǎo)致了傳統(tǒng)的TCP/IP協(xié)議不適合用在實(shí)時(shí)性相對(duì)比較高的嵌入式領(lǐng)域當(dāng)中。綜上所述,使用傳統(tǒng)的TCP/IP協(xié)議連接到互聯(lián)網(wǎng)是不可取的。只要對(duì)其協(xié)議進(jìn)行適當(dāng)?shù)牟眉舨⒓右詢(xún)?yōu)化,不僅具備簡(jiǎn)潔性,又能夠使微處理器擁有更多的存儲(chǔ)空間去實(shí)現(xiàn)更多的外圍設(shè)備,符合嵌入式應(yīng)用的需求。
2 嵌入式Web服務(wù)器的設(shè)計(jì)
2.1 HTTP協(xié)議的實(shí)現(xiàn)
HTTP超文本傳輸協(xié)議的作用是搭建分布式的信息系統(tǒng),然后在www萬(wàn)維網(wǎng)上實(shí)現(xiàn)存儲(chǔ)數(shù)據(jù),它分布在TCP/IP協(xié)議之上的應(yīng)用層。
在嵌入式系統(tǒng)中,用戶(hù)得到網(wǎng)頁(yè)頁(yè)面文件需要網(wǎng)絡(luò)服務(wù)器的一系列處理。網(wǎng)絡(luò)服務(wù)器被動(dòng)的接收到來(lái)自于用戶(hù)的請(qǐng)求后,會(huì)立刻判斷這些請(qǐng)求是不是合理的。然后分析這些報(bào)文信息所包含的內(nèi)容,收到相關(guān)信息數(shù)據(jù),最后提供給用戶(hù)網(wǎng)頁(yè)頁(yè)面。
2.1.1 GET請(qǐng)求
當(dāng)用戶(hù)需要網(wǎng)絡(luò)上的資源時(shí),用戶(hù)會(huì)輸入其網(wǎng)址來(lái)訪(fǎng)問(wèn),這也屬于GET的請(qǐng)求。GET請(qǐng)求的定義,即用戶(hù)請(qǐng)求需要的頁(yè)面信息然后立即返回實(shí)體主體中去。用戶(hù)所需的文檔的地定義都在URL中。正常情況下,服務(wù)器在響應(yīng)的時(shí)候一般把文檔的內(nèi)容置放在響應(yīng)報(bào)文的主體中去。
2.1.2 POST請(qǐng)求
響應(yīng)報(bào)文以多種形式出現(xiàn),有可能是狀態(tài)行,也有可能是其中的一個(gè)首部,也有可能是包含的一個(gè)主體。定義報(bào)文的狀態(tài)和反應(yīng)響應(yīng)的狀態(tài)分別由狀態(tài)行和狀態(tài)碼字段實(shí)現(xiàn)。不同系列的代碼表示不同的功能和作用。100系列到500系列中5個(gè)代碼的含義,分別表示非正式、請(qǐng)求成功、在URL里客戶(hù)重新定向、客戶(hù)端中的某個(gè)差錯(cuò),以及在服務(wù)端中的某個(gè)差錯(cuò)。
將URL中的字段ASCII碼相加是URL的計(jì)算方法。URL具備識(shí)別功能,是根據(jù)URL兩段的空格來(lái)的。在POST方法過(guò)程中,在處于請(qǐng)求信息的實(shí)體部分是客戶(hù)端瀏覽器所上傳的控制數(shù)據(jù)。請(qǐng)求消息的識(shí)別字符是兩個(gè)連續(xù)的字符,分別是CRLF(\r\n)。如果控制數(shù)據(jù)需要識(shí)別,那么可以采用變量名等于值得格式來(lái)進(jìn)行識(shí)別。
2.2 嵌入式Web服務(wù)器的設(shè)計(jì)和實(shí)現(xiàn)
在本設(shè)計(jì)中實(shí)現(xiàn)的嵌入式Web服務(wù)器有3個(gè)基本功能。
2.2.1 數(shù)據(jù)的實(shí)時(shí)顯示
具體體現(xiàn)在服務(wù)器能夠?qū)⒏鱾€(gè)設(shè)備的實(shí)時(shí)狀態(tài),及時(shí)的以動(dòng)態(tài)顯示的方式提供到網(wǎng)頁(yè)上,而且客戶(hù)端能夠通過(guò)因特網(wǎng)隨時(shí)監(jiān)測(cè)和控制其外圍設(shè)備的狀態(tài)。
2.2.2 設(shè)備運(yùn)行參數(shù)和狀態(tài)參數(shù)的參數(shù)控制
當(dāng)接收到用戶(hù)發(fā)送的參數(shù)設(shè)備請(qǐng)求才實(shí)行該參數(shù)的寫(xiě)入操作。
2.2.3 遠(yuǎn)程控制
用戶(hù)即使不在設(shè)備的旁邊,也能夠隨時(shí)通過(guò)因特網(wǎng)給驅(qū)動(dòng)系統(tǒng)下達(dá)指令,控制這些遠(yuǎn)程外設(shè)運(yùn)行,從而達(dá)到用戶(hù)遠(yuǎn)程控制設(shè)備的目標(biāo)。
因此,以系統(tǒng)應(yīng)用設(shè)計(jì)和實(shí)現(xiàn)為基礎(chǔ)的嵌入式We服務(wù)器,很好的解決了硬件和操作系統(tǒng)的不同,促使嵌入式Web服務(wù)器能夠在各種各樣的平臺(tái)上得以應(yīng)用。
2.3 協(xié)議棧和Webserver功能測(cè)試
UIP是一個(gè)分層的協(xié)議棧。分層協(xié)議的意義是它既能夠?yàn)樯蠈犹峁┓?wù)和接口,也能夠?qū)ο聦拥膶?shí)現(xiàn)環(huán)節(jié)進(jìn)行屏蔽。換句話(huà)說(shuō),應(yīng)用層中的HTTP協(xié)議是網(wǎng)絡(luò)服務(wù)器給客戶(hù)端瀏覽器提供相應(yīng)服務(wù)的重要傳輸環(huán)節(jié)。傳輸層上的TCP協(xié)議為應(yīng)用層上的HTTP協(xié)議能夠?qū)崿F(xiàn)穩(wěn)定傳輸提供了一些差錯(cuò)重傳等機(jī)制。網(wǎng)絡(luò)層中IP協(xié)議隨后接收來(lái)自于傳輸層的TCP協(xié)議,然后將傳輸?shù)男畔?shù)據(jù)發(fā)送給最接近主機(jī)的下一層。最后在網(wǎng)卡驅(qū)動(dòng)和相關(guān)網(wǎng)絡(luò)協(xié)議的基礎(chǔ)上實(shí)現(xiàn)相應(yīng)的數(shù)據(jù)包實(shí)現(xiàn)物理層上的連接。
3 總結(jié)
在本章中完成了應(yīng)用層HTTP協(xié)議的實(shí)現(xiàn),在此基礎(chǔ)上完成了嵌入式Web服務(wù)器的設(shè)計(jì),并且成功的進(jìn)行了測(cè)試運(yùn)行。通過(guò)Web瀏覽器確實(shí)能夠遠(yuǎn)程登陸Web服務(wù)器,及控制服務(wù)器端的外圍設(shè)備,真正的實(shí)現(xiàn)了網(wǎng)絡(luò)的動(dòng)態(tài)交互。該服務(wù)器具有傳輸率高,可靠性強(qiáng),容易訪(fǎng)問(wèn)等特點(diǎn),具有廣泛的應(yīng)用前景。
參考文獻(xiàn)
[1]李芳.計(jì)算機(jī)軟件設(shè)計(jì)中的嵌入式軟件設(shè)計(jì)分析[J].電腦知識(shí)與技術(shù),2016 (03):64-65.
[2]鄭玉靜,嵌入式數(shù)控系統(tǒng)的網(wǎng)絡(luò)應(yīng)用研究[J].通信電源技術(shù),2012 (04):83-84.
[3]楊易,嵌入式Web服務(wù)器中動(dòng)態(tài)Web技術(shù)研究[D].湖北工業(yè)大學(xué),2016.