低壓電力線載波通信系統(tǒng)設計
摘要:由傳統(tǒng)的高壓電力線通信技術發(fā)展而來的低壓電力線載波通信(PLC,low-voltage power line carrie-current communication)技術已經(jīng)越來越受到關注,且被視為解決因特網(wǎng)接入“最后一公里”問題的有效手段。文章通過軟硬件結(jié)合的方式,自主搭建了一個低壓電力線載波通信系統(tǒng),從而實現(xiàn)了利用低壓電力線進行數(shù)據(jù)傳輸?shù)哪康摹?br />
關鍵詞:低壓電力線;MSCOMM控件;載波通信;接口轉(zhuǎn)換
0 引言
現(xiàn)代社會的發(fā)展,人們對生產(chǎn)和生活有了更多、更高的要求,例如要求更節(jié)能環(huán)保、更舒適便捷,這些要求的實現(xiàn)都需要大量信息的獲取、傳輸和處理,需要把與生產(chǎn)生活相關的大量設備和對象連接起來,構(gòu)成網(wǎng)絡,以實現(xiàn)對它們的監(jiān)測控制與管理,從而形成物聯(lián)網(wǎng)、家域網(wǎng)(HAN)等。在這些網(wǎng)絡中,需要連接的對象數(shù)量眾多,位置可能變動,給網(wǎng)絡的構(gòu)成帶來一定的困難。由于這些對象的工作大都離不開電力,所以,用低壓電力線組成網(wǎng)絡進行通信,是一種很需要重新布線,覆蓋范圍廣,維護少,節(jié)約資源。為此,本文結(jié)合國內(nèi)外研究動態(tài),對低壓電力線載波通信技術進行了研究,并采用相關功能模塊,編寫了相關控制軟件,實現(xiàn)了兩點之間通過低壓電力線載波通信來進行數(shù)據(jù)傳輸,并通過上位機進行監(jiān)控的目的。
1 系統(tǒng)總體結(jié)構(gòu)
本設計主要包括載波通信模塊、上位機監(jiān)控界面及轉(zhuǎn)換接口電路等幾個部分。其中,轉(zhuǎn)換接口電路主要負責PLC模塊的TTL電平接口與上位機的串口之間的接口通信。其系統(tǒng)框圖如圖1所示。
在數(shù)據(jù)信號發(fā)送端,上位機發(fā)出數(shù)據(jù)信號給COM口,通過接口轉(zhuǎn)換電路把上位機發(fā)出的數(shù)據(jù)信號轉(zhuǎn)換為PLC模塊能夠接收并處理的TTL電平信號。然后經(jīng)過PLC模塊將信號調(diào)制成特殊的電力信號,再通過電力線進行傳輸。
在數(shù)據(jù)信號接收端,PLC模塊將電力線上的信號耦合下來,并通過濾波、解調(diào)轉(zhuǎn)換為原來的TTL電平信號,再經(jīng)接口轉(zhuǎn)換電路把信號發(fā)送到上位機進行顯示。
該系統(tǒng)信息是雙向傳輸?shù)模碢LC模塊與轉(zhuǎn)換接口電路均可以實現(xiàn)雙向通信。
2 系統(tǒng)硬件選擇與設計
2.1 低壓電力線載波模塊
本文選用杭州新實科技有限公司的SENS-01嵌入式電力線載波通信模塊,該模塊可提供半雙工通信功能,可以在220 V/110 V、50Hz/60 Hz電力線上實現(xiàn)局域通信;通信速率有600 b/s、1 200 b/s、2 400 b/s、4 800 b/s、9 600 b/s、19 200 b/s等多種速率;每幀長度小于或等于20 B;具有TTL電平接口,可為用戶提供透明的數(shù)據(jù)通道,而且數(shù)據(jù)傳輸與用戶協(xié)議無關。
2.2 接口轉(zhuǎn)換電路選擇與設計
本設計選用的是USB接口作為上位機與PLC模塊的通信接口,因為現(xiàn)在的筆記本大多沒有RS232接口,而且現(xiàn)在許多工業(yè)現(xiàn)場也采用USB接口作為串口通信,十分靈活便捷。因此,本文選用FTDI公司生產(chǎn)的FT232RL芯片作為USB與TTL電平接口的轉(zhuǎn)換芯片,該芯片具有全握手協(xié)議及MODEM接口(CTS、RTS、DTR、DCD、RI),并具有硬件及Xon/Xoff流量控制。芯片內(nèi)置晶振,外圍電路簡單,驅(qū)動能力強。其接口轉(zhuǎn)換電路如圖2所示。
3 系統(tǒng)軟件設計
本文采用MSCOMM控件(即Microsoft Communication Control)進行串口編程,該控件是Microsoft公司為簡化Windows下串行通信編程而提供的ActiveX控件。它提供了一系列標準通信命令的使用接口,因此,利用它能夠建立和串口的連接,并能夠通過串口連接到其他通信設備(如調(diào)制解調(diào)器)發(fā)出命令、交換數(shù)據(jù)以及監(jiān)控和響應串行連接中發(fā)生的事件和錯誤。使用MSCOMM控件編寫串口程序時,不需要花費時間了解復雜的API函數(shù),但它在執(zhí)行的時候需要調(diào)用API函數(shù)。
MSCOMM控件串行通信處理方式采用事件驅(qū)動方式,許多情況下,在事件發(fā)生時需要得到通知,這時,就可以利用MSCOMM控件的OnComm事件捕捉并處理這些通信事件。這種方法的優(yōu)點是程序響應及時,可靠性高。
3.1 系統(tǒng)通信程序設計
本系統(tǒng)數(shù)據(jù)的發(fā)送與接收顯示都是通過對上位機編寫軟件來實現(xiàn)的。其流程大致為:關閉串口,對串口的波特率進行選擇,然后設置通信參數(shù);打開串口之后,可以選擇發(fā)送方式為手動或自動(自動發(fā)送周期根據(jù)模塊的處理速度固定為2 s),也可以選擇是否為十六進制發(fā)送(對應的接收端應選擇十六進制顯示)。
在監(jiān)控顯示部分,當接收緩沖區(qū)有數(shù)據(jù)時,系統(tǒng)就會觸發(fā)OnComm事件,對數(shù)據(jù)進行讀取并在編輯框中顯示。修改波特率時,一般需要關閉串口然后才能調(diào)試。其系統(tǒng)程序流程圖如圖3所示。
3.2 數(shù)據(jù)發(fā)送部分算法
由于在數(shù)據(jù)發(fā)送時,模塊每次只能接收20 b以內(nèi)的數(shù)據(jù),因此,為了使模塊能夠發(fā)送或接收更多的數(shù)據(jù),本文采用指針指向的方法,分段取出所要發(fā)送的數(shù)據(jù),每段20 b。
數(shù)據(jù)發(fā)送首先要獲取編輯框內(nèi)所要發(fā)送的數(shù)據(jù),然后計算其長度,再判斷與20的關系。如果整除得b的話,就直接發(fā)送b次,每次分段讀取,且必須在兩次發(fā)送之間添加延時程序,否則,這樣處理就沒有意義,因為模塊的處理速度慢于發(fā)送的速度會造成數(shù)據(jù)丟失。當不能整除且得到的余數(shù)為a時,要先發(fā)送b次,讀取完bX20個字符后,再發(fā)送剩余的a個字符。圖4所示是其數(shù)據(jù)發(fā)送程序流程圖。
3.3 通信與監(jiān)視界面
圖5所示是本系統(tǒng)中上位機的通信與監(jiān)控界面圖。從圖中可以看出,在通信界面設置好波特率,然后打開串口,在COM6發(fā)送窗口輸入字符串,然后點擊發(fā)送(或自動發(fā)送),COM5接收顯示窗口就會顯示COM6所發(fā)送的信息。由圖5可知,數(shù)據(jù)信息的傳輸量已經(jīng)突破了模塊自定義的20 B,即能夠?qū)崿F(xiàn)較多信息量的發(fā)送與接收。
4 結(jié)語
電力網(wǎng)絡是目前覆蓋范圍最廣的網(wǎng)絡,有著巨大的潛在利用價值。在家居自動化、家用電器控制等方面,PLC技術有著得天獨厚的優(yōu)勢。本文利用低壓電力線載波方式實現(xiàn)了數(shù)據(jù)在低壓電力線上的傳輸,并能通過上位機實時顯示數(shù)據(jù)。但是,目前PLC技術仍然存在很多不足,在電力線上干擾嚴重時,通信成功率可能還無法保證,通信速率也比較低,因此還需要更深入的研究。