本文分析了當(dāng)前嵌入式系統(tǒng)實(shí)現(xiàn)Web動(dòng)態(tài)服務(wù)的幾種思路,以采集環(huán)境溫度、控制LED燈的亮/滅為例,給出一種在嵌入式設(shè)備中實(shí)現(xiàn)Web動(dòng)態(tài)服務(wù)與Web 控制的實(shí)現(xiàn)思路,并在給出實(shí)現(xiàn)結(jié)果的基礎(chǔ)上驗(yàn)證了該設(shè)計(jì)思路的可行性。這為嵌入式設(shè)備,特別是低端嵌入式設(shè)備中順利實(shí)現(xiàn)Web動(dòng)態(tài)服務(wù)及Web控制,進(jìn)而實(shí)現(xiàn)物聯(lián)網(wǎng)技術(shù)打下了堅(jiān)實(shí)的基礎(chǔ)。
引言
隨著網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,嵌入式系統(tǒng)將不斷地和網(wǎng)絡(luò)相結(jié)合。嵌入式Web技術(shù)是計(jì)算機(jī)領(lǐng)域研究的熱點(diǎn),其優(yōu)點(diǎn)是開(kāi)發(fā)成本低、通用性強(qiáng),能運(yùn)行在8位或16 位MCU環(huán)境中,其豐富的Web用戶(hù)圖形界面使得嵌入式設(shè)備具有極好的交互性。因此,一旦在嵌入式設(shè)備中集成了Web服務(wù),就能實(shí)現(xiàn)用戶(hù)與嵌入式設(shè)備低成本、高通用性的信息交流,即客戶(hù)端利用HTTP瀏覽器(如IE),在任何時(shí)間、任何地點(diǎn)都能實(shí)現(xiàn)與嵌入式設(shè)備的信息交互??梢哉f(shuō),嵌入式Web的應(yīng)用必將極大地促進(jìn)嵌入式設(shè)備,特別是低端控制設(shè)備、儀器、儀表的信息化,最終將促進(jìn)物聯(lián)網(wǎng)的各種應(yīng)用。
在MCU上開(kāi)發(fā)Web服務(wù)器的難點(diǎn)在于其資源有限。相比臺(tái)式機(jī)PC(幾個(gè)GB的雙核CPU,幾個(gè)GB的內(nèi)存和幾百個(gè)GB的硬盤(pán))來(lái)說(shuō),嵌入式系統(tǒng)的各種硬軟件資源少得可憐。在嵌入式系統(tǒng)中實(shí)現(xiàn)復(fù)雜的Web動(dòng)態(tài)服務(wù)及Web控制,既沒(méi)有必要也不現(xiàn)實(shí)。因此,如何緊緊圍繞嵌入式系統(tǒng)的具體應(yīng)用要求,恰當(dāng)?shù)貙?shí)現(xiàn) Web動(dòng)態(tài)服務(wù)及Web控制,進(jìn)而實(shí)現(xiàn)物聯(lián)網(wǎng)應(yīng)用是一個(gè)需要解決的技術(shù)難題。
1 嵌入式Web服務(wù)的一般實(shí)現(xiàn)方法
目前,嵌入式設(shè)備中通常使用的Web服務(wù)器有Apache、httpd、Boa、Thttpd和mini-httpd等。常用的實(shí)現(xiàn)動(dòng)態(tài)Web頁(yè)面的技術(shù)主要有CGI、ASP、PHP、JSP、Java、ISPI等。其中,Boa是一個(gè)運(yùn)行在類(lèi)Unix系統(tǒng)中的小型Web Server,雖然功能比較齊全,但很多功能(如virtual hos-t,內(nèi)存使用量較大)對(duì)嵌入式應(yīng)用而言是冗余的;Apache功能較強(qiáng)大,但占用空間太多(需要幾MB空間,其他Web服務(wù)器只需要幾百 KB);PHP 可擴(kuò)展性較差,安全性不高;標(biāo)準(zhǔn)的CGI需要用到文件、進(jìn)程等操作。
為節(jié)省資源、提高效率,嵌入式環(huán)境下現(xiàn)應(yīng)用較多的是嵌入式動(dòng)態(tài)Web實(shí)現(xiàn)方法,一般采用“Apache+PHP”或者是“Boa+CGI”技術(shù)。然而,在低端的嵌入式設(shè)備中,特別是8位MCU的儀器、儀表中,因?yàn)槭苜Y源尤其是存儲(chǔ)資源的限制,要用上述思路來(lái)實(shí)現(xiàn)嵌入式Web服務(wù)不太現(xiàn)實(shí),畢竟對(duì)于低端的嵌入式設(shè)備而言,移植操作系統(tǒng)是一件奢侈的事情。
2 嵌入式Web動(dòng)態(tài)服務(wù)的改進(jìn)思路及實(shí)現(xiàn)
考慮到嵌入式Web服務(wù)器的應(yīng)用領(lǐng)域多數(shù)是專(zhuān)門(mén)的控制設(shè)備儀表,絕大多數(shù)控制設(shè)備儀表的工作流程都是基本固定的,所以可以考慮采用某種固定的交互模式來(lái)控制這些儀表。能否用這種思路進(jìn)行設(shè)計(jì)的關(guān)鍵是要弄清下面兩個(gè)問(wèn)題:第一,嵌入式Web服務(wù)器的功能有哪些?第二,這些功能是否固定,是否需要擴(kuò)展?如果這種功能既不是很復(fù)雜,又相對(duì)固定,那么就可以按照這種思路進(jìn)行設(shè)計(jì),而完全沒(méi)有必要用CGI、ASP等Web動(dòng)態(tài)服務(wù)技術(shù)來(lái)實(shí)現(xiàn)Web動(dòng)態(tài)服務(wù)。遵照這一思路,本文實(shí)現(xiàn)如下:
①將顯示界面不變的部分作為一個(gè)靜態(tài)頁(yè)面,以HTML格式存儲(chǔ)在ROM中,以方便MCU直接操作。這樣設(shè)計(jì)后,需要注意的問(wèn)題是,MCU的ROM空間是否能同時(shí)存儲(chǔ)程序代碼和網(wǎng)頁(yè)HTML代碼。筆者所設(shè)計(jì)的嵌入式Web服務(wù)器的程序代碼量有28 KB,而HTML代碼量有2~3 KB,采用的MCU(即W78E58B)有32 KB ROM空間,因此采用這種設(shè)計(jì)思路完全可行。
②利用替換法提供Web動(dòng)態(tài)服務(wù)。對(duì)需要?jiǎng)討B(tài)改變的內(nèi)容部分作特殊標(biāo)記,例如,環(huán)境溫度值為“TAG:Temperature”,網(wǎng)頁(yè)長(zhǎng)度為 “TAG:PageLen”。程序運(yùn)行時(shí),先將靜態(tài)頁(yè)面由ROM讀入內(nèi)存,然后將環(huán)境溫度值和網(wǎng)頁(yè)長(zhǎng)度值傳送到服務(wù)器節(jié)點(diǎn),服務(wù)器讀取實(shí)際值并存入內(nèi)存,再用實(shí)際值代替標(biāo)記,生成一個(gè)新的頁(yè)面并將其送給瀏覽器,這樣用戶(hù)看到的就是一個(gè)動(dòng)態(tài)的頁(yè)面。
③經(jīng)過(guò)上述設(shè)計(jì)后,網(wǎng)頁(yè)文件的值是動(dòng)態(tài)的,但不是實(shí)時(shí)的??梢圆捎萌缦滤悸穼?shí)現(xiàn)實(shí)時(shí)動(dòng)態(tài)服務(wù):利用HTML語(yǔ)言的來(lái)實(shí)現(xiàn)網(wǎng)頁(yè)內(nèi)容的自動(dòng)更新,其刷新時(shí)間由文件開(kāi)頭語(yǔ)句中的 content的內(nèi)容決定。該值可根據(jù)具體應(yīng)用需求進(jìn)行設(shè)置,例如筆者設(shè)計(jì)的刷新時(shí)間為2 s。
按照這種設(shè)計(jì)實(shí)現(xiàn)后,網(wǎng)頁(yè)文件就能在2 s范圍內(nèi)實(shí)時(shí)顯示系統(tǒng)通過(guò)溫度傳感器采集來(lái)的環(huán)境溫度。
3 嵌入式Web控制的實(shí)現(xiàn)
按照上述思路可實(shí)現(xiàn)服務(wù)器對(duì)客戶(hù)端的Web動(dòng)態(tài)服務(wù)。然而在實(shí)際的嵌入式應(yīng)用中,僅僅一個(gè)Web動(dòng)態(tài)服務(wù)是不夠的,它還應(yīng)支持客戶(hù)端數(shù)據(jù)上傳到服務(wù)器,以達(dá)到通過(guò)客戶(hù)端來(lái)控制服務(wù)器的目的。
那么,如何實(shí)現(xiàn)客戶(hù)端對(duì)服務(wù)器端的控制呢?遵照上述設(shè)計(jì)思路,并結(jié)合HTTP請(qǐng)求中的POST命令來(lái)實(shí)現(xiàn)簡(jiǎn)單的Web控制。實(shí)現(xiàn)過(guò)程如下:
①在網(wǎng)頁(yè)文件中實(shí)現(xiàn)如下表單:
②在嵌入式Web服務(wù)器的HTTP接收模塊中分析HTTP請(qǐng)求的POST數(shù)據(jù),當(dāng)LEDCtr1=0時(shí),發(fā)送指令點(diǎn)亮LED燈,否則熄滅LED燈。
4 功能測(cè)試
測(cè)試時(shí)可將嵌入式Web服務(wù)器與客戶(hù)端主機(jī)直接相連,并利用PC機(jī)的IE瀏覽器實(shí)時(shí)讀取服務(wù)器測(cè)量的環(huán)境溫度,結(jié)果如圖1所示。左圖是測(cè)量的當(dāng)前環(huán)境溫度顯示的結(jié)果,右圖是當(dāng)采用物理手段(如利用打火機(jī)燒烤傳感器)以提高環(huán)境溫度后顯示的結(jié)果。由圖可知,嵌入式Web服務(wù)器能完成正常的Web動(dòng)態(tài)服務(wù)。經(jīng)實(shí)踐驗(yàn)證,服務(wù)器系統(tǒng)LED燈的亮/滅完全可由圖1所示的亮/滅控件來(lái)控制,也就是說(shuō)已成功實(shí)現(xiàn)了Web控制。
5 結(jié)論
筆者分析了當(dāng)前嵌入式系統(tǒng)實(shí)現(xiàn)Web動(dòng)態(tài)服務(wù)的幾種思路,以采集環(huán)境溫度、控制LED燈的亮/滅為例,給出一種在嵌入式設(shè)備中實(shí)現(xiàn)Web動(dòng)態(tài)服務(wù)與Web 控制的實(shí)現(xiàn)思路,并在給出實(shí)現(xiàn)結(jié)果的基礎(chǔ)上驗(yàn)證了該設(shè)計(jì)思路的可行性。這為嵌入式設(shè)備,特別是低端嵌入式設(shè)備中順利實(shí)現(xiàn)Web動(dòng)態(tài)服務(wù)及Web控制,進(jìn)而實(shí)現(xiàn)物聯(lián)網(wǎng)技術(shù)打下了堅(jiān)實(shí)的基礎(chǔ)。
- 特斯拉Model Y新版預(yù)售,iPhone 18 Pro系列升級(jí),汽車(chē)界與科技界碰撞新火花
- 小鵬汽車(chē)何小鵬回應(yīng)特斯拉 Model Y 撞臉風(fēng)波:設(shè)計(jì)碰撞,靈感碰撞,究竟誰(shuí)更勝一籌?
- 日本車(chē)商2024年新車(chē)銷(xiāo)量下滑,本田跌至近10年最低位,中國(guó)市場(chǎng)面臨挑戰(zhàn)?
- 英偉達(dá)批評(píng)美政府AI芯片出口限制:限制不利己,全球轉(zhuǎn)向替代技術(shù)之風(fēng)
- 特斯拉煥新Model Y難敵華為問(wèn)界R7,智能科技誰(shuí)領(lǐng)風(fēng)騷?
- 開(kāi)源巨頭聯(lián)手打造Chromium聯(lián)盟,推動(dòng)Linux生態(tài)創(chuàng)新發(fā)展
- 曹德旺巨資辦校,福耀科技大學(xué)引領(lǐng)行業(yè)新風(fēng)向,培養(yǎng)未來(lái)之星
- 愛(ài)馳汽車(chē)陷股權(quán)凍結(jié)風(fēng)波,能否順利復(fù)工復(fù)產(chǎn)引關(guān)注
- 小鵬汽車(chē)CEO何小鵬:雷軍不僅直言不諱,還勸我多做營(yíng)銷(xiāo),不失為良師益友
- 馬斯克大膽計(jì)劃:未來(lái)十年內(nèi)特斯拉機(jī)器人產(chǎn)能提升10倍,300億機(jī)器人將顛覆各行各業(yè)
免責(zé)聲明:本網(wǎng)站內(nèi)容主要來(lái)自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請(qǐng)進(jìn)一步核實(shí),并對(duì)任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對(duì)有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁(yè)或鏈接內(nèi)容可能涉嫌侵犯其知識(shí)產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書(shū)面權(quán)利通知或不實(shí)情況說(shuō)明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會(huì)依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開(kāi)相關(guān)鏈接。