CN114047728B - 基于安全总线的数据同步方法 - Google Patents

基于安全总线的数据同步方法 Download PDF

Info

Publication number
CN114047728B
CN114047728B CN202111254938.2A CN202111254938A CN114047728B CN 114047728 B CN114047728 B CN 114047728B CN 202111254938 A CN202111254938 A CN 202111254938A CN 114047728 B CN114047728 B CN 114047728B
Authority
CN
China
Prior art keywords
data
computer module
data storage
storage area
computer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202111254938.2A
Other languages
English (en)
Other versions
CN114047728A (zh
Inventor
王洪淼
马呈祥
潘�清
靳子洋
田钢
陈楠
金曹彬
王汉意
张景
徐超
李铭洋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
State Nuclear Power Automation System Engineering Co Ltd
Original Assignee
State Nuclear Power Automation System Engineering Co Ltd
Filing date
Publication date
Application filed by State Nuclear Power Automation System Engineering Co Ltd filed Critical State Nuclear Power Automation System Engineering Co Ltd
Priority to CN202111254938.2A priority Critical patent/CN114047728B/zh
Publication of CN114047728A publication Critical patent/CN114047728A/zh
Application granted granted Critical
Publication of CN114047728B publication Critical patent/CN114047728B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明公开了一种基于安全总线的数据同步方法,该数据同步方法应用于冗余控制装置,该冗余控制装置包括多个互为冗余的计算机模块,多个互为冗余的计算机模块之间通过安全总线进行通信,该数据同步方法包括:将每个计算机模块划分为多个数据存储区域,将获取到的作为发送端的计算机模块的本地数据存储区域中的目标数据按照预设数据帧格式打包成数据包;基于安全总线将数据包同步传输至作为接收端的计算机模块相应的映射数据存储区域。本发明通过将获取到的发送端的本地数据存储区域中的目标数据打包成数据包;将数据包同步传输至接收端相应的映射数据存储区域,实现了冗余控制装置中多个计算机模块之间的数据同步,提高了冗余控制装置的可靠性。

Description

基于安全总线的数据同步方法
技术领域
本发明涉及冗余控制技术领域,特别涉及一种基于安全总线的数据同步方法。
背景技术
电液伺服阀的数字式伺服驱动装置是电液伺服系统的关键部件;在工业领域中的高可靠系统多采用三重冗余设计技术,为了满足三重冗余在工业领域的高可靠的应用,如何实现三个冗余单元之间的数据交互和同步是急需解决的问题。
发明内容
本发明要解决的技术问题是为了克服现有技术中在工业领域很难实现三重冗余的缺陷,提供一种基于安全总线的数据同步方法。
本发明是通过下述技术方案来解决上述技术问题:
本发明提供一种基于安全总线的数据同步方法,所述基于安全总线的数据同步方法应用于冗余控制装置,所述冗余控制装置包括多个互为冗余的计算机模块,多个互为冗余的所述计算机模块之间通过所述安全总线进行通信,所述数据同步方法包括:
将每个所述计算机模块划分为多个数据存储区域,所述数据存储区域包括本地数据存储区域和映射数据存储区域;
获取作为发送端的计算机模块的本地数据存储区域中的目标数据;
将所述目标数据按照预设数据帧格式打包成数据包;
基于所述安全总线将所述数据包同步传输至作为接收端的计算机模块相应的映射数据存储区域。
较佳地,所述基于所述安全总线将所述数据包同步传输至作为接收端的计算机模块相应的映射数据存储区域步骤之后,所述数据同步方法还包括:
对传输的所述数据包进行校验,若校验未通过,则向所述作为发送端的计算机模块发送重传指令;
根据所述重传指令将所述数据包重新同步传输至所述作为接收端的计算机模块相应的映射数据存储区域。
较佳地,所述对传输的所述数据包进行校验的步骤包括:
计算所述作为发送端的计算机模块的数据包的第一CRC(循环冗余校验)校验值;
计算所述作为接收端的计算机模块接收到的所述作为发送端的计算机模块传输的数据包的第二CRC校验值;
若所述第一CRC校验值与所述第二CRC校验值不相同,则校验未通过。
较佳地,所述对传输的所述数据包进行校验的步骤还包括:
获取所述作为接收端的计算机模块接收到的数据包的索引累加值;
若所述索引累加值不等于预设索引值,则校验未通过。
较佳地,所述接收所述作为接收端的计算机模块发送的重传指令的步骤之后,所述数据同步方法还包括:
若连续接收到所述作为接收端的计算机模块发送的重传指令的次数大于等于预设次数,则所述作为相应发送端的计算机模块的标志位为“错误”。
较佳地,所述数据同步方法还包括:
若所述作为接收端的计算机模块在预设时长内未接收到传输的所述数据包,则所述作为相应发送端的计算机模块的标志位为“离线”。
较佳地,计算机模块在传输数据包或者接收数据包的过程中,所述计算机模块的标志位为“数据忙”。
较佳地,所述安全总线的物理层包括LVDS(低电压差分信号)、RS485(一种安全总线)、RS422(一种安全总线)和SPI(串行外设接口)中的至少一种。
较佳地,所述计算机模块包括状态寄存器,所述状态寄存器用于标识所述计算机模块的工作状态。
本发明的积极进步效果在于:
本发明通过将冗余控制装置中的每个计算机模块划分为多个数据存储区域,获取作为发送端的计算机模块的本地数据存储区域中的目标数据;将目标数据按照预设数据帧格式打包成数据包;基于安全总线将数据包同步传输至作为接收端的计算机模块相应的映射数据存储区域,实现了冗余控制装置中多个计算机模块之间的数据同步,提高了冗余控制装置的可靠性。
附图说明
图1为本发明实施例1的基于安全总线的数据同步方法的流程图。
图2为本发明实施例1的基于安全总线的数据同步方法的冗余控制装置的模块示意图。
图3为本发明实施例2的基于安全总线的数据同步方法的流程图。
图4为本发明实施例2的基于安全总线的数据同步方法的步骤S105的第一流程图。
图5为本发明实施例2的基于安全总线的数据同步方法的步骤S105的第二流程图。
具体实施方式
下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
实施例1
如图1所示,本实施例提供一种基于安全总线的数据同步方法,该基于安全总线的数据同步方法应用于冗余控制装置,该冗余控制装置包括多个互为冗余的计算机模块,多个互为冗余的计算机模块之间通过安全总线进行通信,如图1所示,该数据同步方法包括:
S101、将每个计算机模块划分为多个数据存储区域,该数据存储区域包括本地数据存储区域和映射数据存储区域;
需要说明的是,数据存储区域的数量与计算机模块的数量一致,例如,如图2所示,冗余控制装置包括三个互为冗余的计算机模块,三个互为冗余的计算机模块分别为计算机模块A、计算机模块B和计算机模块C,计算机模块A、计算机模块B和计算机模块C之间在进行数据传输时,物理层采用LVDS差分总线,经由背板传输,且采用点对点的通信方式,单发单收。
每个计算机模块分别划分为三个数据存储区域,具体地,计算机模块A包括计算机模块A的本地数据存储区域、计算机模块B的映射数据存储区域以及计算机模块C的映射数据存储区域;计算机模块B包括计算机模块B的本地数据存储区域、计算机模块A的映射数据存储区域以及计算机模块C的映射数据存储区域;计算机模块C包括计算机模块C的本地数据存储区域、计算机模块A的映射数据存储区域以及计算机模块B的映射数据存储区域;
需要说明的是,本地数据存储区域中的目标数据除了保存在自身本地数据存储区域内,也分别保存至另外两个计算机模块中的内存相应的映射数据存储区域,另两个计算机模块中的内存数据也分别保存至其他两个计算机模块相应的映射数据存储区域,三个计算机模块之间的数据互为冗余存储。
例如,计算机模块A的本地数据存储区域中的目标数据既存储在计算机模块A的本地数据存储区域内,同时该计算机模块A的本地数据存储区域中的目标数据还分别存储至计算机模块B的映射数据存储区域(即存储在计算机模块B中相应的计算机模块A数据存储区域)以及计算机模块C的映射数据存储区域(即存储在计算机模块C中相应的计算机模块A数据存储区域)。
本实施例中,其中一个计算机模块的本地数据存储区域既可以读取数据,也可以写入数据(即可读写);该计算机模块的另外两个映射数据存储区域分别是其他两个计算机模块的映射数据存储区域,映射数据存储区域只能读取数据。
例如,计算机模块A的本地数据存储区域、计算机模块B的本地数据存储区域以及计算机模块C的本地数据存储区域均可读写数据;计算机模块A中相应的计算机模块B数据存储区域和计算机模块C数据存储区域、计算机模块B中相应的计算机模块A数据存储区域和计算机模块C数据存储区域以及计算机模块C中相应的计算机模块A数据存储区域和计算机模块B数据存储区域均只能读取数据。
S102、获取作为发送端的计算机模块的本地数据存储区域中的目标数据;
S103、将目标数据按照预设数据帧格式打包成数据包;
本实施例中,预设数据帧格式为安全总线协议帧格式,该安全总线协议帧格式包括帧头、帧索引、待传输数据、校验值以及帧尾。
S104、基于安全总线将数据包同步传输至作为接收端的计算机模块相应的映射数据存储区域。
本实施例中,安全总线的物理层包括LVDS、RS485、RS422和SPI中的至少一种。
需要说明的是,多个计算机模块之间在进行数据传输时,安全总线的物理层除了采用LVDS差分总线外,还可以采用其他传输方式,例如还可以采用RS485、RS422或者SPI等,在数据传输时,基于SIL3(安全完整性等级里的第三等级)安全认证的要求,采用包括但不限于UART(通用异步收发传输器)串口协议,并且按照基于安全总线的协议数据帧格式将目标数据打包成数据包;再基于安全总线将数据包同步传输至作为接收端的计算机模块相应的映射数据存储区域,以实现多个计算机模块之间的数据交互和数据同步。
在具体实施过程中,每个计算机模块可以作为发送端或者接收端,例如,以作为发送端的计算机模块为计算机模块A,作为接收端的计算机模块分别为计算机模块B以及计算机模块C为例,三个计算机模块在进行数据传输时,将获取的计算机模块A的本地数据存储区域中的目标数据按照预设数据帧格式打包成数据包;再基于安全总线将数据包同步传输至计算机模块B以及计算机模块C相应的映射数据存储区域,具体地,基于安全总线将数据包同步传输至计算机模块B中相应的计算机模块A数据存储区域以及计算机模块C中相应的计算机模块A数据存储区域,实现了冗余控制装置中三个计算机模块之间的数据交互和数据同步,以方便数据备份及后续数据处理,提高了冗余控制装置的可靠性。
实施例2
本实施例的基于安全总线的数据同步方法是对实施例1的进一步改进,具体地:
在步骤S104之后,如图3所示,该数据同步方法还包括:
S105、对传输的所述数据包进行校验,若校验未通过,则向作为发送端的计算机模块发送重传指令;
本实施例中,作为接收端的计算机模块对传输的数据包进行校验,若校验未通过,则作为接收端的计算机模块向作为发送端的计算机模块发送重传指令。
S106、根据重传指令将数据包重新同步传输至作为接收端的计算机模块相应的映射数据存储区域。
本实施例中,作为发送端的计算机模块根据接收到的重传指令将数据包重新同步传输至作为接收端的计算机模块相应的映射数据存储区域。
在一可实施的方案中,如图4所示,步骤S105包括:
S1051、计算作为发送端的计算机模块的数据包的第一CRC校验值;
本实施例中,作为发送端的计算机模块计算数据包的第一CRC校验值,并将数据包与计算得到的第一CRC校验值一起传输到作为接收端的计算机模块;作为接收端的计算机模块将接收到的作为发送端的计算机模块传输的数据包以及第一CRC校验值进行保存。
S1052、计算作为接收端的计算机模块接收到的作为发送端的计算机模块传输的数据包的第二CRC校验值;
本实施例中,作为接收端的计算机模块计算接收到的作为发送端计算机模块传输的数据包的第二CRC校验值。
S1053、若第一CRC校验值与第二CRC校验值不相同,则校验未通过。
本实施例中,在数据帧中添加CRC校验,并在数据帧头增加索引字节,以区别每一帧数据,这样每一帧数据的CRC校验值都会根据索引的变化而变化。通过增加索引字节的CRC校验能够防止丢帧,以及防止出现通信故障时,作为发送端的计算机模块重复不断的传输数据缓冲区域的数据,导致无法判断出出现通信故障的原因。
在一可实施的方案中,如图5所示,步骤S105还包括:
S10511、获取作为接收端的计算机模块接收到的数据包的索引累加值;
S10512、若索引累加值不等于预设索引值,则校验未通过。
需要说明的是,预设索引值是正常通信状态下作为接收端的计算机模块自行累计的实际索引值。
本实施例中,计算机模块的本地数据存储区域与外部计算机模块的通信采用基于安全总线的UART串口总线,能够实现出错检验、数据重传,链路故障报警等功能。
本实施例中,通过索引既可以判断出出现通信故障的原因,同时也可以判断出作为接收端的计算机模块是否丢帧以及丢帧的数量,以方便对通信状态进行监视。
在一可实施的方案中,计算机模块包括状态寄存器,该状态寄存器用于标识计算机模块的工作状态。
在一可实施的方案中,在步骤S105之后,该数据同步方法还包括:
若连续接收到作为接收端的计算机模块发送的重传指令的次数大于等于预设次数,则作为相应发送端的计算机模块的标志位为“错误”。具体地,若连续接收到作为接收端的计算机模块发送的重传指令的次数大于等于预设次数,则作为相应发送端的计算机模块的状态寄存器标志位为“错误”。
本实施例中,预设次数根据实际情况进行设置,例如预设次数优选设置为3次,也可以设置为其他数值,此处不做具体限定。
若作为接收端的计算机模块在预设时长内未接收到传输的所述数据包,则作为相应发送端的计算机模块的标志位为“离线”。具体地,若作为接收端的计算机模块在预设时长内未接收到传输的所述数据包,则作为相应发送端的计算机模块的状态寄存器标志位为“离线”。
本实施例中,预设时长根据实际情况进行设置,例如预设时长优选设置为1ms,也可以设置为其他数值,此处不做具体限定。
本实施例中,当作为发送端的计算机模块的本地数据存储区域中的数据更新后,FPGA(可编程逻辑门阵列)遵循如表1所示的基于安全总线协议的更新数据帧格式,按照UART协议,帧索引递增,计算CRC校验值,并对其他作为接收端的计算机模块发送内存更新数据;
表1
定义 宽度(byte) 值(16进制) 描述
HEAD 4 0000aaa0 帧头:数据更新
INDEX 4 -- 每帧递增
DATA 64 -- 固定64BYTE
CRC 4 -- CRC校验
END 4 00005555 帧结束
接收其他作为接收端的计算机模块对相应内存空间的更新数据,并根据帧索引和CRC进行校验。如出错,则对作为发送端的计算机模块发送出错重传指令并接收重传数据。
如作为发送端的计算机模块接收到其他作为接收端的计算机模块发送的出错重传指令,则根据如表2所示的基于安全总线协议的重传数据帧格式,帧索引不变,对其他作为接收端的计算机模块重传内存数据;若连续3次出错重传,则相应的寄存器“错误”标志置位;
本实施例中,在数据发送或接收期间,计算机模块的相应的寄存器“数据忙”标志置位。
若作为接收端的计算机模块在1ms内没有数据输入,则计算机模块的相应的寄存器“离线”标志置位。
表2
定义 宽度(byte) 值(16进制) 描述
HEAD 4 0000aaa2 帧头:数据重传
INDEX 4 -- 同重传帧
DATA 64 -- 固定64BYTE
CRC 4 -- CRC校验
END 4 00005555 帧结束
本实施例通过将冗余控制装置中的每个计算机模块划分为多个数据存储区域,获取作为发送端的计算机模块的本地数据存储区域中的目标数据;将目标数据按照预设数据帧格式打包成数据包;基于安全总线将数据包同步传输至作为接收端的计算机模块相应的映射数据存储区域,实现了冗余控制装置中多个计算机模块之间的数据交互和数据同步,提高了冗余控制装置的可靠性。
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。

Claims (7)

1.一种基于安全总线的数据同步方法,其特征在于,所述基于安全总线的数据同步方法应用于冗余控制装置,所述冗余控制装置包括多个互为冗余的计算机模块,多个互为冗余的所述计算机模块之间通过所述安全总线进行通信,所述数据同步方法包括:
将每个所述计算机模块划分为多个数据存储区域,所述数据存储区域包括本地数据存储区域和映射数据存储区域;
本地数据存储区域中的目标数据除了保存在自身本地数据存储区域内,也分别保存至其他计算机模块中的内存相应的映射数据存储区域,各个计算机模块之间的数据互为冗余存储;
计算机模块的本地数据存储区域既用于读取数据,也用于写入数据;计算机模块其他的映射数据存储区域分别是其他计算机模块的映射数据存储区域,映射数据存储区域只能读取数据;
获取作为发送端的计算机模块的本地数据存储区域中的目标数据;
将所述目标数据按照预设数据帧格式打包成数据包;基于所述安全总线将所述数据包同步传输至作为接收端的计算机模块相应的映射数据存储区域;
对传输的所述数据包进行校验,获取所述作为接收端的计算机模块接收到的数据包的索引累加值;
若所述索引累加值不等于预设索引值,则校验未通过,若校验未通过,则向所述作为发送端的计算机模块发送重传指令;
根据所述重传指令将所述数据包重新同步传输至所述作为接收端的计算机模块相应的映射数据存储区域。
2.如权利要求1所述的基于安全总线的数据同步方法,其特征在于,所述对传输的所述数据包进行校验的步骤包括:
计算所述作为发送端的计算机模块的数据包的第一CRC校验值;
计算所述作为接收端的计算机模块接收到的所述作为发送端的计算机模块传输的数据包的第二CRC校验值;
若所述第一CRC校验值与所述第二CRC校验值不相同,则校验未通过。
3.如权利要求1所述的基于安全总线的数据同步方法,其特征在于,所述接收所述作为接收端的计算机模块发送的重传指令的步骤之后,所述数据同步方法还包括:
若连续接收到所述作为接收端的计算机模块发送的重传指令的次数大于等于预设次数,则所述作为相应发送端的计算机模块的标志位为错误。
4.如权利要求1所述的基于安全总线的数据同步方法,其特征在于,所述数据同步方法还包括:
若所述作为接收端的计算机模块在预设时长内未接收到传输的所述数据包,则所述作为相应发送端的计算机模块的标志位为离线。
5.如权利要求1所述的基于安全总线的数据同步方法,其特征在于,计算机模块在传输数据包或者接收数据包的过程中,所述计算机模块的标志位为数据忙。
6.如权利要求1所述的基于安全总线的数据同步方法,其特征在于,所述安全总线的物理层包括LVDS、RS485、RS422和SPI中的至少一种。
7.如权利要求1所述的基于安全总线的数据同步方法,其特征在于,所述计算机模块包括状态寄存器,所述状态寄存器用于标识所述计算机模块的工作状态。
CN202111254938.2A 2021-10-27 基于安全总线的数据同步方法 Active CN114047728B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111254938.2A CN114047728B (zh) 2021-10-27 基于安全总线的数据同步方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111254938.2A CN114047728B (zh) 2021-10-27 基于安全总线的数据同步方法

Publications (2)

Publication Number Publication Date
CN114047728A CN114047728A (zh) 2022-02-15
CN114047728B true CN114047728B (zh) 2024-06-28

Family

ID=

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109542342A (zh) * 2018-11-09 2019-03-29 锐捷网络股份有限公司 元数据管理与数据重构方法、设备及存储介质
CN112327600A (zh) * 2020-10-28 2021-02-05 中国核动力研究设计院 一种冗余控制器的数据同步方法、冗余控制器及仪控系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109542342A (zh) * 2018-11-09 2019-03-29 锐捷网络股份有限公司 元数据管理与数据重构方法、设备及存储介质
CN112327600A (zh) * 2020-10-28 2021-02-05 中国核动力研究设计院 一种冗余控制器的数据同步方法、冗余控制器及仪控系统

Similar Documents

Publication Publication Date Title
CN101876963B (zh) PCI.Express通信系统及其通信方法
US8576707B2 (en) Method and apparatus for bus coupling of safety-relevant processes
US4633473A (en) Fault tolerant communications interface
US8332729B2 (en) System and method for automatic communication lane failover in a serial link
JP4195272B2 (ja) Can−コントローラ内部のデータ伝送におけるエラーの認識方法,can−コントローラ,プログラム,記録媒体,及び制御装置
KR102099789B1 (ko) 버스 시스템용 가입자 국, 그리고 버스 시스템의 가입자 국들 간의 메시지 전송 방법
CN106487673A (zh) 一种基于三模冗余的检错重传容错路由单元
CN100452692C (zh) 用于数据传输的方法
CN114047728B (zh) 基于安全总线的数据同步方法
CN103685578A (zh) 主从设备的数据传输方法
KR100717572B1 (ko) 에러 검출 정정 장치의 제어 방법, 에러 검출 정정 장치,정보 처리 시스템, 에러 검출 정정 장치의 제어 프로그램,데이터 처리 장치
CN106850369A (zh) 一种安全级dcs高速冗余总线通信方法
US20240103964A1 (en) Method and system for fault-tolerant data communication
CN114047728A (zh) 基于安全总线的数据同步方法
CN113722770B (zh) 基于分级的数据完整性的端到端的保护方法及系统
CN112249088A (zh) 双显示系统互诊断与数据同步的方法、双显示系统和列车
CN112328524B (zh) 一种can与uart协议互转通信保障方法
JP2010508683A (ja) データ伝送ブロックの送信方法、並びに、データ伝送ブロックの伝送方法、およびデータ伝送ブロックを伝送するためのシステム
JP2644571B2 (ja) 遠隔ipl制御方式
CN113098673B (zh) 基于串行链路镜像缓存的全双工通讯装置
US20230269062A1 (en) Communication apparatus and communication system
US20090210610A1 (en) Computer system, data relay device and control method for computer system
CN114248820A (zh) 一种列控中心与轨道电路的通信方法
CN117873514A (zh) 用于安全计算机平台的在线更新系统、方法、设备及介质
JPS636938A (ja) 分散制御システム

Legal Events

Date Code Title Description
PB01 Publication
SE01 Entry into force of request for substantive examination
GR01 Patent grant