劉羽軒 ,蔡高琰 ,梁炳基 ,駱德漢 ,何家峰
(1.廣東工業(yè)大學 信息工程學院,廣東 廣州 510000;2.廣東浩迪創(chuàng)新科技有限公司,廣東 佛山 528000)
當前新型智能電表普遍采用無線通信方案,無線通信技術有 GPRS、ZigBee、LoRa 等。 在無線通信技術中,遠程(Long Range,LoRa)是一種采用擴頻技術的無線傳輸方案,具有遠距離傳輸、抗干擾能力強、低功耗等特點[1-2],其特性適合用于智能電表的通信。但其也存在著可靠性低、容量過少的問題[3-5]。因此,本文研究一種基于LoRa 的使用新型組網協(xié)議的通信方案,致力于消除LoRa 的不足,使其更加適合于智能電表通信。
本方案的總體構架如圖1 所示。 在通信系統(tǒng)中分為采集器節(jié)點和電表節(jié)點,基于LoRa 的智能電表節(jié)點中搭載了LoRa 功能的傳感器,電力數據通過LoRa 無線通信單元經過中繼多跳網絡發(fā)送到采集器節(jié)點的接收模塊,采集器節(jié)點通過GPRS 將數據發(fā)送至服務器[6-7]。 其中電表節(jié)點和采集器節(jié)點數據傳輸使用的中繼多跳組網協(xié)議,可有效解決當采集器和電表節(jié)點過遠時出現的問題。
圖1 總體架構
LoRa 模塊的傳輸方式分為透明傳輸和定向傳輸[7-8]。 其中透明傳輸采用的是 LoRa 擴頻技術來進行,同時提供 RS485 和 RS232 串口,為用戶提供全透明數據傳輸模式,也為建立中級多跳網絡提供了便利。 本文設計的中繼多跳組網協(xié)議即在透明傳輸的基礎上實現。
中繼多跳通信時需要兩電表節(jié)點之間進行通信,所以兩電表的LoRa 模塊配置也應設置相同[9-11]。電表節(jié)點基于LoRa 透傳的數據幀結構設置見表1。
表1 數據幀結構
中繼多跳傳輸協(xié)議執(zhí)行步驟如圖2 所示。
具體步驟如下:
(1)判斷電表節(jié)點接收的數據幀中的CA 與其本地地址是否相同。 若相同,執(zhí)行第(2)步;否則執(zhí)行第(5)步。
圖2 協(xié)議幀執(zhí)行步驟
(2)判斷接收的數據幀中的 CA 是不是為 TL 中電表節(jié)點詳細地址表中最后一個地址。 若不是,執(zhí)行第(3)步;若是,則執(zhí)行第(4)步。
(3)將TL 的電表節(jié)點詳細地址表中的下一個傳輸地址填充到傳輸數據幀結構中的CA,然后廣播進行發(fā)送。
(4)若數據幀中的CA 是電表節(jié)點詳細地址表最后一個地址,則說明中繼通信完成,該電表節(jié)點可以進行數據內容解析并做出相應操作。 響應數據時,需要將接收到的數據幀中的TL 進行反轉,隨后重新配置CA。
(5)若電表節(jié)點接收的數據幀中的CA 與電表節(jié)點的本地地址不一致,則不響應。
(6)若電表節(jié)點接收的數據幀中的CA 是十六進制,那么判斷電表節(jié)點的本地地址是否在電表節(jié)點詳細地址表中。 如果在,則表示該數據幀被當前電表節(jié)點中繼過,可以不作響應;如果不在,則表示此數據幀是廣播數據幀,對數據幀的內容進行解析并做出相應操作。
將本協(xié)議移植到電表節(jié)點中,即可實現電表節(jié)點的數據中繼多跳傳輸,其組網鏈路模型如圖3所示。
圖3 組網鏈路模型
圖 3 中,A 表示采集器節(jié)點,B~K 表示 LoRa 電表節(jié)點,其組網鏈路過程如下:
(1)節(jié)點A 通過廣播發(fā)出十六進制的數據幀,對各個電表節(jié)點設備標號進行獲取。
(2)收到廣播的數據幀后,B~K 電表節(jié)點將自己設備標號中繼發(fā)送至A,A 對各電表節(jié)點的本地地址進行分配。
(3)B、C、D 即為一級電表節(jié)點設備,由 A 直接分配地址。
(4)已經分配好地址的 B、C、D 等一級電表節(jié)點設備繼續(xù)進行中繼廣播;E、F、G、H、I 即為二級電表節(jié)點設備,通過已經分配地址的一級電表進行地址分配,如 B 給 E、F 進行分配地址,以此類推,直到整個中繼多跳網絡形成。
在智能電表通信系統(tǒng)中,為實現本文設計的基于LoRa 透明傳輸的中繼多跳網絡,保證系統(tǒng)通信過程中的狀態(tài)監(jiān)測以及數據的實時處理,需要分別對電表節(jié)點和采集器節(jié)點進行硬件設計。
電表節(jié)點的主要功能是對用電量進行實時采集,并將采集的數據發(fā)送給采集器,實現與采集器之間的通信[12]。 其硬件框圖如圖 4 所示。
圖4 電表節(jié)點硬件框圖
本文選取HD-TB01 單相電表作為基表,使用STM32 系列芯片作為 LoRa 模塊的主控 MCU,射頻收發(fā)芯片選用SX1278 芯片。其中,MCU 電路為整個模塊的大腦,主要對射頻芯片進行控制,支撐其完成數據的接收/發(fā)送;射頻芯片則實現數據的無線發(fā)送和接收;接口電路完成LoRa 模塊與基表之間的通信,使用 RS232 串口通信。
采集器節(jié)點是中繼多跳網絡與遠程通信網絡(GPRS)的中間環(huán)節(jié)[13-14],主要負責采集電表節(jié)點的數據并進行數據的上傳與下發(fā)。 其硬件結構如圖5所示。
圖5 采集器節(jié)點硬件框圖
本文選用C121-GL 云終端采集器作為采集器基表,與電表節(jié)點相同,使用 STM32 系列芯片作為LoRa 模塊的主控 MCU,射頻收發(fā)芯片選用 SX1278芯片,采用RS232 串口通信與采集器基表進行通信,其主要流程為:通過射頻收發(fā)模塊采集電表節(jié)點的數據,然后經過MCU 模塊處理,再通過GPRS 模塊發(fā)送至服務器。
本文設計的通信協(xié)議,遵循智能電表DL/T645-2007 規(guī)約以及GBDW-1375 系列協(xié)議,設計基于 LoRa透明傳輸的中繼多跳組網方式來進行數據轉發(fā)。 其軟件設計包括組網的功能設計和電表節(jié)點、采集器節(jié)點的軟件設計。
LoRa 采集器節(jié)點使用中級多跳網絡協(xié)議前必須進行采集器節(jié)點和電表節(jié)點無線組網,其組網設計流程如下:
(1)采集器上電后發(fā)送啟動注冊的廣播幀。
(2)電表收到廣播幀后,如幀內 LoRa 參數與電表一致,則上報帶表號的注冊幀。
(3)采集器收到電表上報的注冊幀后,若該電表在采集器的配置表上,則回應確認幀;如電表不在采集器配置表上,則回應拒絕注冊幀。 電表收到拒絕幀,且?guī)瑑?LoRa 參數與電表一致,立即跳到下一頻段等待注冊。
(4)電表收到確認幀,且?guī)瑑?LoRa 參數與電表一致,則認為是注冊成功,無需再返回應答幀,保持在當前通信頻率等待采集器抄讀,不再響應廣播幀。
(5)采集器 5 s 內未收到電表上報幀,則重發(fā)廣播幀。
(6)當采集器判斷配置表內所有表均已上報或已抄到過數據,或者5 s 內無電表上報且注冊流程已超過20 s,則結束注冊流程,繼續(xù)抄表。
(7)如果采集器上一次注冊流程未完成所有電表注冊,因超時而結束,則等待其他抄表任務結束后繼續(xù)啟動注冊流程。
(8)電表長時間(暫定30 min)未收到采集器的廣播幀或對該電表的抄讀幀,則重新進入注冊狀態(tài),嘗試跳頻以確定對應采集器的通信頻率。
基于LoRa 的電表節(jié)點軟件設計流程如圖6所示。
在電表節(jié)點中,LoRa 模塊首先會通過RS232 串口與智能電表基表進行第一輪交互,以獲取基表的自身信息并進行自身信息的初始化和網絡初始化,然后請求加入由采集器節(jié)點構建的中繼多跳網絡。成功加入后,當電表接收到來自采集器發(fā)送的信息后,首先會使用校驗來檢查接收到的數據,如果確認無誤,就提取數據報文中相關系列報文并進行數據記錄,隨后將數據通過RS232 接口傳送給智能電表基表。 智能電表基表解析后,又通過 RS232 接口獲取返回的響應數據,隨后將數據通過中繼多跳組網協(xié)議打包發(fā)送到采集器節(jié)點,至此完成了一輪數據采集。
與電表節(jié)點相比,采集器節(jié)點功能更加復雜,因為其不僅需要與電表節(jié)點進行通信,還需要通過GPRS網絡將數據傳輸給服務器[15]。 采集器節(jié)點軟件設計流程如圖 7 所示。
圖6 電表節(jié)點軟件設計流程圖
在采集器節(jié)點中,LoRa 模塊首先會通過RS232串口與采集器基表進行第一輪的交互,以獲取采集器的表號等自身信息以及網絡參數,并進行自身的初始化,然后掃描信道,若信道沒有阻塞則建立本地通信網絡即中繼多跳網絡。 待組網成功后進入監(jiān)聽模式。
監(jiān)聽的內容分為服務器的消息和電表節(jié)點的入網請求,其處理如下:
圖7 采集器節(jié)點軟件設計流程圖
(1)當監(jiān)聽到服務器通過GPRS 網絡傳送過來的采集信息時,需要先對數據進行校驗。 若為正常數據, 則按照協(xié)議對服務器傳送的數據進行解析,通過數據內容判斷采集器節(jié)點應該采取的動作,是將采集器節(jié)點本身的信息上傳還是對電表節(jié)點的數據進行采集。 若為上傳本身數據的指令,則將數據記錄的同時通過RS232 串口向采集器基表傳送該指令,采集器基表對數據進行響應后,通過GPRS公網將數據傳送至服務器;若接收到的信息為抄讀電表節(jié)點的電力數據,則首先以中繼多跳協(xié)議所組成的LoRa 網絡進行索引,找到該電表,與該電表建立通信后,將數據包按照自定義的中繼多跳協(xié)議進行封裝和打包,并在對數據進行記錄后由中繼多跳網絡傳送給指定電表節(jié)點進行數據查詢。 完成操作后繼續(xù)監(jiān)聽。
(2)當監(jiān)聽到的消息為電表節(jié)點入網請求時,則讀取申請者的設備信息,并將其關聯(lián),允許其加入網絡并繼續(xù)監(jiān)聽。
為了驗證本文設計的智能電表通信方案比普通LoRa 網絡是否有顯著提升,本文根據實用場景,設計了兩種測試方式,分別是空曠環(huán)境和樓房環(huán)境下的通信測試,并與普通LoRa 模塊通信的智能電表進行對比,將采集的成功率作為衡量方案可行性的依據。
首先在服務器中對參與實驗的仿真環(huán)境中的采集器節(jié)點和電表節(jié)點進行建檔,然后讓服務器下發(fā)指令,使得采集器對智能電表的電量信息進行輪抄,重復采集3 次。 其在空曠環(huán)境下的結果對比如表2 所示,樓房環(huán)境下的結果對比如表3 所示。
表2 空曠環(huán)境下的對比
表3 樓房環(huán)境下的對比
通過采集器對各個電表節(jié)點的電力數據進行400 次重復采集,能夠完整采集電力數據即為采集成功,通過采集成功次數獲得采集成功率。
通過對比,發(fā)現本文設計的基于LoRa 的新型通信方案在智能電表通信中有更好的表現,使用中繼多跳網絡時,即使樓層較高或距離較遠,采集成功率仍能保持較高水平,并且隨著距離和樓層的增加,成功率降低的速度也較小。 因為當需要抄讀更遠距離的電表數據時,本文設計方案會通過中繼多跳的方式將較遠距離的電表數據先傳輸給近距離的電表,隨后進行上傳以保證數據采集的成功率。
隨著智能電網的日益成熟,對更智能化的電力數據采集系統(tǒng)的需求也更加迫切,本文設計了智能電表新型通信方案,并進行了相關實驗驗證,雖由于不可控原因存在較小誤差,但實驗結果還是較好地證明了該方案的可行性。