張?zhí)K真 謝云
隨著家電形勢的發(fā)展,國內許多家電企業(yè)已在或正準備研制網絡家電,以適應人們對舒適生活和節(jié)能環(huán)保的要求。但是,一個家庭如果使用不同公司、不同通信協議的網絡家電,就會出現各種家電難以互聯互通的麻煩,因此,各種家電互聯互通的發(fā)展勢在必行。
目前使用較廣泛的無線通信協議主要有藍牙、802.11(WiFi)、IrDA、UWB、ZigBee 等[1,2]。但是以上無線通信協議各有特點,不適合白色家電互聯低成本、低復雜度的要求。大多數家庭網絡的研究方向是利用無線傳感器技術構建內部局域網或者是接入Internet網絡來實現對白色家電進行遠程監(jiān)控[3];其他還有 ZigBee技術在智能家居系統(tǒng)中的應用[4]和嵌入式技術在智能家居中的應用[5],上述方法成本較高。本文主要研究一種低速的互聯控制網絡,不考慮高QoS(Quality of Service 服務質量)和高速率大數據量的家庭數據網絡,采用MCU和無線模塊組建了白色家電的互聯互通網絡,實現對白色家電的低成本、低復雜度的控制。
白色家電的無線控制網絡不需要很大的覆蓋范圍,一般選擇星型拓撲結構便能滿足要求。本設計就是采用星形網絡,中間是主控器,四周是設備的各個終端節(jié)點。中央控制器可以為每個家電設備設定參數,此參數按照一定的通信協議組成固定的數據格式,通過CC1101無線收發(fā)模塊,將信息以無線高頻波的形式傳送給家電設備,家電設備接收發(fā)來的控制信息后進行數據解碼,分離出要執(zhí)行的功能,然后執(zhí)行操作。同樣,家電設備也可以把執(zhí)行的狀態(tài)信息發(fā)送給主控器,以便主控器及時調整,實現新一輪的動作和功能。家庭網絡互聯框圖如圖1所示。
該無線控制網絡主控器是核心部分。硬件上采用單片機STC89C52加按鍵電路等功能模塊,并外接一個CC1101無線收發(fā)模塊,以實現對家庭內部網絡各種家電設備的控制。
STC89C52是一種帶8K Flash 字節(jié)可編程、可擦寫的低電壓、高性能的微處理器。CC1101是一種集多種調制方式于一體的低成本單片UHF收發(fā)器,專為低功耗無線應用而設計,電路主要設在315MHz、433MHz、868MHz和915MHz的ISM和SRD頻率波段。本設計選用了433MHz頻率波段。單片機與無線模塊的電路連接圖如圖2所示。終端節(jié)點由2051單片機、無線收發(fā)模塊CC1101等部分組成。
在系統(tǒng)設計中,所有的節(jié)點設備都只能直接和主控制器通信,但節(jié)點之間可通過主控器互相通信。當一個節(jié)點需要發(fā)信息給另一個節(jié)點時,并不會直接把信息發(fā)給該節(jié)點,而是首先把信息發(fā)送給主控制器,然后由主控制器把這個信息轉發(fā)給目標終端節(jié)點設備。主控制器是整個網絡的中心,有固定的網絡地址,這是作為主控制器區(qū)別于其它節(jié)點設備的主要依據。主控制器以 CC1101無線收發(fā)模塊作為無線通信接口,通過對主控平臺編寫程序實現網絡的形成和管理,以及對各個節(jié)點設備的響應和控制。各節(jié)點負責接收無線指令數據和發(fā)送節(jié)點信息。
圖2 單片機與無線模塊的電路連接圖
家庭網絡協議主要作用是實現主控制器與各家電終端節(jié)點的相互通信,為網絡中數據交換而建立的規(guī)范、標準,使主控器能識別各個家電,各個家電又能識別出主控器的控制信息的發(fā)送對象。按照此標準能夠彼此認識,讀懂互發(fā)的數據。
數據幀格式為:家電設備地址+操作類型+參數類型。家電設備地址包括家電設備組號和設備成員號。家電設備組號是指把同一類型的家電歸為一組并編號,設備成員號是同個設備不同成員號。操作類型是表示對設備具體功能控制,比如空調調成制冷模式。參數類型是功能操作的具體類型,在制冷模式的基礎上選擇風的擺向。數據幀結構如表1所示。
表1 數據幀結構
操作類型包括功能碼和狀態(tài)碼,從表中可以看出操作類型字節(jié)的最高位,用來區(qū)分功能碼和狀態(tài)碼。最高位為0,是功能碼,表示主控器發(fā)送命令給各個設備;最高位為1,是狀態(tài)碼表示設備把執(zhí)行情況反饋到主控器。
表2 數據幀應用舉例
主控器的軟件流程圖如圖3所示。對CC1101初始化完成后,進入主循環(huán)程序。此時主控器發(fā)送地址信號后,節(jié)點設備進行判斷,如果地址相符節(jié)點設備給出應答,主控器收到應答后發(fā)送命令信號,節(jié)點設備收到命令給出應答,判斷命令正確后進行命令分類,設備節(jié)點就進入發(fā)送或接收數據狀態(tài),不正確的命令直接剔除。
圖3 主控器程序流程圖
從節(jié)點設備的軟件流程圖如圖4所示。節(jié)點設備先判斷地址是否相符,地址相符后給主機一個應答信號,主機開始發(fā)命令字,節(jié)點設備對命令字進行判斷并分類,確定是接收還是發(fā)送數據之后,從機準備就緒,開始接收、發(fā)送數據,執(zhí)行完返回進行新一輪命令。在接收狀態(tài)下,如果收到主控器發(fā)送的數據,對應的LED會出現閃爍,并把接收到的數據通過串口輸出,此時,可通過PC機的串口調試助手看到輸出結果。
圖4 從節(jié)點程序流程圖
本實驗是以一個主控器、兩個終端節(jié)點作為測試,以窗戶關閉、空調打開為例。主控器發(fā)送關窗命令,窗戶關閉并給主控器發(fā)送完成信息,主控器接著給空調發(fā)送打開命令,空調響應后反饋主控器完成狀態(tài)。完成這一功能,循環(huán)發(fā)送數據100次,然后對測試結果進行分析。星形網通信測試結果如表3所示。
表3 星形網通信測試結果
實驗結果分析:在星形網絡中進行數據傳輸,結果明顯差于點對點的傳輸方式,主要因為在傳輸過程中終端節(jié)點設備之間存在一定的頻率干擾和其他干擾源的干擾。
CC1101無線模塊是3.3V供電,而單片機是5V供電,要進行5V到3.3V的轉換,轉換后才能把模塊直接與單片機相連,網絡實際連接效果如圖5所示,a為主控器,b為終端節(jié)點。
圖5 網絡實際連接效果圖
本文是為國家大型企業(yè)開發(fā)的低成本,適合白色家電互聯互通的協議項目。通過本設計,組建了一個小型網絡,能夠方便地控制某些家電,完成白色家電互聯技術的基礎研究,解決互聯互通的關鍵技術,將多個白色家電終端在家庭范圍內組網實現智能互聯。
[1] 唐京城.無線智能家居控制網絡及其協議的設計[D].武漢:華中科技大學,2006.
[2] A Summary of Short Range Wireless in 2003. http://www.techonline.com, 2003.
[3] 盧朋.白色家電遠程監(jiān)控系統(tǒng)的設計與實現[D].武漢:武漢理工大學, 2010.
[4] 南忠良,孫國新.基于 zigbee技術智能家居系統(tǒng)的設計[J].電子設計工程,2010(7):117-119.
[5] 朱宇陽.智能家居嵌入式網關設計[D].上海:華東師范大學,2009.