一種基于dma的電力線網絡系統及其通訊方法
【專利摘要】本發明涉及一種基于DMA的電力線網絡系統及其通訊方法。電力線網絡系統包括主節點和若干個子節點,所述的主節點與各個子節點之間通過電力線交互連接。所述的主節點通過RS232接口與上位機應用平臺終端交互連接。所述的若干個子節點分別通過RS485接口與現場應用設備交互連接。該系統是由一個主節點和若干個子節點通過電力線組成的PLC網絡,各個子節點通過RS485總線連接現場應用設備。本發明所述的電力線網絡系統及其通訊方法能夠解決現有技術中的不足,提高電力線網絡系統各節點收發數據的速度,保證PLC組網中數據報文傳輸的時效性,使PLC組網應用更加靈活、可靠。
【專利說明】-種基于DMA的電力線網絡系統及其通訊方法
【技術領域】
[0001] 本發明涉及電力線載波組網【技術領域】,具體涉及一種基于DMA的電力線網絡系統 及其通訊方法。
[0002]
【背景技術】
[0003] 隨著科技的進步,智能電網的建設正在日益深入全面的展開,而智能通信技術是 智能電網應用的關鍵。電力線載波通信方式因其以電力線網絡為傳輸介質,具有通道可靠 性高、抗破壞能力強、投資少等優點,在智能電網建設中起著不可替代的作用。隨著國家建 設堅強智能電網和電力物聯網概念的提出,現在的基于FSK和PSK以及S-FSK調制模式的 低速載波已無法滿足利用載波進行大規模組網和高速傳輸數據的要求。因此,基于0FDM 技術的高速電力線載波技術得到快速發展,OFDM電力線載波技術具有抗衰減能力強、頻 率利用率高、抗碼間干擾能力強等優勢,目前基于該技術制定的相關技術規范已實現高于 100kbps的數據傳輸速率。
[0004] 但是,隨著電力線載波速度的大幅提升,之前一些配合低速載波使用的技術缺點 也逐漸暴露出來,其主要問題有: 1、低速載波傳輸數據時,載波節點模塊收發數據一般采用串口中斷按字節方式,時效 不高、延時很大。由于數據在電力線上傳輸的速度也很低,數據收發的延時相對于數據在 電力線上傳輸的時間來說不是很明顯,同時之前的應用一般對數據傳輸速度要求都不是很 高,因此這種技術缺點對載波在應用中的使用影響不大。然而隨著電力線載波技術的發 展,載波傳輸數據的速度大幅提升,其應用場合也不斷擴大,相關應用對數據傳輸速度的要 求也越來越嚴。如果載波節點還是按照之前的方式收發數據,一幀數據在節點接收階段的 時間延時將會超過其在電力線上實際傳輸時間,嚴重阻礙了高速電力線載波技術的推廣使 用。
[0005] 2、載波節點模塊在接收應用層協議幀時,一般都是在收完一完整幀后再進行轉發 操作。這在應用層協議幀報文長度較短時對報文傳輸速度影響不大,但是當應用層協議報 文長度較長時,節點等全部接收后,由于電力線上對傳輸的載波幀長度限制,還需分段傳 輸,這種接收后再分段發送的特點使時效性本來就不高的載波通信速度更加緩慢。
[0006] 3、一般利用PLC網絡組網進行數據傳輸的應用中,應用協議比較固定單一,不夠 靈活。當組網中傳輸的應用協議發生改變時,網絡中各個節點需重新燒寫代碼來支持對新 應用協議的解析。
[0007]
【發明內容】
[0008] 本發明的目的在于提供一種基于DMA的電力線網絡系統及其通訊方法,該電力線 網絡系統及其通訊方法能夠解決現有技術中的不足,提高電力線網絡系統各節點收發數據 的速度,保證PLC組網中數據報文傳輸的時效性,使PLC組網應用更加靈活、可靠。
[0009] 為實現上述目的,本發明采用了以下技術方案:一種基于DMA的電力線網絡系統, 包括主節點和若干個子節點,所述的主節點與各個子節點之間通過電力線交互連接。所述 的主節點通過RS232接口與上位機應用平臺終端交互連接。所述的若干個子節點分別通過 RS485接口與現場應用設備交互連接。該系統是由一個主節點和若干個子節點通過電力線 組成的PLC網絡,各個子節點通過RS485總線連接現場應用設備。
[0010] 具體地說,所述的主節點包括第一微控制器、第一載波電路模塊、第一耦合電路模 塊、第一電源管理模塊、和第一收發狀態顯示模塊。所述的第一載波電路模塊通過第一微控 制器的第一 UART接口與第一微控制器交互連接。所述的第一耦合電路模塊與第一載波電 路模塊交互連接。所述的第一電源管理模塊的輸出端分別與第一微控制器的電源信號輸入 端、第一載波電路模塊的電源信號輸入端相連。所述的第一收發狀態指示模塊與第一微控 制器的輸出端相連。所述的第一微控制器的第二UART接口通過RS232接口與上位機應用 平臺終端交互連接。第一收發狀態指示模塊由一系列的發光二極管組成,發光二極管閃爍 表示對應的端口有數據正在傳輸。
[0011] 所述的子節點包括第二微控制器、第二載波電路模塊、第二耦合電路模塊、第二電 源管理模塊、和第二收發狀態顯示模塊。所述的第二載波電路模塊通過第二微控制器的第 一 UART接口與第二微控制器交互連接。所述的第二耦合電路模塊與第二載波電路模塊交 互連接。所述的第二電源管理模塊的輸出端分別與第二微控制器的電源信號輸入端、第二 載波電路模塊的電源信號輸入端相連。所述的第二收發狀態指示模塊與第二微控制器的輸 出端相連。所述的第二微控制器的第三UART接口通過RS485接口與現場應用設備交互連 接。第二收發狀態指示模塊由一系列的發光二極管組成,發光二極管閃爍表示對應的端口 有數據正在傳輸。
[0012] 進一步的,所述的主節點還包括第一看門狗模塊、第一無源晶振模塊、第一時鐘模 塊、第一液晶顯示模塊和第一按鍵輸入模塊。所述的第一看門狗模塊、第一無源晶振模塊以 及第一按鍵輸入模塊的輸出端分別與第一微控制器的輸入端相連。所述的第一時鐘模塊與 第一微控制器交互連接。所述的第一液晶顯示模塊的輸入端與第一微控制器的輸出端相 連。第一液晶顯示模塊和第一按鍵輸入模塊實現主節點運行時主要參數的顯示。
[0013] 所述的子節點還包括第二看門狗模塊、第二無源晶振模塊、第二時鐘模塊、第二液 晶顯示模塊和第二按鍵輸入模塊。所述的第二看門狗模塊、第二無源晶振模塊以及第二按 鍵輸入模塊的輸出端分別與第二微控制器的輸入端相連。所述的第二時鐘模塊與第二微控 制器交互連接。所述的第二液晶顯示模塊的輸入端與第二微控制器的輸出端相連。第二液 晶顯示模塊和第二按鍵輸入模塊實現子節點運行時主要參數的顯示。
[0014] 更進一步的,所述的第一微控制器和第二微控制器均采用STM32F107VC處理器。 所述的第一載波電路模塊和第二載波電路模塊均米用MAX2992載波芯片。
[0015] 本發明還涉及一種根據上述基于DMA的電力線網絡系統的通訊方法,該方法包括 以下步驟: (1)電力線網絡系統初始化,對主節點、子節點以及連接在子節點下的各個現場應用設 備的參數進行配置,并對DMA收發緩沖區的長度d、中斷觸發條件和數據報文分段限定長度 L進行設置。在系統初始化階段,需要配置的參數包括協議類型、主節點地址、子節點地址和 連接在子節點下各個現場應用設備的地址。
[0016] (2)采用DMA數據傳輸技術收發數據,并根據DMA收發緩沖區的中斷觸發條件,將 DMA緩存區中的數據讀取到固定的接收數據緩存區待處理。
[0017] 所述的DMA收發緩沖區的中斷觸發條件包括兩個,第一中斷觸發條件是:當接收 數據長度為DMA收發緩沖區長度d的一半時,觸發中斷。第二中斷觸發條件是:當接收數據 長度等于DMA收發緩沖區長度d時,觸發中斷。當滿足第一中斷觸發條件時,如是一幀報文 接收的開始,微控制器MCU先根據系統初始化配置文件中定義的協議類型,獲取報文中的 設備地址;再根據設備地址以及配置文件中的映射規則,獲取到對應目的子節點的地址。
[0018] (3)根據數據報文分段限定長度L和傳輸的數據報文長度L1間的大小關系,對DMA 收發緩沖區收發的數據進行判斷處理。
[0019] (4)根據判斷處理結果,對數據進行轉發。具體過程為: 若傳輸的數據報文長度L1大于數據報文分段限定長度L,則當DMA收發緩沖區的數據 長度累積達到分段限定長度L時,DMA收發緩沖區繼續接收剩下的數據。與此同時,微控制 器MCU將DMA收發緩沖區中接收到長度為L的數據打包成載波數據包,發送到對應的子節 點。
[0020] 若傳輸的數據報文長度L1小于等于數據報文分段限定長度L,則當一幀數據收發 接收后,將DMA收發緩沖區中的數據打包成載波數據包,發送到對應的子節點。
[0021] 進一步的,所述的DMA收發緩沖區長度d為20字節~30字節。
[0022] 與現有技術相比,本發明的有益效果為: 1、本發明在電力線網絡系統的各個節點中均采用基于DMA方式收發數據,通過有效設 置DMA緩存長度以及中斷觸發條件,在DMA緩存接收數據為0. 5個DMA緩存長度和1個DMA 緩存長度時分別觸發中斷讓微控制器MCU讀取數據。從而有效提高了電力線網絡系統各節 點收發數據的速度,保證了 PLC組網中數據報文傳輸的時效性。
[0023] 2、在電力線網絡系統主節點的接收轉發流程中,利用DMA接收數據無需MCU干涉 的特性,對長報文進行分段接收發送。這樣無需等待長報文全部接收完成后再組幀進行發 送,不僅可實現電力線網絡系統節點對長報文的同步收發,減少報文在節點中的處理時間, 還能提高報文在PLC網絡中的傳輸速度,有效擴展PLC組網的應用范圍。
[0024] 3、本發明采用配置參數方式,支持多協議在電力線網絡系統中的傳輸。網絡系統 中的主節點利用配置參數建立協議設備地址到所在子節點的映射關系。主節點接收到上位 機應用平臺發送的協議后,依據配置參數和映射關系,獲取協議報文接收設備對應的子節 點地址,無需解析報文,直接發送給該子節點。從而增加了 PLC組網應用的靈活性、可靠性, 同時也有效降低了應用系統的投資,具有明顯的經濟效益。
[0025]
【專利附圖】
【附圖說明】
[0026] 圖1是本發明中電力線網絡系統結構示意圖; 圖2是本發明中主節點的硬件結構示意圖; 圖3是本發明中子節點的硬件結構示意圖; 圖4是本發明中基于DMA的收發數據算法流程圖; 圖5是本發明中基于DMA的處理數據算法流程圖; 圖6是本發明中基于DMA的轉發數據算法流程圖; 圖7是本發明網絡系統多協議地址映射表。
[0027] 其中: 1、第一微控制器,2、第一無源晶振模塊,3、第一看門狗模塊,4、第一電源管理模塊,5、 第一時鐘模塊,6、第一液晶顯不模塊,7、第一按鍵輸入模塊,8、第一載波電路模塊,9、第一 耦合電路模塊,l〇、RS232接口,11、上位機應用平臺,12、第一收發狀態指示模塊,13、第二微 控制器,14、第二無源晶振模塊,15、第二看門狗模塊,16、第二電源管理模塊,17、第二時鐘 模塊,18、第二液晶顯示模塊,19、第二按鍵輸入模塊,20、第二載波電路模塊,21、第二耦合 電路模塊,22、RS485接口,23、現場應用設備,24、第二收發狀態指示模塊。
【具體實施方式】
[0028] 下面結合附圖對本發明做進一步說明: 如圖1-圖3所示的一種基于DMA的電力線網絡系統,包括主節點和若干個子節點,所 述的主節點與各個子節點之間通過電力線交互連接。所述的主節點通過RS232接口 10與 上位機應用平臺終端11交互連接。所述的若干個子節點分別通過RS485接口 22與現場應 用設備23交互連接。該系統是由一個主節點和若干個子節點通過電力線組成的PLC網絡, 各個子節點通過RS485總線22連接現場應用設備23。只要在RS485總線驅動能力范圍內, 每個子節點可以連接不同數量的現場應用設備,每個現場應用設備具有一個唯一的設備地 址。在該電力線網絡系統中,主節點和各個子節點都具有各自唯一的短地址,用于標識各自 的身份。各個子節點的短地址是主節點在網絡初始化時根據配置參數分配的。在該電力線 網絡系統的組建過程中,主節點根據配置參數來建立各個子節點下的設備地址與對應子節 點地址間的映射關系;與此同時,各個子節點也將分配到的網絡短地址設置到各自的載波 電路模塊中。當該電力線網絡系統組建成功后,上位機應用平臺可以通過配置參數設置的 協議類型發送對應的協議報文,實現和網絡中各個子節點下各設備的數據通信。
[0029] 具體地說,所述的主節點包括第一微控制器1、第一載波電路模塊8、第一稱合電 路模塊9、第一電源管理模塊4、和第一收發狀態顯不模塊6。所述的第一載波電路模塊8通 過第一微控制器1的第一 UART接口與第一微控制器1交互連接。所述的第一耦合電路模 塊9與第一載波電路模塊8交互連接。所述的第一電源管理模塊4的輸出端分別與第一微 控制器1的電源信號輸入端、第一載波電路模塊8的電源信號輸入端相連。所述的第一收 發狀態指示模塊12與第一微控制器1的輸出端相連。所述的第一微控制器1的第二UART 接口通過RS232接口 10與上位機應用平臺終端11交互連接。第一收發狀態指示模塊12 由一系列的發光二極管組成,發光二極管閃爍表示對應的端口有數據正在傳輸。
[0030] 所述的子節點包括第二微控制器13、第二載波電路模塊20、第二耦合電路模塊 21、第二電源管理模塊16、和第二收發狀態顯示模塊24。所述的第二載波電路模塊20通過 第二微控制器13的第一 UART接口與第二微控制器13交互連接。所述的第二耦合電路模 塊21與第二載波電路模塊20交互連接。所述的第二電源管理模塊16的輸出端分別與第 二微控制器13的電源信號輸入端、第二載波電路模塊20的電源信號輸入端相連。所述的 第二收發狀態指示模塊24與第二微控制器13的輸出端相連。所述的第二微控制器13的 第三UART接口通過RS485接口 22與現場應用設備23交互連接。第二收發狀態指示模塊 24由一系列的發光二極管組成,發光二極管閃爍表示對應的端口有數據正在傳輸。
[0031] 進一步的,所述的主節點還包括第一看門狗模塊3、第一無源晶振模塊2、第一時 鐘模塊5、第一液晶顯不模塊6和第一按鍵輸入模塊7。所述的第一看門狗模塊3、第一無源 晶振模塊2以及第一按鍵輸入模塊7的輸出端分別與第一微控制器1的輸入端相連。所述 的第一時鐘模塊5與第一微控制器1交互連接。所述的第一液晶顯示模塊6的輸入端與第 一微控制器1的輸出端相連。第一液晶顯不模塊6和第一按鍵輸入模塊7實現主節點運行 時主要參數的顯示。
[0032] 所述的子節點還包括第二看門狗模塊15、第二無源晶振模塊14、第二時鐘模塊 17、第二液晶顯示模塊18和第二按鍵輸入模塊19。所述的第二看門狗模塊15、第二無源晶 振模塊14以及第二按鍵輸入模塊19的輸出端分別與第二微控制器13的輸入端相連。所 述的第二時鐘模塊17與第二微控制器13交互連接。所述的第二液晶顯示模塊18的輸入 端與第二微控制器13的輸出端相連。第二液晶顯示模塊18和第二按鍵輸入模19塊實現 子節點運行時主要參數的顯示。
[0033] 更進一步的,所述的第一微控制器1和第二微控制器13均采用STM32F107VC處理 器。所述的第一載波電路模塊8和第二載波電路模塊20均采用MAX2992載波芯片。如圖2 和圖3所示,STM32F107VC的UART1接口與載波電路模塊交互連接,主節點的UART2接口通 過RS232接口與上位機應用平臺終端交互連接,子節點的UART3接口通過RS485接口與現 場應用設備交互連接。STM32F107VC的0SC_IN管腳接無源晶振模塊,5個GPI0管腳分別接 看門狗模塊、時鐘模塊、液晶顯示模塊、按鍵輸入模塊和收發狀態指示模塊。電源管理模塊 給STM32F107VC的輸出信號為3. 3V,給MAX2992載波芯片的輸出信號為3. 3V/12V。MAX2992 載波芯片通過STM32F107VC處理器的UART1接口與微控制器MCU通信。微控制器將應用協 議報文按其要求封裝成對應的載波報文,通過UART1接口發送到MAX2992,再由MAX2992將 接收到的報文通過其前端電路耦合到電力線上,實現載波數據的收發,或者接收到電力線 上的數據后通過UART1 口將數據發送給微控制器MCU。上位機平臺通過RS232接口將應用 協議報文發送到主節點,主節點通過STM32F107VC處理器的UART2接口以DMA方式接收協 議報文。對于子節點來說,子節點將通過STM32F107VC處理器的UART3接口接收到的協議 報文經RS485接口發送到各個現場應用設備。
[0034] 本發明還涉及一種根據上述基于DMA的電力線網絡系統的通訊方法,該方法包括 以下步驟: (1)電力線網絡系統初始化,對主節點、子節點以及連接在子節點下的各個現場應用設 備的參數進行配置,并對DMA收發緩沖區的長度d、中斷觸發條件和數據報文分段限定長度 L進行設置。在系統初始化階段,需要配置的參數包括協議類型、主節點地址、子節點地址和 連接在子節點下各個現場應用設備的地址。
[0035] (2)采用DMA數據傳輸技術收發數據,并根據DMA收發緩沖區的中斷觸發條件,將 DMA緩存區中的數據讀取到固定的接收數據緩存區待處理。
[0036] 所述的DMA收發緩沖區的中斷觸發條件包括兩個,第一中斷觸發條件是:當接收 數據長度為DMA收發緩沖區長度d的一半時,觸發中斷。第二中斷觸發條件是:當接收數據 長度等于DMA收發緩沖區長度d時,觸發中斷。當滿足第一中斷觸發條件時,如是一幀報文 接收的開始,微控制器MCU先根據系統初始化配置文件中定義的協議類型,獲取報文中的 設備地址;再根據設備地址以及配置文件中的映射規則,獲取到對應目的子節點的地址。
[0037] (3)根據數據報文分段限定長度L和傳輸的數據報文長度L1間的大小關系,對DMA 收發緩沖區收發的數據進行判斷處理。
[0038] (4)根據判斷處理結果,對數據進行轉發。具體過程為: 若傳輸的數據報文長度L1大于數據報文分段限定長度L,則當DMA收發緩沖區的數據 長度累積達到分段限定長度L時,DMA收發緩沖區繼續接收剩下的數據。與此同時,微控制 器MCU將DMA收發緩沖區中接收到長度為L的數據打包成載波數據包,發送到對應的子節 點。
[0039] 若傳輸的數據報文長度L1小于等于數據報文分段限定長度L,則當一幀數據收發 接收后,將DMA收發緩沖區中的數據打包成載波數據包,發送到對應的子節點。
[0040] 進一步的,所述的DMA收發緩沖區長度d為20字節~30字節。
[0041] 下面,結合圖4-圖7對數據的接收、處理、轉發過程以及多協議映射表進行詳細的 描述: 圖4為主節點采用DMA收發數據的算法過程。在開啟一次DMA緩沖區接收數據過程中 會有兩次觸發中斷,進入中斷函數后判斷中斷觸發類型。若是接收一半中斷或者接收滿中 斷,則將DMA緩存區中的數據讀取到固定的接收數據緩存區待處理。兩種中斷讀取數據時, 數據在DMA緩存區中的位置不同。當接收完數據后,置數幀結束計數器,啟動一幀接收結束 的判斷依據,最后清除相關中斷標志位并退出中斷。當接收數據DMA模塊出現錯誤時,中斷 函數根據觸發中斷的標志位是錯誤標志位,初始化相關參數后重新使能DMA中斷,保證DMA 接收數據的可靠性。
[0042] 圖5為數據接收后,判斷是否進行轉發的判斷處理過程。本發明采用微控制器MCU 的systick定時中斷作為接收數據幀結束的基礎。在圖3所述的流程圖中,每個DMA接收中 斷后,均將幀結束計數器初始化為一個固定值;且在每次進入systick定時中斷函數中時, 均對該計數器進行減1操作,當計數器值為〇時,則認定一幀接收結束。在圖3所示的接收 數據的過程中,因為每次接收數據完成后均對計數器進行重新置數,因此在DMA接收數據 過程中,計數器值不為0。同時,為了將接收的長幀報文分段同步接收發送,在接收過程中, 需要判斷接收數據總長度對分段發送限定長度的求余結果。若求余結果為〇,則表示接收的 數據長度已經符合分段發送的條件,并將數據轉發計數器加1。若求余結果不為0,表示接 收的數據長度還未達到限定的發送長度;則判斷一幀是否收發結束。如果一幀收發已經結 束,但接收的數據長度還沒有達到限定的發送長度,則將數據轉發計數器加1,并轉發實際 收到的數據。如果一幀收發未結束,則退出中斷進行下次判斷。
[0043] 圖6為將接收到的數據轉發到載波電路模塊的算法流程。根據圖4所示的算法流 程的處理結果,對接收的數據進行轉發操作。當轉發計數器值不為0時,說明數據接收區中 存在需要轉發的數據報文。首先,根據配置參數中的協議類型,獲取數據報文幀中設備地址 的位置,讀出設備地址。其次,根據映射表查出該設備地址所在的目的子節點地址,將該地 址和數據緩存區的數據報文進行載波幀組包,發送到載波電路模塊對應串口的DMA發送緩 沖區。再次,使能DMA發送中斷,通過載波電路模塊將數據報文發送出去。最后,發送完一 幀后,根據轉發計數器的值判斷數據是否已經轉發完,沒有則繼按照前面流程進行轉發。
[0044] 圖7給出了本發明中多協議的映射表。在系統組網初始階段需通過配置參數配置 該表,協議類型包含常用的Modbus,DLT645,101等規約。由于不同規約對應的設備地址長 度不同,且該地址在不同協議中的位置也不同。因此,主節點在進行組網轉發數據前必須通 過協議類型得知其轉發的是哪種協議報文,并依據不同的協議類型先從數據接收緩沖區中 對應協議報文的幀格式讀出設備地址,再根據映射表查找出對應的目的子節點地址。下面 介紹幾種常見協議的協議類型及設備地址: Modbus協議:協議類型為01,協議設備地址為一個字節,子節點地址為0x0001,該子節 點下面對應的設備地址為0x02,0x03。子節點地址為0x0002,該子節點下面對應的設備地 址為0x04,0x05,0x06等,其他子節點配置類似。
[0045] DLT645協議:協議類型為02,協議設備地址為6個字節,子節點地址為0x001,該 子節點下面對應的設備地址為0x000000000002,0x000000000003。子節點地址為0x0002, 該子節點下面對應的設備地址為0x000000000004,0x000000000005,0x000000000006等, 其他子節點配置類似。
[0046] 101協議:協議類型為03,協議設備地址為1個字節,子節點地址為0x001,該子節 點下面對應的設備地址為0x02,0x03。子節點地址為0x0002,該子節點下面對應的設備地 址為0x04,0x05,0x06等,其他子節點配置類似。
[0047] 當主節點判斷協議類型是02,主節點知道應用平臺發來的數據幀都為645報文 幀,在轉發數據的過程中,依據該協議報文幀格式,讀出設備地址。比如0x000000000005,查 表得知該地址對應的網絡子節點地址為0x0002。無需解析具體報文,直接根據獲得的子節 點地址將該報文組裝成都應的載波報文,通過載波模塊發送到PLC網絡中對應的子節點。 子節點通過其載波模塊收到主節點發給自己的協議報文,將載波報文幀中的數據直接發送 到連接設備RS485總線的串口,實現上位機應用平臺和PLC組網中各個子節點下的不同設 備的數據通信。
[0048] 在本發明所述的基于DMA的電力線網絡系統中,主節點和子節點均采用DMA接收 和發送對應的報文幀。本發明所述的基于DMA的電力線網絡系統的通訊方法具有以下特 占 · (1)將DMA數據緩沖區的長度d設置成較短的長度(一般設為2(Γ30字節,優選為24字 節);并設置第一中斷觸發條件和第二中斷觸發條件。所述的第一中斷觸發條件為:DMA數 據緩沖區接收的數據長度等于〇.5d。所述的第二中斷觸發條件為:DMA數據緩沖區接收的 數據長度等于d。通過設置兩個中斷觸發條件,在DMA數據緩沖區接收數據期間,微控制器 MCU有兩次機會對接收的數據進行處理。
[0049] 微控制器MCU對接收的數據進行處理的過程為: 當滿足第一中斷觸發條件時,如是接收協議數據報文的開始,則根據系統配置文件中 定義的協議類型獲取報文中的設備地址;然后根據獲取的設備地址和配置文件中的映射規 貝1J,獲取對應目的子節點的地址。
[0050] 當傳輸的數據報文長度大于分段限定長度L時,利用DMA接收數據無需MCU干涉 的特點,在緩沖區接收的數據累積達到分段限定長度L個字節時,DMA繼續接收數據,與此 同時,MCU將已收到的數據打包成載波數據包,發送到對應的子節點。從而實現長報文接收 一段就發送一段,而無需等長報文全部接收完后再發送。
[0051] 當傳輸的數據報文長度小于分段限定長度L時,等幀結束判斷有效時,直接將該 數據打包成載波數據包,發送到對應的子節點,無需截斷發送。
[0052] (2)本發明采用的配置參數方式來將多協議快速映射到對應的子節點。在電力線 組網過程中,PLC網絡中的主節點和子節點的地址是唯一的,主節點通過子節點的地址來進 行數據的一一對應收發的。連接在子節點下的各個設備的地址也是唯一的,并且體現在交 互的通信協議報文中。
[0053] 在網絡系統的初始化配置階段,配置參數包括協議類型、主節點地址、子節點地 址、子節點下對應的所有設備地址等。上位機應用平臺通過微控制器MCU的維護端口將配 置參數發送給主節點,主節點根據參數建立各個子節點地址和其下接設備地址之間的映射 關系,在系統組網階段將對應的子節點地址分配給各個子節點。組網成功后,上位機應用 平臺可以根據配置的協議和各個子節點下的設備進行數據通信。主節點收到通信報文后, 首先,根據配置參數判斷出協議類型;其次,根據每個協議報文幀中設備地址位置固定的特 點,讀取出設備地址;再次,根據之前建立的映射關系,快速查找出該報文要發往的目的子 節點地址;再次,根據地址和協議報文幀組建成載波數據報文幀,通過串口模塊發送給載波 模塊,由載波模塊和耦合電路模塊耦合到電力線上,發送到協議目的設備所在的子節點。
[0054] 以上所述的實施例僅僅是對本發明的優選實施方式進行描述,并非對本發明的范 圍進行限定,在不脫離本發明設計精神的前提下,本領域普通技術人員對本發明的技術方 案作出的各種變形和改進,均應落入本發明權利要求書確定的保護范圍內。
【權利要求】
1. 一種基于DMA的電力線網絡系統,其特征在于:包括主節點和若干個子節點,所述 的主節點與各個子節點之間通過電力線交互連接;所述的主節點通過RS232接口與上位機 應用平臺終端交互連接;所述的若干個子節點分別通過RS485接口與現場應用設備交互連 接; 所述的主節點包括第一微控制器(1)、第一載波電路模塊(8)、第一耦合電路模塊(9)、 第一電源管理模塊(4)、和第一收發狀態顯不模塊(12);所述的第一載波電路模塊(8)通過 第一微控制器(1)的第一 UART接口與第一微控制器(1)交互連接;所述的第一耦合電路模 塊(9 )與第一載波電路模塊(8 )交互連接;所述的第一電源管理模塊(4)的輸出端分別與第 一微控制器(1)的電源信號輸入端、第一載波電路模塊(8)的電源信號輸入端相連;所述的 第一收發狀態指示模塊(12)與第一微控制器(1)的輸出端相連;所述的第一微控制器(1) 的第二UART接口通過RS232接口(10)與上位機應用平臺終端(11)交互連接; 所述的子節點包括第二微控制器(13)、第二載波電路模塊(20)、第二耦合電路模塊 (21 )、第二電源管理模塊(16 )、和第二收發狀態顯示模塊(24 );所述的第二載波電路模塊 (20)通過第二微控制器(13)的第一 UART接口與第二微控制器(13)交互連接;所述的第二 耦合電路模塊(21)與第二載波電路模塊(20)交互連接;所述的第二電源管理模塊(16)的 輸出端分別與第二微控制器(13)的電源信號輸入端、第二載波電路模塊(20)的電源信號 輸入端相連;所述的第二收發狀態指示模塊(24)與第二微控制器(13)的輸出端相連;所述 的第二微控制器(13)的第三UART接口通過RS485接口( 22)與現場應用設備(23)交互連 接。
2. 根據權利要求1所述的一種基于DMA的電力線網絡系統,其特征在于:所述的主節 點還包括第一看門狗模塊(3 )、第一無源晶振模塊(2 )、第一時鐘模塊(5 )、第一液晶顯不模 塊(6)和第一按鍵輸入模塊(7);所述的第一看門狗模塊(3)、第一無源晶振模塊(2)以及第 一按鍵輸入模塊(7)的輸出端分別與第一微控制器(1)的輸入端相連;所述的第一時鐘模 塊(5)與第一微控制器(1)交互連接;所述的第一液晶顯不模塊(6)的輸入端與第一微控制 器(1)的輸出端相連; 所述的子節點還包括第二看門狗模塊(15)、第二無源晶振模塊(14)、第二時鐘模塊 (17)、第二液晶顯示模塊(18)和第二按鍵輸入模塊(19);所述的第二看門狗模塊(15)、第 二無源晶振模塊(14)以及第二按鍵輸入模塊(19)的輸出端分別與第二微控制器(13)的輸 入端相連;所述的第二時鐘模塊(17)與第二微控制器(13)交互連接;所述的第二液晶顯示 模塊(18)的輸入端與第二微控制器(13)的輸出端相連。
3. 根據權利要求1所述的一種基于DMA的電力線網絡系統,其特征在于:所述的第一 微控制器(1)和第二微控制器(13)均采用STM32F107VC處理器; 所述的第一載波電路模塊(8)和第二載波電路模塊(20)均采用MAX2992載波芯片。
4. 根據權利要求1~3任意一項所述的一種基于DMA的電力線網絡系統的通訊方法,其 特征在于:該方法包括以下步驟: (1)電力線網絡系統初始化,對主節點、子節點以及連接在子節點下的各個現場應用設 備的參數進行配置,并對DMA收發緩沖區的長度d、中斷觸發條件和數據報文分段限定長度 L進行設置; 在系統初始化階段,需要配置的參數包括協議類型、主節點地址、子節點地址和連接在 子節點下各個現場應用設備的地址; (2) 采用DMA數據傳輸技術收發數據,并根據DMA收發緩沖區的中斷觸發條件,將DMA 緩存區中的數據讀取到固定的接收數據緩存區待處理; 所述的DMA收發緩沖區的中斷觸發條件包括兩個,第一中斷觸發條件是:當接收數據 長度為DMA收發緩沖區長度d的一半時,觸發中斷;第二中斷觸發條件是:當接收數據長度 等于DMA收發緩沖區長度d時,觸發中斷; 當滿足第一中斷觸發條件時,如是一幀報文接收的開始,微控制器MCU先根據系統初 始化配置文件中定義的協議類型,獲取報文中的設備地址;再根據設備地址以及配置文件 中的映射規則,獲取到對應目的子節點的地址; (3) 根據數據報文分段限定長度L和傳輸的數據報文長度L1間的大小關系,對DMA收 發緩沖區收發的數據進行判斷處理; (4) 根據判斷處理結果,對數據進行轉發,具體過程為: 若傳輸的數據報文長度L1大于數據報文分段限定長度L,則當DMA收發緩沖區的數據 長度累積達到分段限定長度L時,DMA收發緩沖區繼續接收剩下的數據;與此同時,微控制 器MCU將DMA收發緩沖區中接收到長度為L的數據打包成載波數據包,發送到對應的子節 占 . 若傳輸的數據報文長度L1小于等于數據報文分段限定長度L,則當一幀數據收發接收 后,將DMA收發緩沖區中的數據打包成載波數據包,發送到對應的子節點。
5.根據權利要求4所述的一種基于DMA的電力線網絡系統的通訊方法,其特征在于: 所述的DMA收發緩沖區長度d為20字節~30字節。
【文檔編號】H04B3/54GK104104412SQ201410361914
【公開日】2014年10月15日 申請日期:2014年7月28日 優先權日:2014年7月28日
【發明者】曹軍, 李林, 汪麗麗, 沈艷, 郭晉楠, 陶維青 申請人:安徽科大智能電網技術有限公司