CN117453616A - 一种集成soc处理器间冗余数据交互系统及方法 - Google Patents
一种集成soc处理器间冗余数据交互系统及方法 Download PDFInfo
- Publication number
- CN117453616A CN117453616A CN202311297526.6A CN202311297526A CN117453616A CN 117453616 A CN117453616 A CN 117453616A CN 202311297526 A CN202311297526 A CN 202311297526A CN 117453616 A CN117453616 A CN 117453616A
- Authority
- CN
- China
- Prior art keywords
- data
- transmission channel
- data packet
- packet
- interactive
- 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.)
- Pending
Links
- 230000003993 interaction Effects 0.000 title claims abstract description 61
- 238000000034 method Methods 0.000 title claims abstract description 27
- 230000005540 biological transmission Effects 0.000 claims abstract description 260
- 230000002452 interceptive effect Effects 0.000 claims abstract description 110
- 238000004891 communication Methods 0.000 claims abstract description 25
- 238000012795 verification Methods 0.000 claims description 29
- 238000004806 packaging method and process Methods 0.000 claims description 20
- 230000008569 process Effects 0.000 claims description 9
- 238000005070 sampling Methods 0.000 claims description 9
- 238000004364 calculation method Methods 0.000 claims description 6
- 238000007781 pre-processing Methods 0.000 claims description 6
- 230000007246 mechanism Effects 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000007488 abnormal function Effects 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1443—Transmit or communication errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1474—Saving, restoring, recovering or retrying in transactions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/4031—Coupling between buses using bus bridges with arbitration
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种集成SOC内部处理器间冗余数据交互系统及方法,该系统包括:集成在同一芯片上的两个处理器,处理器之间设置两路相互冗余的数据传输通道,一路设置在芯片外部,一路设置在芯片内部。两个处理器均包括发送端控制模块和接收端控制模块,发送端控制模块采集交互数据后同时发送到两个传输通道,接收端控制模块读取两个传输通道中的数据包后,依次解析两个数据包,同时判断包中交互数据是否有效以及是否开始解析另一通道中的数据包。本发明通过设置相互冗余的数据通道确保了两个处理器间的通信不丢失,提高了数据通信的速度和安全性,同时采用仲裁机制和握手机制,降低了关键交互数据丢失的概率,有效防止两个处理器之间的读写冲突。
Description
技术领域
本发明属于电气控制技术领域,尤其涉及一种集成SOC内部处理器间冗余数据交互系统及方法。
背景技术
轨道交通的电气控制系统中,控制运算板卡要兼顾控制与运算的功能需求,其中的控制处理器与运算处理器之间的关键数据传输十分重要。传统的控制运算板卡通常采用独立的ARM处理器芯片实现控制功能,独立的DSP处理器芯片实现运算功能。二者之间通过独立的FPGA芯片建立的共享BRAM通道进行数据交互,并通过CRC校验验证两个处理器之间传输的交互数据是否正常。
而这种传输方法的缺点也是显而易见的,首先两个处理器芯片之间只有单一通道进行数据交互传输,当BRAM通道存在故障或FPGA出现宕机时,数据传输通道就会中断,导致数据无法实现交互;其次,当通道中传输的交互数据出现异常时,只能采用丢包的方式进行处理,这可能会导致关键数据的丢失;最后,由于控制处理器芯片、运算处理器芯片以及FPGA芯片均为独立的处理器芯片,各处理器芯片之间只能采用外部总线进行数据收发,会增大传输过程受到干扰的概率,增加了数据传输过程中的不稳定因素。因此,如何提高控制处理器与运算处理器之间的数据传输的安全性,保证数据传输的准确性,实现数据的高效安全冗余传输是当前控制运算板卡的亟待解决的问题。
发明内容
本发明的目的在于解决上述技术问题之一,提供一种集成SOC内部处理器间冗余数据交互系统及方法。
为实现上述目的,本发明采用的技术方案是:
一种集成SOC内部处理器间冗余数据交互系统,包括:两个处理器,两个处理器集成在同一SOC芯片上,且用于执行不同的功能;
两个处理器之间设置有第一传输通道和第二传输通道,第一传输通道设置在SOC芯片外部,第二传输通道设置在SOC芯片内部,第一传输通道和第二传输通道均用于实现两个处理器之间的数据交互,
两个处理器均包括发送端控制模块和接收端控制模块,以通过发送端控制模块向另一处理器发送交互数据,并通过接收端控制模块接收来自另一处理器的交互数据;
发送端控制模块用于采集来自所在处理器发送端应用层的交互数据,对交互数据进行预处理后将包含交互数据的数据包同时发送到第一传输通道和第二传输通道;
接收端控制模块用于分别读取来自第一传输通道和第二传输通道的数据包,依次对第一传输通道和第二传输通道中的数据包进行解包、校验与仲裁,判断数据包中交互数据是否有效,并将有效交互数据传输至所在处理器的接收端应用层;当判断第一传输通道的数据包中的交互数据有效时,停止对第二传输通道中的数据包进行解包、校验与仲裁;当判断第一传输通道的数据包中的交互数据无效时,继续对第二传输通道中的数据包进行解包、校验与仲裁。
本发明一些实施例中,接收端控制模块首先对第一传输通道中的数据包进行解包和校验,并基于解包和校验的结果判断第一传输通道中的数据包是否完整以及数据包中的交互数据是否有效;若完整且有效,则将第一传输通道中的有效交互数据传输至接收端应用层;
若不完整或无效,则丢弃第一传输通道中的数据包,对第二传输通道中的数据包进行解包和校验,并基于解包和校验的结果判断第二传输通道中的数据包是否完整以及数据包中的交互数据是否有效;若完整且有效,则将第二传输通道中的有效交互数据传输至接收端应用层,若不完整或无效,则丢弃第二传输通道中的数据包。
本发明一些实施例中,发送端控制模块包括采样单元、发送端校验单元、封包单元和发送单元;
采样单元用于按照预定通信周期定时采集来自来自所在处理器发送端应用层的交互数据;
发送端校验单元用于按照预定校验公式对采样单元定时采集的交互数据进行校验计算,并输出第一校验结果;
封包单元用于对定时采集的交互数据和第一校验结果进行封装,并按照预定通信协议添加特征数据后进行组包,以生成用于数据交互的数据包;特征数据包括包头、包尾和包号;
发送单元用于将数据包按照预定通信协议分别发送到第一传输通道和第二传输通道内,并设置握手信号。
本发明一些实施例中,接收端控制模块包括接收单元、解包单元、接收端校验单元和仲裁单元;
接收单元用于基于发送端控制模块设置的握手信号读取第一传输通道和第二传输通道中的数据包;
解包单元用于对接收单元读取的数据包进行解包,去除数据包的特征数据,以获得数据包中的交互数据和校验结果;
校验单元用于按照预定校验公式对数据包中的交互数据进行校验计算,获得第二校验结果,并与数据包中的第一校验结果进行对比,生成对比结果;
仲裁单元用于判断第一传输通道和第二传输通道中的数据包是否完整以及基于对比结果判断数据包中的交互数据是否有效,在第一传输通道中的数据包不完整或者数据包中交互数据无效时,控制解包单元和校验单元继续解析第二传输通道中的数据包,以及,用于将有效交互数据传输至接收端应用层。
本发明一些实施例中,发送端控制模块在向第一传输通道和第二传输通道发送数据时,分别向第一传输通道中的第一预定地址、第二传输通道中的第二预定地址写入第一特征值,在向第一传输通道和第二传输通道中发送数据完成时,将第一预定地址的第一特征值、第二预定地址的第一特征值均更新为第二特征值;
接收端控制模块还用于基于第一传输通道和第二传输通道中的当前特征值,以及当前传输通道中数据包的包号,判断是否开始读取当前传输通道中的数据包;读取完成后,将所述第一传输通道和所述第二传输通道中的当前特征值均更新为所述第一特征值。
本发明一些实施例中,第一传输通道包括设置在SOC芯片外部的DDR芯片和设置在SOC芯片内部的DDR控制器,DDR控制器与DDR芯片连接,并分别与两个处理器连接。
本发明一些实施例中,第二传输通道包括设置在SOC芯片内部的FPGA处理器;FPGA处理器分别与两个处理器连接;FPGA处理器内部设置有用于两个处理器之间数据传输的BRAM通道。
本发明一些实施例进一步提供一种集成SOC内部处理器间冗余数据交互方法,包括以下步骤:
同一SOC芯片上的两个处理器经第一传输通道和第二传输通道进行数据交互,两个处理器用于实现不同的功能;
处理器内部的发送端控制模块采集来自所在处理器发送端应用层的交互数据后,对交互数据进行预处理,并将包含交互数据的数据包同时发送到第一传输通道和第二传输通道;
接收端控制模块分别读取第一传输通道和第二传输通道中的数据包后,依次对第一传输通道和第二传输通道中的数据包进行解包、校验与仲裁,判断数据包中交互数据是否有效,并将有效交互数据传输至所在处理器的接收端应用层;当判断第一传输通道的数据包中的交互数据有效时,停止对第二传输通道中的数据包进行解包、校验与仲裁;当判断第一传输通道的数据包中的交互数据无效时,继续对第二传输通道中的数据包进行解包、校验与仲裁。
本发明一些实施例中,还包括以下步骤:
发送端控制模块按照预定通信周期定时采集来自所在处理器发送端应用层的交互数据;
按照预定校验公式对采集的交互数据进行校验计算,并生成第一校验结果;
对采集的交互数据和第一校验结果进行封装,并按照预定通信协议添加特征数据后进行组包,以生成用于数据交互的数据包;特征数据包括包头、包尾和包号;
将数据包按照预定通信协议分别发送到第一传输通道和第二传输通道内,并分别更新两个传输通道中的握手信号。
本发明一些实施例中,还包括以下步骤:
接收端控制模块基于另一处理器发送端控制模块更新的握手信号分别读取第一传输通道的数据包和第二传输通道中的数据包;
首先对第一传输通道中的数据包进行解包和校验;
解包和校验过程中基于解包结果判断第一传输通道中的数据包是否完整,基于校验产生的对比结果判断第一传输通道数据包中的交互数据是否有效,当第一传输通道中的数据包完整且数据包中的交互数据有效时,将第一传输通道数据包中的有效交互数据传输至接收端应用层;
当第一传输通道中的数据包不完整或者数据包中的交互数据无效时,丢弃第一传输通道中的数据包,对第二传输通道中的数据包进行解包和校验;
解包和校验过程中基于解包结果判断第二传输通道中的数据包是否完整,基于校验产生的对比结果判断第二传输通道数据包中的交互数据是否有效,当第二传输通道中的数据包完整且数据包中的交互数据有效时,将第二传输通道数据包中的有效交互数据传输至接收端应用层;当第二传输通道中的数据包不完整或者数据包中的交互数据无效时,丢弃第二传输通道中的数据包。
本发明的有益效果在于:
1、本发明在两个执行不同功能的处理器之间设置两路相互冗余的数据传输通道,当其中一路传输通道中断时,仍可以通过另一路传输通道进行两个处理器之间的数据交互,确保了两个处理器之间的数据通信不丢失,提高了数据通信的安全性;
2、本发明将两个执行不同功能的异构处理器集成到同一芯片上,通过一条内部通道与一条外部通道进行数据冗余交互,各处理器之间采用内部总线连接,整体结构更加紧凑,提高了两个执行不同功能的处理器之间数据通信的速度及安全性;
3、本发明在接收端控制模块中设置仲裁单元,当一路传输通道中的数据出现数据包丢失、数据包异常的等故障时,仍可以从另一路传输通道中获取相应的数据包,降低了两个处理器之间传输的关键数据丢失的概率,避免了关键数据丢失导致的控制系统功能异常;
4、本发明中相互通信的两个处理器中的发送端控制模块和接收端控制模块之间采用握手机制,能够有效防止发送端控制模块与接收端控制模块在读写传输通道数据中时产生冲突,避免了出现接收端控制模块读取的数据包不完整情况。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将结合附图来详细说明本发明的具体实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为集成SOC内部处理器间冗余数据交互系统结构示意图;
图2为发送端控制模块与接收端控制模块结构示意图;
图3为发送端控制模块与接收端控制模块的工作流程图;
图4为集成SOC内部处理器间冗余数据交互方法流程图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
下面结合具体实施例及说明书附图,对本发明的技术方案作详细说明。
如附图1-4所示,在本发明一种集成SOC内部处理器间冗余数据交互系统的一个示意性施例中,该系统包括用于执行控制功能的控制处理器ARM-A和用于执行运算功能的运算处理器ARM-R,控制处理器ARM-A和运算处理器ARM-R集成在同一SOC芯片上;集成SOC芯片具有强大的多处理器协同运作能力,除控制处理器ARM-A和运算处理器ARM-R外,其内部还集成有用于开辟交互数据通道的FPGA处理器。
控制处理器ARM-A和运算处理器ARM-R之间设置有相互冗余的第一传输通道和第二传输通道,第一传输通道和第二传输通道均用于实现两个处理器之间的数据交互。
在本实施例中,第一传输通道为由外部DDR芯片预留空间配置而成DDR数据通道,包括设置在芯片外部的DDR芯片和设置在芯片内部的DDR控制器,DDR控制器与DDR芯片通过DDR总线连接,并分别与控制处理器ARM-A和运算处理器ARM-R连接。控制处理器ARM-A和运算处理器ARM-R通过集成SOC芯片内部的DDR控制器进行DDR数据访问。DDR芯片自身具有ECC自校检功能,在数据传输过程中出现误码时能够进行检查并且纠正,极大地增强了DDR设备的RAS(Reliability,Availability,and Serviceability)特性,也极大增强了控制处理器ARM-A和运算处理器ARM-R之间数据传输的稳定性。
第二传输通道为BRAM数据通道,包括集成在SOC芯片内部的FPGA处理器。FPGA处理器与控制处理器ARM-A之间,以及FPGA处理器与运算处理器ARM-R之间均通过集成SOC芯片内部总线连接。FPGA处理器内部开辟有用于控制处理器ARM-A和运算处理器ARM-R之间数据传输的BRAM通道。BRAM数据通道是由FPGA通过内部集成的BLOCK RAM配置而成,可以用来进行数据存储和跨时钟域处理,该部分内存位于芯片内部,抗干扰能力和稳定性更高。
由于DDR芯片的数据传输速率远高于BRAM,因此,在本实施例中以DDR数据通道为主,以BRAM数据通道为辅。DDR数据通道和BRAM数据通道二者硬件本身抗干扰能力强,稳定性高,具有数据自纠正能力,可以保证数据传输过程的可靠性,极大提高了数据读写的安全性。
控制处理器ARM-A和运算处理器ARM-R内均包括发送端控制模块和接收端控制模块,以通过发送端控制模块向另一处理器发送交互数据,并通过接收端控制模块接收来自另一处理器的交互数据。
处理器的发送端应用层产生与另一处理器通信的交互数据,发送端控制模块用于按照预定通信周期定时采集来自其所在处理器发送端应用层的交互数据,对交互数据进行校验、封装、组包等预处理后将包含交互数据的数据包同时发送到第一传输通道和第二传输通道内。
接收端控制模块用于读取来自第一传输通道和第二传输通道的数据包,依次对第一传输通道和第二传输通道中的数据包进行解包、校验和仲裁,判断数据包中交互数据是否有效,并将有效交互数据传输到所在处理器的接收端应用层以进行逻辑操作。
当第一传输通道中交互数据有效时,将第一传输通道数据包中的交互数据传输到其所在处理器的接收端应用层,并停止解析第二传输通道中的数据包,当第一传输通道中交互数据无效时,则继续解析第二传输通道中的数据包。
本发明一些实施例中,接收端控制模块对两个传输通道中的数据包进行仲裁,具体为接收端控制模块首先对第一传输通道中的数据包进行解包和校验,并基于解包和校验的结果判断第一传输通道中的数据包是否完整以及数据包中的交互数据是否有效;若完整且有效,则将第一传输通道中的有效交互数据传输至接收端应用层。
若不完整或无效,则丢弃第一传输通道中的数据包,对第二传输通道中的数据包进行解包和校验,并基于解包和校验的结果判断第二传输通道中的数据包是否完整以及数据包中的交互数据是否有效;若完整且有效,则将第二传输通道中的有效交互数据传输至接收端应用层,若不完整或无效,则丢弃第二传输通道中的数据包。
具体解包和校验的过程为接收端控制模块解析数据包中的包头、包尾,并提取数据包中的包号,对数据包中的交互数据进行CRC校验后,将计算出的CRC校验结果与数据包中的CRC校验结果进行对比,若两个校验结果一致,则认为该数据包完整且数据包中的交互数据有效。
本发明一些实施例中,发送端控制模块包括采样单元、发送端校验单元、封包单元和发送单元。
其中,采样单元用于按照预定通信周期定时循环采集来自发送端应用层的交互数据并缓存。
发送端校验单元用于按照CRC校验公式对采样单元定时采集的交互数据进行校验计算,并输出第一校验结果,第一校验结果即CRC校验结果。
封包单元用于对定时采集的交互数据和第一校验结果进行封装,并按照预定通信协议添加包头、包尾和包号等特征数据后进行组包,以生成用于与另一处理器进行数据交互的数据包。
发送单元用于将数据包按照预定通信协议分别发送到DDR数据通道和BRAM数据通道,并产生握手信号通知另一处理器的接收端控制模块数据已发送完毕。
本发明一些实施例中,接收端控制模块包括接收单元、解包单元、接收端校验单元和仲裁单元。
其中,接收单元用于基于发送端控制模块设置的握手信号读取第一传输通道和第二传输通道中的数据包。接收单元获取到握手信号得到数据已被发送到双路数据通道后,分别将两路的数据包进行读取并各自缓存。
解包单元用于对接收单元读取的数据包进行解包,去除数据包的包头、包尾和包号等特征数据,获得数据包中的交互数据和校验结果。
校验单元用于按照CRC校验公式对数据包中的交互数据进行校验计算,获得第二校验结果,并与数据包中的第一校验结果进行对比,生成对比结果。
仲裁单元用于判断第一传输通道和第二传输通道中的数据包是否完整以及基于对比结果判断数据包中的交互数据是否有效,在第一传输通道中的数据包不完整或者数据包中交互数据无效时,控制解包单元和校验单元继续解析第二传输通道中的数据包,以及,用于将有效交互数据传输至接收端应用层,并更新握手信号,告知另一处理器的发送端控制模块数据交互完成。
本发明一些实施例中,任一处理器的发送端控制模块与另一处理器的接收端控制模块之间采用握手机制,以防止发送端控制模块与另一处理器的接收端控制模块在读写传输通道中的数据时产生冲突。发送端控制模块在向第一传输通道和第二传输通道发送数据时,分别向第一传输通道中的第一预定地址、第二传输通道中的第二预定地址写入第一特征值0x55,以代表当前该包数据正在被修改,勿读取。在向第一传输通道和第二传输通道中发送数据完成时,即向两个数据传输通道中完全写完该包数据时,将第一预定地址的第一特征值0x55、第二预定地址的第一特征值0x55均更新为第二特征值0xAA,以代表该报数据已完整写入,可以读取。
接收端控制模块还用于基于第一传输通道和第二传输通道中的当前特征值,以及当前传输通道中数据包的包号,判断是否开始读取当前传输通道中的数据包,避免出现读取的数据包不完整的情况。接收端控制模块在读取数据时,事先读取两个传输通道中预定地址的当前特征值,若当前特征值为第一特征值0x55,则不读取该传输通道中的数据,若当前特征值为第二特征值0xAA,则判断该传输通道中的数据包已写入完毕,可以开始读取。在读取时,判断数据传输通道中当前数据包的包号是否与上次读取成功的数据包的包号一致,若一致,则不再重复读取,若不一致,则继续读取该数据传输通道中的数据包,以防重复读取传输通道中的数据包。读取完成后,接收端控制模块将第一传输通道和第二传输通道中的当前特征值均更改为第一特征值0x55,以告知发送端数据已读取完毕。
本发明一些实施例进一步提供一种集成SOC内部处理器间冗余数据交互方法,包括以下步骤。
同一SOC芯片上的两个处理器经第一传输通道和第二传输通道进行数据交互,两个处理器用于实现不同的功能。
处理器内部的发送端控制模块采集来自所在处理器发送端应用层的交互数据后,对交互数据进行预处理,并将包含交互数据的数据包同时发送到第一传输通道和第二传输通道。预处理具体包括,对交互数据进行CRC校验计算,以生成CRC校验结果,对交互数据和CRC校验结果进行封装,并按照预定通信协议添加包头、包尾和包号等特征数据后进行组包,以生成用于与另一处理器进行数据交互的数据包。
接收端控制模块分别读取第一传输通道和第二传输通道中的数据包后,依次对第一传输通道和第二传输通道中的数据包进行解包、校验与仲裁,判断数据包中交互数据是否有效,并将有效交互数据传输至所在处理器的接收端应用层。
当判断第一传输通道的数据包中的交互数据有效时,停止对第二传输通道中的数据包进行解包、校验与仲裁;当判断第一传输通道的数据包中的交互数据无效时,继续对第二传输通道中的数据包进行解包、校验与仲裁。
本发明一些实施例中,还包括以下步骤。
发送端控制模块按照预定通信周期定时采集来自所在处理器发送端应用层的交互数据。
按照预定校验公式对采集的交互数据进行校验计算,并生成第一校验结果。
对采集的交互数据和第一校验结果进行封装,并按照预定通信协议添加包头、包尾和包号等特征数据后进行组包,以生成用于数据交互的数据包。
将数据包按照预定通信协议分别发送到第一传输通道和第二传输通道内,并分别更新两个传输通道中的握手信号。
本发明一些实施例中,还包括以下步骤。
接收端控制模块基于另一处理器发送端控制模块更新的握手信号分别读取第一传输通道的数据包和第二传输通道中的数据包。
首先对第一传输通道中的数据包进行解包和校验。
解包和校验过程中基于解包结果判断第一传输通道中的数据包是否完整,基于校验产生的对比结果判断第一传输通道数据包中的交互数据是否有效,当第一传输通道中的数据包完整且数据包中的交互数据有效时,将第一传输通道数据包中的有效交互数据传输至接收端应用层,同时更新握手信号,告知另一处理器该次数据交互完成。
当第一传输通道中的数据包不完整或者数据包中的交互数据无效时,丢弃第一传输通道中的数据包,对第二传输通道中的数据包进行解包和校验。
解包和校验过程中基于解包结果判断第二传输通道中的数据包是否完整,基于校验产生的对比结果判断第二传输通道数据包中的交互数据是否有效,当第二传输通道中的数据包完整且数据包中的交互数据有效时,将第二传输通道数据包中的有效交互数据传输至接收端应用层,同时更新握手信号,告知另一处理器该次数据交互完成。
当第二传输通道中的数据包不完整或者数据包中的交互数据无效时,丢弃第二传输通道中的数据包,同时更新握手信号,告知另一处理器该次数据交互完成。
最后应当说明的是:本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
以上实施例仅用以说明本发明的技术方案而非对其限制;尽管参照较佳实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者对部分技术特征进行等同替换;而不脱离本发明技术方案的精神,其均应涵盖在本发明请求保护的技术方案范围当中。
Claims (10)
1.一种集成SOC内部处理器间冗余数据交互系统,其特征在于,包括:两个处理器,两个所述处理器集成在同一芯片上,且用于执行不同的功能;
两个处理器之间设置有第一传输通道和第二传输通道,所述第一传输通道设置在所述芯片外部,所述第二传输通道设置在所述芯片内部,所述第一传输通道和所述第二传输通道均用于实现两个处理器之间的数据交互,
两个处理器均包括发送端控制模块和接收端控制模块,以通过所述发送端控制模块向另一处理器发送交互数据,并通过所述接收端控制模块接收来自另一处理器的交互数据;
所述发送端控制模块用于采集来自所在处理器发送端应用层的交互数据,对所述交互数据进行预处理后将包含所述交互数据的数据包同时发送到所述第一传输通道和所述第二传输通道;
所述接收端控制模块用于分别读取来自所述第一传输通道和所述第二传输通道的数据包,依次对所述第一传输通道和所述第二传输通道中的数据包进行解包、校验与仲裁,判断数据包中交互数据是否有效,并将有效交互数据传输至所在处理器的接收端应用层;
当判断所述第一传输通道的数据包中的交互数据有效时,停止对所述第二传输通道中的数据包进行解包、校验与仲裁;当判断所述第一传输通道的数据包中的交互数据无效时,继续对所述第二传输通道中的数据包进行解包、校验与仲裁。
2.根据权利要求1所述的集成SOC内部处理器间冗余数据交互系统,其特征在于,所述接收端控制模块首先对所述第一传输通道中的数据包进行解包和校验,并基于解包和校验的结果判断第一传输通道中的数据包是否完整以及数据包中的交互数据是否有效;若完整且有效,则将所述第一传输通道中的有效交互数据传输至接收端应用层;
若不完整或无效,则丢弃所述第一传输通道中的数据包,对所述第二传输通道中的数据包进行解包和校验,并基于解包和校验的结果判断第二传输通道中的数据包是否完整以及数据包中的交互数据是否有效;若完整且有效,则将所述第二传输通道中的有效交互数据传输至接收端应用层,若不完整或无效,则丢弃所述第二传输通道中的数据包。
3.根据权利要求1所述的集成SOC内部处理器间冗余数据交互系统,其特征在于,所述发送端控制模块包括采样单元、发送端校验单元、封包单元和发送单
元;
所述采样单元用于按照预定通信周期定时采集来自所在处理器发送端应用层的交互数据;
所述发送端校验单元用于按照预定校验公式对所述采样单元定时采集的交互数据进行校验计算,并输出第一校验结果;
所述封包单元用于对定时采集的交互数据和第一校验结果进行封装,并按照预定通信协议添加特征数据后进行组包,以生成用于数据交互的数据包;所述特征数据包括包头、包尾和包号;
所述发送单元用于将所述数据包按照预定通信协议分别发送到所述第一传输通道和所述第二传输通道内,并设置握手信号。
4.根据权利要求3所述的集成SOC内部处理器间冗余数据交互系统,其特征在于,所述接收端控制模块包括接收单元、解包单元、接收端校验单元和仲裁单元;
所述接收单元用于基于所述发送端控制模块设置的握手信号读取所述第一传输通道和所述第二传输通道中的数据包;
所述解包单元用于对所述接收单元读取的数据包进行解包,去除数据包的特征数据,以获得数据包中的交互数据和校验结果;
所述校验单元用于按照预定校验公式对数据包中的交互数据进行校验计算,获得第二校验结果,并与所述数据包中的第一校验结果进行对比,生成对比结果;
所述仲裁单元用于判断所述第一传输通道和所述第二传输通道中的数据包是否完整以及基于所述对比结果判断数据包中的交互数据是否有效,在所述第一传输通道中的数据包不完整或者数据包中交互数据无效时,控制所述解包单元和所述校验单元继续解析所述第二传输通道中的数据包,以及,用于将有效交互数据传输至接收端应用层。
5.根据权利要求1-4任意一项所述的集成SOC内部处理器间冗余数据交互系统,其特征在于,所述发送端控制模块在向所述第一传输通道和所述第二传输通道发送数据时,分别向所述第一传输通道中的第一预定地址、所述第二传输通道中的第二预定地址写入第一特征值,在向所述第一传输通道和所述第二传输通道中发送数据完成时,将所述第一预定地址的第一特征值、第二预定地址的第一特征值均更新为第二特征值;
所述接收端控制模块还用于基于所述第一传输通道和所述第二传输通道中的当前特征值,以及当前传输通道中数据包的包号,判断是否开始读取当前传输通道中的数据包;读取完成后,将所述第一传输通道和所述第二传输通道中的当前特征值均更新为所述第一特征值。
6.根据权利要求1所述的集成SOC内部处理器间冗余数据交互系统,其特征在于,所述第一传输通道包括设置在所述芯片外部的DDR芯片和设置在所述芯片内部的DDR控制器,所述DDR控制器与所述DDR芯片连接,并分别与两个处理器连接。
7.根据权利要求1所述的集成SOC内部处理器间冗余数据交互系统,其特征在于,所述第二传输通道包括设置在所述芯片内部的FPGA处理器;所述FPGA处理器分别与两个处理器连接;所述FPGA处理器内部设置有用于两个处理器之间数据传输的BRAM通道。
8.一种集成SOC内部处理器间冗余数据交互方法,采用权利要求1-7任意一项所述的集成SOC内部处理器间冗余数据交互系统,其特征在于,包括以下步骤:
同一芯片上的两个处理器经第一传输通道和第二传输通道进行数据交互,两个处理器用于实现不同的功能;
处理器内部的发送端控制模块采集来自所在处理器发送端应用层的交互数据后,对交互数据进行预处理,并将包含交互数据的数据包同时发送到所述第一传输通道和所述第二传输通道;
所述接收端控制模块分别读取所述第一传输通道和所述第二传输通道中的数据包后,依次对所述第一传输通道和所述第二传输通道中的数据包进行解包、校验与仲裁,判断数据包中交互数据是否有效,并将有效交互数据传输至所在处理器的接收端应用层;
当判断所述第一传输通道的数据包中的交互数据有效时,停止对所述第二传输通道中的数据包进行解包、校验与仲裁;当判断所述第一传输通道的数据包中的交互数据无效时,继续对所述第二传输通道中的数据包进行解包、校验与仲裁。
9.根据权利要求8所述的集成SOC内部处理器间冗余数据交互方法,其特征在于,还包括以下步骤:
发送端控制模块按照预定通信周期定时采集来自所在处理器发送端应用层的交互数据;
按照预定校验公式对采集的交互数据进行校验计算,并生成第一校验结果;
对采集的交互数据和第一校验结果进行封装,并按照预定通信协议添加特征数据后进行组包,以生成用于数据交互的数据包;所述特征数据包括包头、包尾和包号;
将数据包按照预定通信协议分别发送到所述第一传输通道和所述第二传输通道内,并分别更新两个传输通道中的握手信号。
10.根据权利要求9所述的集成SOC内部处理器间冗余数据交互方法,其特征在于,还包括以下步骤:
接收端控制模块基于另一处理器发送端控制模块更新的握手信号分别读取所述第一传输通道的数据包和所述第二传输通道中的数据包;
首先对所述第一传输通道中的数据包进行解包和校验;
解包和校验过程中基于解包结果判断第一传输通道中的数据包是否完整,基于校验产生的对比结果判断第一传输通道数据包中的交互数据是否有效,当第一传输通道中的数据包完整且数据包中的交互数据有效时,将所述第一传输通道数据包中的有效交互数据传输至接收端应用层;
当第一传输通道中的数据包不完整或者数据包中的交互数据无效时,丢弃第一传输通道中的数据包,对所述第二传输通道中的数据包进行解包和校验;
解包和校验过程中基于解包结果判断第二传输通道中的数据包是否完整,基于校验产生的对比结果判断第二传输通道数据包中的交互数据是否有效,当第二传输通道中的数据包完整且数据包中的交互数据有效时,将所述第二传输通道数据包中的有效交互数据传输至接收端应用层;当所述第二传输通道中的数据包不完整或者数据包中的交互数据无效时,丢弃所述第二传输通道中的数据包。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311297526.6A CN117453616A (zh) | 2023-10-09 | 2023-10-09 | 一种集成soc处理器间冗余数据交互系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311297526.6A CN117453616A (zh) | 2023-10-09 | 2023-10-09 | 一种集成soc处理器间冗余数据交互系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117453616A true CN117453616A (zh) | 2024-01-26 |
Family
ID=89578964
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311297526.6A Pending CN117453616A (zh) | 2023-10-09 | 2023-10-09 | 一种集成soc处理器间冗余数据交互系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117453616A (zh) |
-
2023
- 2023-10-09 CN CN202311297526.6A patent/CN117453616A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110471872B (zh) | 一种基于zynq芯片实现m-lvds总线数据交互系统和方法 | |
CN111327603B (zh) | 数据传输方法、装置和系统 | |
US7810013B2 (en) | Memory device that reflects back error detection signals | |
JP4195272B2 (ja) | Can−コントローラ内部のデータ伝送におけるエラーの認識方法,can−コントローラ,プログラム,記録媒体,及び制御装置 | |
CN205563568U (zh) | 一种基于fpga的高速数据采集装置 | |
US9552279B2 (en) | Data bus network interface module and method therefor | |
US11892955B2 (en) | System and method for bypass memory read request detection | |
US7991941B2 (en) | Memory access assist | |
WO2021134418A1 (zh) | 一种数据校验方法及装置 | |
CN109862034B (zh) | 数据传输处理系统、网关和数据传输处理方法 | |
CN117453616A (zh) | 一种集成soc处理器间冗余数据交互系统及方法 | |
CN115567167B (zh) | 一种总线传输数据纠错方法及装置 | |
CN113411198B (zh) | 基于双通道和rssp-i的通信方法、装置、电子设备及存储介质 | |
KR20200139059A (ko) | 제어기 진단 장치 및 그 방법 | |
CN116266803A (zh) | 用于控制器局域网的设备 | |
CN110362421B (zh) | 一种数据表决输出方法和装置 | |
CN107368439A (zh) | 主控元件以及数据传输方法 | |
CN114363229A (zh) | 一种面向车机测试的自检方法及自检装置 | |
CN114338270A (zh) | 数据通信方法、装置、电子设备及存储介质 | |
US7310762B2 (en) | Detection of errors | |
JP2003097344A (ja) | 車両用電子制御装置 | |
CN117857106A (zh) | 一种rssp-ii安全通信协议实现方法、设备及介质 | |
CN112597084B (zh) | 一种两线制解决rs485多主仲裁冲撞的系统 | |
CN117222992A (zh) | 用于旁路存储器读取请求检测的系统和方法 | |
CN113660057B (zh) | 监护数据的传输方法和装置 |
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 |