摘 要: 設(shè)計(jì)并實(shí)現(xiàn)了一種利用電力載波通信的家用電器智能控制系統(tǒng)。該系統(tǒng)以ARM Cortex-M0為主控制器,集成了電力線載波芯片BWP08、傳感器、紅外學(xué)習(xí)與發(fā)送電路以及基本外圍接口等電路,實(shí)現(xiàn)了家用電器的集中化和自動(dòng)化控制。該系統(tǒng)通過(guò)PC或者智能終端發(fā)出控制命令,經(jīng)載波芯片和調(diào)制電路耦合傳送到各個(gè)接收終端,由微控制器進(jìn)行命令解析與執(zhí)行,實(shí)現(xiàn)家電的集中控制,微控制器亦可根據(jù)傳感器上傳的數(shù)值對(duì)家電進(jìn)行自動(dòng)化控制。實(shí)驗(yàn)結(jié)果表明,該系統(tǒng)方便、穩(wěn)定、可靠。
關(guān)鍵詞: 電力載波通信;Cortex-M0;傳感器;紅外學(xué)習(xí);智能家居
電力載波通信PLC(Power Line Communication)是電力系統(tǒng)特有的通信方式。它是利用現(xiàn)有電力線,通過(guò)載波方式將模擬或數(shù)字信號(hào)進(jìn)行高速傳輸?shù)募夹g(shù)。由于其自身的一些局限性,如配電變壓器對(duì)電力載波信號(hào)有阻隔作用;不同的信號(hào)耦合方式對(duì)電力載波信號(hào)損失不同;電力線上的固有的脈沖干擾對(duì)信號(hào)的高度削減,因此,PLC的生存空間不斷地被其他接入方式壓縮,但在遠(yuǎn)程抄表上還是有著廣泛的應(yīng)用。隨著數(shù)字家庭和智能樓宇的廣泛應(yīng)用,PLC技術(shù)重新得到了重視,它不需要重新架設(shè)網(wǎng)絡(luò)就可以進(jìn)行數(shù)據(jù)傳送,并且在一個(gè)家庭或一個(gè)樓宇范圍內(nèi)充分屏蔽PLC的局限性,因此,PLC在智能家居系統(tǒng)中的應(yīng)用越來(lái)越廣泛。本文利用PLC設(shè)計(jì)了一個(gè)基于ARM Cortex-M0的家電集中化與自動(dòng)化控制系統(tǒng),使用戶可以通過(guò)PC或定制的智能終端對(duì)家用電器進(jìn)行監(jiān)視與控制。
1 系統(tǒng)結(jié)構(gòu)
家用電器的智能控制系統(tǒng)由檢測(cè)模塊(亮度傳感器、溫濕度傳感器等)、微控制模塊、電力載波模塊、紅外學(xué)習(xí)與控制模塊以及上位機(jī)軟件組成,系統(tǒng)結(jié)構(gòu)圖如圖1所示。
用戶通過(guò)智能家居終端(PC或定制終端)下發(fā)控制命令,命令通過(guò)電力載波芯片BWP08以及耦合電路耦合到電力線上進(jìn)行傳輸,接收端(由BWP08及耦合電路組成)接收到電力線上的高頻信號(hào)后將數(shù)據(jù)解調(diào)并發(fā)送至微控制器(MCU),微控制器經(jīng)數(shù)據(jù)驗(yàn)證后,對(duì)命令進(jìn)行解析,通過(guò)紅外或是其他控制方式對(duì)家用電器進(jìn)行控制,實(shí)現(xiàn)了對(duì)家電的集中控制。同時(shí),微控制器可接收亮度傳感器和溫濕度傳感器的檢測(cè)數(shù)值(光強(qiáng)度、溫濕度),根據(jù)光強(qiáng)度與用戶設(shè)定的閾值進(jìn)行比較進(jìn)行百葉窗的自動(dòng)調(diào)節(jié)及燈光控制,根據(jù)溫、濕度與閾值的比較進(jìn)行空調(diào)或供暖系統(tǒng)的自動(dòng)控制,從而制造了一個(gè)自適應(yīng)的舒適環(huán)境,實(shí)現(xiàn)了家用電器的自動(dòng)控制??刂频拈撝悼赏ㄟ^(guò)命令寫入微控制器,微控制器也可以把傳感器采集數(shù)據(jù)及命令操作后的結(jié)果傳輸至上位機(jī)數(shù)據(jù)庫(kù),供用戶查詢與設(shè)定自動(dòng)控制條件。
2 硬件電路設(shè)計(jì)
2.1 微控制器模塊
微控制器是整個(gè)系統(tǒng)中最重要的模塊,需進(jìn)行數(shù)據(jù)的實(shí)時(shí)采集、家電狀態(tài)監(jiān)控、紅外遙控器功能學(xué)習(xí),家電控制等任務(wù)。微控制器選用NuMicro M051系列中的M0516LAN(以下簡(jiǎn)稱M0),它是基于ARM Cortex-M0內(nèi)核的32 bit微控制器,提供多種通信接口,包括多組GPIO、UART、SPI、I2C,可直接與各類外接設(shè)備通信,內(nèi)建8 KB Flash存儲(chǔ)器,4 KB非易失性數(shù)據(jù)存儲(chǔ)區(qū),可用于存儲(chǔ)各類紅外遙控器編碼。微控制器模塊除了電源模塊、時(shí)鐘電路、復(fù)位電路、調(diào)試接口等基本電路,還包括與檢測(cè)模塊接口電路、燈具控制電路、紅外學(xué)習(xí)與發(fā)送電路以及與載波芯片的連接電路,M0的電源模塊、時(shí)鐘電路等基本外圍電路如圖2所示。電源采用5 V電源輸入,經(jīng)AMS1117-3.3轉(zhuǎn)為穩(wěn)定3.3 V數(shù)字電壓輸出供芯片工作,并經(jīng)電感濾除高頻干擾可得模擬電壓3.3 V;時(shí)鐘電路采用12 MHz晶振電路;復(fù)位電路使用按鍵復(fù)位降低成本。
2.2 檢測(cè)模塊接口電路
溫度傳感器采用DHT11,它是一款集溫度、濕度為一體的數(shù)字傳感器,包括一個(gè)電阻式測(cè)濕元件和一個(gè) NTC測(cè)溫元件,可以實(shí)時(shí)采集本地環(huán)境的濕度和溫度,提供單總線方式與控制器通信,設(shè)計(jì)中使用M0的I/O口與之通信,傳輸距離可達(dá)20 m。為了準(zhǔn)確全面獲取室內(nèi)空間的溫濕度,可連接多個(gè)DHT11。
光強(qiáng)傳感器使用ROHM公司的16 bit串行輸出型環(huán)境光亮度傳感器BH1710FVC,擁有優(yōu)異的分光感度特性,無(wú)論是暗處還是在陽(yáng)光直射下都近似于人類視覺(jué)感應(yīng),能夠進(jìn)行大范圍的亮度測(cè)定,提供I2C接口。而M0擁有數(shù)據(jù)傳輸率高達(dá)1 Mb/s的I2C總線,通過(guò)限流電阻R4、R5與上拉電阻R1、R2分別與BH1710FVC的SCL、SDA相連,時(shí)鐘信號(hào)由主機(jī)M0提供,利用主從通信方式進(jìn)行測(cè)量命令的寫入與測(cè)量結(jié)果的讀出。傳感器與M0硬件連接圖如圖3所示。
2.3 控制模塊接口電路
家電智能控制系統(tǒng)可以用來(lái)集中控制提供控制接口的電器以及一些僅有開(kāi)、關(guān)狀態(tài)的電器,如普通燈具、飲水機(jī)。對(duì)于機(jī)械式開(kāi)關(guān)的電器及插座,通過(guò)M0的I/O口控制繼電器,從而控制電器的上電、斷電,使用一組I/O便可控制一組燈具的開(kāi)關(guān)。而電視、空調(diào)、百葉窗提供紅外控制接口,本系統(tǒng)實(shí)現(xiàn)了萬(wàn)能遙控器的功能,不但可紅外遙控不同品牌的同種電器,也可對(duì)不同電器進(jìn)行控制。只需先運(yùn)行一次M0的紅外學(xué)習(xí)功能,將不同遙控器的不同功能的編碼學(xué)習(xí)到M0中,即可實(shí)現(xiàn)萬(wàn)能遙控。紅外學(xué)習(xí)硬件電路設(shè)計(jì)如圖4(a)所示,僅由紅外接收器HS0038b及濾波電容電阻組成。HS0038b可接收主要的傳輸碼,解調(diào)信號(hào)通過(guò)OUT腳上傳至微處理器解碼,根據(jù)高低電平持續(xù)時(shí)間長(zhǎng)短判斷為0或1。編碼由引導(dǎo)碼、功能編碼、結(jié)束碼組成,將編碼與功能對(duì)應(yīng)存儲(chǔ)到M0的Flash存儲(chǔ)器中。當(dāng)微控制器接收上位機(jī)的操作命令時(shí),查找功能編碼表,將對(duì)應(yīng)編碼通過(guò)I/O腳電平發(fā)出、低頻電平信號(hào)經(jīng)過(guò)紅外發(fā)射電路變?yōu)楦哳l信號(hào),受控的電器接收后即可執(zhí)行相應(yīng)操作。對(duì)電器而言,這一操作無(wú)異于原配的遙控器操作。紅外發(fā)射電路如圖4(b)所示,電平信號(hào)經(jīng)過(guò)低頻放大器9013與高頻放大器8050,即可將信號(hào)變?yōu)榧t外發(fā)射頻段,由紅外發(fā)射二極管發(fā)出紅外線。
2.4 電力載波模塊
上位機(jī)下達(dá)控制命令到微控制器,微控制器上傳數(shù)據(jù)到上位機(jī),傳輸介質(zhì)使用家中已布好的電力線。為使信號(hào)能在電力線上傳輸,需要電力載波芯片及耦合電路。本系統(tǒng)選用深圳必威爾科技有限公司專門針對(duì)智能家居及燈飾控制市場(chǎng)研發(fā)設(shè)計(jì)的專業(yè)電力線載波產(chǎn)品BWP08,其核心芯片采用專用電力載波集成電路,采用擴(kuò)頻編碼方式,通信速率高,通信可靠,抗雜波干擾能力強(qiáng),通信距離遠(yuǎn),產(chǎn)品體積小。BWP08提供UART和SPI兩種接口與控制器通信,電力線上高頻信號(hào)由SIN腳進(jìn)入芯片,片內(nèi)集成電路進(jìn)行解調(diào),解調(diào)后的數(shù)據(jù)經(jīng)UART或SPI接口輸出。同理,輸入的低頻信號(hào)經(jīng)電路調(diào)制變?yōu)楦哳l信號(hào)由VO腳輸出,載波頻率可調(diào)。EN50065-1標(biāo)準(zhǔn)規(guī)定,用戶可使用的載波頻率范圍為95 kHz~148.5 kHz,BWP08提供65 kHz、88 kHz、113 kHz、140 kHz、170 kHz和202 kHz這6種載波頻率,使用113 kHz載波頻率即可。BWP08與電力線及微控制器連接電路如圖5所示。
BWP08與微控制器通過(guò)UART相連,連接讀寫數(shù)據(jù)比SPI簡(jiǎn)單方便。與電力線的連接相對(duì)復(fù)雜些。第2管腳F連接100 μF的濾波電容,在輸入輸出腳上并接調(diào)諧電路,選擇電感線圈與電容大小,使LC諧振電路諧振點(diǎn)在載波頻率附近,此時(shí)的電路電阻達(dá)到最大值,信號(hào)可輸入或輸出,當(dāng)有噪音干擾信號(hào)傳來(lái)時(shí)將過(guò)濾到大地。輸出信號(hào)經(jīng)過(guò)三極管BD237使電流放大輸入到變壓器耦合電路前端,在12 V的工作電路中將傳輸信號(hào)耦合到變壓器后端的220 V電力線上。電力線上有壓敏電阻、保險(xiǎn)絲等保護(hù)電路。電路中P6Ke20CA、P6Ke30CA可抑制雷擊等瞬態(tài)高壓對(duì)電路造成的侵害。BWP08電力載波模塊不能跨相傳輸數(shù)據(jù),所有相互通信的模塊必須處于同一相中。如果用戶無(wú)法確認(rèn)相互通信的模塊是否處于同一相中,可在主控模塊處增加一個(gè)三相耦合器,確保主控模塊與三相下的任意一個(gè)模塊進(jìn)行通信。由于PC提供標(biāo)準(zhǔn)RS232接口,BWP08與PC連接時(shí)需增加串口電平轉(zhuǎn)換芯片MAX232進(jìn)行電平轉(zhuǎn)換。
3 軟件設(shè)計(jì)
3.1 通信協(xié)議
本系統(tǒng)中,多個(gè)設(shè)備安裝在同一條電線上,又是異步半雙工的工作方式,為確保數(shù)據(jù)的可靠傳輸,采用主從通信方式,每次通信由上位機(jī)發(fā)起,從機(jī)中斷接收,然后將數(shù)據(jù)反饋給主機(jī),主機(jī)收到反饋數(shù)據(jù)后再發(fā)起新的一輪通信。BWP08模塊提供固定字節(jié)長(zhǎng)度和固定幀長(zhǎng)度兩種數(shù)據(jù)傳輸格式:固定字節(jié)長(zhǎng)度指接收模塊每次收到數(shù)據(jù)幀頭后,只接收預(yù)設(shè)長(zhǎng)度的用戶數(shù)據(jù);固定幀長(zhǎng)度指接收模塊每次可以接收小于或者等于預(yù)設(shè)幀長(zhǎng)度的數(shù)據(jù),但如果在數(shù)據(jù)接收時(shí),數(shù)據(jù)幀尾丟失,那么接收模塊必須收滿預(yù)設(shè)最大幀長(zhǎng)度為止。幀頭和幀尾是載波模塊自動(dòng)加入的,用戶不可見(jiàn),固定字節(jié)長(zhǎng)度傳輸模式無(wú)需幀尾,且數(shù)據(jù)字節(jié)數(shù)可任意定,而固定幀長(zhǎng)度格式最小幀長(zhǎng)度為32 B。在本系統(tǒng)中,主機(jī)下達(dá)給從機(jī)的命令有開(kāi)關(guān)燈、開(kāi)關(guān)空調(diào)、調(diào)節(jié)溫度、調(diào)節(jié)百葉窗及相應(yīng)的紅外命令學(xué)習(xí)等;下位機(jī)上傳至上位機(jī)的數(shù)據(jù)有溫濕度、光強(qiáng)、燈狀態(tài)、空調(diào)工作狀態(tài)、紅外學(xué)習(xí)編碼等,在一次控制家電操作中,所要傳輸?shù)臄?shù)據(jù)量較少,因此選擇固定字節(jié)長(zhǎng)度格式。為避免電力線上的雜波信號(hào)被當(dāng)作有用數(shù)據(jù)被本系統(tǒng)主機(jī)或從機(jī)所誤接收,發(fā)送數(shù)據(jù)加上固定字頭和字尾,各占1 B,主機(jī)、從機(jī)地址占1 B,控制命令或反饋數(shù)據(jù)占4 B,校驗(yàn)碼是對(duì)此碼前所傳送的所有數(shù)據(jù)進(jìn)行加法,進(jìn)位溢出保留尾數(shù)1 B,接收方接收數(shù)據(jù)后進(jìn)行數(shù)據(jù)的正確性驗(yàn)證,數(shù)據(jù)傳輸共8 B,格式如表1所示。
BWP08模塊提供1 200 b/s、2 400 b/s、4 800 b/s及9 600 b/s 4種串口波特率。實(shí)驗(yàn)間隔1 ms連續(xù)發(fā)送數(shù)據(jù),采用1 200 b/s波特率進(jìn)行傳輸,數(shù)據(jù)無(wú)丟包、錯(cuò)亂,因此系統(tǒng)的PC端、M0控制端和BWP08傳輸端全部將波特率設(shè)置為1 200 b/s。
3.2 上位機(jī)軟件實(shí)現(xiàn)
上位機(jī)采用VC++6.0作為開(kāi)發(fā)環(huán)境,Windows系統(tǒng)提供的API函數(shù)可以簡(jiǎn)單地實(shí)現(xiàn)Socket、串口編程與多線程技術(shù),通過(guò)人機(jī)交互輕松地實(shí)現(xiàn)串口通信與后臺(tái)服務(wù)處理。界面開(kāi)發(fā)使用MFC,數(shù)據(jù)庫(kù)使用Access。MFC框架與Access同為微軟開(kāi)發(fā),Access為微軟Office中提供的一個(gè)輕量級(jí)數(shù)據(jù)庫(kù),適合個(gè)人使用;同時(shí),MFC中封裝了對(duì)Access的直接訪問(wèn)控件ADO Data Control,通過(guò)該控件可以輕松地訪問(wèn)數(shù)據(jù)庫(kù)中的數(shù)據(jù);MFC使用Win API實(shí)現(xiàn)串口通信。通信軟件中,主線程負(fù)責(zé)通過(guò)串口控制對(duì)微型控制器下發(fā)命令,多個(gè)下發(fā)命令需排隊(duì)等待發(fā)送;子線程負(fù)責(zé)監(jiān)聽(tīng)微控制器的返回上報(bào)請(qǐng)求,收到反饋數(shù)據(jù)后喚醒主進(jìn)程隊(duì)列進(jìn)行發(fā)送。
3.3 下位機(jī)軟件實(shí)現(xiàn)
上電后,M0516LAN進(jìn)行串口初始化、定時(shí)器初始化等,然后定時(shí)讀取溫濕度數(shù)據(jù)、光強(qiáng)度數(shù)據(jù),連續(xù)讀滿10次。去掉干擾數(shù)據(jù)后進(jìn)行數(shù)據(jù)處理,將數(shù)據(jù)打包等待發(fā)送。串口利用中斷接收,當(dāng)收到數(shù)據(jù)時(shí),收滿8 B數(shù)據(jù),若為本機(jī)地址,進(jìn)行數(shù)據(jù)校驗(yàn),否則丟棄。校驗(yàn)正確后,通知M0接收到命令。主循環(huán)判斷是否接收到上位機(jī)命令,進(jìn)行命令解析并執(zhí)行,然后將M0準(zhǔn)備好的數(shù)據(jù)及命令執(zhí)行后的狀態(tài)返回給上位機(jī)。M0的軟件流程圖如圖6所示。
上位機(jī)發(fā)送的命令有三類:(1)設(shè)定系統(tǒng)為自動(dòng)控制方式,M0根據(jù)采集的溫濕度、光強(qiáng)度進(jìn)行家電的自動(dòng)控制,上位機(jī)定時(shí)獲取采集數(shù)據(jù);(2)設(shè)定系統(tǒng)為集中控制方式,家電的控制命令皆由上位機(jī)發(fā)送;(3)開(kāi)啟紅外學(xué)習(xí),上位機(jī)發(fā)送學(xué)習(xí)要求,M0保存收到的紅外編碼,將兩者形成表格存儲(chǔ)在M0中,上位機(jī)可以把整張表格取走,發(fā)送給其他M0。
實(shí)驗(yàn)證明,PC機(jī)可以利用電力載波通信技術(shù)與微控制器進(jìn)行數(shù)據(jù)傳輸,從而達(dá)到控制各個(gè)房間家用電器的目的,做到家電集中控制與自動(dòng)控制,給人提供一種舒適、智能的家居環(huán)境。系統(tǒng)選用的Cortex-M0資源廣泛、性能可靠、成本低廉,可留作以后更多的功能擴(kuò)展。例如,可以增加網(wǎng)絡(luò)模塊使家電網(wǎng)絡(luò)化,擴(kuò)展音頻模塊可語(yǔ)音控制家電,使得智能家居真正智能化。在實(shí)際環(huán)境測(cè)試中,交流電網(wǎng)干擾因素較多,應(yīng)從系統(tǒng)的軟硬件同時(shí)改進(jìn)以減少干擾帶來(lái)的數(shù)據(jù)錯(cuò)誤與控制錯(cuò)誤。電力載波通信的優(yōu)勢(shì)在家庭應(yīng)用中日益顯現(xiàn),同時(shí)也廣泛應(yīng)用于無(wú)線抄表、遠(yuǎn)程路燈控制等。
參考文獻(xiàn)
[1] 謝昆.基于電力載波通訊的智能家居控制系統(tǒng)[EB/OL].[2005-07].www.ecnchina.com
[2] 許文香,蔡麗娟,張文勇.基于電力載波的教室電器智能節(jié)能系統(tǒng)設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2008(8):189-191.
[3] 朱兆優(yōu).低壓電力載波通信中的抗干擾設(shè)計(jì)[J].電器應(yīng)用,2006,25(3):75.
[4] SWANKE J E. Visual C++ MFC擴(kuò)展編程實(shí)例[M].前導(dǎo)工作室,譯.北京:機(jī)械工業(yè)出版社,2000.
[5] 范云龍,方安平,李寧.Cortex-M0處理器初探[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2010(6):78-81.