999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于DMA 與中斷方式的組態監控系統容錯通信技術

2021-08-31 00:46:34孫萬峰李維波李齊鄒振杰盧月
中國艦船研究 2021年4期

孫萬峰,李維波*,2,李齊,鄒振杰,盧月

1 武漢理工大學 自動化學院,湖北 武漢 430070

2 西藏大學 供氧研究院,西藏 拉薩 850012

0 引 言

艦船并網控制裝置中的監控系統通常由艦船底層控制器、主控制器和組態模塊等組成[1-3]。由于艦船并網控制系統中的監控模塊需要監控數量龐大的底層電氣設備(如發電機、逆變器和斬波器等)的健康狀態量,因此,主控制器需要處理龐雜的數據量并上傳給組態模塊, 并將組態模塊處理后的結果下達給主控制器。為適應這些情況,對艦船并網控制系統中監控模塊的串口通信有了更高的技術要求。并且由于龐雜的交互數據實時變化,極易造成數據長度超過緩沖器閾值,致使控制器無法正常通信,進而產生數據丟失,造成艦船并網控制系統中監控模塊不能實時讀取底層電氣設備的健康狀態、下達來自主控制器的控制指令和回傳指令給主控制器。因此,實現數據的變長收發,對于艦船并網控制系統中監控模塊的串口通信就顯得尤為重要。

目前串口通信技術有許多種[4-6],如查詢法、中斷法和直接存儲器訪問法(DMA)等,如何解決大容量的變字節長度的數據通信仍然是串口通信技術領域中的一個難點問題。傳統的串口通信方法對于查詢法而言,利用代碼來識別相關寄存器標志位的狀態,再依據該狀態執行對應操作,該方法適用于循環數據收發,且耗費大量CPU 資源,極大降低了CPU 性能。基于中斷法的串口通信,是外設發送數據后產生中斷,通知CPU 讀取數據。對比研究中斷法和查詢法得知,中斷法效率更高,不過中斷法需要進行保存斷點和恢復斷點的操作,如果發送數據所需的時間比保存斷點和恢復斷點總共花費的時間少,那么通信過程中可能會出現數據丟失的問題。所以中斷法應用于多字節數據收發通信有其局限性,中斷法一般用在數據定長的收發場合。借助DMA 法的串口通信,在不需要CPU 的干預下,利用DMA 控制器和外圍設備之間構成數據傳輸通道,并且數據可以借助DMA 控制器寫入指定存儲器中。在數據傳輸完成后,通知CPU 撤銷該數據傳輸通道。理論研究與運行實踐表明,如果單獨使用DMA 法,并不能解決數據實時變長收發的技術難題。

針對艦船并網控制系統中監控模塊的大容量、變字節長度的數據實時通信技術難題,本文將提出一種基于DMA 和中斷兩種方式結合使用的串口通信方法,采用DMA 發送中斷和串口接收中斷進行數據變長收發,實現艦船并網控制系統中監控模塊的龐雜數據實時交互的功能,最終實現底層控制器與上位機之間健康、可靠、實時的串口通信。

1 系統構成

艦船并網控制裝置中的監控系統,簡稱為組態監控系統。圖1 為組態監控系統的整體架構,組態監控系統由組態監控界面、主控制器和底層控制器3 大關鍵部件組成。組態監控界面的功能是實時顯示艦船狀態量以及當前風險等級。通過監視組態監控界面,以確保底層控制器的正常運行。其中底層控制器包括電站控制器、逆變控制器以及斬波器等。本文以電站控制器為例,組態監控界面顯示變量主要為發電機電壓、頻率、功率和逆變器電壓、頻率、功率以及該系統電壓風險指標、頻率風險指標和功率風險指標等。為適應艦船組態監控系統的底層控制器存在種類多、數量多、通信模式復雜的特點,艦船并網控制裝置中的監控系統通過CAN 總線將底層控制器數據量轉換為信息流傳送給主控制器。

圖1 艦船并網控制裝置中的監控系統的通信網絡架構圖Fig. 1 Communication network architecture of monitoring system in ship grid-connected control device

在艦船并網控制裝置的監控系統中,主控制器不僅要處理來自底層控制器的數據,還要將處理后的數據上傳給上位機。為確保數據采集的實時性以及數據傳輸的可靠性,采用DMA 與中斷控制方式來協調CPU 工作,減少了CPU 工作量,使得交互數據的速度和精度得到提高。本文主要從主控制器和艦船監控系統之間通信握手流程和DMA 控制器傳輸數據兩個方面進行分析。

2 艦船監控系統串行通信設計

組態監控軟件可用于復雜的圖形界面和支持多種接口,因此被廣泛用作監控系統。組態軟件與單片機的通信方式有以下3 種[7]:

1) 通過動態數據交換(DDE)進行通信。該通信方式對普通開發者不夠友好,開發難度大,且數據開銷多,導致組態通信系統不能實時通信,會降低通信系統的可靠性。

2) 組態軟件自帶驅動程序包,開發人員根據項目需求來開發驅動程序。該方法對開發人員的技術要求更高,需要透徹了解驅動模塊,才能編寫驅動程序,因而會拉長開發周期并增加研發成本。

3) 組態提供的單片機(如ARM,MCS51,FPGA等)借助通信協議進行通信。該方法相較方式1 和方式2 難度低,便于操作,通信實時性滿足工程的實際需求,適用普通開發者。

2.1 數據幀協議設計

本文采用基于ARM 微控制器的通用通信協議進行容錯通信的方法。組態模塊的單片機通用協議常用的為2 種,分別為HEX 型協議和ASCII型協議。它們均可直接由串口和單片機通信。ASCII 型通信協議比HEX 型協議的設計更簡單,開發者編程更方便,所以本艦船并網控制裝置中的監控系統采用ASCII 型通信協議進行數據交互。常用的通信方式有RS232,RS422 和RS485,其中,RS485 總線在網絡連接上簡單,且傳輸距離遠,抗干擾能力強,所以選擇RS485 通信方式用于主控制器與上位機的通信。

主控制器與上位機的通信握手本質上是雙方按照約定的通信協議進行通信。約定的通信協議即本文的數據幀協議,并且數據幀中特定位置的數據具有特定的意義。本文傳輸數據最小單元為一幀數據,且每幀數據長度實時變化。

為構建艦船并網控制裝置中的監控系統,其主控制器的數據幀協議包括組態發送數據幀的定義(數據幀各個參數)和主控制器根據組態發送讀寫命令做出的不同應答等內容。如:組態發送(寫命令)格式、控制器應答(寫命令正確)格式、控制器應答(寫命令錯誤)格式、組態發送(讀命令)格式、主控制器應答(讀命令正確)格式以及主控制器應答(讀命令錯誤)格式的構建。

2.2 數據通信握手流程設計

根據組態與主控制器的讀寫協議,可以設計出相應的握手流程。由于組態發送寫命令流程與發送讀命令數據幀的長度不同,因此主控制器響應的數據幀也不同。它們之間的握手流程如圖2所示,圖2 數據幀中的STX(start of text)表示數據文本起始,DLE(disseminated link entity)表示數據鏈路實體。

圖2 組態與主控制器之間的握手流程圖Fig. 2 Flowchart of handshake between configuration and main controller

組態與主控制器之間的握手流程為:首先,當組態處于發送寫命令工作模式下,主控制器會根據寫命令下的數據幀長度判斷主控制器所處的工作模式,應答“寫”命令或者“讀”命令;其次,校驗組態發送的一幀數據中的字頭和CR 位,若校驗成功,則主控制器響應輸出“寫”成功,表示兩者間握手成功;同理,當組態處于“讀”命令工作模式下,主控制器校驗“讀”命令的數據幀,若校驗成功,則表示“讀”命令成功,否則“讀”命令失敗。

3 DMA 與中斷通信技術

艦船并網控制裝置中的監控系統通信技術有2 個重點問題:一是組態監控界面和主控制器通信通道雙方如何實現可靠握手;二是在實現可靠握手后,如何實現數據流在傳輸過程中實時變長度發送和接收。本節從DMA 控制器的結構、基于DMA 與中斷的通信流程以及DMA 與中斷的通信時序幾個部分,闡述數據流變長傳輸的基本方法與處理技術。

3.1 DMA 與串口的橋接原理

本文主控制器是以STM32F417 芯片為CPU且有多路外設的電路板卡。DMA 控制器在主控制器中所處的位置,如圖3 所示。

圖3 DMA 在主控制器中的位置示意圖Fig. 3 Schematic diagram of DMA position in the main controller

STM32F417 芯片是一個典型的基于AHB(advanced high performance bus)總線協議架構的片上系統芯片[8]。其中,AHB 總線通常搭載高性能設備,如CPU,DMA,USB 等,而APB (advanced peripheral bus)總線通常掛載低速設備,如串口USART,CAN和普通GPIO等。DMA與串口USART間的橋接物理通道是基于AHB 總線和APB 總線協議進行聯接。首先,CPU 通過在軟件上對DMA內部寄存器進行配置,使得DMA 控制器完成初始化;其次,DMA 通過AHB MASTER 接口基于AHB 總線信道鏈接到AHB/APB1 橋接轉換器,最后AHB/APB1 橋接轉換器通過APB 總線信道鏈接到串口USART 上,從而創建DMA 與串口數據交互的橋接信道。

3.2 基于中斷模式的DMA 通信流程分析

基于中斷模式的DMA 通信工作流程如圖4所示。DMA 通信流程為:首先,源端存儲設備向DMA 控制器(DMAC)發出任務請求,由于主控制器從底層控制器采集的數據,直接通過數據緩沖器存儲于主控制器內部集成的存儲器中,不需要通過硬件握手模塊。在預處理過程中,DMA 控制器利用內部邏輯來解讀CPU 傳輸過來的信息。并且CPU 根據它當前所處工作狀態來確認是否釋放AHB 總線權限。其次數據傳輸過程為從源端設備讀取或者向目的設備寫入。讀操作階段時必須先保證源端設備已經準備好數據,讀取數據大小由CPU 配置、數據總線寬度、地址總線寬度等因素決定。最后,當DMA 控制器內部計數器計數到達設定值,則完成DMA 數據傳輸過程,退出中斷程序,DMA 釋放AHB 總線控制權限,等待下一次數據傳輸預處理。

圖4 基于中斷的DMA 控制器工作流程圖Fig. 4 Working process of DMA controller based on interrupt

3.3 基于中斷的DMA 通信時序分析

基于中斷的DMA 控制器的通信時序圖如圖5所示。

圖5 基于中斷的DMA 控制器的通信時序圖Fig. 5 Communication sequence diagram of DMA controller based on interrupt

中斷的DMA 控制通信時序為:

1) 復位后,主控器處于空閑模式,等待DMA請求指令。當主控制器得到DMA 請求指令后,初始化DMA 控制器內部的讀寫通道,并選取合適的數據通道,等待控制AHB 總線指令,若總線被占用,則需繼續等待總線指令。在得到總線控制指令后,數據開始傳輸。

2)根據STM32F417 芯片的內部結構,本文組態監控系統主控制器擁有2 個DMA 控制器。每個DMA 控制器具有8 個數據流,每個數據流均可用作數據搬運,此外每個數據流通常含有8 個通道。DMA 控制器可以處理存儲設備訪問請求信號,并且能處理DMA 請求通道間優先級的選取。

3) DMA 在初始化配置過程中,將對相關重要的寄存器進行配置。比如DMA_NDTR,USART_IDLE,USART_DR,USART_SR 寄 存 器。DMA_NDTR 寄存器在每發送一幀數據后會重新刷新發送數據的長度,從而實時刷新發送數據幀的長度。具體通過USART_DR 寄存器完成變長字節數據收發,當向該寄存器寫數據時串口將發送數據;當向該寄存器讀數據時該寄存器將存儲接收數據。USART_SR 寄存器為串口狀態寄存器,通過對USART_SR 寄存器([31:0])中的bit5 和bit6置位來判斷數據是被接收還是數據已發送完成。其 中USART_SR bit5 為RXEN,bit6 為TC。bit5置1 表示串口狀態為接收,bit6 置1 表示串口數據已發送完成。USART_IDLE 寄存器為串口空閑狀態寄存器,通過操作USART_IDLE 寄存器來檢測總線空閑狀態。

4) 本文主控制器主要執行串口接收中斷和串口發送DMA 中斷2 種中斷程序模塊。其中,主控制器中斷程序的配置包括搶占優先級配置和響應優先級配置。

表1 為DMA 控制器時序的中斷優先級。

表1 DMA 控制器時序的中斷優先級Table 1 Interrupt priority of DMA controller timing

4 工程樣機測試及結果

4.1 通信軟件設計

本文采用STM32F417 的TIM4 定時器作為主控制器的主循環時鐘,時鐘周期設置為5 ms。串口1 用于組態寫命令給主控制器,串口2 用于組態讀命令。程序設計內容包括:主循環流程、串口應答流程(包括串口1 和串口2)、中斷流程(包括DMA 發送中斷流程和串口接收中斷響應流程),如圖6~圖8 所示。

圖6 中,主循環流程內容為初始化相關標志位、數據區以及串口1、串口2 接收數據并按照既定算法處理數據。分析主循環流程,串口1 和串口2 之間存在響應沖突和應答沖突的矛盾,所以本文設定串口1 中斷優先級高于串口2。將串口1 搶占優先級和響應優先級均設置為1,串口2 搶占優先級和響應優先級均設置為2。圖7 表示串口應答流程,它包括串口1 應答流程(圖7(a))和串口2 應答流程(圖7(b))。圖7(a)中,串口1 應答流程內容為組態向主控制器寫命令,對底層控制器的電壓、電流、功率和溫度等模擬量進行賦值,并計算風險指標。圖7(b)中,串口2 應答流程內容為主控制器讀命令,上傳風險指標給組態界面。

圖6 主循環流程圖Fig. 6 Main cycle flowchart

圖7 串口應答流程圖Fig. 7 Serial response flowchart

圖8 為中斷流程圖,包括DMA 發送中斷流程(圖8(a))和串口接收中斷響應流程(圖8(b))。圖8(a)中,DMA 發送中斷流程內容為對DMA 控制器和DMA 發送中斷進行初始化,并根據是否存在DMA 發送中斷請求標志來判斷數據幀發送情況。圖8(b)中,串口接收中斷響應流程為初始化串口及串口中斷配置,根據串口接收中斷請求標志來查閱數據幀的接收情況。

圖8 中斷流程圖Fig. 8 Interrupt flowchart

4.2 現場測試結果

串口通信接口的硬件拓撲如圖9 所示。它由主控制器、收發器ADM2587、組態接口組成。圖9中的隔離模塊ADM2587 采用ADI 公司的iCouple技術,集成了三態差分線路驅動器、差分輸入接收器和DC/DC 轉換器,實現了內部信號集成與電源隔離[9-10],同時減少了外部共模信號對數據傳輸的干擾。該串口電路可為軟件程序編程以及數據的傳輸提供硬件支持。

圖9 串口通信接口的硬件拓撲圖Fig. 9 Hardware topology of serial communication interface

以艦船并網控制裝置中的監控系統供電部分的可視化通信設計為例,驗證基于DMA 與中斷融合技術在串口數據變長收發方面的有效性?,F場聯調測試裝置包括主控制器(圖10)、艦船并網控制裝置中的監控系統的前電站顯控模塊和后電站顯控模塊(圖11)等。其中,組態界面由1#機組參數欄(又稱主窗口)、2#機組參數欄、3#機組參數欄、4#機組參數欄、1#柴發參數欄、2#柴發參數欄以及報警記錄欄7 個窗口組成[11]。

圖10 主控制器實物圖Fig. 10 Photograph of main controller

圖11 艦船并網控制裝置中的監控系統聯調實物圖Fig. 11 Photograph of joint commissioning of monitoring system in ship grid connected control device

在初始化串口時,合理配置波特率對艦船監控系統中的主控制器和組態通信十分重要。主控制器與組態間握手成功的關鍵因素之一是雙方的波特率一致,并且波特率的大小影響通信數據的可靠性。若兩者的波特率過大,則會造成通信握手異常;若兩者設定的波特率過低,則會造成通信握手成功率低。在實驗調試過程中,設定兩者波特率為9 600 bit/s 時,能夠較快實現兩者之間通信握手。

為驗證變長傳輸及容錯性能,在串口硬件裝置上分別下載基于DMA 與中斷方式的串口通信程序和傳統定長收發測試程序,通過串口1 發送不同數據幀長度的數據包5 000 次,測試在2 種不同的通信方式下接收數據包的次數和未接收數據包的丟包率。具體測試結果如表2 所示。從表中可以看出,本文提出的DMA 與中斷方式的通信技術與傳統定長收發串口通信相比,具有較高的容錯度,并增加了數據傳輸容量。

表2 兩種通信方式測試結果Table 2 Results of two communication methods

組態界面窗口及其測試結果如圖12 所示。該裝置從2017 年至今一直能夠在某艦船現場健康、可靠運行,充分檢驗了基于DMA 與中斷融合技術在串口數據變長收發方面的有效性。

圖12 組態界面窗口及其測試結果Fig. 12 Configuration interface window and its test results

5 結 語

針對傳統通信方法不能解決數據變長收發的難題,本文提出了DMA 與中斷融合通信技術。構建由組態與以STM32F417 為核心的主控制器串行通信系統,由通信協議來設計通信握手和通過DMA 控制器來設計數據變字節長度傳輸。實現了艦船監控系統的數據交互功能,并提高了串行通信數據傳輸容量和數據的容錯度,具有一定的應用價值。但是組態與以STM32F417 為主控制器間數據長度閾值有限,因此還需做進一步的研究。

主站蜘蛛池模板: 免费在线看黄网址| 99精品热视频这里只有精品7| 国产在线98福利播放视频免费| 韩国自拍偷自拍亚洲精品| 丁香五月婷婷激情基地| 久久99国产乱子伦精品免| 九九久久99精品| 国产chinese男男gay视频网| 黄色一级视频欧美| 18黑白丝水手服自慰喷水网站| 亚洲日本中文字幕乱码中文| 日韩在线第三页| 色婷婷在线播放| 在线国产资源| 91在线视频福利| 国内丰满少妇猛烈精品播| 色婷婷丁香| 广东一级毛片| 久久频这里精品99香蕉久网址| 在线永久免费观看的毛片| 日韩国产亚洲一区二区在线观看| 亚洲视频二| 无码'专区第一页| 国产精品人人做人人爽人人添| 亚洲三级片在线看| 国产日韩AV高潮在线| 亚洲AV无码久久精品色欲| 久久精品这里只有国产中文精品 | 日韩在线永久免费播放| 美女无遮挡免费视频网站| 久久久久久久久亚洲精品| 欧美亚洲欧美区| av午夜福利一片免费看| 欧美综合成人| 国产一级在线播放| 91系列在线观看| 国产美女一级毛片| av在线手机播放| 精品一区二区久久久久网站| 久热re国产手机在线观看| 五月激激激综合网色播免费| 亚洲国产成人综合精品2020| 免费在线a视频| 色窝窝免费一区二区三区| 亚洲丝袜第一页| 日本五区在线不卡精品| 九色在线观看视频| 精品国产免费观看| 亚洲午夜片| 亚洲视频在线网| 精品成人免费自拍视频| 久久国产精品夜色| 亚洲无码高清视频在线观看 | 国产福利一区在线| 久久精品中文字幕少妇| 国产高清无码麻豆精品| 亚洲成人免费在线| 怡春院欧美一区二区三区免费| 中文字幕不卡免费高清视频| 美女免费黄网站| 亚洲国产综合自在线另类| 国内精品91| 成人中文字幕在线| 四虎AV麻豆| 天天激情综合| 自拍欧美亚洲| 国产高清在线丝袜精品一区| 99热这里只有免费国产精品 | 毛片最新网址| 亚洲国产亚综合在线区| 老司机久久精品视频| 亚洲国产系列| 亚洲精品视频免费| 久久精品无码专区免费| 亚洲一级毛片在线观播放| 亚洲美女视频一区| 在线免费a视频| 久青草国产高清在线视频| 一边摸一边做爽的视频17国产| 午夜精品久久久久久久2023| 影音先锋亚洲无码| 中国丰满人妻无码束缚啪啪|