董設(shè)建
摘要:設(shè)計了一種以STC89LE52和NRF905為核心的智能家居無線遙控系統(tǒng),給出了系統(tǒng)的設(shè)計方案和部分硬件電路,闡述了其工作原理及編程實現(xiàn)方法。經(jīng)驗證,該設(shè)計具有小巧靈便、工作穩(wěn)定可靠、易擴展等優(yōu)點,不僅可用于智能家居無線遙控系統(tǒng),也可用于其他領(lǐng)域。
關(guān)鍵詞:智能家居 STC89LE52 無線遙控 NRF905
1 概述
當代科學技術(shù)日新月異,越來越智能化、信息化、高速度及集成化以及網(wǎng)絡(luò)化,而其中的通信技術(shù)又以無線通信最具有發(fā)展?jié)摿?。無線通信系統(tǒng)由于不需要傳輸線纜、組網(wǎng)靈活方便、成本低廉,智能設(shè)備只需要配上相應(yīng)的無線通信接口電路,就可以實現(xiàn)各設(shè)備之間的無線通信任務(wù),因而比有線通信技術(shù)具有更大的優(yōu)越性。就連商業(yè)購物活動也由傳統(tǒng)的實體店購物,漸漸轉(zhuǎn)化為有線互聯(lián)網(wǎng)的虛擬購物,再向無線的移動互聯(lián)網(wǎng)購物發(fā)展。相信不久的將來,無線通信網(wǎng)絡(luò)技術(shù)將會融入到人類社會的生活及生產(chǎn)的各個方面,并且逐漸變?yōu)樽钪饕耐ㄐ攀侄沃弧?/p>
本設(shè)計以單片機STC89LE52為核心,采用NRF905無線通信模塊,設(shè)計了一種適用于智能家居產(chǎn)品的多路無線遙控系統(tǒng)。當然,此系統(tǒng)也適用于其他無線通信的場合。
2 系統(tǒng)方案
本系統(tǒng)的方案框圖如圖1所示,主要包括發(fā)射遙控器與接收控制器兩部分。本方案采用宏晶科技公司生產(chǎn)的STC89LE52單片機作為MCU控制器,該款單片機具有高速、高可靠、超強抗靜電、超強抗干擾、超低功耗(掉電模式下功耗小于0.1uA,掉電模式可由外部中斷喚醒)等優(yōu)點,采用3V供電,適合于電池供電系統(tǒng)。
其中,發(fā)射遙控器作為控制主機,通過按鍵發(fā)送從機的地址以及控制方式,可以對家庭中任意一個裝有接收控制器的從機以不同方式進行控制:如亮燈方式可控的客廳吊燈控制、電視機的開關(guān)控制、具有預(yù)防兒童觸電功能的無線智能插座控制等,以便帶給你一個安全、低耗、便捷、舒適的居家環(huán)境。而從機接收到主機發(fā)送過來的控制指令執(zhí)行控制動作,根據(jù)被控對象的特點可選擇多達7種控制模式,從機控制采用繼電器控制方式。
■
無線通信模塊采用NRF905芯片為核心,該芯片為Nordic VLSI公司設(shè)計,具有體積小、CRC校驗、抗干擾性強、多通道多頻段、通信穩(wěn)定等特點,特別適合于工業(yè)控制場合。
NRF905有四種工作模式,分別由TRX_CE、TX_EN、PWR_UP 3個引腳的狀態(tài)來決定,如表1所示。
■
3 硬件設(shè)計
MCU采用STC89LE52作為主控制器,采用3V供電,因此NRF905模塊的管腳都可以直接和STC89LE52的I/0口相連。而與NRF905的SPI總線通信方式可用單片機的普通I/0口模擬。STC89LE52控制NRF905的無線發(fā)射/接收模塊的硬件原理設(shè)計及相關(guān)接線如圖2所示。
3.1 發(fā)射遙控器設(shè)計
發(fā)射遙控器電路主要包括從機地址及控制方式撥碼鍵盤、MCU、無線通信模塊電路、掉電喚醒電路和LED工作顯示電路等部分。其中,MCU選用STC89LE52,NRF905的工作頻率為433MHz。MCU通過其I/O口控制NRF905的發(fā)射工作,以及收集其相關(guān)狀態(tài)的反饋信息。
另外,由于發(fā)射遙控器采用電池工作,因此低功耗是我們在設(shè)計時需要考慮的一個重要方面。當NRF905以10dBm的輸出功率發(fā)射時,其消耗的電流小于20mA;在關(guān)機模式下,NRF905的工作電流最小,一般為2.5uA。另外,STC89LE52的正常工作電流為4~7mA;掉電模式下,典型功耗小于0.1uA。因此,當發(fā)射控制器不工作時,應(yīng)當首先讓NRF905處于關(guān)機模式,然后讓STC89LE52處于掉電模式下;而以10dBm的發(fā)射功率工作時,發(fā)射控制器的最大功耗不超過30mA,且其工作過程非常短暫。這樣就大大降低了發(fā)射控制器的功耗,延長了電池的使用壽命。
3.2 接收控制器設(shè)計
接收控制器電路主要包括MCU、無線通信模塊電路、直流穩(wěn)壓電源、繼電器控制輸出等部分。其中MCU采用STC89LE52,無線通信模塊電路與發(fā)射遙控器的一樣。由于接收控制器安裝在交流220V的燈具、開關(guān)機插座等上,因此采用+3V的直流穩(wěn)壓電源對其進行供電,不必要考慮其功耗問題。
4 軟件設(shè)計
發(fā)射遙控器的軟件編程主要包括初始化、喚醒程序、發(fā)送程序以及低功耗程序幾個部分,接收控制器的軟件編程主要包括初始化和接收程序兩個部分。
發(fā)射遙控器的掉電喚醒程序為:當發(fā)射遙控器接收到需要發(fā)射數(shù)據(jù)的指令時,首先需要使用INT0下降沿中斷程序喚醒單片機進入工作模式,點亮工作指示燈,然后用MCU喚醒NRF905從關(guān)機模式進入待機模式,接著保存按鍵過程中留下的從機地址及控制方式等數(shù)據(jù)。發(fā)射遙控器的低功耗程序為:MCU先將NRF905轉(zhuǎn)到掉電模式,然后MCU將自己轉(zhuǎn)到掉電模式。
上述發(fā)射遙控器的兩個程序較簡單,此處不做詳細闡述,下面只介紹初始化、發(fā)送和接收三個程序的編程過程。其中,發(fā)射遙控器與接收控制器的初始化程序大致相同,只不過接收控制器的初始化程序中沒有中斷程序的初始化。
4.1 初始化
首先初始化NRF905的射頻配置寄存器:CH_NO配置頻段在433MHz,輸出功率為10db,不重發(fā),節(jié)電為空閑模式,地址有效寬度設(shè)為1字節(jié),有效數(shù)據(jù)長度為1字節(jié),接收地址預(yù)設(shè),CRC允許,8位CRC效驗,外部時鐘信號不使能,采用外部16M時鐘晶振。然后初始化掉電喚醒的INT0配置:開總中斷,開INT0中斷,INT0中斷下降沿觸發(fā)。
4.2 發(fā)送程序
發(fā)送數(shù)據(jù)時,MCU首先通過SPI總線方式將需要發(fā)送的地址和數(shù)據(jù)都寫入NRF905相應(yīng)的寄存器中,然后將NRF905切換到發(fā)送模式,這個過程中需要延時650ns,再后就是啟動NRF905發(fā)送一次(TRX_CE跳變一次)數(shù)據(jù),接著等待發(fā)送結(jié)束。發(fā)送過程程序的流程如圖3所示。
■
4.3 接收程序
接收控制器初始化之后,大部分時間均是捕捉發(fā)射遙控器的信號,并按指定的控制方式進行工作。因此,在其初始化后,就直接切換到接收模式(PWR_UP=1、TX_EN=0、TRX_CE=1),這個過程中需要延時650ns,接著就是MCU等待并檢測NRF905的相關(guān)管腳的變更情況。首先查看AM管腳,如果AM=1,則表示地址匹配正確,然后判斷DR管腳,如果DR=1,則表示數(shù)據(jù)接收對而且CRC校驗正確。至此,即可將NRF905切換到待機模式讀取數(shù)據(jù),并按接收到的控制方式改變MCU的控制輸出。然后,再次切換到接收模式,重新捕捉發(fā)射遙控器的信號。接收數(shù)據(jù)程序的流程圖如圖4所示。
■
5 小結(jié)
經(jīng)過實驗證明,本設(shè)計小巧靈便,工作穩(wěn)定可靠,在室內(nèi)3層以內(nèi)能實現(xiàn)可靠通信,抗干擾性能力較強,完全可以滿足智能家居的使用。而其低成本、易擴展、操作簡單等特點,使之非常容易擴展到其他領(lǐng)域。
參考文獻:
[1]王娟.基于ZigBee無線傳感網(wǎng)絡(luò)的智能家居系統(tǒng)設(shè)計與實現(xiàn)[D].東華理工大學,2013.
[2]孫國新.基于ZigBee技術(shù)的智能家居系統(tǒng)研究[D].天津科技大學,2011.
[3]王正豐.智能家居遠程控制安全通信研究[D].華南理工大學,2013.