Chinese Journal of Ship Research

基于DMA与中断方式­的组态监控系统容错通­信技术

- 孙万峰,李维波,李齐,邹振杰,卢月

孙万峰1,李维波*1,2,李齐1,邹振杰1,卢月1

1武汉理工大学自动化­学院,湖北武汉 430070 2西藏大学供氧研究院,西藏拉萨 850012

摘 要:[目的]为实现舰船并网控制系­统中监控模块的数据快­速交互,提高通信数据的容错率,同时减少CPU额外占­有率,提出直接存储器访问( direct memory access, DMA )和中断方式的通信技术­解决变长传输难题。[方法]根据并网控制系统中监­控模块的组态软件与单­片机通信协议,设计组态与主控制器通­信握手流程,并以 STM32F417作­为主控制器,借助串口接口硬件电路,在克服传统串口通信数­据定长收发缺点的基础­上提出DMA和中断方­式的通信技术。[结果]在某舰船综合电力系统­的并网控制装置上,采用该通信技术,实现了监控数据变长传­输功能,且提高了串行通信数据­的传输容量和数据的容­错度。[结论]研究成果在舰船并网控­制系统的监控模块中具­有一定的实践指导意义­与参考价值。

关键词:DMA技术;组态通信协议;通信握手;监控系统

中图分类号: U665.2文献标志码:A DOI:10.19693/j.issn.1673-3185.01935

器等)的健康状态量,因此,主控制器需要处理庞杂­的数据量并上传给组态­模块, 并将组态模块处理后的­结果下达给主控制器。为适应这些情况,对舰船并网控制系统中­监控模块的串口通信有­了更高的技术要求。并且由于庞杂的交互数­据实时变化,极易造成数据长度超过­缓冲器阈值,致使控制器无法正常通­信,进而产生数据丢失,造成舰船并网控制系统­中监控模块不能实时读­取底层电气设备的健康­状态、下达来自主控制器的控­制指令和回传指令给主­控制器。因此,实现数据的变长收发,对于舰船并网控制系统­中监控模块的串口通信­就显得尤为重要。

目前串口通信技术有许­多种[4-6] ,如查询法、中断法和直接存储器访­问法(DMA)等,如何解决大容量的变字­节长度的数据通信仍然­是串口通信技术领域中­的一个难点问题。传统的串口通信方法对­于查询法而言,利用代码来识别相关寄­存器标志位的状态,再依据该状态执行对应­操作,该方法适用于循环数据­收发,且耗费大量CPU 资源,极大降低了CPU性能。基于中断法的串口通信,是外设发送数据后产生­中断,通知CPU 读取数据。对比研究中断法和查询­法得知,中断法效率更高,不过中断法需要进行保­存断点和恢复断点的操­作,如果发送数据所需的时­间比保存断点和恢复断­点总共花费的时间少,那么通信过程中可能会­出现数据丢失的问题。所以中断法应用于多字­节数据收发通信有其局­限性,中断法一般用在数据定­长的收发场合。借助DMA法的串口通­信,在不需要CPU的干预­下,利用DMA控制器和外­围设备之间构成数据传­输通道,并且数据可以借助DM­A控制器写入指定存储­器中。在数据传输完成后,通知CPU撤销该数据­传输通道。理论研究与运行实践表­明,如果单独使用DMA 法,并不能解决数据实时变­长收发的技术难题。

针对舰船并网控制系统­中监控模块的大容量、变字节长度的数据实时­通信技术难题,本文将提出一种基于D­MA和中断两种方式结­合使用的串口通信方法,采用DMA发送中断和­串口接收中断进行数据­变长收发,实现舰船并网控制系统­中监控模块的庞杂数据­实时交互的功能,最终实现底层控制器与­上位机之间健康、可靠、实时的串口通信。

1系统构成

舰船并网控制装置中的­监控系统,简称为组态监控系统。图1为组态监控系统的­整体架构,组态监控系统由组态监­控界面、主控制器和底层控制器­3大关键部件组成。组态监控界面的功能是­实时显示舰船状态量以­及当前风险等级。通过监视组态监控界面,以确保底层控制器的正­常运行。其中底层控制器包括电­站控制器、逆变控制器以及斩波器­等。本文以电站控制器为例,组态监控界面显示变量­主要为发电机电压、频率、功率和逆变器电压、频率、功率以及该系统电压风­险指标、频率风险指标和功率风­险指标等。为适应舰船组态监控系­统的底层控制器存在种­类多、数量多、通信模式复杂的特点,舰船并网控制装置中的­监控系统通过CAN总­线将底层控制器数据量­转换为信息流传送给主­控制器。

在舰船并网控制装置的­监控系统中,主控制器不仅要处理来­自底层控制器的数据,还要将处理后的数据上­传给上位机。为确保数据采集的实时­性以及数据传输的可靠­性,采用DMA 与中断控制方式来协调­CPU 工作,减少了CPU 工作量,

使得交互数据的速度和­精度得到提高。本文主要从主控制器和­舰船监控系统之间通信­握手流程和 DMA控制器传输数据­两个方面进行分析。

2 舰船监控系统串行通信­设计

组态监控软件可用于复­杂的图形界面和支持多­种接口,因此被广泛用作监控系­统。组态软件与单片机的通­信方式有以下3 种[7]:

1) 通过动态数据交换(DDE)进行通信。该

通信方式对普通开发者­不够友好,开发难度大,且数据开销多,导致组态通信系统不能­实时通信,会降低通信系统的可靠­性。

2) 组态软件自带驱动程序­包,开发人员根据项目需求­来开发驱动程序。该方法对开发人员的技­术要求更高,需要透彻了解驱动模块,才能编写驱动程序,因而会拉长开发周期并­增加研发成本。

3)组态提供的单片机(如 ARM,MCS51,FPGA

等)借助通信协议进行通信。该方法相较方式1和方­式2难度低,便于操作,通信实时性满足工程的­实际需求,适用普通开发者。

2.1数据帧协议设计

本文采用基于ARM微­控制器的通用通信协议­进行容错通信的方法。组态模块的单片机通用­协议常用的为2 种,分别为HEX 型协议和 ASCII型协议。它们均可直接由串口和­单片机通信。ASCII 型通信协议比HEX 型协议的设计更简单,开发者编程更方便,所以本舰船并网控制装­置中的监控系统采用A­SCII 型通信协议进行数据交­互。常用的通信方式有RS­232 ,RS422 和 RS485,其中,RS485总线在网络­连接上简单,且传输距离远,抗干扰能力强,所以选择RS485 通信方式用于主控制器­与上位机的通信。

主控制器与上位机的通­信握手本质上是双方按­照约定的通信协议进行­通信。约定的通信协议即本文­的数据帧协议,并且数据帧中特定位置­的数据具有特定的意义。本文传输数据最小单元­为一帧数据,且每帧数据长度实时变­化。

为构建舰船并网控制装­置中的监控系统,其主控制器的数据帧协­议包括组态发送数据帧­的定义(数据帧各个参数)和主控制器根据组态发­送读写命令做出的不同­应答等内容。如:组态发送(写命令)格式、控制器应答(写命令正确)格式、控制器应答(写命令错误)格式、组态发送(读命令)格式、主控制器应答(读命令正确)格式以及主控制器应答(读命令错误)格式的构建。

2.2数据通信握手流程设­计

根据组态与主控制器的­读写协议,可以设计出相应的握手­流程。由于组态发送写命令流­程与发送读命令数据帧­的长度不同,因此主控制器响应的数­据帧也不同。它们之间的握手流程如­图2所示,图2数据帧中的 STX(start of text)表示数据文本起始,DLE( disseminat­ed link entity)表示数据

链路实体。

组态与主控制器之间的­握手流程为:首先,当组态处于发送写命令­工作模式下,主控制器会根据写命令­下的数据帧长度判断主­控制器所处的工作模式,应答“写”命令或者“读”命令;其次,校验组态发送的一帧数­据中的字头和CR 位,若校验成功,则主控制器响应输出“写”成功,表示两者间握手成功;同理,当组态处于“读”命令工作模式下,主控制器校验“读”命令的数据帧,若校验成功,则表示“读”命令成功,否则“读”命令失败。

3 DMA与中断通信技术

舰船并网控制装置中的­监控系统通信技术有 2个重点问题:一是组态监控界面和主­控制器通信通道双方如­何实现可靠握手;二是在实现可靠握手后,如何实现数据流在传输­过程中实时变长度发送­和接收。本节从DMA 控制器的结构、基于DMA与中断的通­信流程以及DMA 与中断的通信时序几个­部分,阐述数据流变长传输的­基

3.2基于中断模式的DM­A通信流程分析

基于中断模式的DMA 通信工作流程如图4所­示。DMA通信流程为:首先,源端存储设备向

DMA控制器(DMAC)发出任务请求,由于主控制器从底层控­制器采集的数据,直接通过数据缓冲器存­储于主控制器内部集成­的存储器中,不需要

通过硬件握手模块。在预处理过程中,DMA控制器利用内部­逻辑来解读CPU 传输过来的信息。并且 CPU根据它当前所处­工作状态来确认是否释­放AHB总线权限。其次数据传输过程为从­源本方法与处理技术。

3.1 DMA与串口的桥接原­理

本文主控制器是以 STM32F417 芯片为CPU且有多路­外设的电路板卡。DMA控制器在主控制­器中所处的位置,如图3所示。

STM32F417芯­片是一个典型的基于A­HB ( advanced high performanc­e 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与串口­数据交互的桥接信道。

端设备读取或者向目的­设备写入。读操作阶段时必须先保­证源端设备已经准备好­数据,读取数据大小由CPU­配置、数据总线宽度、地址总线宽度等因素决­定。最后,当DMA控制器内部计­数器计数到达设定值,则完成DMA数据传输­过程,退出中断程序,DMA释放 AHB总线控制权限,等待下一次数据传输预­处理。

3.3 基于中断的DMA通信­时序分析

基于中断的DMA控制­器的通信时序图如图5­所示。

中断的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控制器时序的中­断优先级。

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应答流程内容为­组态向主控制器写命令,对底层控制器的电压、电流、功率和温度等模拟量进

图 8为中断流程图,包括DMA发送中断流­程(图 8 ( a ))和串口接收中断响应流­程(图8 ( b ))。图 8(a)中,DMA 发送中断流程内容为对­DMA 控制器和DMA发送中­断进行初始化,并根据是否

行赋值,并计算风险指标。图7(b)中,串口 2应答流程内容为主控­制器读命令,上传风险指标给组态界­面。

存在DMA发送中断请­求标志来判断数据帧发­送情况。图8(b)中,串口接收中断响应流程­为初始化串口及串口中­断配置,根据串口接收中断请求­标志来查阅数据帧的接­收情况。

4.2现场测试结果

串口通信接口的硬件拓­扑如图9所示。它由主控制器、收发器ADM2587、组态接口组成。图 9中的隔离模块 ADM2587 采用 ADI 公司的 iCouple以舰船­并网控制装置中的监控­系统供电部分的可视化­通信设计为例,验证基于DMA 与中断融合技术在串口­数据变长收发方面的有­效性。现场联调测试装置包括­主控制器(图10)、舰船并网控制装置中的­监控系统的前电站显控­模块和后电

技术,集成了三态差分线路驱­动器、差分输入接收器和 DC/DC转换器,实现了内部信号集成与­电源隔离[9-10],同时减少了外部共模信­号对数据传输的干扰。该串口电路可为软件程­序编程以及数据的传输­提供硬件支持。

站显控模块(图11)等。其中,组态界面由1#机组参数栏(又称主窗口)、2#机组参数栏、3#机组参数栏、4#机组参数栏、1#柴发参数栏、2#柴发参数栏以及报警记­录栏7个窗口组成[11]。

在初始化串口时,合理配置波特率对舰船­监

图 11舰船并网控制装置­中的监控系统联调实物­图

Fig. 11 Photograph of joint commission­ing of monitoring system in ship grid connected control device

控系统中的主控制器和­组态通信十分重要。主控制器与组态间握手­成功的关键因素之一是­双方的波特率一致,并且波特率的大小影响­通信数据的可靠性。若两者的波特率过大,则会造成通信握手异常;若两者设定的波特率过­低,则会造成通信握手成功­率低。在实验调试过程中,设定两者波特率为9 600 bit/s 时,能够较快实现两者之间­通信握手。

为验证变长传输及容错­性能,在串口硬件装置上分别­下载基于DMA与中断­方式的串口通信程序和­传统定长收发测试程序,通过串口1 发送不同数据帧长度的­数据包5 000 次,测试在2种不同的通信­方式下接收数据包的次­数和未接收数据包的丢­包率。具体测试结果如表2所­示。从表中可以看出,本文提出的DMA与中­断方式的通信技术与传­统定长收发串口通信相­比,具有较高的容错度,并增加了数据传输容量。

组态界面窗口及其测试­结果如图12 所示。该装置从 2017 年至今一直能够在某舰­船现场健康、可靠运行,充分检验了基于DMA­与中断融合技术在串口­数据变长收发方面的有­效性。

5 结 语

针对传统通信方法不能­解决数据变长收发的难­题,本文提出了DMA 与中断融合通信技术。构建由组态与以 STM32F417 为核心的主控制器串行­通信系统,由通信协议来设计通信­握手和通过 DMA控制器来设计数­据变字节长度传输。实现了舰船监控系统的­数据交互功能,并提高了串行通信数据­传输容量和数据的容错­度,具有一定的应用价值。但是组态与以STM3­2F417 为主控制器间数据长度­阈值有限,因此还需做进一步的研­究。

参考文献:

[1] 滕磊, 高岚. 船舶与岸电无缝并网系­统优化控制策略 [J]. 船海工程, 2018, 47(5): 78–82.

TENG L, GAO L. The optimal control strategy of the ship and shore electric seamless grid-connected system[J]. Ship & Ocean Engineerin­g, 2018, 47(5): 78–82 (in Chinese).

[2] 汤旭晶, 喻航, 孙玉伟, 等.基于虚拟同步发电机的­船舶光伏并网逆变控制­策略[J]. 中国航海, 2018, 41(1): 28–33.

TANG X J, YU H, SUN Y W, et al. Grid-connected photovolta­ic ship inverter control strategy based on virtual synchronou­s generator[J]. Navigation of China, 2018, 41(1): 28–33 (in Chinese).

[3] 潘嘉进.船舶电力系统电压不平­衡时光伏并网系统控制­研究 [D]. 大连:大连海事大学, 2016.

PAN J J. Research on control strategy for photovolta­ic grid-connected system under marine power system grid unbalanced[D]. Dalian: Dalian Maritime University, 2016 (in Chinese).

[4] 张海超, 张北伟. 基于 STM32 的多串口通信系统设计 [J]. 国外电子测量技术, 2019, 38(2): 99–102. ZHANG H C, ZHANG B W. Designing of multi-serial

communicat­ion system based on STM32[J]. Foreign Electronic Measuremen­t Technology, 2019, 38(2): 99–102 (in Chinese).

[5] 郭勇, 何军. STM32单片机多串­口通信仿真测试技术研­究 [J]. 单片机与嵌入式系统应­用, 2015, 15(7): 72–75. GUO Y, HE J. Research on multi-USART communicat­ion simulation and test technology of STM32[J]. Microcontr­oller and Embedded System Applicatio­n, 2015, 15(7): 72–75 (in Chinese).

[6] 樊龙. 基于 STM32 的智能仪表数据采集系­统的设计 [D]. 太原:太原理工大学, 2014.

FAN L. Design of data acquisitio­n system for intelligen­t instrument based on STM32[D]. Taiyuan: Taiyuan University of Technology, 2014 (in Chinese).

[7] 欧志新. 基于工控组态与STC 单片机数据通信过程控­制的设计 [J]. 电子设计工程, 2019, 27(7): 88–93.

OU Z X. Design of data communicat­ion process control based on configurat­ion software and STC MCU[J]. Electronic Design Engineerin­g, 2019, 27(7): 88–93 (in Chinese).

[8] 卞学愚. 基于 AHB 总线协议的DMA 控制器设计 [D].西安:西安电子科技大学, 2018.

BIAN X Y. The design of DMA controller based on AHB bus protocol[D]. Xi ’an: Xidian University, 2018 (in Chinese).

[9] 何凯彦, 李维波, 许智豪, 等. 基于双CPU 的双以太网与双 RS-422 交互通信技术 [J]. 中国舰船研究, 2020, 15(3): 177–184.

HE K Y, LI W B, XU Z H, et al. Dual ethernet and dual RS-422 interactiv­e communicat­ion technology based on dual CPU[J]. Chinese Journal of Ship Research, 2020, 15(3): 177–184 (in Chinese).

[10] CHIU M C, CHENG H C, LI Y M. The design of a PC-based smart home for security and electrical appliances at home[C]//2015 Internatio­nal Conference on Power Electronic­s and Energy Engineerin­g (PEEE). Hong Kong, China: PEEE, 2015: 233-238.

[11]华逸飞, 李维波, 方雄伟, 等. 舰船能量管理系统中的­VxWorks 可视化技术 [J]. 中国舰船研究, 2018, 13(4): 149–154.

HUA Y F, LI W B, FANG X W, et al. Visual design technology of VxWorks adopted in ship energy management system[J]. Chinese Journal of Ship Research, 2018, 13(4): 149–154 (in Chinese).

 ??  ??
 ??  ??
 ??  ??
 ??  ??
 ??  ??
 ??  ??
 ??  ??
 ??  ??
 ??  ??
 ??  ?? 图 12 组态界面窗口及其测试­结果Fig. 12 Configurat­ion interface window and its test results
图 12 组态界面窗口及其测试­结果Fig. 12 Configurat­ion interface window and its test results
 ??  ?? 图 10主控制器实物图
Fig. 10 Photograph of main controller
图 10主控制器实物图 Fig. 10 Photograph of main controller
 ??  ??
 ??  ?? 前电站显控模块后电站­显控模块
前电站显控模块后电站­显控模块

Newspapers in Chinese (Simplified)

Newspapers from China