智能家居主控模塊的設計與實現
3 主控模塊的軟件設計
3.1 主控模塊的軟件架構
智能家居主控模塊要完成4個子系統的協同工作,采用模塊化設計思想,需要4個軟件模塊分別處理4個子任務,主控模塊的軟件架構如圖5所示,主任務協調4個子任務正常工作。每個子系統又可以劃分成很多更細的任務。如果采用結構化的程序方法,程序設計非常復雜,系統會存在很多潛在問題。嵌入式硬件資源日益豐富,成本也較低廉,資源的增強使軟件有更多的資源可以利用。主控模塊的硬件資源非常豐富,軟件系統也非常龐大,軟件系統無法避免在訪問資源時遇到沖突、數據同步、數據交換的問題,所以需要一個嵌入式操作系統統一管理硬件資源,并對軟件開發提供良好的基礎環境,比如:內存管理、進程管理、存儲管理、文件系統、設備管理、消息機制、數據同步、數據交換、多線程、套接字等。操作系統雖然占據一定的存儲空間,但是給軟件開發帶來的便利更加可觀。操作系統采用Linux2.6內核。主控模塊沒有特殊的外設,驅動開發和內核開發的任務量就很小。開發工作主要集中在子系統的任務開發和監控軟件的開發上。Linux開發是在宿主機上建立交叉編譯環境,根據硬件的配置確定編譯選項,編譯后得到Linux的可執行映像。本文引用地址:http://www.104case.com/article/163429.htm
3.2 主控模塊的主程序
智能控制主控模塊硬件上資源豐富,軟件上有Linux操作系統的支持,主控模塊的軟件開發運用了模塊化思想,模塊的劃分依據是高內聚低耦合,將邏輯上緊密耦合的一組功能劃分為一個模塊。模塊劃分結果以數據流圖呈現出來。主控模塊的數據流圖如圖6所示。安全控制子系統、電器控制子系統和照明控制子系統的數據流和控制流,通過CAN總線網絡傳輸到主控模塊,主控模塊的CAN通信監控子線程解析CAN網絡中傳輸的數據。接著,主控模塊的數據分發處理器子線程根據數據的類型將數據分發到相應的數據處理程序。處理后的數據存儲到數據庫中,并在界面直觀顯示分析后的信息。
網絡模塊在邏輯上是一個獨立的模塊,在實現上由于其特殊性是在主控模塊實現的。遠程PC通過Internet方式,手機通過GPRS方式將網絡流發送到網絡模塊,網絡模塊會調用網絡信息處理模塊處理網絡流,數據處理后或存儲或通過CAN總線轉發到其它控制子系統。
4 系統的測試
測試主控模塊的性能主要體現在通信速度和通信質量。為了獲得這些參數,需要測試主控模塊和子系統之間的數據傳輸能力。測試方式是:無競爭點對點雙向數據傳輸測試;有競爭點對點雙向數據傳輸測試。測試指標是:傳輸時間和誤碼率。傳輸200 KB的數據量測試結果如表1所示。
測試結果表明主控模塊和子系統之間的通信比較穩定,數據傳輸速率較高,可以滿足實時性要求。測試中誤碼率很低,一方面說明CAN協議的穩定性;另一方面由于在數據測試中的數據量較小,從而出現錯誤的概率就小。
5 結論
智能家居系統是一個復雜的系統,由于控制對象過多,單個智能控制系統無法完成控制任務,需要構成一個家庭控制網絡。智能控制系統主控模塊在網絡中起到調度和協調的作用。本文分析了家庭控制網絡的結構,提出了主控模塊的軟硬件模型和設計方案,提出了主控模塊和其他功能子系統聯網的一種實用通信方案。
較其它方案,本方案內部采用CAN總線協議,具有組網方便、性能穩定、成本低廉的特點;外部采用TCP/IP協議,具有遠程控制能力、擴展性強的特點。最后介紹了主控模塊軟件的設計和主控模塊和其它功能子系統之間數據傳輸性能測試。測試結果表明,主控模塊結構合理,和子系統通信能力強,能較好地完成主控模塊和子系統之間數據流和控制流的雙向傳輸。
評論