CN114281748A - 一种安全数据库、安全数据处理系统及方法 - Google Patents
一种安全数据库、安全数据处理系统及方法 Download PDFInfo
- Publication number
- CN114281748A CN114281748A CN202111623919.2A CN202111623919A CN114281748A CN 114281748 A CN114281748 A CN 114281748A CN 202111623919 A CN202111623919 A CN 202111623919A CN 114281748 A CN114281748 A CN 114281748A
- Authority
- CN
- China
- Prior art keywords
- data
- database
- local
- remote
- security
- 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.)
- Granted
Links
- 238000012545 processing Methods 0.000 title claims abstract description 193
- 238000000034 method Methods 0.000 title claims abstract description 45
- 231100000279 safety data Toxicity 0.000 title claims abstract description 9
- 238000013507 mapping Methods 0.000 claims abstract description 43
- 238000003672 processing method Methods 0.000 claims abstract description 27
- 101100217298 Mus musculus Aspm gene Proteins 0.000 claims abstract description 8
- 239000000872 buffer Substances 0.000 claims description 36
- 238000004891 communication Methods 0.000 claims description 23
- 101001096169 Homo sapiens Phosphatidylserine decarboxylase proenzyme, mitochondrial Proteins 0.000 claims description 9
- 102100037908 Phosphatidylserine decarboxylase proenzyme, mitochondrial Human genes 0.000 claims description 9
- 238000012795 verification Methods 0.000 claims description 9
- 238000013506 data mapping Methods 0.000 claims description 7
- 230000011664 signaling Effects 0.000 claims description 5
- 230000008569 process Effects 0.000 abstract description 23
- 238000012423 maintenance Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 6
- 230000009471 action Effects 0.000 description 3
- 230000003111 delayed effect Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012512 characterization method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 101000879675 Streptomyces lavendulae Subtilisin inhibitor-like protein 4 Proteins 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种安全数据库、安全数据处理系统及方法,所述安全数据库包括:输出数据处理数据库POP_DB,和反馈数据处理数据库PUSH_DB,提供网络、CAN总线、API 3种数据读写接口,明确各接口的读写权限和数据流向,用安全数据库集中进行数据处理,有效避免传统的分散处理所带来的可靠性差,维护困难的问题。并提供一种基于2oo2架构的安全数据处理方法,采用组合故障安全原理,保证在两个独立运行的CPU上的安全数据库一致性。同时,对来自网络和CAN总线的映射中的数据采取CRC保护,对安全数据库整体采取SHA1算法保护,保证数据的处理过程和处理结果的完整性和正确性。本发明提高了数据处理的可靠性和安全性。
Description
技术领域
本发明涉及轨道交通的安全通讯技术领域,特别涉及一种安全数据库、安全数据处理系统及方法。
背景技术
站台门控制系统是保障城市轨道交通安全平稳运行的一个重要环节,一种新型的高安全站台门控制系统(PSDC)直接接收车载系统通信控制命令,提高了运行效率。该PSDC主要由安全通信子系统和驱动采集子系统组成,安全通信子系统通过网络与外部信号设备进行安全通信,外部信号设备至少包括车载系统和联锁系统;安全通信子系统通过CAN总线和驱动采集子系统交互站台门的驱动和采集数据,针对长短编组混跑、折返路线不固定的运营模式,驱动采集子系统的数量不尽相同。实现多个网络节点数据和多个CAN节点数据的安全处理是保证PSDC系统安全可靠的核心和关键。
目前常见的数据处理方法如透传、简单合帧、编码等,不能满足多个网络节点和CAN节点数据统一处理的场景,存在数据处理分散、可靠性差、运算性能低下等问题,亟需设计一种安全、可靠、高效、可复用的安全数据处理方法。
发明内容
本发明的目的是提供一种支持网络和总线通信的安全数据库及安全数据处理方法,以实现提高数据处理的安全可靠性的目的。
为了实现以上目的,本发明通过以下技术方案实现:
一种安全数据库,包括:输出数据处理数据库POP_DB,用于保存并处理输出数据。反馈数据处理数据库PUSH_DB,用于保存并处理反馈数据。
网络写入接口和网络读取接口,所述网络写入接口与所述输出数据处理数据库POP_DB连接,用于将来自外部信号设备的多个网络节点的数据写入所述输出数据处理数据库POP_DB,所述网络读取接口与所述反馈数据处理数据库PUSH_DB连接,用于从所述反馈数据处理数据库PUSH_DB中读取数据发往外部信号设备。
CAN写入接口和CAN读取接口,所述CAN写入接口与所述反馈数据处理数据库PUSH_DB连接,用于将来自驱动采集子系统的多个CAN节点的数据写入所述反馈数据处理数据库PUSH_DB,所述CAN读取接口与所述输出数据处理数据库POP_DB连接,用于从所述输出数据处理数据库POP_DB中读取数据发往驱动采集子系统。
API写入接口和API读取接口,所述API写入接口和所述API读取接口分别与所述输出数据处理数据库POP_DB连接,所述API写入接口和所述API读取接口分别与所述反馈数据处理数据库PUSH_DB连接,所述API写入接口用于将来自应用程序接口API的数据写入所述输出数据处理数据库POP_DB和/或所述反馈数据处理数据库PUSH_DB,所述API读取接口用于从所述输出数据处理数据库POP_DB和/或所述反馈数据处理数据库PUSH_DB中读取数据发往应用程序接口API。
可选地,所述输出数据为来源于外部信号设备的网络数据;所述反馈数据为来源于驱动采集子系统的多个CAN节点的总线数据;所述网络数据为经校验通过并解析掉安全协议头后得到的第一安全纯数据;所述总线数据为经校验通过并解析掉安全协议头后得到的第二安全纯数据。
可选地,还包括:配置接口,其分别与所述输出数据处理数据库POP_DB和所述反馈数据处理数据库PUSH_DB连接,用于接收来自外部配置装置的配置数据。
可选地,所述配置数据中定义了网络节点个数、CAN节点个数、映射个数、每个映射的长度、以及每个映射对应的网络节点、在网络节点消息中的起始位、对应的PDO格式数据和在该PDO格式数据中的起始位信息。
可选地,所述输出数据处理数据库POP_DB同时处理若干个输出数据,每个输出数据设有若干个驱动码位;所述反馈数据处理数据库PUSH_DB同时处理若干个反馈数据,每个反馈数据设有若干个采集码位。
另一方面,本发明还提供一种安全数据处理系统,包括:相互连接的本地CPU和远端CPU,所述本地CPU和所述远端CPU上都分别设置两个如上文所述的安全数据库,其中一个安全数据库作为奇数安全数据库,另一个安全数据库作为偶数安全数据库。
再一方面,本发明还提供一种安全通信子系统,其用于高安全站台门控制系统PSDC,所述安全通信子系统包含如上文所述的安全数据处理系统。
其他方面,本发明还提供一种高安全站台门控制系统包括:如上文所述的安全通信子系统。应用程序接口API,其分别通过所述API读取接口和API写入接口与所述安全数据库连接。外部信号设备,其通过以太网分别与所述网络写入接口和所述网络读取接口连接;以及驱动采集子系统,其通过CAN总线分别与所述CAN写入接口和所述CAN读取接口连接。所述外部信号设备与所述安全数据库交互网络数据。所述驱动采集子系统与所述安全数据库交互总线数据。所述网络数据经校验通过并解析掉安全协议头后得到的第一安全纯数据提交给所述安全数据库内进行处理。所述总线数据经校验通过并解析掉安全协议头后得到的第二安全纯数据提交给所述安全数据库内进行处理。所述应用程序接口API用于将从所述安全数据库内所读取的数据进行逻辑运算后以所述第一安全纯数据的格式反馈给所述安全数据库内。
可选地,所述外部信号设备包括若干个网络节点;所述驱动采集子系统包括:若干个CAN节点。
可选地,所述外部信号设备输出的第一安全纯数据通过所述网络写入接口写入所述输出数据处理数据库POP_DB中;所述应用程序接口API通过所述API读取接口读取所述输出数据处理数据库POP_DB,并对读取到所述第一安全纯数据进行逻辑运算后,通过所述API写入接口写入所述输出数据处理数据库POP_DB。所述CAN读取接口读取所述输出数据处理数据库POP_DB中的第一安全纯数据;并将读取到的所述第一安全纯数据对应发往所述驱动采集子系统中。所述驱动采集子系统反馈的所述第二安全纯数据通过所述CAN写入接口写入所述反馈数据处理数据库PUSH_DB中,所述应用程序接口API通过所述API读取接口读取所述反馈数据处理数据库PUSH_DB中的所述第二安全纯数据,对所述第二安全纯数据进行逻辑运算后通过所述API写入接口写入所述反馈数据处理数据库PUSH_DB中。所述网络读取接口从所述反馈数据处理数据库PUSH_DB中读取所述第二安全纯数发往所述外部信号设备。
其他方面,本发明还提供一种安全数据处理方法,其采用如上文所述的安全数据处理系统进行实现,所述方法包括:将第一安全纯数据和/或第二安全纯数据通过写接口分别输入至所述本地安全数据库和所述远端安全数据库;所述本地安全数据库对接收到的所述第一安全纯数据和/或第二安全纯数据进行筛选得到本地代表性数据,并将所述本地代表性数据按照预设格式进行打包,得到本地2oo2数据。所述远端安全数据库对接收到的所述第一安全纯数据和/或第二安全纯数据进行筛选得到远端代表性数据,并将所述远端代表性数据按照预设格式进行打包,得到远端2oo2数据。
将所述远端2oo2数据发送给所述本地安全数据库。所述本地安全数据库对接收到的所述远端2oo2数据进行解析并与所述本地2oo2数据进行2oo2一致性比较,得到比较结果,并根据所述比较结果对所述待处理数据进行数据映射和数据更新。以及,将所述本地2oo2数据发送给所述远端安全数据库。
所述远端安全数据库对接收到的所述本地2oo2数据进行解析并与所述远端2oo2数据进行2oo2一致性比较,得到比较结果,并根据所述比较结果对所述待处理数据进行数据映射和数据更新。
可选地,所述代表性数据包括了可以表征所述第一安全纯数据和/或第二安全纯数据的表征信息以及上周期安全数据库处理结果的表征信息。
可选地,所述本地2oo2数据和远端2oo2数据格式相同,所述本地2oo2数据的数据格式包括如下字段信息的数据包:
DbId:本地活跃数据库的周期号,每周期自增1。
SHA:本地活跃数据库的160位摘要,采用SHA1算法对整个本地活跃数据库加密计算得到的哈希值。
PDO_RevFlag[n1]:n1位二进制值,每一位表示一个PDO格式数据是否接收到,最多有n1个PDO格式数据。
PDO_CRC[n1]:n1个PDO格式数据的CRC值,对每个PDO格式数据计算16位的CCITT-CRC16。
Block_CRC[n2]:一个所述第一安全纯数据占用一个Block_Buffer,该字段表示n2个Block_Buffer的CRC值,n2为所使用的Block_Buffer的个数,对每个Block_Buffer计算32位的CCITT-CRC32,最多有n2个Block_Buffer数据格式的数据。
Block_Prio[n3]:n3个Block_Buffer的线程优先级,表示调用写接口提交该Block_Buffer的线程的任务优先级。
可选地,所述本地安全数据库将所述远端2oo2数据与本地2oo2数据进行一致性对比的步骤包括:当两者的所述DbId一致时,则保证所述本地安全数据库和所述远端安全数据库的处理周期一致,不一致则所述本地CPU宕机。两者的所述SHA一致时,则保证所述本地安全数据库的哈希值和所述远端安全数据库的哈希值相同,不一致则所述本地CPU宕机。记录所述远端2oo2数据的PDO_RevFlag[42]、PDO_CRC[42]、Block_CRC[n2]和Block_Prio[n3]字段信息。
可选地,所述本地安全数据库还用于将多个所述第一安全纯数据映射到所述本地安全数据库中。所述本地安全数据库还用于将多个所述第二安全纯数据映射到所述本地安全数据库中。
可选地,将多个所述第一安全纯数据映射到所述本地安全数据库的步骤包括:判断所述远端2oo2数据中的Block_CRC[n2]和Block_Prio[n3]中所使用的Block_Buffer的个数n2和n3是否相同,不同则将所述本地CPU宕机。相同,则在本地2oo2数据中寻找与所述远端2oo2数据中的Block_Prio[x]相等的Block_Prio,进而找到该Block_Prio对应的Block_Buffer,其中,此处x表示第x个Block_Prio。判断该Block_Buffer对应的所述本地2oo2数据中的Block_CRC和所述远端2oo2数据中的Block_CRC是否相同,若不相同,则本地CPU宕机。
若相同,则所述本地安全数据库将所述第一安全纯数据映射为PDO格式数据,直至所有所述第一安全纯数据都映射为PDO格式数据后,再将所述PDO格式数据映射到所述本地安全数据库,释放当前Block_Buffer。
所述本地安全数据库在本地2oo2数据中找不到与所述远端2oo2数据中相等的Block_Prio[x],则本周期更新失败,连续失败次数递增1,进行宽恕处理,连续失败次数达到阈值后,所述本地CPU宕机。
可选地,所述多个第二安全纯数据映射到所述本地安全数据库的步骤包括:如果所述本地2oo2数据和所述远端2oo2数据中的PDO_RevFlag[x]都为真值。对所述本地2oo2数据和所述远端2oo2数据中的PDO_CRC[x]进行比较,若两者的所述PDO_CRC[x]相同,其中,此处x表示第x个PDO格式数据。
则将所述第二安全纯数据映射为PDO格式数据,直至所有所述第二安全纯数据都映射为PDO格式数据后,再将所述PDO格式数据映射进所述本地安全数据库。若两者的所述PDO_CRC[x]不相同,则所述本地CPU宕机。所述本地2oo2数据中的PDO_RevFlag[x]和所述远端2oo2数据中的PDO_RevFlag[x]有任何一个为假,则所述本地安全数据库认为该PDO格式数据没有收到,该PDO格式数据采用上个周期的值进行宽恕,达到宽恕周期后置为安全侧的值。
可选地,根据所述本地活跃数据库的周期号DbId交替使用所述奇数安全数据库或所述偶数安全数据库作为活跃数据库,所述周期号为奇数时,使用所述奇数安全数据库作为本地活跃数据库,所述偶数安全数据库作为本地备用数据库;所述周期号为偶数时,使用所述偶数安全数据库作为本地活跃数据库,奇数安全数据库作为本地备用数据库。
根据所述远端活跃数据库的周期号DbId交替使用所述奇数安全数据库或所述偶数安全数据库作为活跃数据库,所述周期号为奇数时,使用所述奇数安全数据库作为远端活跃数据库,所述偶数安全数据库作为远端备用数据库;所述周期号为偶数时,使用所述偶数安全数据库作为远端活跃数据库,奇数安全数据库作为远端备用数据库。
可选地,还包括:更新所述本地安全数据库:更新所述本地活跃数据库的周期号DbId;更新所述本地活跃数据库的哈希值;更新所述远端安全数据库:更新所述远端安全数据库的远端活跃数据库的周期号DbId;更新所述远端活跃数据库的哈希值。
可选地,还包括:所述本地安全数据库判断是否开始新的安全数据处理周期;判断是否等到数据处理信号,每隔固定时间会等到一次数据处理信号,若等到时,则开始下个周期的安全数据处理;如没有等到,则继续等待。
可选地,还包括:读接口读取安全数据库时:所述远端CPU读取当前远端活跃数据库的周期号DbId下的所述远端活跃数据库;将当前所述远端活跃数据库的周期号DbId发送给所述本地CPU,所述本地CPU根据接收的所述远端活跃数据库的周期号DbId,判断和所述本地活跃数据库的周期号DbId是否相同,若相同,则读取本地活跃数据库。若不相同,则所述本地CPU再判断和所述本地备用数据库的周期号DbId是否相同,若相同,则读取所述本地备用数据库;若不相同,则报错。
本发明至少具有以下优点之一:
本发明的第一方面提供一个支持网络和总线通信的安全数据库,提高了数据处理的可靠性,本发明采用POP_DB和PUSH_DB两个子数据库,提供3种数据库读写方式,明确各接口的读写权限和数据流向,将数据处理过程全部集中在安全数据库中,有效避免传统的分散处理所带来的可靠性差,维护困难的问题。
本发明还相当于是提供一种可供用户配置的映射方法(即配置网络节点数、CAN节点数,各映射信息等),支持用户灵活配置多个网络节点和CAN节点的映射信息,满足不同的运营模式和场景。
本发明所提供的一种安全通信子系统,其具有安全数据库,由此使得基于该安全数据处理方法的PSDC系统达到SIL4安全完整性水平。
本发明所提供的一种支持网络和总线通信的安全数据处理方法,提高了数据处理的安全性。其本质是一种基于2oo2架构的安全数据处理方法。采用组合故障安全原理,保证在两个独立运行的CPU(本地CPU和远端CPU)上的数据库一致性。
本发明所提供的安全数据处理方法对来自网络和CAN总线的映射中的数据采取CRC保护,对安全数据库(本地安全数据库和远端安全数据库)整体采取SHA1算法保护,保证数据的处理过程和处理结果的完整性和正确性。
对来自网络和CAN总线的数据进行宽恕处理,保证数据的时效性。
对进行2oo2的数据进行筛选和打包,提高数据同步的性能,即提高2oo2的性能。
本发明提供的安全数据处理方法对每一个来自网络的数据的CRC和优先级进行2oo2,在两个CPU(本地CPU和远端CPU)上根据数据的优先级找到数据对应关系,对相同优先级的数据通过CRC比较一致性。对每一个来自CAN的数据的接收标志和PDO的CRC进行2oo2,在两个CPU上根据PDOId以及接收标志找到数据对应关系,通过CRC比较数据一致性。对找不到对应关系的数据进行宽恕处理,宽恕周期满后导向安全侧。
采用SHA1算法对整个数据库计算哈希值,每周期对安全数据库的周期号DbId和哈希值进行2oo2一致性比较,保证数据的完整性。
采用奇偶数据库按周期交替使用的方法,以两个CPU中任意一个CPU读的时刻为基准,如以远端CPU读的时刻为基准,远端CPU读取好自己的当前远端安全数据库,将其DbId通知给本地CPU,本地CPU根据DbId读取对应的奇数或偶数安全数据库,保证双CPU读取的是同一时刻的安全数据库,从而保证双CPU上读取数据的正确性。即采用双数据库方法解决2oo2架构下线程读写的时序偏差,保证双CPU上读取数据的正确性。
支持用户灵活配置多个网络节点和CAN节点的映射信息,可以满足长短编组混跑、折返路线不固定等多种运营模式。
处理安全纯数据,不受外部信号设备采用的安全协议的限制,不仅可用于PSDC,还可以在联锁、列控等相似架构的产品中复用。
附图说明
图1为本发明一实施例提供的安全数据库应用到PSDC系统后的主要结构示意图;
图2为本发明一实施例提供的支持网络和总线通信的安全数据处理方法示意图。
具体实施方式
以下结合附图和具体实施方式对本发明提出的一种支持网络和总线通信的安全数据库及安全数据处理方法作进一步详细说明。根据下面说明,本发明的优点和特征将更清楚。需要说明的是,附图采用非常简化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本发明实施方式的目的。为了使本发明的目的、特征和优点能够更加明显易懂,请参阅附图。须知,本说明书所附图式所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本发明实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本发明所能产生的功效及所能达成的目的下,均应仍落在本发明所揭示的技术内容能涵盖的范围内。
实施例一
如图1所示,本实施例提供一种安全数据库,提供3种数据库读写方式,明确各接口的读写权限和数据流向,将数据处理过程全部集中在安全数据库中。安全数据库包括:输出数据处理数据库POP_DB,用于保存并处理输出数据。反馈数据处理数据库PUSH_DB,用于保存并处理反馈数据。
网络写入接口和网络读取接口,所述网络写入接口与所述输出数据处理数据库POP_DB连接,用于将来自外部信号设备的多个网络节点的数据写入所述输出数据处理数据库POP_DB,所述网络读取接口与所述反馈数据处理数据库PUSH_DB连接,用于从所述反馈数据处理数据库PUSH_DB中读取数据发往外部信号设备。
CAN写入接口和CAN读取接口,所述CAN写入接口与所述反馈数据处理数据库PUSH_DB连接,用于将来自驱动采集子系统的多个CAN节点的数据写入所述反馈数据处理数据库PUSH_DB,所述CAN读取接口与所述输出数据处理数据库POP_DB连接,用于从所述输出数据处理数据库POP_DB中读取数据发往驱动采集子系统。
API写入接口和API读取接口,所述API写入接口和所述API读取接口分别与所述输出数据处理数据库POP_DB连接,所述API写入接口和所述API读取接口分别与所述反馈数据处理数据库PUSH_DB连接,所述API写入接口用于将来自应用程序接口API的数据写入所述输出数据处理数据库POP_DB和/或所述反馈数据处理数据库PUSH_DB,所述API读取接口用于从所述输出数据处理数据库POP_DB和/或所述反馈数据处理数据库PUSH_DB中读取数据发往应用程序接口API。
在本实施例中,所述输出数据处理数据库POP_DB用于处理输出(驱动)数据TPDO,所述反馈数据处理数据库PUSH_DB用于处理反馈(采集)数据RPDO。
所述输出数据TPDO为PDO格式数据,所述反馈数据RPDO为PDO格式数据。
具体将相应的PDO格式数据写入输出数据处理数据库POP_DB或反馈数据处理数据库PUSH_DB中的映射过程参见如下文所述的第一安全纯数据和第二安全纯数据的映射存储过程,在此不再赘述。
所述输出数据可以为来源于网络的网络数据,即例如可以为下文所述的第一安全纯数据,所述反馈数据可以为来源于CAN总线上的总线数据,例如可以为下文所述第二安全纯数据,但本发明不以此为限。
在本实施例中,还包括:配置接口,其分别与所述输出数据处理数据库POP_DB和所述反馈数据处理数据库PUSH_DB连接,用于接收来自外部配置装置的配置数据,配置数据中定义了网络节点个数、CAN节点个数、映射个数、每个映射的长度、以及每个映射对应的网络节点、在网络节点消息中的起始位、对应的PDO格式数据和在该PDO格式数据中的起始位信息。
可以理解的是,配置中包括网络消息和CAN消息之间的映射关系,具体的映射过程可参见如下文实施例中的所述步骤S3.4的内容。
为了便于理解,下面举个例子:比如一个映射对应第1个网络节点信息,在该网络信息中的起始位为1,映射长度为1,对应第一个PDO格式数据,在该PDO中的起始位置为2,则根据该映射,可以将第一个网络节点的第一位消息映射到第1个PDO格式数据的第2位。CAN消息采用CAN_PDO格式数据,此处的PDO格式数据指除去安全保护部分的纯数据,第二安全纯数据。
所述输出数据处理数据库POP_DB同时处理若干个输出(驱动)数据TPDO,每个输出(驱动)数据TPDO设有若干个驱动码位。
所述反馈数据处理数据库PUSH_DB同时处理若干个反馈(采集)数据RPDO,每个反馈(采集)数据RPDO设有若干个采集码位。
由此,所述安全数据库包括:处理输出数据的输出数据处理数据库POP_DB,和处理反馈数据的反馈数据处理数据库PUSH_DB,提供网络、CAN总线、API 3种数据读写接口,明确各接口的读写权限和数据流向,用安全数据库集中进行数据处理,有效避免传统的分散处理所带来的可靠性差,维护困难的问题。
实施例二
本实施例提供一种安全数据处理系统,包括:相互连接的本地CPU和远端CPU,所述本地CPU和所述远端CPU上都分别设置两个如上文所述的安全数据库,其中一个安全数据库作为奇数安全数据库,另一个安全数据库作为偶数安全数据库。
即在本实施例中,所述本地CPU上设置两个如实施例一所述的安全数据库,所述远端CPU上设置两个如实施例一所述的安全数据库。
本实施例可以在高安全站台门控制系统PSDC上设置两个结构相同的CPU,两个CPU独立运行,CPU之间交互数据,进行一致性比较,即2取2(2oo2),只有两个CPU的结果都对才认为最终结果是对的。本地和远端是站在其中一个CPU的角度看,自身CPU为本地CPU,另一个CPU为远端CPU。
实施例三
请继续参考图1,本实施例提供一种安全通信子系统,包括:如实施例二所述的安全数据处理系统。
实施例四
本实施例提供一种高安全站台门控制系统,包括:如实施例三所述的安全通信子系统。API(Application Programming Interface,应用程序接口),应用程序接口API分别通过所述API读取接口和API写入接口与所述安全数据库连接;外部信号设备,其通过以太网分别与所述网络写入接口和所述网络读取接口连接;以及驱动采集子系统,其通过CAN总线分别与所述CAN写入接口和所述CAN读取接口连接。所述外部信号设备与所述安全数据库交互网络数据。所述驱动采集子系统与所述安全数据库交互总线数据。所述网络数据经校验通过并解析掉安全协议头后得到的第一安全纯数据(Block_Buffer数据)提交给所述安全数据库内进行处理。
总线数据经校验通过并解析掉安全协议头后得到的第二安全纯数据(CAN数据)提交给所述安全数据库内进行处理。
所述API用于将从所述安全数据库内所读取的数据进行逻辑运算后采用第一安全纯数据格式(Block_Buffer数据)反馈给所述安全数据库内。
在本实施例中,所述外部信号设备包括若干个网络节点(图1中的第1网络节点NET_1、第2网络节点NET_2…第n网络节点NET_n);所述驱动采集子系统包括:若干个CAN节点(参见图1中的第1CAN节点CAN_1、第2CAN节点CAN_2…第nCAN节点CAN_n)。
在本实施例中,所述外部信号设备输出的第一安全纯数据通过所述Net_W写入接口写入所述输出数据处理数据库POP_DB中。
所述API通过所述API读取接口读取所述输出数据处理数据库POP_DB,并对读取到所述第一安全纯数据进行逻辑运算后,通过所述API写入接口写入所述输出数据处理数据库POP_DB。
所述CAN读取接口读取所述输出数据处理数据库POP_DB中的第一安全纯数据;并将读取到的所述第一安全纯数据对应发往所述驱动采集子系统中。
所述驱动采集子系统反馈的所述第二安全纯数据通过所述CAN写入接口写入所述反馈数据处理数据库PUSH_DB中,所述API通过所述API读取接口读取所述反馈数据处理数据库PUSH_DB中的所述第二安全纯数据,对所述第二安全纯数据进行逻辑运算后通过所述API写入接口写入所述反馈数据处理数据库PUSH_DB中;所述网络读取接口从所述反馈数据处理数据库PUSH_DB中读取所述第二安全纯数发往所述外部信号设备。
采用安全协议(如RSSPI协议、FSFB2协议)的网络数据本身具有的安全协议头。采用can-open协议的CAN-PDO消息具有安全保护部分,也可以理解为安全协议头。
该安全数据库所在的通信子系统通过以太网和外部信号设备交互网络信息,通过CAN总线和驱动采集子系统交互驱采信息,网络信息采用FSFB2、RSSPI等标准安全协议进行防护,所述网络信息写入所述安全数据库之前会经过安全协议校验,校验通过后,解析掉安全协议头后的得到的第一安全纯数据提交给安全数据库进行处理。同样的,驱采信息采用CANopen协议中的安全PDO进行防护,所述驱采信息写入所述安全数据库之前,会经过安全协议校验处理,校验通过并解析掉安全协议头的第二安全纯数据提交给安全数据库进行处理。
即本实施例提供的安全数据库中输出数据处理数据库POP_DB用于处理从网络或API上收到、发往CAN总线的驱动数据TPDO,反馈数据处理数据库PUSH_DB用于处理从CAN总线上收到、发往网络或API的采集数据RPDO。提供的安全数据库的3种读写方式包括:网络读写、CAN读写,以及API读写。网络写接口接收来自外部信号设备的安全数据本身BSD(不包括安全协议帧头),可以兼容多种不同的安全通信协议如RSSPI、FSFB2等,根据网络节点ID找到配置中对应的映射关系,将网络数据映射为TPDO数据,经过安全数据处理后最终写入输出数据处理数据库POP_DB;网络读接口读取反馈数据处理数据库PUSH_DB中的数据,根据网络节点ID找到配置中对应的映射关系,将RPDO数据映射为网络数据,发往外部信号设备。CAN写接口接收来自CAN总线的RPDO,经过安全数据处理后最终写入反馈数据处理数据库PUSH_DB;CAN读取接口读取输出数据处理数据库POP_DB的数据发送至CAN总线。API读取接口可以读取网络写入到输出数据处理数据库POP_DB中的驱动数据TPDO以及CAN写入到反馈数据处理数据库PUSH_DB中的反馈数据RPDO,经过简单逻辑处理后,再通过API写入接口写入输出数据处理数据库POP_DB发送至CAN节点,或是写入反馈数据处理数据库PUSH_DB发送至网络节点。
实施例五
如图2所示,本实施例提供一种支持网络和总线通信的安全数据处理方法,基于2oo2架构,采用组合故障安全原理,保证数据在两个独立运行的CPU上的一致性。对来自网络和CAN总线的映射中的数据采取CRC保护,对安全数据库整体采取SHA1算法保护,保证数据的处理过程和处理结果的完整性和正确性。
本实施例提供的安全数据处理方法,其采用如上文所述的安全数据处理系统进行实现,所述方法包括:
将待处理数据通过对应的写接口(对应的安全数据库设有的网络/CAN/API写接口)分别输入至所述本地安全数据库和所述远端安全数据库。
在本实施例中,所述待处理数据为第一安全纯数据和/或第二安全纯数据;所述代表性数据包括了可以表征所述第一安全纯数据和/或第二安全纯数据的表征信息以及上周期安全数据库处理结果的表征信息,以减小数据处理量,提高处理速度。
本地CPU和远端CPU对数据的处理的过程完全相同,下面以本地CPU内的本地安全数据库为例进行详细的说明。
步骤S1、所述本地安全数据库对接收到的所述待处理数据进行筛选得到本地代表性数据,并将所述本地代表性数据按照预设格式进行打包,得到本地2oo2数据,将本地2oo2数据发往远端安全数据库。所述远端安全数据库对接收到的所述本地2oo2数据进行解析并与所述远端2oo2数据进行2oo2一致性比较,得到比较结果,并根据所述比较结果对所述待处理数据进行数据映射和数据更新。
步骤S2、所述远端安全数据库对接收到的所述待处理数据进行筛选得到远端代表性数据,并将所述远端代表性数据按照预设格式进行打包,得到远端2oo2数据。将所述远端2oo2数据发送给所述本地安全数据库。所述本地安全数据库对接收到的所述远端2oo2数据进行解析并与所述本地2oo2数据进行2oo2一致性比较,得到比较结果,并根据所述比较结果对所述待处理数据进行数据映射和数据更新。
其中,所述本地安全数据库对接收到的所述远端2oo2数据进行解析并与所述本地2oo2数据进行2oo2一致性比较的具体过程,和所述远端安全数据库对接收到的所述本地2oo2数据进行解析并与所述远端2oo2数据进行2oo2一致性比较的具体过程完全相同,下面以所述本地安全数据库对接收到的所述远端2oo2数据进行解析并与所述本地2oo2数据进行2oo2一致性比较的具体过程为例进行说明。
所述本地2oo2数据或远端2oo2数据结构相同:
所述本地2oo2数据为依次包括如下字段信息的数据包:
DbId | SHA | PDO_RevFlag[42] | PDO_CRC[42] | Block_CRC[n2] | Block_Prio[n3] |
DbId:本地活跃数据库的周期号,每周期自增1。
SHA:本地活跃数据库的160位摘要,采用SHA1算法对整个本地活跃数据库加密计算得到哈希值。
PDO_RevFlag[n1]:n1位二进制值,每一位表示一个PDO格式数据是否接收到,最多有n1个PDO格式数据。在本实施例中,所述n1为42,42是目前支持的PDO格式数据的数量,但本发明不以此为限。
PDO_CRC[n1]:n1个PDO格式数据的CRC值,对每个PDO格式数据计算16位的CCITT-CRC16。
Block_CRC[n2]:一个所述第一安全纯数据(一个网络写接口数据或一个API写接口数据)占用一个Block_Buffer,该字段表示n2个Block_Buffer的CRC值,n2为所使用的Block_Buffer的个数,对每个Block_Buffer计算32位的CCITT-CRC32,最多有n2个Block_Buffer数据格式的数据。
Block_Prio[n3]:n3个Block_Buffer的线程优先级,表示调用写接口提交该Block_Buffer的线程的任务优先级。
具体的,调用数据库写接口的线程,包括网络写线程,CAN写线程,API写线程,这些线程的优先级各不相同,其中网络写线程和API写线程会提交Block_Buffer数据,Block_Prio记录对应的线程优先级。
在本实施例中,从网络和API写入的都是第一安全纯数据,Block_Buffer指的就是第一安全纯数据占用的内存。
步骤S3、所述本地2oo2数据和所述远端2oo2数据进行2oo2一致性比较,得到比较结果,并根据所述比较结果对所述待处理数据进行数据映射和数据更新。
具体的所述步骤S3包括:步骤S3.1、当两者的所述DbId一致时,则保证所述本地安全数据库和所述远端安全数据库的处理周期一致,不一致则所述本地CPU宕机。
步骤S3.2、两者的所述SHA一致时,则保证所述本地安全数据库的哈希值和所述远端安全数据库的哈希值相同,不一致则所述本地CPU宕机。
步骤S3.3、记录所述远端2oo2数据的PDO_RevFlag[42]、PDO_CRC[42]、Block_CRC[n2]和Block_Prio[n3]字段信息。
所述步骤S3还包括:
步骤S3.4、所述本地安全数据库还用于将多个所述第一安全纯数据映射到所述本地安全数据库。
步骤S3.5、所述本地安全数据库还用于将多个所述第二安全纯数据映射到所述本地安全数据库。
具体的,对于每一个映射,采用如下公式映射为PDO格式数据:
curMask=MaskList[StartInPdo][Length];
pdoMask[pdoID]=pdoMask[pdoID]|curMask;
pdoValue[pdoID]=(pdoValue[pdoID]&(~curMask))|((Value<<StartInPdo)&curMask);
式中,curMask表示当前映射的掩码值,MaskList[StartInPdo][Length]表示掩码列表,StartInPdo表示当前映射对应的PDO消息中的起始位置,Length表示当前映射对应的PDO的位长度,pdoMask[pdoID]表示第pdoID个PDO消息的掩码值,pdoValue[pdoID]表示第pdoID个PDO消息的值,Value表示当前映射对应的Block_Buffer格式数据中对应的有效信息。
再将PDO格式数据映射到本地安全数据库:
DB.data[pdoID]=(pdoValue[pdoID]&pdoMask[pdoID]))|((~pdoMask[pdoID])&(DB.data[pdoID]));
式中,DB.data[pdoID]表示当前pdoID对应的安全数据库消息。
所述步骤S3.4包括:步骤S3.4.1、判断所述远端2oo2数据中的Block_CRC[n2]和Block_Prio[n3]中所使用的Block_Buffer的个数n2和n3是否相同,不同则将所述本地CPU宕机。
相同,则在本地2oo2数据中寻找与所述远端2oo2数据中的Block_Prio[x]相等的Block_Prio,进而找到该Block_Prio对应的Block_Buffer,其中,此处x表示第x个Block_Prio。
步骤S3.4.2、判断该Block_Buffer对应的所述本地2oo2数据中的Block_CRC和所述远端2oo2数据中的Block_CRC是否相同,若不相同,则本地CPU宕机。
若相同,则所述本地安全数据库将所述第一安全纯数据映射为PDO格式数据,直至所有所述第一安全纯数据都映射为PDO格式数据后,再将所述PDO格式数据映射到所述本地安全数据库,释放当前Block_Buffer。
步骤S3.4.3、所述本地安全数据库在本地2oo2数据中找不到与所述远端2oo2数据中相等的Block_Prio,则本周期更新失败,连续失败次数递增1,进行宽恕处理,连续失败次数达到阈值后,所述本地CPU宕机。
步骤S3.5包括:步骤S3.5.1、如果所述本地2oo2数据和所述远端2oo2数据中的PDO_RevFlag[x]都为真值(TRUE);进入步骤S3.5.2。
步骤S3.5.2、对所述本地2oo2数据和所述远端2oo2数据中的PDO_CRC[x]进行比较,若两者的所述PDO_CRC[x]相同,其中,此处x表示第x个PDO格式数据;进入步骤S3.5.3。若两者的所述PDO_CRC[x]不相同,则进入步骤S3.5.4。
步骤S3.5.3、将所述第二安全纯数据映射为PDO格式数据,直至所有所述第二安全纯数据都映射为PDO格式数据后,再将所述PDO格式数据映射进所述本地安全数据库。
步骤S3.5.4、所述本地CPU宕机。
步骤S3.5.5、所述本地2oo2数据中的PDO_RevFlag[x]和所述远端2oo2数据中的PDO_RevFlag[x]有任何一个为假(FALSE),则所述本地安全数据库认为该PDO格式数据没有收到,该PDO格式数据采用上个周期的值进行宽恕,达到宽恕周期后置为安全侧的值。
宽恕具体是指本周期更新失败时暂时不宕机,连续几个周期都失败后宕机,不宕机继续运行称为宽恕。
本实施例还包括:本周期映射完成后执行步骤S4。
所述本地安全数据库包括奇数安全数据库,偶数安全数据库,根据本地活跃数据库的周期号DbId交替使用所述奇数安全数据库或所述偶数安全数据库作为活跃数据库,所述周期号为奇数时,使用所述奇数安全数据库作为本地活跃数据库,所述偶数安全数据库作为本地备用数据库;所述周期号为偶数时,使用所述偶数安全数据库作为本地活跃数据库,奇数安全数据库作为本地备用数据库。
所述远端安全数据库包括奇数安全数据库,偶数安全数据库,根据远端活跃数据库的周期号DbId交替使用所述奇数安全数据库或所述偶数安全数据库作为活跃数据库,所述周期号为奇数时,使用所述奇数安全数据库作为远端活跃数据库,所述偶数安全数据库作为远端备用数据库;所述周期号为偶数时,使用所述偶数安全数据库作为远端活跃数据库,奇数安全数据库作为远端备用数据库。
所述步骤S4包括:两个CPU各自更新各自的安全数据库,更新所述本地安全数据库:具体的是,更新所述本地活跃数据库的周期号DbId;更新所述本地活跃数据库的哈希值。
更新所述远端安全数据库:具体的是,更新所述远端活跃数据库的周期号DbId;更新所述远端活跃数据库的哈希值。
本实施例还包括:步骤S5、所述本地安全数据库判断是否开始新的安全数据处理周期。
判断是否等到数据处理信号,每隔固定时间会等到一次数据处理信号,若等到时,则返回步骤S1,开始下个周期的安全数据处理。如没有等到,则返回步骤S5,继续等待。
本实施例还包括:采用奇偶双数据库方法解决2oo2架构下线程读写的时序偏差问题,保证双CPU上读取数据的正确性。如本地调用数据库读接口和远端调用数据库读接口的读取操作都发生在所述安全数据库更新之后,或者本地读取操作发生在数据库更新之后,远端读取操作发生在数据库更新之前等情况。由此可知,通过设置活跃数据库和备用数据库,保证两个CPU上读到的数据一致性。活跃数据库和备用数据库的设计保证无论读取操作发生在任意时刻都可以在本地CPU和远端CPU上读取到同样的数据库内容。
读接口(此处接口和上文实施例一提及的接口含义相同)读取安全数据库时,所述远端CPU读取当前远端活跃数据库的周期号DbId下的所述远端活跃数据库。
将当前所述远端活跃数据库的周期号DbId发送给所述本地CPU,所述本地CPU根据接收的所述远端活跃数据库的周期号DbId,判断和所述本地活跃数据库的周期号DbId是否相同,若相同,则读取本地活跃数据库。
若不相同,则所述本地CPU再判断和所述本地备用数据库的周期号DbId是否相同,若相同,则读取所述本地备用数据库;若不相同,则报错。
由此可知,本实施例提供一种基于2oo2架构的安全数据处理方法,采用组合故障安全原理,保证在两个独立运行的CPU上的安全数据库一致性。同时,对来自网络和CAN总线的映射中的数据采取CRC保护,对安全数据库整体采取SHA1算法保护,保证数据的处理过程和处理结果的完整性和正确性。本实施例提高了数据处理的可靠性和安全性。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
应当注意的是,在本文的实施方式中所揭露的装置和方法,也可以通过其他的方式实现。以上所描述的装置实施方式仅仅是示意性的,例如,附图中的流程图和框图显示了根据本文的多个实施方式的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用于执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本文各个实施方式中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
尽管本发明的内容已经通过上述优选实施例作了详细介绍,但应当认识到上述的描述不应被认为是对本发明的限制。在本领域技术人员阅读了上述内容后,对于本发明的多种修改和替代都将是显而易见的。因此,本发明的保护范围应由所附的权利要求来限定。
Claims (21)
1.一种安全数据库,其特征在于,包括:
输出数据处理数据库POP_DB,用于保存并处理输出数据;
反馈数据处理数据库PUSH_DB,用于保存并处理反馈数据;
网络写入接口和网络读取接口,所述网络写入接口与所述输出数据处理数据库POP_DB连接,用于将来自外部信号设备的多个网络节点的数据写入所述输出数据处理数据库POP_DB,所述网络读取接口与所述反馈数据处理数据库PUSH_DB连接,用于从所述反馈数据处理数据库PUSH_DB中读取数据发往外部信号设备;
CAN写入接口和CAN读取接口,所述CAN写入接口与所述反馈数据处理数据库PUSH_DB连接,用于将来自驱动采集子系统的多个CAN节点的数据写入所述反馈数据处理数据库PUSH_DB,所述CAN读取接口与所述输出数据处理数据库POP_DB连接,用于从所述输出数据处理数据库POP_DB中读取数据发往驱动采集子系统;
API写入接口和API读取接口,所述API写入接口和所述API读取接口分别与所述输出数据处理数据库POP_DB连接,所述API写入接口和所述API读取接口分别与所述反馈数据处理数据库PUSH_DB连接,所述API写入接口用于将来自应用程序接口API的数据写入所述输出数据处理数据库POP_DB和/或所述反馈数据处理数据库PUSH_DB,所述API读取接口用于从所述输出数据处理数据库POP_DB和/或所述反馈数据处理数据库PUSH_DB中读取数据发往应用程序接口API。
2.如权利要求1所述的安全数据库,其特征在于,所述输出数据为来源于外部信号设备的网络数据;所述反馈数据为来源于驱动采集子系统的多个CAN节点的总线数据;
所述网络数据为经校验通过并解析掉安全协议头后得到的第一安全纯数据;所述总线数据为经校验通过并解析掉安全协议头后得到的第二安全纯数据。
3.如权利要求1所述的安全数据库,其特征在于,
还包括:配置接口,其分别与所述输出数据处理数据库POP_DB和所述反馈数据处理数据库PUSH_DB连接,用于接收来自外部配置装置的配置数据。
4.如权利要求3所述的安全数据库,其特征在于,
所述配置数据中定义了网络节点个数、CAN节点个数、映射个数、每个映射的长度、以及每个映射对应的网络节点、在网络节点消息中的起始位、对应的PDO格式数据和在该PDO格式数据中的起始位信息。
5.如权利要求2所述的安全数据库,其特征在于,
所述输出数据处理数据库POP_DB同时处理若干个输出数据,每个输出数据设有若干个驱动码位;
所述反馈数据处理数据库PUSH_DB同时处理若干个反馈数据,每个反馈数据设有若干个采集码位。
6.一种安全数据处理系统,其特征在于,包括:相互连接的本地CPU和远端CPU,所述本地CPU和所述远端CPU上都分别设置两个如权利要求1-5中任意一项所述的安全数据库,其中一个安全数据库作为奇数安全数据库,另一个安全数据库作为偶数安全数据库。
7.一种安全通信子系统,其用于高安全站台门控制系统PSDC,其特征在于,所述安全通信子系统包含如权利要求6所述的安全数据处理系统。
8.一种高安全站台门控制系统,其特征在于,包括:如权利要求7所述的安全通信子系统;
应用程序接口API,其分别通过所述API读取接口和API写入接口与所述安全数据库连接;
外部信号设备,其通过以太网分别与所述网络写入接口和所述网络读取接口连接;以及
驱动采集子系统,其通过CAN总线分别与所述CAN写入接口和所述CAN读取接口连接;
所述外部信号设备与所述安全数据库交互网络数据;
所述驱动采集子系统与所述安全数据库交互总线数据;
所述网络数据经校验通过并解析掉安全协议头后得到的第一安全纯数据提交给所述安全数据库内进行处理;
所述总线数据经校验通过并解析掉安全协议头后得到的第二安全纯数据提交给所述安全数据库内进行处理;
所述应用程序接口API用于将从所述安全数据库内所读取的数据进行逻辑运算后以所述第一安全纯数据的格式反馈给所述安全数据库内。
9.如权利要求8所述的高安全站台门控制系统,其特征在于,所述外部信号设备包括若干个网络节点;
所述驱动采集子系统包括:若干个CAN节点。
10.如权利要求9所述的高安全站台门控制系统,其特征在于,
所述外部信号设备输出的第一安全纯数据通过所述网络写入接口写入所述输出数据处理数据库POP_DB中;
所述应用程序接口API通过所述API读取接口读取所述输出数据处理数据库POP_DB,并对读取到所述第一安全纯数据进行逻辑运算后,通过所述API写入接口写入所述输出数据处理数据库POP_DB;
所述CAN读取接口读取所述输出数据处理数据库POP_DB中的第一安全纯数据;并将读取到的所述第一安全纯数据对应发往所述驱动采集子系统中;
所述驱动采集子系统反馈的所述第二安全纯数据通过所述CAN写入接口写入所述反馈数据处理数据库PUSH_DB中,所述应用程序接口API通过所述API读取接口读取所述反馈数据处理数据库PUSH_DB中的所述第二安全纯数据,对所述第二安全纯数据进行逻辑运算后通过所述API写入接口写入所述反馈数据处理数据库PUSH_DB中;
所述网络读取接口从所述反馈数据处理数据库PUSH_DB中读取所述第二安全纯数发往所述外部信号设备。
11.一种安全数据处理方法,其特征在于,其采用如权利要求6所述的安全数据处理系统进行实现,所述方法包括:
将第一安全纯数据和/或第二安全纯数据通过写接口分别输入至所述本地安全数据库和所述远端安全数据库;
所述本地安全数据库对接收到的所述第一安全纯数据和/或第二安全纯数据进行筛选得到本地代表性数据,并将所述本地代表性数据按照预设格式进行打包,得到本地2oo2数据;
所述远端安全数据库对接收到的所述第一安全纯数据和/或第二安全纯数据进行筛选得到远端代表性数据,并将所述远端代表性数据按照预设格式进行打包,得到远端2oo2数据;
将所述远端2oo2数据发送给所述本地安全数据库;
所述本地安全数据库对接收到的所述远端2oo2数据进行解析并与所述本地2oo2数据进行2oo2一致性比较,得到比较结果,并根据所述比较结果对所述待处理数据进行数据映射和数据更新;
以及,将所述本地2oo2数据发送给所述远端安全数据库;
所述远端安全数据库对接收到的所述本地2oo2数据进行解析并与所述远端2oo2数据进行2oo2一致性比较,得到比较结果,并根据所述比较结果对所述待处理数据进行数据映射和数据更新。
12.如权利要求11所述的安全数据处理方法,其特征在于,
所述代表性数据包括了可以表征所述第一安全纯数据和/或第二安全纯数据的表征信息以及上周期安全数据库处理结果的表征信息。
13.如权利要求12所述的安全数据处理方法,其特征在于,
所述本地2oo2数据和远端2oo2数据格式相同,所述本地2oo2数据的数据格式包括如下字段信息的数据包:
DbId:本地活跃数据库的周期号,每周期自增1;
SHA:本地活跃数据库的160位摘要,采用SHA1算法对整个本地活跃数据库加密计算得到哈希值;
PDO_RevFlag[n1]:n1位二进制值,每一位表示一个PDO格式数据是否接收到,最多有n1个PDO格式数据;
PDO_CRC[n1]:n1个PDO格式数据的CRC值,对每个PDO格式数据计算16位的CCITT-CRC16;
Block_CRC[n2]:一个所述第一安全纯数据占用一个Block_Buffer,该字段表示n2个Block_Buffer的CRC值,n2为所使用的Block_Buffer的个数,对每个Block_Buffer计算32位的CCITT-CRC32,最多有n2个Block_Buffer数据格式的数据;
Block_Prio[n3]:n3个Block_Buffer的线程优先级,表示调用写接口提交该Block_Buffer的线程的任务优先级。
14.如权利要求13所述的安全数据处理方法,其特征在于,
所述本地安全数据库将所述远端2oo2数据与本地2oo2数据进行一致性对比的步骤包括:
当两者的所述DbId一致时,则保证所述本地安全数据库和所述远端安全数据库的处理周期一致,不一致则所述本地CPU宕机;
两者的所述SHA一致时,则保证所述本地安全数据库的哈希值和所述远端安全数据库的哈希值相同,不一致则所述本地CPU宕机;
记录所述远端2oo2数据的PDO_RevFlag[42]、PDO_CRC[42]、Block_CRC[n2]和Block_Prio[n3]字段信息。
15.如权利要求14所述的安全数据处理方法,其特征在于,
所述本地安全数据库还用于将多个所述第一安全纯数据映射到所述本地安全数据库中;
所述本地安全数据库还用于将多个所述第二安全纯数据映射到所述本地安全数据库中。
16.如权利要求15所述的安全数据处理方法,其特征在于,将多个所述第一安全纯数据映射到所述本地安全数据库的步骤包括:
判断所述远端2oo2数据中的Block_CRC[n2]和Block_Prio[n3]中所使用的Block_Buffer的个数n2和n3是否相同,不同则将所述本地CPU宕机;
相同,则在本地2oo2数据中寻找与所述远端2oo2数据中的Block_Prio[x]相等的Block_Prio,进而找到该Block_Prio对应的Block_Buffer,其中,此处x表示第x个Block_Prio;
判断该Block_Buffer对应的所述本地2oo2数据中的Block_CRC和所述远端2oo2数据中的Block_CRC是否相同,若不相同,则本地CPU宕机;
若相同,则所述本地安全数据库将所述第一安全纯数据映射为PDO格式数据,直至所有所述第一安全纯数据都映射为PDO格式数据后,再将所述PDO格式数据映射到所述本地安全数据库,释放当前Block_Buffer;
所述本地安全数据库在本地2oo2数据中找不到与所述远端2oo2数据中相等的Block_Prio[x],则本周期更新失败,连续失败次数递增1,进行宽恕处理,连续失败次数达到阈值后,所述本地CPU宕机。
17.如权利要求16所述的安全数据处理方法,其特征在于,所述多个第二安全纯数据映射到所述本地安全数据库的步骤包括:
如果所述本地2oo2数据和所述远端2oo2数据中的PDO_RevFlag[x]都为真值;
对所述本地2oo2数据和所述远端2oo2数据中的PDO_CRC[x]进行比较,若两者的所述PDO_CRC[x]相同,其中,此处x表示第x个PDO格式数据;
则将所述第二安全纯数据映射为PDO格式数据,直至所有所述第二安全纯数据都映射为PDO格式数据后,再将所述PDO格式数据映射进所述本地安全数据库,
若两者的所述PDO_CRC[x]不相同,则所述本地CPU宕机;
所述本地2oo2数据中的PDO_RevFlag[x]和所述远端2oo2数据中的PDO_RevFlag[x]有任何一个为假,则所述本地安全数据库认为该PDO格式数据没有收到,该PDO格式数据采用上个周期的值进行宽恕,达到宽恕周期后置为安全侧的值。
18.如权利要求17所述的安全数据处理方法,其特征在于,
根据所述本地活跃数据库的周期号DbId交替使用所述奇数安全数据库或所述偶数安全数据库作为活跃数据库,所述周期号为奇数时,使用所述奇数安全数据库作为本地活跃数据库,所述偶数安全数据库作为本地备用数据库;所述周期号为偶数时,使用所述偶数安全数据库作为本地活跃数据库,奇数安全数据库作为本地备用数据库;
根据所述远端活跃数据库的周期号DbId交替使用所述奇数安全数据库或所述偶数安全数据库作为活跃数据库,所述周期号为奇数时,使用所述奇数安全数据库作为远端活跃数据库,所述偶数安全数据库作为远端备用数据库;所述周期号为偶数时,使用所述偶数安全数据库作为远端活跃数据库,奇数安全数据库作为远端备用数据库。
19.如权利要求18所述的安全数据处理方法,其特征在于,还包括:
更新所述本地安全数据库:
更新所述本地活跃数据库的周期号DbId;
更新所述本地活跃数据库的哈希值;
更新所述远端安全数据库:更新所述远端安全数据库的远端活跃数据库的周期号DbId;
更新所述远端活跃数据库的哈希值。
20.如权利要求19所述的安全数据处理方法,其特征在于,还包括:
所述本地安全数据库判断是否开始新的安全数据处理周期;
判断是否等到数据处理信号,每隔固定时间会等到一次数据处理信号,若等到时,则开始下个周期的安全数据处理;
如没有等到,则继续等待。
21.如权利要求20所述的安全数据处理方法,其特征在于,还包括:
读接口读取安全数据库时:所述远端CPU读取当前远端活跃数据库的周期号DbId下的所述远端活跃数据库;
将当前所述远端活跃数据库的周期号DbId发送给所述本地CPU,
所述本地CPU根据接收的所述远端活跃数据库的周期号DbId,判断和所述本地活跃数据库的周期号DbId是否相同,若相同,则读取本地活跃数据库;
若不相同,则所述本地CPU再判断和所述本地备用数据库的周期号DbId是否相同,若相同,则读取所述本地备用数据库;若不相同,则报错。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111623919.2A CN114281748B (zh) | 2021-12-28 | 2021-12-28 | 一种安全数据库、安全数据处理系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111623919.2A CN114281748B (zh) | 2021-12-28 | 2021-12-28 | 一种安全数据库、安全数据处理系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114281748A true CN114281748A (zh) | 2022-04-05 |
CN114281748B CN114281748B (zh) | 2024-10-01 |
Family
ID=80877198
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111623919.2A Active CN114281748B (zh) | 2021-12-28 | 2021-12-28 | 一种安全数据库、安全数据处理系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114281748B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1610498A1 (en) * | 2004-06-21 | 2005-12-28 | Gefran S.p.A. | Synchronization and communication protocol for remote process |
WO2021139109A1 (zh) * | 2020-01-09 | 2021-07-15 | 平安科技(深圳)有限公司 | 状态数据库的写入方法、装置、电子设备及存储介质 |
-
2021
- 2021-12-28 CN CN202111623919.2A patent/CN114281748B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1610498A1 (en) * | 2004-06-21 | 2005-12-28 | Gefran S.p.A. | Synchronization and communication protocol for remote process |
WO2021139109A1 (zh) * | 2020-01-09 | 2021-07-15 | 平安科技(深圳)有限公司 | 状态数据库的写入方法、装置、电子设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
H. HACIGUMUS 等: "Providing database as a service", 《PROCEEDINGS 18TH INTERNATIONAL CONFERENCE ON DATA ENGINEERING》, 7 August 2002 (2002-08-07), pages 1 - 10 * |
卢珞先 等: "基于OPC技术的DeviceNet现场总线控制系统", 《武汉理工大学学报(信息与管理工程版)》, vol. 28, no. 06, 30 June 2006 (2006-06-30), pages 5 - 8 * |
Also Published As
Publication number | Publication date |
---|---|
CN114281748B (zh) | 2024-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7444540B2 (en) | Memory mirroring apparatus and method | |
KR950005145B1 (ko) | 수신 데이타 처리장치 및 방법 | |
US20240040435A1 (en) | Bandwidth adjustment method, service transmission method, network device and readable storage medium | |
US7467261B2 (en) | Dual storage apparatus and control method for the dual storage apparatus | |
JPS5866448A (ja) | パケット交換における誤り検出方式 | |
US20190363829A1 (en) | Interconnection network for integrated circuit | |
WO2021120880A1 (zh) | 数据复制处理方法、装置、容灾系统、设备及存储介质 | |
US7069305B2 (en) | Computer system and a data transfer method thereof using remote direct memory access | |
CN114612101A (zh) | 面向连接的可靠链间路由跨链方法及系统 | |
JPS62239735A (ja) | デ−タ伝送方式 | |
US8031730B2 (en) | System and method for transmitting a sequence of messages in an interconnection network | |
US20050144339A1 (en) | Speculative processing of transaction layer packets | |
JP2010079702A (ja) | 伝送装置、伝送方法、伝送プログラム | |
CN114281748A (zh) | 一种安全数据库、安全数据处理系统及方法 | |
US6938187B2 (en) | Tandem connection monitoring | |
CN110162511B (zh) | 一种日志传输方法及相关设备 | |
JP2020072337A (ja) | 演算処理装置及び演算処理装置の制御方法 | |
CN105573932B (zh) | 一种基于寄存器的多位宽数据跨时钟域访问方法 | |
JP7485052B2 (ja) | 管理装置、サーバ装置、ホワイトリスト更新プログラム | |
US20110314183A1 (en) | System and method for managing dataflow in a temporary memory | |
US20030152073A1 (en) | Inbound data stream controller with pre-recognition of frame sequence | |
WO2022199155A1 (zh) | 一种数据传输的系统、方法以及网络设备 | |
JP7521837B1 (ja) | 処理システム、処理方法、およびプログラム | |
WO2024183762A1 (zh) | 测试系统 | |
CN112134659B (zh) | 一种支持fdir功能的错误恢复系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |