一种集成SOC处理器间冗余数据交互系统及方法与流程

文档序号:36888027发布日期:2024-02-02 21:21阅读:17来源:国知局
一种集成SOC处理器间冗余数据交互系统及方法与流程

本发明属于电气控制,尤其涉及一种集成soc内部处理器间冗余数据交互系统及方法。


背景技术:

1、轨道交通的电气控制系统中,控制运算板卡要兼顾控制与运算的功能需求,其中的控制处理器与运算处理器之间的关键数据传输十分重要。传统的控制运算板卡通常采用独立的arm处理器芯片实现控制功能,独立的dsp处理器芯片实现运算功能。二者之间通过独立的fpga芯片建立的共享bram通道进行数据交互,并通过crc校验验证两个处理器之间传输的交互数据是否正常。

2、而这种传输方法的缺点也是显而易见的,首先两个处理器芯片之间只有单一通道进行数据交互传输,当bram通道存在故障或fpga出现宕机时,数据传输通道就会中断,导致数据无法实现交互;其次,当通道中传输的交互数据出现异常时,只能采用丢包的方式进行处理,这可能会导致关键数据的丢失;最后,由于控制处理器芯片、运算处理器芯片以及fpga芯片均为独立的处理器芯片,各处理器芯片之间只能采用外部总线进行数据收发,会增大传输过程受到干扰的概率,增加了数据传输过程中的不稳定因素。因此,如何提高控制处理器与运算处理器之间的数据传输的安全性,保证数据传输的准确性,实现数据的高效安全冗余传输是当前控制运算板卡的亟待解决的问题。


技术实现思路

1、本发明的目的在于解决上述技术问题之一,提供一种集成soc内部处理器间冗余数据交互系统及方法。

2、为实现上述目的,本发明采用的技术方案是:

3、一种集成soc内部处理器间冗余数据交互系统,包括:两个处理器,两个处理器集成在同一soc芯片上,且用于执行不同的功能;

4、两个处理器之间设置有第一传输通道和第二传输通道,第一传输通道设置在soc芯片外部,第二传输通道设置在soc芯片内部,第一传输通道和第二传输通道均用于实现两个处理器之间的数据交互,

5、两个处理器均包括发送端控制模块和接收端控制模块,以通过发送端控制模块向另一处理器发送交互数据,并通过接收端控制模块接收来自另一处理器的交互数据;

6、发送端控制模块用于采集来自所在处理器发送端应用层的交互数据,对交互数据进行预处理后将包含交互数据的数据包同时发送到第一传输通道和第二传输通道;

7、接收端控制模块用于分别读取来自第一传输通道和第二传输通道的数据包,依次对第一传输通道和第二传输通道中的数据包进行解包、校验与仲裁,判断数据包中交互数据是否有效,并将有效交互数据传输至所在处理器的接收端应用层;当判断第一传输通道的数据包中的交互数据有效时,停止对第二传输通道中的数据包进行解包、校验与仲裁;当判断第一传输通道的数据包中的交互数据无效时,继续对第二传输通道中的数据包进行解包、校验与仲裁。

8、本发明一些实施例中,接收端控制模块首先对第一传输通道中的数据包进行解包和校验,并基于解包和校验的结果判断第一传输通道中的数据包是否完整以及数据包中的交互数据是否有效;若完整且有效,则将第一传输通道中的有效交互数据传输至接收端应用层;

9、若不完整或无效,则丢弃第一传输通道中的数据包,对第二传输通道中的数据包进行解包和校验,并基于解包和校验的结果判断第二传输通道中的数据包是否完整以及数据包中的交互数据是否有效;若完整且有效,则将第二传输通道中的有效交互数据传输至接收端应用层,若不完整或无效,则丢弃第二传输通道中的数据包。

10、本发明一些实施例中,发送端控制模块包括采样单元、发送端校验单元、封包单元和发送单元;

11、采样单元用于按照预定通信周期定时采集来自来自所在处理器发送端应用层的交互数据;

12、发送端校验单元用于按照预定校验公式对采样单元定时采集的交互数据进行校验计算,并输出第一校验结果;

13、封包单元用于对定时采集的交互数据和第一校验结果进行封装,并按照预定通信协议添加特征数据后进行组包,以生成用于数据交互的数据包;特征数据包括包头、包尾和包号;

14、发送单元用于将数据包按照预定通信协议分别发送到第一传输通道和第二传输通道内,并设置握手信号。

15、本发明一些实施例中,接收端控制模块包括接收单元、解包单元、接收端校验单元和仲裁单元;

16、接收单元用于基于发送端控制模块设置的握手信号读取第一传输通道和第二传输通道中的数据包;

17、解包单元用于对接收单元读取的数据包进行解包,去除数据包的特征数据,以获得数据包中的交互数据和校验结果;

18、校验单元用于按照预定校验公式对数据包中的交互数据进行校验计算,获得第二校验结果,并与数据包中的第一校验结果进行对比,生成对比结果;

19、仲裁单元用于判断第一传输通道和第二传输通道中的数据包是否完整以及基于对比结果判断数据包中的交互数据是否有效,在第一传输通道中的数据包不完整或者数据包中交互数据无效时,控制解包单元和校验单元继续解析第二传输通道中的数据包,以及,用于将有效交互数据传输至接收端应用层。

20、本发明一些实施例中,发送端控制模块在向第一传输通道和第二传输通道发送数据时,分别向第一传输通道中的第一预定地址、第二传输通道中的第二预定地址写入第一特征值,在向第一传输通道和第二传输通道中发送数据完成时,将第一预定地址的第一特征值、第二预定地址的第一特征值均更新为第二特征值;

21、接收端控制模块还用于基于第一传输通道和第二传输通道中的当前特征值,以及当前传输通道中数据包的包号,判断是否开始读取当前传输通道中的数据包;读取完成后,将所述第一传输通道和所述第二传输通道中的当前特征值均更新为所述第一特征值。

22、本发明一些实施例中,第一传输通道包括设置在soc芯片外部的ddr芯片和设置在soc芯片内部的ddr控制器,ddr控制器与ddr芯片连接,并分别与两个处理器连接。

23、本发明一些实施例中,第二传输通道包括设置在soc芯片内部的fpga处理器;fpga处理器分别与两个处理器连接;fpga处理器内部设置有用于两个处理器之间数据传输的bram通道。

24、本发明一些实施例进一步提供一种集成soc内部处理器间冗余数据交互方法,包括以下步骤:

25、同一soc芯片上的两个处理器经第一传输通道和第二传输通道进行数据交互,两个处理器用于实现不同的功能;

26、处理器内部的发送端控制模块采集来自所在处理器发送端应用层的交互数据后,对交互数据进行预处理,并将包含交互数据的数据包同时发送到第一传输通道和第二传输通道;

27、接收端控制模块分别读取第一传输通道和第二传输通道中的数据包后,依次对第一传输通道和第二传输通道中的数据包进行解包、校验与仲裁,判断数据包中交互数据是否有效,并将有效交互数据传输至所在处理器的接收端应用层;当判断第一传输通道的数据包中的交互数据有效时,停止对第二传输通道中的数据包进行解包、校验与仲裁;当判断第一传输通道的数据包中的交互数据无效时,继续对第二传输通道中的数据包进行解包、校验与仲裁。

28、本发明一些实施例中,还包括以下步骤:

29、发送端控制模块按照预定通信周期定时采集来自所在处理器发送端应用层的交互数据;

30、按照预定校验公式对采集的交互数据进行校验计算,并生成第一校验结果;

31、对采集的交互数据和第一校验结果进行封装,并按照预定通信协议添加特征数据后进行组包,以生成用于数据交互的数据包;特征数据包括包头、包尾和包号;

32、将数据包按照预定通信协议分别发送到第一传输通道和第二传输通道内,并分别更新两个传输通道中的握手信号。

33、本发明一些实施例中,还包括以下步骤:

34、接收端控制模块基于另一处理器发送端控制模块更新的握手信号分别读取第一传输通道的数据包和第二传输通道中的数据包;

35、首先对第一传输通道中的数据包进行解包和校验;

36、解包和校验过程中基于解包结果判断第一传输通道中的数据包是否完整,基于校验产生的对比结果判断第一传输通道数据包中的交互数据是否有效,当第一传输通道中的数据包完整且数据包中的交互数据有效时,将第一传输通道数据包中的有效交互数据传输至接收端应用层;

37、当第一传输通道中的数据包不完整或者数据包中的交互数据无效时,丢弃第一传输通道中的数据包,对第二传输通道中的数据包进行解包和校验;

38、解包和校验过程中基于解包结果判断第二传输通道中的数据包是否完整,基于校验产生的对比结果判断第二传输通道数据包中的交互数据是否有效,当第二传输通道中的数据包完整且数据包中的交互数据有效时,将第二传输通道数据包中的有效交互数据传输至接收端应用层;当第二传输通道中的数据包不完整或者数据包中的交互数据无效时,丢弃第二传输通道中的数据包。

39、本发明的有益效果在于:

40、1、本发明在两个执行不同功能的处理器之间设置两路相互冗余的数据传输通道,当其中一路传输通道中断时,仍可以通过另一路传输通道进行两个处理器之间的数据交互,确保了两个处理器之间的数据通信不丢失,提高了数据通信的安全性;

41、2、本发明将两个执行不同功能的异构处理器集成到同一芯片上,通过一条内部通道与一条外部通道进行数据冗余交互,各处理器之间采用内部总线连接,整体结构更加紧凑,提高了两个执行不同功能的处理器之间数据通信的速度及安全性;

42、3、本发明在接收端控制模块中设置仲裁单元,当一路传输通道中的数据出现数据包丢失、数据包异常的等故障时,仍可以从另一路传输通道中获取相应的数据包,降低了两个处理器之间传输的关键数据丢失的概率,避免了关键数据丢失导致的控制系统功能异常;

43、4、本发明中相互通信的两个处理器中的发送端控制模块和接收端控制模块之间采用握手机制,能够有效防止发送端控制模块与接收端控制模块在读写传输通道数据中时产生冲突,避免了出现接收端控制模块读取的数据包不完整情况。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1