基于電力載波通訊的自組網路燈遠程監控
2.2 端到端數據傳輸階段
本文引用地址:http://cqxgywz.com/article/247465.htm網絡初始化完成后,路由已經建立,便進入端到端數據傳輸階段。此階段PC 可以點名方式把控制命令發送給單燈控制器,后者也可把報警信息上報給PC。載波集中器與載波終端 之間進行的是無確認的傳輸,控制命令的確認由PC層面完成。
在理論上載波路燈監控系統中,PC每發送一條Command給單燈控制器,后者返回一條Response給PC,Response 中會帶回控制與查詢結果。Command 與Response 各有 3 次重傳機會(可更改),即在規定時間內未接收到返回命令即重發該命令。 控制命令包根據應用不同其數據長度不同,而載波是采用固定長度的突發數據幀方式,必然存在一條控制命令包被分成多個載波數據幀的情況(稱為多個分包),在自組網協議中,對每個分包會進行編號,并進行無確認的傳輸,如果有分包丟失或誤碼,則所有分包全部丟棄,由PC繼續對數據包重傳。 單燈控制器的主動報警也屬于數據傳輸。當在控制過程中有節點報警,或者多個節點同時報警,信道上必然出現載波沖突,此時通過載波偵聽-沖突退避(CSMA / CA)機制進行避讓,實現各個節點按序上報,自組網協議采用CSMA 算法,采用標準的二進制指數退避。
由于路燈遠程控制系統傳輸信號較為簡單,可采用單包形式(如圖3所示)。下面給出單包情況下PC與單燈控制器之間的數據傳輸過程,假設應用層協議設計為PC每下發一條 command message,單燈控制器即返回一條 response message。

3 系統軟件設計
3.1 軟件系統框架設計
本系統由上位機軟件系統、集中控制系統與節點控制系統(包括載波終端和單燈控制)構成,其中以上位機軟件系統為核心。多個節點控制器通過電力線與上位機系統進行數據間交互傳輸。發送的每個數據均為十六進制代碼,每次發送與接收都需要軟件自行分析與編譯。在每條語句的最后,都要加上兩個8位CRC校驗碼,將低位放在前面,高位放在后面。CRC校驗碼的計算由Modbus的定義編寫C子函數和VB子函數,每次需要進行CRC校驗或計算的時候,直接調用子函數,非常方便。每次發送數據前都要重新進行CRC校驗,以保證每次數據的正確性。各個分機都會接收來自電力線上所有的載波信號,但只會處理跟自己域名相同的命令。載波集中器會接收電力線上所有的載波信號,經過CRC校驗后,直接發送給上位機軟件系統,由上位機對各個節點控制器的狀態信息進行綜合分析,處理和顯示等工作。工作原理如圖4所示。

3.2 上位機設計
集中控制器的上位機軟件既要完成網絡初始化配置,以樹狀圖顯示網絡拓撲結構和人工修改路由配置或添加新節點的功能,同時可發送命令控制節點,并接受節點反饋信息做出相應的響應。
上位機主界面分成上下兩個功能區(如圖5所示),上部分為操作區,包括串口配置(COM Config),網絡初始化(Networking Initializing),數據傳輸壓力測試(Polling Test),人工添加節點(Add Node),報警及關控制(Alarm,All Light)。下部分為顯示區,包括主顯示區,串口發送與接收數據顯示,網絡拓撲圖顯示(Network Topology),自定義控制命令區。
linux操作系統文章專題:linux操作系統詳解(linux不再難懂)通信相關文章:通信原理












評論