新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于以太網(wǎng)智能家居控制器的設(shè)計(jì)

基于以太網(wǎng)智能家居控制器的設(shè)計(jì)

作者: 時(shí)間:2013-11-30 來(lái)源:網(wǎng)絡(luò) 收藏


  3.2 嵌入式 Web服務(wù)器的實(shí)現(xiàn)

  設(shè)計(jì)中采用的是 型 8位單片機(jī),由于單片機(jī)存儲(chǔ)空間有限、處理速度相對(duì)較慢,且在整個(gè)遠(yuǎn)程控制中不需要實(shí)現(xiàn)完整的 TCP/IP協(xié)議。因此,可以在遠(yuǎn)程控制的網(wǎng)絡(luò)連接和訪問(wèn)技術(shù)中采用精簡(jiǎn) TCP/IP協(xié)議。要實(shí)現(xiàn)交互功能,就要在精簡(jiǎn) TCP/IP協(xié)議的基礎(chǔ)上實(shí)現(xiàn) HTTP協(xié)議,構(gòu)建嵌入式 Web服務(wù)器。本設(shè)計(jì)中的精簡(jiǎn) TCP/IP協(xié)議具有同 TCP/IP協(xié)議一樣的四層結(jié)構(gòu),各層實(shí)現(xiàn)的功能如下:

 ?、冁溌穼印TO(shè)計(jì)中通過(guò)接入到 Internet,因此物理層和數(shù)據(jù)鏈路層要符合的 IEEE802.3標(biāo)準(zhǔn)。然而,控制器 RTL8019AS的硬件組成部分已經(jīng)實(shí)現(xiàn)了 CSMA/CD控制機(jī)制,屏蔽了底層硬件處理的細(xì)節(jié),并向上層軟件提供與硬件無(wú)關(guān)的接口,最終完成了數(shù)據(jù)在以太網(wǎng)中的接收和發(fā)送。因此,設(shè)計(jì)中物理層與數(shù)據(jù)鏈路層的設(shè)計(jì)是通過(guò) RTL8019AS硬件和驅(qū)動(dòng)程序共同實(shí)現(xiàn)的。

 ?、诰W(wǎng)絡(luò)層實(shí)現(xiàn)了 ARP協(xié)議、ICMP協(xié)議和 IP協(xié)議。ARP是地址解析協(xié)議,具體處理過(guò)程是當(dāng)接收到 ARP數(shù)據(jù)包,處理器就查看 IP地址是請(qǐng)求還是響應(yīng)。如果是響應(yīng),則將響應(yīng)中的網(wǎng)卡地址存到 ARP高速緩存表中;如果是請(qǐng)求,處理器將返回自己的網(wǎng)卡物理地址給對(duì)方。ICMP是調(diào)試響應(yīng) PING的請(qǐng)求,檢測(cè)網(wǎng)路是否通順。依照系統(tǒng)實(shí)際應(yīng)用的要求, IP協(xié)議只需實(shí)現(xiàn)對(duì)數(shù)據(jù)報(bào)傳送和接收,無(wú)須實(shí)現(xiàn)路由選擇算法和差錯(cuò)控制,同時(shí)也不需支持 IP數(shù)據(jù)報(bào)的分片和重組。

  ③傳輸層實(shí)現(xiàn) TCP協(xié)議。 TCP協(xié)議是面向連接的、端對(duì)端的可靠通信協(xié)議。設(shè)計(jì)中采取了 TCP連接的建立與關(guān)閉機(jī)制、超時(shí)重傳機(jī)制、數(shù)據(jù)包確認(rèn)機(jī)制、流量控制機(jī)制來(lái)保證它的可靠性。在超時(shí)重傳機(jī)制中,如果超時(shí)重傳定時(shí)器溢出后還沒(méi)有收到確認(rèn),則重傳該數(shù)據(jù)包,并復(fù)位重傳定時(shí)器。為簡(jiǎn)單起見(jiàn),程序里每次只發(fā)送一個(gè) TCP數(shù)據(jù)包,然后等待它的確認(rèn),只有收到確認(rèn)后才會(huì)繼續(xù)發(fā)送下面的 TCP數(shù)據(jù)包。在本設(shè)計(jì),程序重傳的間隔時(shí)間是固定的,沒(méi)有采用 TCP協(xié)議中的標(biāo)準(zhǔn)算法,當(dāng)達(dá)到一定的次數(shù)后,發(fā)送方還沒(méi)有收到確認(rèn),則會(huì)放棄該包的發(fā)送并關(guān)閉 TCP連接。TCP的流量控制是為了協(xié)調(diào)通信雙方的收發(fā)

  速率不均衡而設(shè)計(jì)的。設(shè)計(jì)中考慮到系統(tǒng)在使用 TCP協(xié)議時(shí),只設(shè)置了一個(gè)中等 IP包大小接收緩存,因此接收窗口恒定設(shè)為 1024。這樣遠(yuǎn)端主機(jī)就會(huì)以較慢的傳輸速率與本端的 Web服務(wù)器進(jìn)行通信,不會(huì)導(dǎo)致死機(jī)。

 ?、軕?yīng)用層實(shí)現(xiàn)了 HTTP協(xié)議。HTTP是在 Web服務(wù)器和瀏覽器之間通信的協(xié)議。為了

  簡(jiǎn)化,設(shè)計(jì)中采用固定的 HTTP報(bào)文頭封裝 HTTP應(yīng)答數(shù)據(jù)報(bào)文。格式如下:

  char code html_header[ ] //客戶端訪問(wèn)主頁(yè)時(shí)候服務(wù)器的響應(yīng)頭部

  = {"HTTP/1.1 200 OKn" //響應(yīng)行( Respond Line),狀態(tài)為 OK,表示文件可以讀取

  "Cache-control: no-cachen" //沒(méi)有高速緩存控制

  "Connection: Keep-Aliven" //HTTP/1.1的可持續(xù)鏈接

  "Content-Length: TAG:LEN1n" //文件長(zhǎng)度

  "Content-Type: text/htmlrnrn" };//客戶端 GET請(qǐng)求的文件格式

  在響應(yīng) HTTP請(qǐng)求時(shí),由于以太網(wǎng)數(shù)據(jù)包的數(shù)據(jù)部分不能超過(guò) 1500字節(jié),因此當(dāng)發(fā)送

  數(shù)據(jù)超過(guò) 1500字節(jié),需要分組發(fā)送。

  3.3 以太網(wǎng)遠(yuǎn)程控制運(yùn)行結(jié)果

  接入以太網(wǎng)后,用戶只需在瀏覽器中輸入控制器的 IP地址,便可登錄遠(yuǎn)程控制界面。當(dāng)正確輸入用戶名和密碼后,便進(jìn)入控制頁(yè)面,用戶可以訪問(wèn)并控制各子系統(tǒng)。


  圖 4為智能家電的控制頁(yè)面,系統(tǒng)使用 GIF格式圖片表示智能家電開(kāi)關(guān)的狀態(tài)。當(dāng)單擊控制頁(yè)面中相應(yīng)的開(kāi)關(guān)后,智能家居 Web服務(wù)器收到 HTTP請(qǐng)求,執(zhí)行 CGI程序,將相反狀態(tài)的圖片嵌入到網(wǎng)頁(yè)相應(yīng)的位置中。與此同時(shí),單片機(jī)會(huì)在相應(yīng)家電的控制端口,輸出一個(gè)與之前狀態(tài)相反的電平,此時(shí)繼電器動(dòng)作,家電運(yùn)行狀態(tài)改變。最后智能家居 Web服務(wù)器將新的 HTML頁(yè)面回送給用戶端,瀏覽器更新頁(yè)面,并顯示改變后的家電狀態(tài)。

  智能家居 Web服務(wù)器的軟件系統(tǒng)還啟用了定時(shí)機(jī)制,當(dāng)用戶在規(guī)定的時(shí)間內(nèi)未執(zhí)行任何操作,系統(tǒng)將退出控制頁(yè)面,返回到登錄頁(yè)面。用戶必須重新輸入驗(yàn)證信息,并登錄后才可再次進(jìn)入控制頁(yè)面執(zhí)行操作,大大提高了整個(gè)智能家居控制系統(tǒng)的安全性。



參考文獻(xiàn):

[1].datasheethttp://www.dzsc.com/datasheet/_705483.html.
[2].RS232datasheethttp://www.dzsc.com/datasheet/RS232_585128.html.
[3].ATF16V8Bdatasheethttp://www.dzsc.com/datasheet/ATF16V8B_95069.html.
[4].DS18B20datasheethttp://www.dzsc.com/datasheet/DS18B20_819975.html.
[5].RTL8019ASdatasheethttp://www.dzsc.com/datasheet/RTL8019AS_173.html.


上一頁(yè) 1 2 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉