一种双处理器数据交换方法与流程

文档序号:18464467发布日期:2019-08-17 02:19阅读:506来源:国知局
一种双处理器数据交换方法与流程

本发明属于数据通信技术,具体涉及一种双处理器数据交换方法。



背景技术:

在航空、工业控制领域中,一般需要主辅两个处理器共同完成i/o的输入输出控制。主处理器用于控制器整机控制策略的实现,辅处理器用于i/o输入数据的采集和输出控制。辅处理器将采集的输入数据经特定方法处理后传输给主处理器,参与控制决策;主处理器将输出控制信息传输给辅处理器,辅处理器根据输出控制信息控制作动器的动作。这种应用本身要求控制具有较高的可靠性,数据具有较强的可信性,并且具有一定的数据吞吐量。因此,为了控制器可靠有效地采集输入状态和控制输出状态,用于双处理器的数据交换方法应运而生。

目前主流双处理器数据交换实现方法一般都是基于处理器的外设通信控制器,比如can总线、uart总线、spi总线等和传统的双口ram。而这些串行总线数据吞吐量较低;传统的通过双口ram地址的busy信号来判断访问地址处数据的冲突,存在冲突地址数据恢复等异常问题,软件处理复杂。



技术实现要素:

本发明的目的是:提供一种能够简捷、可靠、有效的双处理器数据交换方法。

第一方面,本申请提供一种双处理器数据交换方法,所述方法应用于双处理器,所述双处理器包括发送处理器和接收处理器,所述方法包括:

所述双处理器配置双口ram数据空间、信号量地址;

所述双处理器对所述信号量地址进行操作,获得信号量状态;

所述双处理器根据所述信号量状态,访问所述双口ram数据空间。

可选的,所述配置双口ram数据空间、信号量地址,具体包括:

将双口ram数据空间,按相同端口地址分成至少一个非零块数据区,所述非零块数据区具有一个信号量地址空间及一个信号量。

可选的,对所述信号量地址进行操作,获得信号量状态,具体包括:

当发送处理器向所述信号量地址写入数据时,信号量状态由无效变成有效;

当接收处理器向所述信号量地址写入数据时,信号量状态不变;

当接收处理器读取所述信号量地址存储的数据时,信号量状态由有效变成无效;

当发送处理器读取所述信号量地址存储的数据时,信号量状态不变。

可选的,根据所述信号量状态访问所述双口ram数据空间,具体包括:

发送处理器根据信号量状态,判断发送的数据是否被接收处理器读取,并发送新的数据;

接收处理器根据信号量状态,判断是否收到发送处理器发送的新数据。

可选的,在所述访问所述双口ram数据空间之后,方法还包括:

接收处理器根据信号量地址存储的数据,判断已接收的数据是否有效;

根据所述信号量状态,判断读操作、写操作是否故障。

可选的,当信号量状态为有效时,接收处理器从对应的双口ram数据空间读取所述发送处理器发送的数据;

当信号量状态有效时,发送处理器发送新的数据,并记录接收处理器未读取发送处理器上次发送的数据的状态;当信号量无效时,发送处理器发送新的数据。

可选的,所述接收处理器根据信号量地址存储的数据,判断已接收的数据是否有效,具体包括:

当信号量状态有效时,接收处理器从信号量地址读取发送处理器发送的双方预先定义的数据,当读取的数据和双方预先定义的数据一致时,接收处理器从数据区读取的数据有效,否则无效。

可选的,所述根据所述信号量状态,判断读操作、写操作是否故障,具体包括:

接收处理器从信号量地址读取发送处理器发送的双方预先定义的数据后,若信号量状态为有效时,则接收处理器读取操作故障;若信号量状态为无效时,则接收处理器读取操作正常;

发送处理器向信号量地址写入双方预先定义的数据后,若信号量状态为有效时,发送处理器写操作正常;若信号量状态为无效时,发送处理器写操作故障。

本发明的技术效果是:相对于传统的外设串行通信接口有效数据吞吐量低,传统的通过双口ram地址的busy信号来判断访问地址处数据的冲突,存在冲突地址数据恢复等异常问题,软件处理复杂。本发明处理器访问本方和对方双口ram端口信号量状态,根据信号量状态访问对应的双口ram数据区,再访问本方双口ram端口信号量地址处的数据,判断数据区是否有效。双方处理器均可以访问同一数据区的端口信号量状态,实现双处理器数据的可靠交换。

附图说明

图1是本申请实施例提供的双处理器数据交换方法的流程图。

具体实施方式

实施例一

如图1所示,提供一种能够简捷、可靠、有效的双处理器数据交换方法。

本发明的技术方案是:处理器访问双口ram信号量状态,根据信号量状态访问对应的双口ram数据空间;接收处理器再访问双口ram信号量地址存储的数据,根据该数据判断已读取的数据区是否有效;处理器再访问双口ram信号量状态,根据信号量状态判断读操作、写操作是否故障;

所述的双处理器数据交换方法,其具体过程如下:

步骤1:配置双口ram数据空间、信号量地址

将双口ram数据空间,按相同端口地址分成至少一个非零块数据区,所述非零块数据区具有一个信号量地址及一个信号量状态。

步骤2:信号量状态的产生

当发送处理器向所述信号量地址写入数据时,信号量状态由无效变成有效;

当接收处理器向所述信号量地址写入数据时,信号量状态不变;

当接收处理器读取所述信号量地址存储的数据时,信号量状态由有效变成无效;

当发送处理器读取所述信号量地址存储的数据时,信号量状态不变。

步骤3:处理器根据的信号量状态访问对应的数据区

发送处理器根据信号量状态,判断发送的数据是否被接收处理器读取,并发送新的数据;接收处理器根据信号量状态,判断是否收到发送处理器发送的新数据。

将双口ram数据空间按地址分成至少一个数据区;每个数据区具有一个独立的信号量状态、信号量地址;处理器均可以访问每个数据区的信号量、信号量地址;每个数据区对一个处理器只读,对另一个处理器只写。

发送处理器在写入信号量地址数据时,该数据可为握手口令,或者数据包号,或者两者的结合;接收处理器根据从信号量地址读取的数据判断本次数据是否有效。

信号量状态,无效时为低电平,有效时为高电平,或者相反电平状态。

接收处理器访问信号量状态,当信号量有效时,从对应数据区读取发送处理器发送的数据;当信号量无效时,发送处理器没有发送新的有效数据,并记录该状态信息供系统使用。

发送处理器访问信号量状态,当信号量有效时,接收处理器未读取发送处理器发送的数据,并记录该状态信息供系统使用;当信号量无效时,接收处理器已取走发送的数据,发送处理器发送新的数据。

本发明的技术效果是:相对于传统的外设串行通信接口有效数据吞吐量低,传统的通过双口ram地址的busy信号来判断访问地址处数据的冲突,存在冲突地址数据恢复等异常问题,软件处理复杂。本发明处理器访问双口ram信号量状态,根据信号量状态访问对应的双口ram数据空间,再访问信号量地址处的数据,判断数据区是否有效。处理器均可以访问同一数据区的信号量状态,实现双处理器数据的可靠交换。

实施例二

下面结合附图和实施例对本发明做进一步说明:

本发明处理器信号量状态,根据信号量状态访问对应的双口ram数据空间,再访问对应的信号量地址处的数据,判断数据区是否有效。处理器均可以访问同一数据区的信号量状态,实现双处理器数据的可靠交换。

请参阅图1,所述的双处理器数据交换方法具体过程如下:

步骤1:配置双口ram数据空间、信号量地址

在处理器交换数据前,根据系统输入、输出功能确定处理器需要的数据区数量和数据区大小,将双口ram存储空间按地址分成相应正整数块不同的数据区。每个数据区具有一个独立的信号量、信号量地址。处理器均可以访问每个数据区的信号量、信号量地址。每个数据区对一个处理器只读,对另一个处理器只写。

步骤2:处理器交换数据前的双口ram信号量状态的检测

发送处理器向接收处理器发送新数据,首先发送处理器读取信号量状态。若信号量状态无效,则表明相应数据区中没有需要接收处理器读取的数据信息;若信号量状态有效,则表明数据区中含有接收处理器待读取的数据信息,并记录该状态信息供系统使用。

接收处理器读取发送处理器发送的数据信息,首先接收处理器读取信号量状态。若该信号量状态有效,则表明数据区中含有发送处理器新发送的数据信息;若该信号量状态无效,则表明数据区中没有发送处理器新发送的数据信息。

步骤3:处理器访问双口ram数据空间

发送处理器读取信号量状态,若信号量状态无效,将要交换的新数据信息写入双口ram数据区;若信号量状态有效,则表明相应数据区中含有接收处理器待读取的数据信息,重新写入需要接收处理器读取的新数据信息,并记录接收处理器未读取已发送的数据信息状态,以供系统使用。

接收处理器读取信号量状态,若信号量状态有效,接收处理器从相应的双口ram数据空间中读出发送处理器发送的数据;若信号量状态无效,无新数据需要接收处理器读取,并记录发送处理器未发送新数据信息的状态,以供系统使用。

步骤4:处理器访问信号量地址

发送处理器把发送给接收处理器的数据写入双口ram数据空间后,发送处理器向信号量地址处写入命令或者数据包号等数据,使信号量状态有效,以通知接收处理器有待处理的数据需要读取。

接收处理器把发送处理器发送的数据从双口ram数据空间读取后,接收处理器读取信号量地址,并判断该信号量地址存储的数据是否为预先定义的命令或者数据包号。若从信号量地址读出得数据不符合预定义数据,则判断本次读取的双口ram数据空间数据无效,并记录该故障状态,以供系统使用。

步骤5:处理器再访问信号量状态

发送处理器写入信号量地址后,再读取信号量状态,若该信号量状态无效,表明发送处理器双口ram写故障,记录该故障状态,以供系统使用;若该信号量状态有效,表明发送处理器双口ram写数据完成。

接收处理器读取信号量地址后,再读取信号量状态,若该信号量状态无效,表明接收处理器双口ram读数据完成;若该状态有效,则表明接收处理器双口ram读数据故障,并记录该故障状态,以供系统使用。

该方法描述的双处理器数据交换,可以利用asic双口ram或者逻辑实现,使用总线和双口ram信号量增大了数据吞吐量,简化了双处理器数据传输过程,并提高了处理器传输数据的可靠性。另外,该方法可以根据不同处理器型号方便配置地址总线、数据总线宽度,经过简单修改即可以适应不同处理器类型间的数据传输需求。

综上所述,本发明双处理器数据交换方法在处理器进行读写数据时,利用双口ram及其指示信号,将双口ram的读写状态信号传输给双方处理器,实现双处理器数据的简单、可靠交换。针对传统的通过双口ram地址的busy信号来判断访问地址处数据的冲突,存在冲突地址数据恢复、冲突等待等异常问题,本发明采取双口ram的读写状态指示信号方法,来判断是否产生有效数据访问,可以简捷、可靠的实现双处理器的数据交换。

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