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