一种基于CPCI背板的中断通信方法与流程

文档序号:12824674阅读:371来源:国知局
一种基于CPCI背板的中断通信方法与流程

本发明涉及车辆通信技术领域,具体的说,涉及一种基于cpci背板的中断通信方法。



背景技术:

随着列车高速化、安全化和舒适化的发展,越来越多的状态信息、控制信息和诊断信息等需要在机车车辆之间、各电气设备之间相互传输。由于列车通信网络(traincommunicationnetwork,tcn)在介质控制方式、通信服务以及实时性等方面都有着独特优点,因此得到了广泛的应用。在相关的应用项目中,mvb板、wtb板、io板、事件记录板等单板收集的信息都通过机箱内的cpci背板总线与cpu主控板实现交互,cpu主控板为cpci总线的主设备,其他单板为从设备。

在通用的基于中断的cpci总线通信模式中,cpu主控板和从板cpu都对同一片双口ram进行读写操作,即当cpu主控板发送数据时,通过cpci背板总线将数据写入双口ram中,然后采用中断通知从板cpu读取数据。反过来,从板cpu也可通过本地总线将数据写入同一片双口ram中,然后采用中断通知cpu主控板读取数据。这样处理的弊端是:在出现cpu主控板和从板cpu处于一个在写双口ram而另一个在读双口ram的状态下,或cpu主控板和从板cpu同时在写双口ram的状态下,会出现数据读取错误以及数据冲突,引起数据的错误和混乱,使得通信系统的可靠性较低。

因此,亟需一种能够防止数据传输的错误和混乱,提高通信系统可靠性的基于cpci背板的中断通信方法。



技术实现要素:

本发明的目的在于提供一种基于cpci背板的中断通信方法,以解决的传统的中断模式通信方法容易发生数据传输错误和混乱,可靠性和稳定性较低的技术 问题。

本发明提供一种基于cpci背板的中断通信方法,该方法包括:

第一通信单元在第一存储单元中的数据被读取后向第一存储单元中写入第一通信数据,写入的第一通信数据包括:数据信息和读数据指示信息,或第一通信单元在第一个第二存储单元中的数据被读取后向第一存储单元中写入第一通信数据,写入的第一通信数据包括:写数据指示信息;

中断控制单元通过中断指示第二通信单元从第一存储单元中读取所述读数据指示信息或写数据指示信息;

第二通信单元根据读数据指示信息从第一存储单元中读取所述数据信息,或根据写数据指示信息将第二通信数据写入第二存储单元;

中断控制单元通过中断指示第一通信单元从第二存储单元中读取第二通信数据。

所述读数据指示信息和写数据指示信息记录在所述第一通信数据的数据头,在所述第二通信单元从第一存储单元中读取所述读数据指示信息或写数据指示信息的步骤中包括:

第二通信单元从第一存储单元中读取第一通信数据的数据头;

第二通信单元判断所述数据头中记录的指示信息的类型。

在所述第一通信单元向第一存储单元中写入第一通信数据的步骤中包括:

第一通信单元读取空满寄存器状态,在所述空满寄存器状态为空时,向第一存储单元中写入第一通信数据;

在数据写入后,第一通信单元将空满寄存器状态置为满;

在所述第二通信单元从第一存储单元中读取所述数据信息的步骤中包括:第二通信单元读取所述数据信息后,将空满寄存器状态置为空;

在所述第二通信单元将第二通信数据写入第二存储单元的步骤中包括:第二通信单元写入第二通信数据后,将空满寄存器状态置为空。

在中断控制单元通过中断指示第二通信单元从第一存储单元中读取所述读数据指示信息或写数据指示信息的步骤中包括:

中断控制单元向第二通信单元发送用于指示第二通信单元对第一存储单元进行读数据操作的第一中断信号;

第二通信单元根据第一中断信号从第一存储单元中读取所述读数据指示信 息或写数据指示信息。

在所述中断控制单元通过中断指示第一通信单元从第二存储单元中读取第二通信数据的步骤中包括:

中断控制单元向第一通信单元发送用于指示第一通信单元对第二存储单元进行读数据操作的第二中断信号;

第一通信单元根据第二中断信号从第二存储单元中读取所述第二通信数据。

在中断控制单元通过中断指示第二通信单元从第一存储单元中读取所述读数据指示信息或写数据指示信息的步骤中包括:

第二通信单元从第一存储单元中读取所述读数据指示信息或写数据指示信息后,清除第一中断信号。

在所述中断控制单元通过中断指示第一通信单元从第二存储单元中读取第二通信数据的步骤中包括:

第一通信单元从第二存储单元中读取所述第二通信数据后,清除第二中断信号。

本发明实施例提供的中断通信方法,一方面将双向的中断通信分为两个通道分别进行,避免了传统的基于cpci背板的中断通信方式中通信双方都处于对同一缓存进行操作的情况发生,进而避免了该种情况引起的数据混乱的情况,保证了通信的正确性。另一方面,由一方主动管理数据的传输交互,另一方响应管理方的需求进行相应的操作,使所有的读写操作是一个有序的过程,避免了在同一个数据方向上多个中断信号同时产生而引发的数据错误,以及双方在进行数据操作时由于对方给的中断而引起数据操作被迫终止的情况发生,从而保证了通信的正确。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分的从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

附图说明

为了更清楚的说明本发明实施例中的技术方案,下面将对实施例描述中所需要的附图做简单的介绍:

图1是本发明实施例提供的中断通信方法的流程示意图;

图2是本发明实施例提供的中断通信方法的实施方式示意图;

图3是本发明实施例提供的中断通信方法的应用流程图;

图4是本发明实施例提供的中断通信方法的应用示意图。

具体实施方式

以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明的是,只要不构成冲突,本发明中的各个实施例以及各实施例中的各个特征可以相互结合,所形成的技术方案均在本发明的保护范围之内。

本发明实施例提供一种基于cpci背板的中断通信方法,如图1所示,该方法包括:步骤101、步骤102、步骤103和步骤104。在步骤101中,第一通信单元在第一存储单元中的数据被读取后向第一存储单元中写入第一通信数据,第一通信数据即第一通信单元待传输给第二通信单元的数据,写入的第一通信数据中包括有:数据信息和读数据指示信息,其中,读数据指示信息用于在需要进行第一通信单元到第二通信单元方向的数据传输时,指示第二通信单元对第一通信单元在第一存储单元中写入的第一通信数据进行读数据操作,从而完成第一通信单元向第二通信单元的数据传输。或第一通信单元在第一和第二存储单元中的数据被读取后向第一存储单元中写入第一通信数据,写入的第一通信数据包括:写数据指示信息,写数据指示信息用于在需要进行第二通信单元到第一通信单元方向的数据传输时,指示第二通信单元对第二存储单元进行第二通信数据的写入操作,第二通信数据即第二通信单元待传输给第一通信单元的数据,从而使得在之后的步骤中,第一通信单元可以从第二存储单元中读取第二通信数据,实现第二通信单元到第一通信单元方向的数据传输。

向第一存储单元中写入数据是在第一存储单元中的数据被读取后进行的,也就是上一次写入第一存储单元中的数据已经被读取,这样本次写入的数据即使覆盖上一次的数据也不会对通信过程产生影响,同样的,第二存储单元的数据写入也是如此。

在步骤102中,中断控制单元通过中断指示第二通信单元从第一存储单元中读取读数据指示信息或写数据指示信息。更为具体的,在本步骤中,首先中断控制单元在第一通信单元完成对于第一存储单元的数据传输后,向第二通信单元发 送用于指示第二通信单元对第一存储单元进行读数据操作的第一中断信号。然后,第二通信单元根据该第一中断信号从第一存储单元中读取读数据指示信息或写数据指示信息。在第二通信单元从第一存储单元中读取所述读数据指示信息或写数据指示信息后,第二通信单元清除第一中断信号。

在步骤103中,第二通信单元根据读数据指示信息从第一存储单元中读取所述数据信息,或根据写数据指示信息将第二通信数据写入第二存储单元。在需要进行第一通信单元到第二通信单元方向的数据传输时,第一通信单元向第一存储单元中写入的第一通信数据中包括有:数据信息和读数据指示信息,数据信息即需要传输给第二通信单元的有效数据。在需要进行第二通信单元到第一通信单元方向的数据传输时,第一通信数据中包括有:写数据指示信息。

进一步的,读数据指示信息和写数据指示信息记录在所述第一通信数据的数据头,若第一通信单元需要向第二通信单元发送数据,则第一通信数据数据头内记录有读数据指示信息,第一通信数据数据头后携带有有效的数据信息。若第一通信单元需要从第二通信单元中读取数据,则第一通信数据数据头内记录有写数据指示信息,第一通信数据数据头后不携带有效的数据信息。

具体来说,在步骤103中,首先,根据中断命令第二通信单元从第一存储单元中读取第一通信数据的数据头,然后第二通信单元判断数据头中记录的指示信息的类型,即判断指示信息是读数据指示信息还是写数据指示信息,若为读数据指示信息,则第二通信单元执行读数据操作,若为写数据指示信息,则第二通信单元执行写数据操作。

在步骤104中,中断控制单元通过中断指示第一通信单元从第二存储单元中读取第二通信数据。更为具体的,在本步骤中,首先中断控制单元向第一通信单元发送用于指示第一通信单元对第二存储单元进行读数据操作的第二中断信号,然后根据该第二中断信号,第一通信单元从第二存储单元中读取第二通信数据,并在读取完成后清除第二中断信号。

本发明实施例提供的中断通信方法,一方面将双向的中断通信分为两个通道分别进行,对于第一存储单元,第一通信单元只能写不能读,第二通信单元只能读不能写;对于第二存储单元,第一通信单元只能读不能写,第二通信单元只能写不能读。这就避免了传统的基于cpci背板的中断通信方式中通信双方都处于对同一缓存进行操作的情况发生,进而避免了该种情况引起的数据混乱的情况, 保证了通信的正确性。

另一方面,第一通信单元控制通过向第二通信单元发送读数据指示信息或写数据指示信息来控制第二通信单元的读写操作,即由第一通信单元主动管理数据的传输交互,第二通信单元响应第一通信单元的需求进行相应的操作,在第一通信单元写完数据后,第二通信单元才会收到读数据指示信息,进而去读取数据,而第一通信单元在本方上一次读数据操作完成后,即第二存储单元中的数据被第一通信单元读取后,才会向第二通信单元发送写数据指示信息,并在第二通信单元写完数据后,才会根据中断读取第二通信单元写入的数据,这样管理就能使所有的读写操作是一个有序的过程,避免了在同一个数据方向上多个中断信号同时产生而引发的数据错误,以及双方在进行数据操作时由于对方给的中断而引起数据操作被迫终止的情况发生,从而保证了通信的正确。

进一步的,在本发明实施例提供的基于cpci背板的中断通信方法的具体流程,如图3所示,包括:步骤201,第一通信单元先读取空满寄存器的状态,判断空满寄存器是否为空,若空满寄存器的状态为满,在一段时间后重复步骤201,若空满寄存器的状态为空,则执行步骤202。在本步骤中,通过空满寄存器的状态来表示第一存储单元中数据是否被读取的状态,存入的数据若未被读取则通过空满寄存器表示满状态,避免数据的再次写入,若已被读取,则表示空状态从而指示数据的写入可以进行。在步骤202中,第一通信单元将数据写入第一存储单元中。在步骤203中,第一通信单元在写完数据之后将空满寄存器置为满状态。在步骤204中,中断控制单元产生中断给第二通信单元,通知其读取数据。在步骤205中,第二通信单元响应中断,读取指示信息,判断指示信息类型,即判断第一通信单元是要求第二通信单元读取相应的数据还是写入相应的数据供第一通信单元读取,若第一通信单元是要求第二通信单元读取数据,则执行步骤206,若第一通信单元是要求读取第二通信单元发送的数据,则执行步骤208。在步骤206中,第二通信单元读取第一存储单元的数据。在步骤207中,第二通信单元读完数据之后,清除中断,并将空满寄存器置为空状态。在步骤208中,第二通信单元将数据写入第二存储单元。在步骤209中,第二通信单元写完数据之后,清除中断,将空满寄存器置为空状态。在步骤210中,中断控制单元产生中断通知第一通信单元读取数据。在步骤211中,第一通信单元中断指示读取第二存储单元数据。在步骤212中,第一通信单元读取数据之后,清除中断。

下面接结合具体的实施方式,对本发明提供的基于cpci背板的中断通信方法做进一步详细的说明。在将本发明提供的方法应用于机车中的功能从板通过cpci背板总线与cpu主控板进行数据交互的通信模式中,如图2所示,第一通信单元的功能可以由cpu主控板实现,第二通信单元的功能可以由从板cpu实现,第一、第二存储单元和中断控制单元以及空满寄存器的功能可以由从板的fpga芯片实现。

在各类从板中,通过pciip核实现与cpu主控板的cpci背板通信,然后对通信数据进行数据存储,并通过从板本地总线与从板cpu(或者其他的中间处理模块)通信,pciip核的功能是实现各种pci总线命令的时序。在单板的fpga内,第一、第二存储单元一般用fpga片内的fifo或者双口ram实现,也可以采用专用的缓存芯片。

如图4所示,在本发明的一种实施方式中,双通道缓存通过fpga内双口rama和ramb实现,中断控制单元功能可通过fpga内中断控制寄存器实现,本发明为了提高通信的正确性和可靠性,解决由于cpu主控板与从板cpu同时操作双口ram以及出现多个中断信号后可能带来数据冲突和混乱而导致通信失败的问题,将一片双口ram换成两片双口ram,即把一个通道变成两个通道,如在双口rama中,cpu主控板只能写不能读,从板cpu只能读不能写;在双口ramb中,cpu主控板只能读不能写,从板cpu只能写不能读。这就避免了双方都处于对同一片双口ram进行写操作的情况。

其次,在中断操作中,cpu主控板需要写数据时,先读取空满寄存器,判断其状态(默认状态为空),如果是空状态,那么可以将数据写入到双口rama中,写完后将空满寄存器置为满状态,然后通过读数据指示信息通知从板cpu读取数据,从板cpu读完数据之后,将空满寄存器置为空状态,同时清除中断。cpu主控板读取空满寄存器,发现为空之后,又可以继续写数据。这样就避免出现从板cpu在读数据时,cpu主控板发起新的写数据操作,同时产生新的中断给从板cpu。

在另一个数据通路,采用cpu主控板主动读取数据的方式,即cpu主控板需要读数据时,先产生写数据指示信息指示从板cpu写入需要读取的相应数据,从板cpu响应中断后,将所需的数据写入到双口ramb中,然后产生中断通知cpu主控板读取数据,cpu主控板读完数据后,清除中断。这样就避免了cpu 主控板和从板cpu处于一个正在读双口ram而另一个正在写双口ram的状态。通过cpu主控板主动请求读取数据,从板cpu被动的发送数据给cpu主控板,避免出现上文提到的cpu主控板(或从板cpu)写完数据后向从板cpu(或cpu主控板)产生中断而打乱了对方对双口ram的操作所引起的数据混乱的情况,从而保证了通信的正确性。

以上措施均是在基于中断的通信模式下,有效的管理中断信号的产生,以及对双口ram的读写操作的防冲突处理,来防止数据的错误和混乱,保证cpci背板通信的准确性。

本发明实施例提供的中断通信方法,一方面将双向的中断通信分为两个通道分别进行,避免了传统的基于cpci背板的中断通信方式中通信双方都处于对同一缓存进行操作的情况发生,进而避免了该种情况引起的数据混乱的情况,保证了通信的正确性。另一方面,由一方主动管理数据的传输交互,另一方响应管理方的需求进行相应的操作,使所有的读写操作是一个有序的过程,避免了在同一个数据方向上多个中断信号同时产生而引发的数据错误,以及双方在进行数据操作时由于对方给的中断而引起数据操作被迫终止的情况发生,从而保证了通信的正确。

虽然本发明所公开的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所公开的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。

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