引言
智能家居系統(tǒng)由一個主控制器和各節(jié)點模塊組成,主控制器有以ARM LPC2364為核心和MAX3088構(gòu)成的RS一485接口,可以掛接最多256個設(shè)備節(jié)點,對于一個家庭已經(jīng)夠用,尤其對于這樣一個設(shè)備復(fù)雜多變的家庭網(wǎng)絡(luò)非常適合。
MAX3088芯片支持最大10 Mb/s的傳輸速度,使傳輸一些大數(shù)據(jù)量信息成為可能,而且還提高了系統(tǒng)通信的實時性。其整體結(jié)構(gòu)如圖1所示。
該系統(tǒng)通過以LPC2364為核心的主控制器連接外部Internet網(wǎng)絡(luò)和家庭RS一485網(wǎng)絡(luò),摒棄了傳統(tǒng)的以家庭電腦為主控制器的方法,不僅節(jié)省了開支,而且省電節(jié)耗效果明顯。另外,保留了一個RS-232接口,以方便與家庭電腦通信,也為以后的系統(tǒng)升級提供了方便。LPC2364是飛利浦公司的一款帶有以太網(wǎng)控制器的ARM芯片,具有豐富的外設(shè)、較高的速度、工業(yè)級的控制標(biāo)準(zhǔn),是穩(wěn)定、經(jīng)濟的最佳選擇。其次,RS一485總線的掛接節(jié)點,按其功能可以分為家電控制模塊節(jié)點、安防控制模塊節(jié)點、燈光控制模塊節(jié)點等。
1 總體方案設(shè)計
智能家居系統(tǒng)包括多方面控制,如家電控制、安防報警控制、燈光控制、三表控制、門窗控制等。
每一方面的控制都包含了很多小的節(jié)點。本文選擇代表性較強的家電控制和安防監(jiān)控模塊進(jìn)行了重點設(shè)計。
1.1 家電控制模塊
現(xiàn)代家庭中主要使用的電器的共同特點是繼電器控制。在家電的控制板上將功能繼電器相應(yīng)的控制線與模塊MCU連接,通過RS-485總線接口就可以方便地使用該系統(tǒng)進(jìn)行控制,如圖2所示。
使用7 bit輸入/輸出的達(dá)林頓管芯片MC1413驅(qū)動繼電器,來控制相關(guān)的開關(guān)量。如對空調(diào)來說,溫度控制、風(fēng)向控制等是按鍵的開關(guān)量,都可以由繼電器來完成相應(yīng)的控制??紤]到要嵌入家電中,控制節(jié)點盡量做得精小,而且沒有復(fù)雜的控制對象,選用AT89C2051單片機作為控制器。RS-485通信接口使用MAX1487芯片,允許掛接125個家電,采用半雙工通信方式,通信速率為2.5 Mb/s。家電控制通信只是進(jìn)行控制命令和家電狀態(tài)信息的傳輸,數(shù)據(jù)量很小。該芯片通信速率能夠滿足要求。
1.2 安防監(jiān)控模塊
安防系統(tǒng)由煙霧傳感部分、煤氣傳感部分、實時監(jiān)控部分等組成,實現(xiàn)了防火、防煤氣中毒、防盜監(jiān)控等功能。這些組成部分由煙霧傳感器和煤氣傳感器等傳感器組成,結(jié)合A/D轉(zhuǎn)換芯片傳輸信息。
實時監(jiān)控部分采用Ovinmin公司生產(chǎn)的OV7141圖像采集芯片。OV7141是高度集成的攝像芯片,支持多種格式,內(nèi)設(shè)串行控制總線(serial Camera Control Bus,SCCB)接口,提供簡單控制方式,可以對OV7141芯片內(nèi)部所有寄存器值進(jìn)行修改 。OV7141包含有8 bit數(shù)據(jù)(DO,D1,D7),同步信號VSYNC、HREF、PCLK,這些信號需要送給CPU以讀取圖像數(shù)據(jù)和保證同步。
由于OV7141默認(rèn)幀頻為30 Hz,像素為640×480= 307 200,在此幀頻下的圖像數(shù)據(jù)傳輸速率為9.216 MB/s。在不考慮同步的情況下已遠(yuǎn)超過串口的響應(yīng)速度,必須重新設(shè)置以降低幀頻和像素。
在該系統(tǒng)中對OV7141的訪問有:
?、?設(shè)置地址號為0xl1的幀頻控制器CLKRC,以降低幀頻;
?、?設(shè)置地址號為0x14的控制器COMC,以設(shè)置像素為320×240;
?、?設(shè)置地址號為0x28的COMH,以設(shè)置掃描格式 。
硬件電路如圖3所示。
單片機89C51的內(nèi)部數(shù)據(jù)存儲只有128 ByteRAM,必須外擴數(shù)據(jù)存儲器存儲圖片。由于單片機串口速度的限制,OV7141的像素設(shè)置為320×240,采集黑白圖片,這樣一幀圖片的存儲空間約為76 800 bit,即9.6 KB。外擴一個比9.6 KB大的存儲器即可,選擇32 KB的62256芯片可存儲多幀圖片。
數(shù)據(jù)的傳輸速度受到串口速度的限制,必須提高串口波特率。根據(jù)系統(tǒng)特點,在使用串口傳輸方式3時,波特率可變,可以根據(jù)傳輸效果實時改變。表1所示是采用不同波特率時一幀(一幀按9.6 KB計算)圖片的傳輸時間。
2 網(wǎng)絡(luò)通信
2.1 網(wǎng)絡(luò)設(shè)計
單片機構(gòu)成的多級系統(tǒng)常采用總線型主從式結(jié)構(gòu)。所謂主從式結(jié)構(gòu),即在多個單片機中,一個主機負(fù)責(zé)通信管理,其余的都是從機,從機要服從主機的調(diào)度和支配。主機還負(fù)責(zé)通過網(wǎng)絡(luò)接口進(jìn)行遠(yuǎn)程通信。
在實際的多機應(yīng)用系統(tǒng)中,常采用RS一232、RS一422或RS一485串行標(biāo)準(zhǔn)總線進(jìn)行數(shù)據(jù)傳輸。根據(jù)傳輸距離和通用性,選擇RS一485總線,單片機采用串行口工作方式3通信。
每個從機都有惟一的地址碼,該地址碼就是從機身份的識別標(biāo)志。
2.2 通信機制
系統(tǒng)采用了RS一485總線通信方式,如圖4所示。通信中采用“輪詢制”,中繼器作為主設(shè)備不斷向下發(fā)送設(shè)備請求應(yīng)答幀,而接人從設(shè)備不能主動發(fā)送數(shù)據(jù)。任何時刻,總線只處于一種方式,即接收數(shù)據(jù)或發(fā)送數(shù)據(jù)。系統(tǒng)初始化一旦完成,總線即被置為接收狀態(tài),當(dāng)從設(shè)備接收完主設(shè)備發(fā)來的消息后,立即通過軟件將總線置為發(fā)送狀態(tài),等從設(shè)備發(fā)送完一幀數(shù)據(jù)又立即轉(zhuǎn)為接收狀態(tài),等待主設(shè)備的請求幀。如果發(fā)來的請求幀中,設(shè)備ID地址和自身ID地址一致,接收設(shè)備就檢查這個幀是否正確。
表2所示為主機地址幀,從機的地址碼為00H,01H,02H,并用地址碼FFH命令從機復(fù)位。
表3所示為主機給從機的命令幀,OlH為主機命令從機接收數(shù)據(jù),02H為主機命令從機發(fā)送數(shù)據(jù)。
如表4所示,數(shù)據(jù)字描述的都是開關(guān)量的信息,可以作為狀態(tài)信息傳送給主機,也可作為主機發(fā)送的命令格式。
2.3 通信流程圖
通信流程圖如5所示。
3 結(jié)語
系統(tǒng)采用嵌入式控制芯片做控制單元,通用RS-485總線組成傳輸網(wǎng)絡(luò),實現(xiàn)了低成本、長距離傳輸,滿足一般家庭的遠(yuǎn)程控制家電需求,具有較高的經(jīng)濟性和實用性。