一种基于DMA与中断融合的组态监控容错通信方法技术

技术编号:25689743 阅读:36 留言:0更新日期:2020-09-18 21:01
本发明专利技术提供一种基于DMA与中断融合的组态监控容错通信方法,方法应用于组态监控系统,所述系统包括:组态监控界面、主控制器和底层控制器;底层控制器将状态参数通过CAN总线传输至所述主控制器;主控制器将状态参数再传输至组态监控界面;方法为:组态监控界面与主控制器进行数据通信握手;设计DMA控制器的连接结构,创建DMA控制器与串口数据交互桥接的通道;DMA控制器获得数据通信总线控制权,并采用基于中断的DMA通信方法,完成变字节长度数据传。本发明专利技术提供的技术方案带来的有益效果是:采用DMA控制器发送中断和串口接收中断,用来执行数据变长的收发任务,实现舰船并网控制系统中监控模块庞杂数据的实时交互通信目标。

【技术实现步骤摘要】
一种基于DMA与中断融合的组态监控容错通信方法
本专利技术涉及串口通信领域,尤其涉及一种基于DMA与中断融合的组态监控容错通信方法。
技术介绍
舰船并网控制装置中的监控系统通常由舰船底层控制器、主控制器和组态模块等组成。由于舰船并网控制系统中监控模块需要对底层电气设备(如发电机、逆变器和斩波器等)等装置数量庞大的健康状态量进行监控,因此,主控制器需要处理如此庞杂的数据量并上传给组态模块,以及组态模块根据处理后的结果下达给主控制器。为适应这些情况,对舰船并网控制系统中监控模块的串口通信有了更高的技术要求。并且由于庞杂的交互数据实时变化,极易造成数据长度超过缓冲器阈值,致使控制器无法正常通信,进而产生数据丢失,势必会造成舰船并网控制系统中监控模块不能实时读取底层电气设备的健康状态、下达来自主控制器的控制指令和回传指令给主控制器。因此,实现数据的变长收发,对于舰船并网控制系统中监控模块的串口通信就显得尤为重要。目前串口通信技术有许多种,如查询法、中断法和DMA控制器法等,如何解决大容量的变字节长度的数据通信仍然是串口通信
中的一个难点问题。DMA(DirectMemoryAccess:直接存储器存取)控制器是一种在系统内部转移数据的独特外设,可以将其视为一种能够通过一组专用总线将内部和外部存储器与每个具有DMA能力的外设连接起来的控制器。之所以将它归属于外设,是因为它是在处理器的编程控制下来执行传输任务的。传统的串口通信方法对于查询法的串口通信而言,它是利用代码来识别相关寄存器标志位的状态,再依据寄存器标志位状态执行对应操作,该方法适用于循环数据收发,且查询法耗费大量CPU资源,因而极大地降低了CPU性能。基于中断法的串口通信,是外设发送数据后产生中断,通知CPU读取数据。对比研究中断法和查询法得知,中断法效率更高,不过中断法需要保存断点和恢复断点操作,且发送数据的时间间隔小于断点保存和恢复的时间,势必会造成数据丢失。因此,中断法适用于外设通信数据定长收发场合。理论研究与运行实践表明,如果单独使用DMA控制器法,并不能解决数据实时变长收发的技术难题。
技术实现思路
有鉴于此,针对舰船并网控制系统中监控模块的大容量、变字节长度的数据实时通信技术难题,本专利技术提出了一种基于DMA控制器和中断融合使用的串口通信方法,采用DMA控制器发送中断和串口接收中断用来数据变长收发,实现舰船并网控制系统中监控模块的庞杂数据实时交互,完成交互数据在以STM32F417充当CPU的主控制器、以组态监控软件,实现底层控制器与上位机之间健康、可靠、实时串口通信。本专利技术提供了一种基于DMA与中断融合的组态监控容错通信方法,应用于基于DMA与中断融合的组态监控系统,所述组态监控系统具体包括:组态监控界面、主控制器和底层控制器;所述组态监控界面,包括上位机接口,用于显示所述底层控制器的状态参数数据;所述主控制器,包括ARM芯片、串口RS485隔离模块、CAN隔离模块,用于处理来自所述底层控制器的状态参数数据,并将状态参数上传至所述组态监控界面;所述底层控制器,包括舰船电网电站控制器、斩波控制器和逆变控制器,用于舰船电网的电网控制;所述组态监控界面与所述主控制器通过所述上位机接口电气连接;所述ARM芯片包括串口RS485收发器、CAN接口、DMA控制器和中断模块;所述串口RS485收发器与所述串口RS485隔离模块电气连接;所述串口RS485隔离模块与所述上位机接口电气连接;所述CAN接口与所述CAN隔离模块电气连接;所述CAN隔离模块与所述底层控制器电气连接;所述一种基于DMA与中断融合的组态监控容错通信方法包括:S101:所述组态监控界面通过所述上位机接口与所述主控制器采用ASCII型通信协议进行数据通信握手;S102:通过设计所述DMA控制器的连接结构,创建所述DMA控制器与串口数据交互桥接的通道;S103:基于建立好的所述DMA控制器与串口数据交互桥接的通道,所述ARM芯片复位,处于空闲状态,并等待DMA数据通信请求;S104:所述DMA控制器检测数据通信总线是否处于空闲状态?若是,则所述DMA控制器向所述ARM芯片发送数据通信请求;否则,所述DMA控制器等待数据通信总线处于空闲状态时,再发送所述ARM芯片发送数据通信请求;S105:所述ARM芯片读取所述DMA控制器的数据通信请求,并释放数据通信总线控制权;S106:所述DMA控制器获得数据通信总线控制权,并采用基于中断的DMA通信方法,完成变字节长度数据传输。进一步地,所述主控制器的数据通信总线包括APB总线和AHB总线,所述APB总线用于挂载高速设备,所述AHB总线用于挂载低速设备;所述ARM芯片为基于AHB总线协议架构的片上系统芯片,包括AHB-MASTER接口和AHB-SLAVE接口;所述DMA控制器也包括AHB-MASTER接口和AHB-SLAVE接口。进一步地,所述ARM芯片还包括复位电路、晶振电路和存储电路;所述组态监控系统还包括电源,用于组态监控系统的供电。进一步地,步骤S101中所述ASCII型通信协议,具体如下:所述ASCII型通信协议,包括不同的读写命令格式,具体为:所述组态监控界面写命令格式、所述主控制器写命令正确格式、所述主控制器写命令错误格式、所述组态监控界面读命令格式、主控制器读命令正确格式和所述主控制器读命令错误格式;所述读写命令格式由字头、数据位和校验位组成,其中数据位为可变长度,最大写命令长度为kW个字节、最大读命令长度为kR个字节,kW、kR均为预设值。进一步地,步骤S101中所述组态监控界面与所述主控制器通讯握手过程具体如下:步骤S101中所述组态监控界面与所述主控制器通讯握手过程具体如下:当所述组态监控界面发送写命令格式,即处于写命令工作模式下,当所述组态监控界面的写命令格式下的数据帧长度为n个字节时,所述主控制器的工作模式为应答写命令,n为预设值;同时校验所述组态监控界面发送的写命令格式一帧数据中的字头和校验位,若校验成功,则所述主控制器响应输出写命令正确格式的一帧数据,同时,所述组态监控界面与所述主控制器通信握手成功;若校验失败,则所述主控制器响应输出写命令错误格式的一帧数据,同时所述组态监控界面与所述主控制器通信握手失败;当所述组态监控界面发送读命令格式,即处于读命令工作模式下,当所述组态监控界面的读命令格式下的数据帧长度为p个字节时,所述主控制器的工作模式为应答读命令,p为预设值;同时校验所述组态监控界面发送的读命令格式一帧数据中的字头和CR位,若校验成功,则所述主控制器响应输出读命令正确格式的一帧数据,同时,所述组态监控界面与所述主控制器通信握手成功;若校验失败,则所述主控制器响应输出读命令错误格式的一帧数据,同时所述组态监控界面与所述主控制器通信握手失败;在所述组态监控界面与所述主控制器通信握手失败时,所述组态监控界面重复发送写命令格式或者读命令格式的一帧数据,所述主控制器校验数据,本文档来自技高网
...

【技术保护点】
1.一种基于DMA与中断融合的组态监控容错通信方法,应用于基于DMA与中断融合的组态监控系统,其特征在于:所述组态监控系统包括:/n组态监控界面、主控制器和底层控制器;/n所述组态监控界面,包括上位机接口,用于显示所述底层控制器的状态参数数据;所述主控制器,包括ARM芯片、串口RS485隔离模块、CAN隔离模块,用于处理来自所述底层控制器的状态参数数据,并将状态参数上传至所述组态监控界面;所述底层控制器,包括舰船电网电站控制器、斩波控制器和逆变控制器,用于舰船电网的电网控制;/n所述组态监控界面与所述主控制器通过所述上位机接口电气连接;所述ARM芯片包括串口RS485收发器、CAN接口、DMA控制器和中断模块;所述串口RS485收发器与所述串口RS485隔离模块电气连接;所述串口RS485隔离模块与所述上位机接口电气连接;所述CAN接口与所述CAN隔离模块电气连接;所述CAN隔离模块与所述底层控制器电气连接;/n所述一种基于DMA与中断融合的组态监控容错通信方法包括以下步骤:/nS101:所述组态监控界面通过所述上位机接口与所述主控制器采用ASCII型通信协议进行数据通信握手;/nS102:通过设计所述DMA控制器的连接结构,创建所述DMA控制器与串口数据交互桥接的通道;/nS103:基于建立好的所述DMA控制器与串口数据交互桥接的通道,所述ARM芯片复位,处于空闲状态,并等待DMA数据通信请求;/nS104:所述DMA控制器检测数据通信总线是否处于空闲状态?若是,则所述DMA控制器向所述ARM芯片发送数据通信请求;否则,所述DMA控制器等待数据通信总线处于空闲状态时,再发送所述ARM芯片发送数据通信请求;/nS105:所述ARM芯片读取所述DMA控制器的数据通信请求,并释放数据通信总线控制权;/nS106:所述DMA控制器获得数据通信总线控制权,并采用基于中断的DMA通信方法,完成变字节长度数据传输。/n...

【技术特征摘要】
1.一种基于DMA与中断融合的组态监控容错通信方法,应用于基于DMA与中断融合的组态监控系统,其特征在于:所述组态监控系统包括:
组态监控界面、主控制器和底层控制器;
所述组态监控界面,包括上位机接口,用于显示所述底层控制器的状态参数数据;所述主控制器,包括ARM芯片、串口RS485隔离模块、CAN隔离模块,用于处理来自所述底层控制器的状态参数数据,并将状态参数上传至所述组态监控界面;所述底层控制器,包括舰船电网电站控制器、斩波控制器和逆变控制器,用于舰船电网的电网控制;
所述组态监控界面与所述主控制器通过所述上位机接口电气连接;所述ARM芯片包括串口RS485收发器、CAN接口、DMA控制器和中断模块;所述串口RS485收发器与所述串口RS485隔离模块电气连接;所述串口RS485隔离模块与所述上位机接口电气连接;所述CAN接口与所述CAN隔离模块电气连接;所述CAN隔离模块与所述底层控制器电气连接;
所述一种基于DMA与中断融合的组态监控容错通信方法包括以下步骤:
S101:所述组态监控界面通过所述上位机接口与所述主控制器采用ASCII型通信协议进行数据通信握手;
S102:通过设计所述DMA控制器的连接结构,创建所述DMA控制器与串口数据交互桥接的通道;
S103:基于建立好的所述DMA控制器与串口数据交互桥接的通道,所述ARM芯片复位,处于空闲状态,并等待DMA数据通信请求;
S104:所述DMA控制器检测数据通信总线是否处于空闲状态?若是,则所述DMA控制器向所述ARM芯片发送数据通信请求;否则,所述DMA控制器等待数据通信总线处于空闲状态时,再发送所述ARM芯片发送数据通信请求;
S105:所述ARM芯片读取所述DMA控制器的数据通信请求,并释放数据通信总线控制权;
S106:所述DMA控制器获得数据通信总线控制权,并采用基于中断的DMA通信方法,完成变字节长度数据传输。


2.如权利要求1所述的一种基于DMA与中断融合的组态监控容错通信方法,其特征在于:所述主控制器的数据通信总线包括APB总线和AHB总线,所述APB总线用于挂载高速设备,所述AHB总线用于挂载低速设备;所述ARM芯片为基于AHB总线协议架构的片上系统芯片,包括AHB-MASTER接口和AHB-SLAVE接口;所述DMA控制器也包括AHB-MASTER接口和AHB-SLAVE接口。


3.如权利要求1所述的一种基于DMA与中断融合的组态监控容错通信方法,其特征在于:所述ARM芯片还包括复位电路、晶振电路和存储电路;所述组态监控系统还包括电源,用于组态监控系统的供电。


4.如权利要求1所述的一种基于DMA与中断融合的组态监控系统的容错通信方法,其特征在于:步骤S101中所述ASCII型通信协议,具体如下:
所述ASCII型通信协议,包括不同的读写命令格式,具体为:所述组态监控界面写命令格式、所述主控制器写命令正确格式、所述主控制器写命令错误格式、所述组态监控界面读命令格式、主控制器读命令正确格式和所述主控制器读命令错误格式;所述读写命令格式由字头、数据位和校验位组成,其中数据位为可变长度,最大写命令长度为kW个字节、最大读命令长度为kR个字节,此处kW、kR均为预设值。


5.如权利要求4所述的一种基于DMA与中断融合的组态监控容错通信方法,其特征在于:
步骤S101中所述组态监控界面与所述主控制器通讯握手过程具体如下:
当所述组态监控界面发送写命令格式,即处于写命令工作模式下,当所述组态监控界面的写命令格式下的数据帧长度为n个字节时,所述主控制器的工作模式为应答写命令,n为预设值;同时校验所述组态监控界面发送的写命令格式一帧数据中的字头和校验位,若校验成功,则所述主控制器响应输出写命令正确格式的一帧数据,同时,所述组态监控界面与所述主控制器通信握手成功;若校验失败,则所述主控制器响应输出写命令错误格式的一帧数据,同时所述组态监控界面与所述主控制器通信握手失败;
当所述组态监控界面发送读命令格式,即处于读命令工作模式下,当所述组态监控界面的读命令格式下的数据帧长度为p个字节时,所述主控制器的工作模式为应答读命令,p为预设值;同时校验所述...

【专利技术属性】
技术研发人员:李峻宇
申请(专利权)人:武汉天富海科技发展有限公司
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1