目前智能家居流行的組網方案有4類:基于TcP/IP協議的控制網絡;基于EIB(European InstallaTIon Bus)總線的控制網絡;基于電力載波的控制網絡;基于無線協議(ZigBee)的控制網絡。本文采用TCP/IP協議與CAN總線協議,兩種協議取長補短,使整個系統性能更加穩定,功能更加豐富。 完整的智能家居系統包括5個部分:主控模塊、電器控制子系統、照明控制子系統、安全控制子系統和網絡控制子系統,5個部分功能上各司其職,邏輯上構成一個完整的控制實體。整個系統為人們提供智能、舒適、安全的家庭環境,同時提供遠程信息監控能力。 主控模塊是智能家居的大腦,子系統是智能家居的四肢。主控模塊,負責子系統的信息集中、存儲、分析和決策。嵌入式芯片發展使主控模塊越來越精巧,功能日益豐富。 電器控制子系統,負責監控電器的運行狀態,執行主控模塊的控制指令。網絡家電的發展掃清了不同家電的識別和互連的障礙,也簡化了電器控制子系統的設計。照明控制子系統,又名情景控制,核心是對光影和色彩的智能控制。該子系統控制燈光在角度、明暗、顏色等方面的組合以滿足不同的情景需求。該子系統也滿足時間控制的概念,具有機械動作傳感器、人體移動傳感器和照度傳感器等。 安全控制子系統,針對引起安全問題的諸多因素,起到防范和報警的作用,煙霧傳感器、溫度傳感器、一氧化碳傳感器負責環境安全控制;可視對講系統預防陌生人的干擾;門磁傳感器和窗磁傳感器起到防盜作用。 遠程控制系統子系統,滿足家庭網絡和公共網絡的聯網控制功能。孤立的家庭網絡使智能家居大打折扣,而和GPRS(General Packet RADIo Service)網絡和Internet互聯,又使智能家居別樣精彩。 智能家居系統的組成如圖1所示。智能家居是一個龐大的系統,主控模塊是系統的控制中樞和通信中樞,家庭網絡是系統的神經系統,傳輸系統信息流和控制流。家居中的設備眾多,設備的接口各異,要實現各種設備的智能控制面對巨大挑戰。針對目前智能家居系統功能單一、聯網能力差的缺點,本設計采用分布式技術、總線技術和嵌入式技術構造了一個多功能、通信能力強的智能家居主控模塊。 1 主控模塊的功能和硬件設計 嵌入式技術的發展,特別是嵌入式控制芯片在功耗、速度、集成度方面的持續發展,使用單片控制芯片完成整個系統的控制成為可能。主控模塊從圖2中可以看出要完成以下工作:和子系統的聯網、GPRS通信功能、以太網通信功能、顯示功能、監控軟件等。其中GPRS通信和以太網通信邏輯上屬于網絡控制子系統,但是這兩種功能是在主控模塊上實現的,這樣一方面提高了集成度和穩定性;另一方面充分利用了主控模塊在硬件和軟件上的資源。 ARM芯片選用S3C2410,該芯片的很多特性很適合做智能家居的主控模塊。內置的STN/CSTN/TFT LCD控制器和4線制電阻式觸摸屏控制器簡化液晶顯示的電路設計;標準工作頻率為203 MHz,運算能力強,功耗低,可滿足主控模塊的運算要求;外圍接口豐富,為主控模塊的聯網功能提供良好的支持。GPRS模塊選用支持AT命令集的西門子 MC35I模塊,它與主控模塊通過串口進行通信;以太網芯片選用Realtek RTL8139以太網控制器;主控模塊和子系統之間由CAN總線組網,主控模塊上相應的有CAN通信電路;FLASH,SDRAM,EEPROM和SD卡都是信息存儲介質,設計EEPROM來存儲系統配置信息,配置64 MB NANDFLASH和64 MB SDRAM;語音電路輸出提醒或警告聲音等;信息包含時間信息才有意義,主控模塊上時鐘電路提供精確的時間;液晶屏可以直觀地顯示各種信息,有利于增強系統的親和力,選用8.O英寸TFT液晶屏。 2 主控模塊和子系統的CAN總線通信 主控模塊的處理能力有限,多個子系統和主控模塊由現場總線組網構成一個分布式控制系統。各個子系統在主控模塊的控制下協同工作。主控模塊和子系統之間主要傳輸信息流和控制流。主控模塊到子系統傳輸的主要是控制流,這些控制流完成子系統的配置或者命令子系統完成特定的任務。子系統到主機傳輸的主要是數據流,數據流主要包含子系統中各設備的運行狀態或傳感器數據等。主控模塊和子系統的通信可以采用有線方式或無線方式。鑒于有線方式速度快、可靠性高、成本低、技術成熟等優點,本系統采用CAN總線完成主控模塊和子系統的聯網。系統的聯網結構如圖3所示。 CAN協議是最流行的現場總線協議。為保證協議的靈活性,該協議只定義了數據鏈路層和物理層,一般CAN控制器會實現這兩層協議,針對具體應用需要開發應用層協議。CAN應用層協議標準有DeviceNet和CANOpen。這兩種協議是面向大型系統,針對工廠自動化控制和汽車電子開發的,所以智能家居需要使用自定義的CAN應用層協議。智能家居中子系統和主控模塊采用點對點的通信方式。自定義應用層協議基于非對稱型主從式網絡結構。應用層幀結構定義如圖 4所示。Dir(1 bit):數據傳輸的方向,0表示主控模塊到子系統;1表示子系統到主控模塊。 Address(7 bit):CAN總線網絡中設備的地址編號。 Type(3 bit):幀類型,分為:廣播單幀,廣播多幀開始,廣播多幀結束,普通單幀,普通多幀開始,普通多幀結束。 Index(2 bit):索引號,指示多幀時,某幀的索引編號,多幀最長4幀。 Count(3 bit):幀包含的字節數。 Data(8 byte):幀中的數據負載。 為了防止由于數據交換錯誤而影響整個系統安全,有兩種策略可以考慮:提高系統數據傳輸的可靠性;軟件處理中增加必要的容錯處理。CAN協議采用數據塊編碼的方式通信,CAN總線在40 m以下具有高速(1 Mbit/s)數據傳輸能力。CAN協議非常適合主控模塊和其他子系統之間的通信和控制。 3 主控模塊的軟件設計 3.1 主控模塊的軟件架構 智能家居主控模塊要完成4個子系統的協同工作,采用模塊化設計思想,需要4個軟件模塊分別處理4個子任務,主控模塊的軟件架構如圖5所示,主任務協調4個子任務正常工作。每個子系統又可以劃分成很多更細的任務。如果采用結構化的程序方法,程序設計非常復雜,系統會存在很多潛在問題。嵌入式硬件資源日益豐富,成本也較低廉,資源的增強使軟件有更多的資源可以利用。主控模塊的硬件資源非常豐富,軟件系統也非常龐大,軟件系統無法避免在訪問資源時遇到沖突、數據同步、數據交換的問題,所以需要一個嵌入式操作系統統一管理硬件資源,并對軟件開發提供良好的基礎環境,比如:內存管理、進程管理、存儲管理、文件系統、設備管理、消息機制、數據同步、數據交換、多線程、套接字等。操作系統雖然占據一定的存儲空間,但是給軟件開發帶來的便利更加可觀。操作系統采用 Linux2.6內核。主控模塊沒有特殊的外設,驅動開發和內核開發的任務量就很小。開發工作主要集中在子系統的任務開發和監控軟件的開發上。Linux 開發是在宿主機上建立交叉編譯環境,根據硬件的配置確定編譯選項,編譯后得到Linux的可執行映像。 3.2 主控模塊的主程序 智能控制主控模塊硬件上資源豐富,軟件上有Linux操作系統的支持,主控模塊的軟件開發運用了模塊化思想,模塊的劃分依據是高內聚低耦合,將邏輯上緊密耦合的一組功能劃分為一個模塊。模塊劃分結果以數據流圖呈現出來。主控模塊的數據流圖如圖6所示。安全控制子系統、電器控制子系統和照明控制子系統的數據流和控制流,通過CAN總線網絡傳輸到主控模塊,主控模塊的CAN通信監控子線程解析CAN網絡中傳輸的數據。接著,主控模塊的數據分發處理器子線程根據數據的類型將數據分發到相應的數據處理程序。處理后的數據存儲到數據庫中,并在界面直觀顯示分析后的信息。 網絡模塊在邏輯上是一個獨立的模塊,在實現上由于其特殊性是在主控模塊實現的。遠程PC通過Internet方式,手機通過GPRS方式將網絡流發送到網絡模塊,網絡模塊會調用網絡信息處理模塊處理網絡流,數據處理后或存儲或通過CAN總線轉發到其它控制子系統。 4 系統的測試 測試主控模塊的性能主要體現在通信速度和通信質量。為了獲得這些參數,需要測試主控模塊和子系統之間的數據傳輸能力。測試方式是:無競爭點對點雙向數據傳輸測試;有競爭點對點雙向數據傳輸測試。測試指標是:傳輸時間和誤碼率。傳輸200 KB的數據量測試結果如表1所示。 測試結果表明主控模塊和子系統之間的通信比較穩定,數據傳輸速率較高,可以滿足實時性要求。測試中誤碼率很低,一方面說明CAN協議的穩定性;另一方面由于在數據測試中的數據量較小,從而出現錯誤的概率就小。 5 結論 智能家居系統是一個復雜的系統,由于控制對象過多,單個智能控制系統無法完成控制任務,需要構成一個家庭控制網絡。智能控制系統主控模塊在網絡中起到調度和協調的作用。本文分析了家庭控制網絡的結構,提出了主控模塊的軟硬件模型和設計方案,提出了主控模塊和其他功能子系統聯網的一種實用通信方案。 較其它方案,本方案內部采用CAN總線協議,具有組網方便、性能穩定、成本低廉的特點;外部采用TCP/IP協議,具有遠程控制能力、擴展性強的特點。最后介紹了主控模塊軟件的設計和主控模塊和其它功能子系統之間數據傳輸性能測試。測試結果表明,主控模塊結構合理,和子系統通信能力強,能較好地完成主控模塊和子系統之間數據流和控制流的雙向傳輸。 |