曹德安 宋相慧
(廣東開放大學(xué)(廣東理工職業(yè)學(xué)院),廣東廣州 510091)
為便于物聯(lián)網(wǎng)專業(yè)進行電力載波通信技術(shù)相關(guān)內(nèi)容的實踐教學(xué),文獻(xiàn)[1]中設(shè)計并實現(xiàn)了一個基于四川科強電子KQ-130F電力載波模塊、清翔電子QX-mini51單片機最小系統(tǒng)板的電力載波的通信實驗系統(tǒng),并驗證了主機與多從機的直接雙向通信,但沒有考慮中繼通信的情況。實際上,電力載波通信與其他有線通信方式相比,雖然不需要進行專門的布線,但是噪聲干擾強、信號衰減大,這些特性縮短了載波信號的可靠傳輸距離。為了擴大電力載波信號的可靠傳輸距離,常常采用在主機與較遠(yuǎn)從機之間增加中繼器的方法,利用中繼器進行主機控制信號與從機狀態(tài)信號的再生與放大。例如,KQ-130F電力載波模塊在專線的情況下,最遠(yuǎn)傳輸距離是2km,而城市路燈系統(tǒng)一般都會超過這個距離,這種情況下如果想用KQ-130F電力載波模塊進行通信,就需要考慮利用中繼器,而且是通過編程實現(xiàn)中繼功能。所以,對于物聯(lián)網(wǎng)專業(yè)的學(xué)生來說了解電力載波通信中的中繼通信是很有必要的。文獻(xiàn)[2-3]雖然介紹了中繼通信,但相對于高職物聯(lián)網(wǎng)專業(yè)的學(xué)生來說,過于專業(yè)和理論化。本文將在文獻(xiàn)[1]的基礎(chǔ)上,增加一個由KQ-130F電力載波模塊和清翔電子QX-mini51單片機最小系板構(gòu)成的中繼器,通過編程實現(xiàn)主機直接與從機、主機通過中繼器與從機的雙向通信。
圖1 系統(tǒng)的簡化電路原理圖
與文獻(xiàn)[1]的硬件系統(tǒng)相比,這里主要增加了電力載波模塊和單片機最小系統(tǒng)板組成的中繼器單元。圖1為系統(tǒng)的簡化電路原理圖,其中的主機、從機和中繼器模塊均為QX-mini51單片機最小系統(tǒng)板。系統(tǒng)采用主從通信方式,主機的P1口,從機P1口的低四位都接了發(fā)光二極管,主機與從機P3.2至P3.5都接了開關(guān)。中繼器模塊單片機硬件路雖然也連接了開關(guān)和發(fā)光二極管,但為簡單起見,編程時可以不考慮。主機與從機1是經(jīng)過串口、電力載波模塊、220V電力線而實現(xiàn)物理連接的。主機和從機2之間的通信,還需要通過中繼器,也就是主機發(fā)給從機2的命令或者從機2返回的狀態(tài)信息都需要通過中繼器的轉(zhuǎn)發(fā)。通過編程實現(xiàn)主機對從機LED燈的遠(yuǎn)程監(jiān)控,即主機上的開關(guān)可以控制從機燈的亮與滅,也能讓從機返回各自燈的狀態(tài),并在主機對應(yīng)LED燈上顯示。主機與從機各開關(guān)具體功能與文獻(xiàn)[1]中相同,如表1所示。
表1 主機與從機各開關(guān)功能
表2 數(shù)據(jù)幀格式-不含中繼器
表3 數(shù)據(jù)幀格式-含中繼器
如文獻(xiàn)[1]所述,KQ-130F的串行通信方式唯一,其接口波特率9600bps,數(shù)據(jù)格式為1個起始位,8個數(shù)據(jù)位1個停止位格式,該數(shù)據(jù)格式對應(yīng)單片機的串行方式1。因此,對于包含KQ-130F載波通信模塊,通信方式唯一,該方式也就是51單片機在串行方式1,如果要實現(xiàn)多機通信,我們只能采用自定義數(shù)據(jù)幀的方法。
文獻(xiàn)[1]中,由于沒有考慮中繼通信問題,數(shù)據(jù)流類型比較簡單,只有主機發(fā)給從機和從機返回給主機2種類型數(shù)據(jù)流,數(shù)據(jù)幀也只有4部分,占4個字節(jié)即可,分別是:幀長度、目標(biāo)機地址、控制命令/狀態(tài)數(shù)據(jù)、結(jié)束標(biāo)志,如表格2表示。當(dāng)考慮中繼器時,數(shù)據(jù)流類型就增加到6種類型,而且數(shù)據(jù)幀所包含信息也必須增加,才能讓收到該數(shù)據(jù)幀的單片機明確這些數(shù)據(jù)的含義,數(shù)據(jù)幀格式如表3所示??梢钥闯觯c表2相比,數(shù)據(jù)幀格式中多了“附屬地址”“數(shù)據(jù)幀類型編碼”2項,這2項能夠反映出接收機收到數(shù)據(jù)來自哪里或者將要發(fā)送到哪里。其中的命令碼,可以定義為如表4所示內(nèi)容。狀態(tài)碼即為從機P1口的值。
表4 命令碼
圖2 中繼器主程序流程圖
為簡單起見,中繼器模塊單元的作用僅僅是在主機與指定從機之間進行命令與狀態(tài)數(shù)據(jù)的轉(zhuǎn)發(fā),不作一般的從機使用。中繼器主程序框架如圖2所示,在初始化程序中進行中斷及串口通信等設(shè)置,然后進入空循環(huán)等待串口接收數(shù)據(jù)引起的中斷,其中斷響應(yīng)程序結(jié)構(gòu)與文獻(xiàn)[1]中的圖4基本相同,不同之處在于讀串口次數(shù)由4次修改為6次,這是由于含中繼器的情況下,數(shù)據(jù)幀定義為了6個字節(jié)長度。主機和從機的主程序框架、中斷響應(yīng)框架也與文獻(xiàn)[1]中基本相同,不同之處同樣是由于數(shù)據(jù)幀內(nèi)容及長度變化了。另外,主機、從機和中繼器,對于串口發(fā)送和接收數(shù)據(jù)的處理方式都相同:即判斷串口是否發(fā)送完一個字符幀的數(shù)據(jù)采用查詢標(biāo)志位的方法,而是否接收完一個字符幀的數(shù)據(jù)采用中斷方式。
圖3 包含中繼模塊的電力載波通信實驗系統(tǒng)實物圖
圖3為包含中繼器模塊的電力載波通信實驗系統(tǒng)實物圖,從左至右,各個模塊與圖1相對應(yīng)。實驗系統(tǒng)中主機與最右邊從機距離其實非常近,可以直接通信,在其中加入中繼器模塊是為了演示包含中繼器模塊下的電力載波通信。實驗測試效果與表1完全相同,驗證了包含中繼器情況下電力載波通信程序的正確性。
本文在文獻(xiàn)[1]提出的硬件設(shè)備基礎(chǔ)上,增加一個KQ-130F電力載波模塊和QX-mini51單片機最小系統(tǒng)板組成的單元,通過編程,使其具有中繼器的功能,實現(xiàn)了包含中繼模塊下的電力載波通信實驗,使得該實踐教學(xué)平臺內(nèi)容更豐富。該功能的增加,既能進一步鍛煉學(xué)生的單片機編程能力,又能加深對電力載波通信知識的了解,提升了該實踐教學(xué)平臺的實用性能。