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