摘 要: 提出了采用成本較低的傳統(tǒng)51單片機實現(xiàn)WebServer功能的方案,,并將此設計應用于智能家居系統(tǒng)中。系統(tǒng)具有靈活方便,、成本低等優(yōu)點,,其軟件的設計方案和設計思想可以普及和推廣,對未來的智能家居系統(tǒng)有很實用的參考價值,。
關鍵詞: 智能家居,;WebServer;TCP/IP
隨著生活水平的提高,,人們對生活質量的要求也在逐步提高,,越來越多的人希望能夠生活在一個安全、舒適,、節(jié)能,、方便、高效的綠色環(huán)境中,。隨著傳統(tǒng)家電產(chǎn)品與計算機,、通信技術的結合,家用電器產(chǎn)品朝著智能家居的方向發(fā)展,,使人們的愿望得以實現(xiàn),。而家用電器接入Internet網(wǎng),使家庭與外部保持信息交流暢通,實現(xiàn)遠程控制,,也越來越多地被人們所關注,。
雖然智能化家居能夠為人們的生活帶來很大的便利,但由于它的造價昂貴,,并不適合普通的百姓階層,,且很多功能也是華而不實的,并沒有得到住戶的認可,,用戶對于一些功能甚至很少使用,這也造成了資源的浪費,。
本文所設計的智能家居系統(tǒng),,從實用的角度出發(fā),同時考慮到成本和日后的維護問題,,充分利用現(xiàn)有的智能家居技術和資源為用戶構建高性價比的智能家居系統(tǒng),,實現(xiàn)了以最少成本完成最實用功能的目的,使智能家居走進百姓的生活,,讓人們能夠更好地享受現(xiàn)代高科技為人們帶來的方便,。
1 設計思路
本設計的總體思路方框圖如圖1所示。
在硬件方案設計上,,包含主控制器和分控制器兩部分,。主控器中除了51內核單片機[1],還包含了一個片外存儲器,、無線收發(fā)模塊,、溫度、濕度檢測模塊,、電話撥號模塊,、聲音報警模塊[2]。分控制器負責用電設備管理,。
系統(tǒng)以主控制器為核心,,通過與分控制器無線通信[3],實現(xiàn)對用電設備的控制和監(jiān)測的功能,。同時,,主控制器還負責TCP/IP協(xié)議棧的處理和解析,提供Internet網(wǎng)頁訪問功能,。
在軟件方案設計上,,實現(xiàn)WebServer的功能,需要TCP/IP協(xié)議的支持,。由于W77E58芯片是基于8位的微處理器,,現(xiàn)在可獲得的TCP/IP源代碼一般并不為51 單片機設計,由于系統(tǒng)資源受限,通過有針對性的模塊化裁剪,,在單片機上嵌入精簡的TCP/IP協(xié)議棧[4],,實現(xiàn)嵌入式Internet接入。
2 網(wǎng)絡通信協(xié)議設計
精簡后的協(xié)議主要包括TCP/IP協(xié)議組中的四個基本協(xié)議:ARP協(xié)議,、IP協(xié)議,、ICMP協(xié)議、TCP協(xié)議[5],。鏈路層協(xié)議,,作為設備驅動在鏈路層實現(xiàn),由單片機來驅動以太網(wǎng)卡RTL8019AS,。應用層協(xié)議,,實現(xiàn)了HTTP協(xié)議。RTL8019AS的驅動程序主要包括4個部分: RTL8019AS芯片的復位,、網(wǎng)卡的初始化,、發(fā)送數(shù)據(jù)、接收數(shù)據(jù),。
地址解析協(xié)議(ARP)實現(xiàn)的功能是:當有一個IP數(shù)據(jù)包要發(fā)送到以太網(wǎng)上時,,從ARP表中查詢相應的MAC地址。在本設計的精簡的TCP/IP協(xié)議棧中,,ARP的執(zhí)行依靠維持一張映射表來完成IP地址和MAC地址的映射,。
整個IP協(xié)議可由IP數(shù)據(jù)報的接收、發(fā)送,、IP數(shù)據(jù)差錯校驗控制三個子程序構成,。
網(wǎng)間報文控制協(xié)議(ICMP)實現(xiàn)了一種類型的ICMP信息:ICMP回響信息。ICMP回響信息常常用于ping程序里的檢查主機是否在線,。
傳輸控制協(xié)議(TCP),,TCP協(xié)議進行數(shù)據(jù)傳輸時可分為建立連接、傳輸數(shù)據(jù)和關閉連接三個階段,。
在本設計中,,智能家居控制器實現(xiàn)提供Web網(wǎng)頁瀏覽的功能,只需要使用HTTP協(xié)議即可,。瀏覽器通過該協(xié)議與Web服務器交換數(shù)據(jù),。
3 WebServer的實現(xiàn)
WebServer的工作原理,就是在單片機內部存放指定的網(wǎng)頁數(shù)據(jù),,當客戶通過瀏覽器訪問指定地址時,,服務器分析請求信息,并相應地向瀏覽器中返回指定網(wǎng)頁的HTML代碼,。
此系統(tǒng)主要包含2個頁面:登錄頁面和控制頁面,。為了便于存儲和訪問,,需要把這2個HTML文件轉換為C語言的數(shù)組,存放于C文件中,。
登錄頁面是當用戶訪問智能家居Web服務器時,,出于安全性的考慮,需要進行身份驗證,,只有合法的用戶才可以進入到控制頁面,。控制頁面是通過本頁面對家用電器實現(xiàn)遠程控制,??刂祈撁嫒鐖D2所示。
在此頁面中,,溫度和濕度的值在代碼中以特殊字符替代,。當Web控制器發(fā)送網(wǎng)頁給客戶端時,就用控制器將采集的值替換HTML文檔中相對應的特殊字符,,實現(xiàn)了溫度和濕度的實時檢測,。
WebServer的實現(xiàn)就是HTTP通信的過程,。其中包括服務器和瀏覽器的以下幾個步驟,。
(1)建立TCP連接。建立一個TCP連接,,對80端口(WebServer默認端口)進行監(jiān)聽,,接收到TCP包后即進入TCP回調函數(shù)。
(2)Web瀏覽器向Web服務器發(fā)送請求命令,。一旦建立了連接,,瀏覽器即向服務器發(fā)送請求命令。請求消息包括請求行,,首部,,之后瀏覽器發(fā)送了一空白行來通知服務器,它已經(jīng)結束了該頭信息的發(fā)送,。例如:
GET/index.html HTTP/1.1
(3)Web服務器響應,。客戶機向服務器發(fā)出請求后,,服務器會客戶機回送響應,。響應消息包括狀態(tài)行、響應頭,、空行及實體內容,。在響應報文中,包括協(xié)議版本號和應答狀態(tài)碼,,關于它自己的數(shù)據(jù)及被請求的文檔信息,。例如:
HTTP/1.1 200 OK
Content-type:text/html
(4)關閉連接,。數(shù)據(jù)傳送完畢,雙方通過4次握手,,結束TCP/IP連接,。
該智能家居控制系統(tǒng),可以讓智能家居的主人在任意位置,,利用通用計算機的IE瀏覽器,,上網(wǎng)瀏覽到家居中所有用電設備的工作狀態(tài)和家居的安防信息。如果主控制器所管理的某個用電設備,,出現(xiàn)了不太緊急的故障時,,可以只給主人一次簡單的提示,而發(fā)生緊急情況之后主控制器一直循環(huán)呼叫主人,,直到主人應答為止,。這樣使得該系統(tǒng)在以太網(wǎng)出現(xiàn)故障之后,或者某些緊急情況出現(xiàn)時,,因主人當時沒有正在瀏覽網(wǎng)頁,,這時就可以利用電話線撥號及時快速地通知主人,從而使系統(tǒng)非常具有實際的應用價值,。同時也是這個系統(tǒng)區(qū)別其他現(xiàn)有系統(tǒng)更具人性化,、智能化的創(chuàng)新點所在。
參考文獻
[1] 肖紅兵,,李國峰.80C51嵌入式系統(tǒng)教程[M].北京:北京航空航天大學出社,,2007.
[2] 嚴天峰.單片機應用系統(tǒng)設計與仿真調試[M].北京:北京航空航天大學出版社,2005.
[3] 林勇,,李因東,,嚴彬彬.基于LPC2214的家庭智能終端的設計與實現(xiàn)[J].電子技術應用,2006.3
[4] 許華杰,,明健.基于SX單片機實現(xiàn)WebServer和網(wǎng)絡協(xié)議棧.單片機與嵌入式系統(tǒng)應用,,2007.
[5] 謝希仁.計算機網(wǎng)絡(第2版)[M].北京:電子工業(yè)出版社,2003.