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