互聯(lián)網(wǎng)的迅速發(fā)展,,實(shí)現(xiàn)了信息的高速傳輸和資源共享,極大地方便了人們的生活,。嵌入式系統(tǒng)廣泛應(yīng)用于各種電器產(chǎn)品,、智能儀表和控制設(shè)備中,,它與互聯(lián)網(wǎng)的結(jié)合是一種必然的趨勢(shì)。
嵌入式系統(tǒng)和網(wǎng)絡(luò)技術(shù)的快速發(fā)展,,為網(wǎng)絡(luò)遠(yuǎn)程控制的發(fā)展和完善提供了技術(shù)基礎(chǔ),。
筆者綜合運(yùn)用嵌入式系統(tǒng)和Web技術(shù),設(shè)計(jì)了一種可通過(guò)互聯(lián)網(wǎng)進(jìn)行遠(yuǎn)程控制的電源插座系統(tǒng),,實(shí)現(xiàn)對(duì)家用或工業(yè)電器的遠(yuǎn)程實(shí)時(shí)控制。用戶(hù)通過(guò)網(wǎng)頁(yè)瀏覽器訪(fǎng)問(wèn)該系統(tǒng),,對(duì)各插座進(jìn)行打開(kāi)或關(guān)閉的操作,,實(shí)現(xiàn)對(duì)與其相連接的電器的遠(yuǎn)程控制。
1 嵌入式Web工作原理
嵌入式Web的體系結(jié)構(gòu)如圖1所示,??蛻?hù)端和嵌入式系統(tǒng)中Web服務(wù)器之間的通信協(xié)議采用HTTP(超文本傳輸協(xié)議)。嵌入式操作系統(tǒng)提供TCP/IP協(xié)議支持,。嵌入式Web服務(wù)器提供靜態(tài)網(wǎng)頁(yè),,也可以通過(guò)CGI(Common GatewayInterface,公共網(wǎng)關(guān)接口)與后臺(tái)程序或嵌入式數(shù)據(jù)庫(kù)交互,,進(jìn)行數(shù)據(jù)訪(fǎng)問(wèn)或處理,。
嵌入式Web的工作流程如圖2所示。嵌入式Web服務(wù)器的主要任務(wù)是接收客戶(hù)端請(qǐng)求,、解析客戶(hù)端請(qǐng)求,、響應(yīng)客戶(hù)端請(qǐng)求、向客戶(hù)端回送請(qǐng)求的結(jié)果,??蛻?hù)端與Web服務(wù)器交換數(shù)據(jù)之前,首先用TCP/IP建立連接,,服務(wù)器端程序建立TCP類(lèi)型的Socket套接字,;服務(wù)器在接收到用戶(hù)端的請(qǐng)求后,解析客戶(hù)請(qǐng)求的HTTP協(xié)議頭,,分析客戶(hù)的請(qǐng)求,,根據(jù)客戶(hù)的請(qǐng)求做相應(yīng)的處理并返回結(jié)果。
2 遠(yuǎn)程可控電源插座設(shè)計(jì)
文中設(shè)計(jì)采用ARM-Linux架構(gòu),。ARM處理器縣有小體積,、低功耗、低成本,、高性能等特點(diǎn),。嵌入式Linux操作系統(tǒng)內(nèi)核精悍,運(yùn)行所需資源少,,十分適合嵌入式系統(tǒng)應(yīng)用,。
2.1 系統(tǒng)硬件設(shè)計(jì)
遠(yuǎn)程可控電源插座系統(tǒng)硬件結(jié)構(gòu)如圖3所示,。
嵌入式Web服務(wù)器實(shí)現(xiàn)對(duì)用戶(hù)的身份驗(yàn)證、頁(yè)面解析與交互,,根據(jù)用戶(hù)請(qǐng)求產(chǎn)生對(duì)電源插座的控制信號(hào),。存儲(chǔ)器存放系統(tǒng)的程序和頁(yè)面文件。
以太網(wǎng)接口模塊可選用RTL8019AS等以太網(wǎng)接口芯片,,實(shí)現(xiàn)網(wǎng)絡(luò)通信,。
控制模塊實(shí)現(xiàn)對(duì)連接在市電AC220 V的插座各開(kāi)關(guān)的“打開(kāi)、關(guān)閉”操作,,進(jìn)而控制相連接的電器的工作,。由于嵌入式系統(tǒng)使用的DC3.3V電源,且電流較小,,控制模塊須實(shí)現(xiàn)弱電對(duì)強(qiáng)電的控制,。考慮到響應(yīng)速度,、電路功耗,、使用壽命等因素,控制模塊設(shè)計(jì)選用光電耦合器和可控硅,??刂颇K可控制電源插座的4路開(kāi)關(guān),其中一路的電路原理如圖4所示,。
光電耦合器選用MOC3062,,它集光電隔離、過(guò)零檢測(cè)和過(guò)零觸發(fā)為一體,,可以自動(dòng)檢測(cè)交流電壓的過(guò)零信息,。可控硅選用Q4010NH5,,是大功率開(kāi)關(guān)型半導(dǎo)體器件,,具有耐壓高、容量大,、體積小,、無(wú)噪音等優(yōu)點(diǎn)。
ARM處理器的GPIO端口輸出電平不足以使光耦元件U1(MOC3062)正常工作,,需要信號(hào)放大,。電阻R2和下拉電阻R3組成三極管保護(hù)電路。當(dāng)GPIO端口輸出為高電平時(shí),,三極管T1(9013)導(dǎo)通,,使電阻R1和光耦U1形成通路,U1正常工作,,GPIO輸入信號(hào)得到放大,,雙向可控硅K1(Q401O NH5)的G控制端得到高電壓,,K1導(dǎo)通,插座220 V供電打開(kāi),;當(dāng)GPIO端口輸出為低電平時(shí),,三極管T1截止,使電阻R1和光耦U1形成斷路,。此時(shí)U1不工作,,K1斷路,插座供電被關(guān)閉,。
2.2 控制模塊驅(qū)動(dòng)設(shè)計(jì)
在嵌入式Linux操作系統(tǒng)下,,設(shè)備驅(qū)動(dòng)程序?yàn)閼?yīng)用程序屏蔽了硬件的細(xì)節(jié)。在應(yīng)用程序看來(lái),,硬件設(shè)備只是一個(gè)設(shè)備文件,應(yīng)用程序可以像操作普通文件一樣對(duì)硬件設(shè)備進(jìn)行操作,。
文中使用GPIO口作為控制端口,,每一位信息控制一個(gè)電源插座開(kāi)關(guān)。以連接1號(hào)插座開(kāi)關(guān)的GP10為例,,說(shuō)明其驅(qū)動(dòng)程序的編寫(xiě),。
將GP10定義為輸出狀態(tài),并預(yù)設(shè)插座開(kāi)關(guān)斷開(kāi)時(shí)輸出0,,此時(shí)GP10將輸出0,,輸出低電平,并使圖4中的三極管T1截止,,光耦U1不工作,,K1不導(dǎo)通,220 V供電斷開(kāi),;打開(kāi)供電時(shí),,將GP10置1,即輸出高電平,,T1導(dǎo)通,,220 V供電打開(kāi)。
驅(qū)動(dòng)程序中ioctl函數(shù)代碼如下:
2.3 嵌入式Web服務(wù)器設(shè)計(jì)
遠(yuǎn)程可控電源插座系統(tǒng)采用B/S(Browser/Server)結(jié)構(gòu),,系統(tǒng)內(nèi)嵌的嵌入式Web服務(wù)器可向合法用戶(hù)提供基于瀏覽器的操作界面,,瀏覽器便成了與插座相連設(shè)備的遠(yuǎn)端控制板。
由于嵌入式系統(tǒng)擁有的資源有限,,構(gòu)建嵌入式Web服務(wù)器須選擇一個(gè)合適的Web服務(wù)器,,在不影響整體性能的前提下,既利用自身有限的資源,,又必須滿(mǎn)足支持CGI的Web應(yīng)用需求,。
文中采用Boa Server作為嵌入式Web服務(wù)器,。Boa是一個(gè)非常小巧的Web服務(wù)器,可執(zhí)行代碼只有約60 kB,。它是一個(gè)單任務(wù)Web服務(wù)器,,只能依次完成用戶(hù)的請(qǐng)求,而不會(huì)創(chuàng)建出新的進(jìn)程來(lái)處理并發(fā)連接請(qǐng)求,。但Boa支持CGI,,能夠?yàn)镃GI程序創(chuàng)建進(jìn)程來(lái)執(zhí)行。
移植Boa的大致步驟如下:
1)從官方網(wǎng)站(http://www.boa.org)上下載Boa源代碼,,解壓,;
2)根據(jù)硬件對(duì)Boa進(jìn)行相應(yīng)的配置,并交叉編譯,,編譯器選用arm-linux-gcc,;
3)編譯生成可在ARM上運(yùn)行的Boa程序,將其和內(nèi)核一起下載到ARM平臺(tái)上運(yùn)行,;
4)將系統(tǒng)所需靜態(tài)頁(yè)面文件和CGI程序拷貝至相應(yīng)的路徑下,。
當(dāng)Web服務(wù)器程序收到用戶(hù)以HTTP協(xié)議的GET方式發(fā)來(lái)的遠(yuǎn)程控制指令后,調(diào)用CGI程序,,在CGI程序中用open(“/dev/rcpo”,,O_RDWR)語(yǔ)句打開(kāi)設(shè)備文件,若成功,,則將控制參數(shù)傳遞給ioctl函數(shù)的cmd.控制對(duì)應(yīng)的插座開(kāi)關(guān)做相應(yīng)動(dòng)作,。
3 系統(tǒng)測(cè)試
文中在嵌入式系統(tǒng)開(kāi)發(fā)平臺(tái)上實(shí)現(xiàn),并制作了控制模塊硬件,,對(duì)電源插座進(jìn)行了內(nèi)部連線(xiàn)改裝,,使之遠(yuǎn)程可控。搭建測(cè)試環(huán)境,,對(duì)一臺(tái)220 V供電工作的普通電扇進(jìn)行遠(yuǎn)程控制,,如圖5所示。
用戶(hù)用瀏覽器軟件訪(fǎng)問(wèn)本系統(tǒng),,經(jīng)登錄認(rèn)證后進(jìn)入控制頁(yè)面,,如圖6所示。點(diǎn)擊“開(kāi)啟”按鈕后,,電扇轉(zhuǎn)動(dòng),;點(diǎn)擊“關(guān)閉”按鈕后,電扇關(guān)閉,。系統(tǒng)運(yùn)行正常,,響應(yīng)及時(shí)。測(cè)試表明,,本文設(shè)計(jì)是可行的,、有效的,。
4 結(jié)論
文中設(shè)計(jì)了一種遠(yuǎn)程可控電源插座,在ARM嵌入式系統(tǒng)上構(gòu)建嵌入式Web服務(wù)器,,用戶(hù)通過(guò)網(wǎng)絡(luò)訪(fǎng)問(wèn)Web服務(wù)器,,實(shí)現(xiàn)對(duì)電源插座的操作,進(jìn)而遠(yuǎn)程控制與其相連的電器,。本文設(shè)計(jì)采用模塊化設(shè)計(jì),,功能實(shí)用,操作簡(jiǎn)便,,易于擴(kuò)展,,可廣泛應(yīng)用于家用或工業(yè)電器的遠(yuǎn)程控制。
隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展以及與信息家電,、工業(yè)控制技術(shù)的結(jié)合日益緊密,,具備網(wǎng)絡(luò)功能的嵌入式系統(tǒng)應(yīng)用正在成為未來(lái)電器的發(fā)展趨勢(shì)。