掌桥专利:专业的专利平台
掌桥专利
首页

串行背板总线通信方法及系统

文献发布时间:2023-06-19 11:39:06


串行背板总线通信方法及系统

技术领域

本发明涉及电子通信技术领域,尤其涉及一种串行背板总线通信方法及系统。

背景技术

随着电子通信技术的发展,各设备之间、各控制单元或机箱内的各个板卡之间数据交换越来越频繁,因此,对背板传输数据的访问效率和可靠性要求也越来越高。

现有技术中,常用的串行背板总线有Rapid IO总线和CAN总线。虽然串行Rapid IO解决了各设备或各板卡之间通过交换网络实现信号的高速传输,但是Rapid IO是点对点的通信总线,要实现多个板卡之间交换数据,必须通过专门的Rapid IO交换芯片,每个板卡都要与交换芯片以点对点的方式连接,使Rapid IO应用范围有一定的局限性,且具备RapidIO总线功能的芯片比较昂贵,会增加硬件开发成本。而CAN总线的最高通信速率只有1Mbps,单帧报文最多只能传输8个字节有效数据,传输效率低,不适用于大数据量通信。

因此,亟需一种新的串行背板总线通信方法及系统,以提高各个板卡或设备之间的访问速率和可靠性。

发明内容

针对上述问题,本发明提供了一种串行背板总线通信方法及系统。

第一方面,本发明提供了一种串行背板总线通信方法,适用于串行背板总线通信系统,所述串行背板总线通信系统包括一个主背板单元和至少两个从背板单元,所述主背板单元、各从背板单元均连接至串行总线上;所述方法包括:

主背板单元依次遍历各从背板单元是否处于待发送数据状态;

若是,主背板单元发送第一消息至串行总线上,所述第一消息包括处于待发送数据状态的从背板单元标识;

其他从背板单元通过串行总线接收第一消息,并根据第一消息确定是否接收所述处于待发送数据状态的从背板单元发送的数据,若是,则对应的从背板单元处于接收数据状态,所述其他从背板单元是指除所述处于待发送数据状态的从背板单元以外的从背板单元;

所述处于待发送数据状态的从背板单元发送第二消息至串行总线上,所述第二消息包括待发送数据;

所述处于接收数据状态的从背板单元接收所述第二消息。

作为其他可选的实施方式,所述方法还包括:

当所述主背板单元处于待发送数据状态时,主背板单元发送第三消息至串行总线上,所述第三消息包括主背板单元标识;

各从背板单元通过串行总线接收第三消息,并根据第三消息确定是否接收主背板单元发送的数据,若是,则对应的从背板单元处于接收数据状态;

所述主背板单元发送第四消息至串行总线上,所述第四消息包括待发送数据;

所述处于接收数据状态的从背板单元接收所述第四消息。

作为其他可选的实施方式,在所述主背板单元依次遍历各从背板单元是否处于待发送数据状态之前,还包括:

接收第一配置指令配置其中一个背板单元为主背板单元,其中至少两个背板单元为从背板单元;

接收第二配置指令将各从背板单元标识存储至主背板单元的遍历列表中;

则所述主背板单元依次遍历各从背板单元是否处于待发送数据状态,包括:

根据所述遍历列表的顺序依次遍历各从背板单元是否处于待发送数据状态。

作为其他可选的实施方式,在所述接收第二配置指令将各从背板单元标识存储至主背板单元的遍历列表中之前,还包括:

接收第三配置指令设置各从背板单元的优先级,并将优先级高于预设阈值的各从背板单元标识存储至主背板单元的优先遍历列表中;

则所述接收第二配置指令将各从背板单元标识存储至主背板单元的遍历列表中,包括:

将优先级低于预设阈值的各从背板单元标识存储至主背板单元的遍历列表中;

则所述主背板单元依次遍历各从背板单元是否处于待发送数据状态,包括:

按照所述优先遍历列表的顺序、所述遍历列表的顺序依次遍历各从背板单元是否处于待发送数据状态。

作为其他可选的实施方式,在所述主背板单元依次遍历各从背板单元是否处于待发送数据状态之前,还包括:

接收第四配置指令对各从背板单元进行接收中断信息配置;

所述其他从背板单元通过串行总线接收第一消息,并根据第一消息确定是否接收所述处于待发送数据状态的从背板单元发送的数据,包括:

各从背板单元根据所述接收中断信息和所述第一消息确定是否接收所述处于待发送数据状态的从背板单元发送的数据;

或者所述各从背板单元通过串行总线接收第三消息,并根据第三消息确定是否接收主背板单元发送的数据,包括:

各从背板单元根据所述接收中断信息和所述第三消息确定是否接收主背板单元发送的数据。

作为其他可选的实施方式,所述主背板单元、从背板单元均包括收发器和控制器,所述控制器包括编译码器、通信模块、中断模块以及控制模块;

所述主背板单元发送第一消息至串行总线上,包括:

主背板单元的控制模块控制将存储在通信模块中第一数据通过编译码器编码封装,以获得第一消息,并将第一消息通过收发器发送至串行总线上,其中,所述第一数据包括待发送数据状态的从背板单元标识;

所述处于待发送数据状态的从背板单元发送第二消息至串行总线上,包括:

处于待发送数据状态的从背板单元的控制模块控制将存储在通信模块中的第二数据通过编译码器编码封装,以获得第二消息,并将第二消息通过收发器发送至串行总线上,其中,所述第二数据包括待发送数据;

所述处于接收数据状态的从背板单元接收所述第二消息,包括:

处于接收数据状态的从背板单元通过收发器从串行总线上接收第二消息,并将所述第二消息通过编译码器译码解封成第二数据,并将第二数据存储至通信模块中,以供上位机读取。

作为其他可选的实施方式,所述主背板单元、从背板单元均还包括与所述控制器属性相同的备份控制器,所述方法还包括:

通过比较所述控制器和所述备份控制器的输出消息是否相同,判断所述串行背板通信过程是否出错;

若是,根据预先存储在中断模块中的错误中断信息,确定是否重新发送数据。

作为其他可选的实施方式,所述编译码器采用4B5B编译码方式。

第二方面,本发明提供了一种串行背板总线通信系统,包括:一个主背板单元和至少两个从背板单元,所述主背板单元、从背板单元均连接至串行总线上;所述串行背板总线通信系统执行如前任一项所述的串行总线通信方法。

作为其他可选的实施方式,所述主背板单元、从背板单元均包括收发器和控制器,所述控制器包括编译码器、通信模块、配置模块、中断模块以及控制模块;

其中,所述收发器,用于接收编译码器或串行总线发送的消息;

所述编译码器,用于对通信模块所存储的数据进行编码封装以获得消息,或者对收发器发送的消息进行译码解封以获得数据;

所述通信模块,用于存储数据;

所述配置模块,用于存储配置信息;

所述中断模块,用于存储接收中断信息或错误中断信息,所述接收中断信息用于各从背板单元判断是否接收消息,所述错误中断信息用于判断当所述串行总线通信过程出错时是否重新发送数据。

所述控制模块,用于控制收发器、编译码器、通信模块、配置模块以及中断模块执行如前任一项所述的串行总线通信方法。

作为其他可选的实施方式,所述控制器为FPGA总控制器。

作为其他可选的实施方式,所述通信模块包括发送数据队列和接收数据队列;所述发送数据队列用于存储待发送数据,所述接收数据队列用于存储接收到的数据。

作为其他可选的实施方式,所述发送数据队列包括发送数据优先级队列和发送数据标准队列,其中,所述发送数据优先级队列的优先级高于发送数据标准队列;

所述接收数据队列包括接收数据优先级队列和接收数据标准队列,其中,所述接收数据优先级队列的优先级高于接收数据标准队列。

作为其他可选的实施方式,所述配置模块包括状态寄存器、控制寄存器、配置寄存器以及发现寄存器;

其中,所述状态寄存器用于存储主背板单元或从背板单元的状态信息,所述状态信息包括空闲状态、发送数据状态、接收数据状态、判断状态以及上位机访问状态;

所述控制寄存器,用于存储工作控制模式;

所述配置寄存器,用于存储主从配置信息,所述主从配置信息用于指示对应的背板单元为主背板单元或从背板单元;

所述发现寄存器,用于存储响应第一消息的从背板单元标识;

所述接收数据队列包括接收报头寄存器和接收数据寄存器,其中,所述接收报头寄存器用于存储接收到数据的消息报头,所述接收数据寄存器用于存储接收到数据的消息报文;

所述发送数据队列包括发送报头寄存器和发送数据寄存器,其中,所述发送报头寄存器用于存储待发送数据的消息报头,所述接收数据寄存器用于存储待发送数据的消息报文;

所述中断模块包括接收中断寄存器和错误中断寄存器,所述中断寄存器用于存储接收中断信息,所述错误中断寄存器用于存储错误中断信息。

作为其他可选的实施方式,所述主背板单元、从背板单元均还包括与所述控制器属性相同的备份控制器。

本发明提供的串行背板总线通信方法,通过主背板单元依次遍历各从背板单元是否处于待发送数据状态;若是,主背板单元发送第一消息至串行总线上,所述第一消息包括处于待发送数据状态的从背板单元标识;其他从背板单元通过串行总线接收第一消息,并根据第一消息确定是否接收所述处于待发送数据状态的从背板单元发送的数据,若是,则对应的从背板单元处于接收数据状态,所述其他从背板单元是指除所述处于待发送数据状态的从背板单元以外的从背板单元;所述处于待发送数据状态的从背板单元发送第二消息至串行总线上,所述第二消息包括待发送数据;所述处于接收数据状态的从背板单元接收所述第二消息。即本发明示例通过主背板单元发送第一消息,从背板单元发送第二消息,也就是通过双消息模式,实现了各个从设备之间的通信是通过主背板单元调度完成的,实时性好、处理性强、硬件结构简单,且易于实现。

附图说明

图1为本发明所基于的一种串行背板总线通信系统的结构示意图;

图2为本发明提供的一种串行背板总线通信方法的流程示意图;

图3A为本发明所基于的一种消息报文起始符示意图;

图3B为本发明所基于的一种消息报文终止符示意图;

图3C为本发明所基于的一种消息报文传输示意图;

图4为本发明提供的另一种串行背板总线通信方法的流程示意图;

图5为本发明提供的再一种串行背板总线通信方法的流程示意图;

图6为本发明提供的又一种串行背板总线通信方法的流程示意图;

图7为本发明提供的一种背板单元的结构示意图;

图8为本发明所基于的一种背板单元的状态信息转化过程示意图;

图9为本发明所基于的一种主背板单元和从背板单元之间的信息交互的示意图。

具体实施方式

为使本发明示例的目的、技术方案和优点更加清楚,下面将结合本发明示例中的附图,对本发明示例中的技术方案进行清楚、完整地描述。

随着电子通信技术的发展,各设备之间、各控制单元或机箱内的各个板卡之间数据交换越来越频繁,因此,也逐渐对背板传输数据的访问效率和可靠性要求越来越高。

传统的解决方案大多采用以太网通信或者PCI总线通信等,来解决各设备或各板卡之间的通信问题。但以太网是点对点通信,存在着网络延时,网络阻塞等各种不稳定因素,不能很好地解决多设备或多板卡之间的实时通信问题;而PCI是并行总线结构,并行总线存在硬件连线多、抗干扰差等缺点,而串行总线由于背板连线少、设计简单、抗干扰能力强等优点成为背板总线较为理想的选择。

现有技术中,常用的串行背板总线有Rapid IO总线和CAN总线。虽然串行Rapid IO解决了各设备或各板卡之间通过交换网络实现信号的高速传输,但是Rapid IO是点对点的通信总线,要实现多个板卡之间交换数据,必须通过专门的Rapid IO交换芯片,每个板卡都要与交换芯片以点对点的方式连接,使Rapid IO应用范围有一定的局限性,且具备RapidIO总线功能的芯片比较昂贵,会增加硬件开发成本。而CAN总线的最高通信速率只有1Mbps,单帧报文最多只能传输8个字节有效数据,传输效率低,不适用于大数据量通信。

针对该问题,本发明提供了一种串行背板总线通信方法及系统,以提高各个板卡或设备之间的访问速率和可靠性。

图1为本发明所基于的一种串行背板总线通信系统的结构示意图,如图1所示,本发明所基于的一种串行背板总线通信系统包括主背板单元11、从背板单元21、从背板单元22以及从背板单元23,主背板单元11、从背板单元21、从背板单元22以及从背板单元23均连接至串行总线24上,其中,主背板单元11与主设备A连接,从背板单元21与从设备B连接,从背板单元22与从设备C连接,从背板单元23与设备D连接;或者主背板单元11可设置在设备A上,从背板单元21可设置在设备B上,从背板单元22可设置在设备C上,从背板单元23设置在设备D上。

当主设备与从设备之间,或从设备与从设备之间需要实现信息交互时,所述串行通信系统可用于执行下述各实施方式中所述的通信方法。

另外,需要说明的是,所述设备也可以为机箱内不同板卡,例如主设备为CPU板卡,从设备为声卡、显卡等,实现各板卡之间的信息交互。本发明还可以应用在机车、高铁、动车、地铁等轨道交通行业。

第一方面,本发明示例提供了一种串行背板总线通信方法,适用于串行背板总线通信系统,可参考图1所示,所述串行背板总线通信系统包括一个主背板单元和至少两个从背板单元,所述主背板单元、各从背板单元均连接至串行总线上;图2为本发明提供的一种串行背板总线通信方法的流程示意图。

步骤101、主背板单元依次遍历各从背板单元是否处于待发送数据状态。

具体来说,主背板单元会依次遍历各从背板单元的状态信息,当某一个从背板单元的当前状态信息为待发送数据时,则执行步骤102,否则继续判断下一个从背板单元是否处于待发送数据状态。

以图1为例,主背板单元11依次遍历从背板单元21、从背板单元22、从背板单元23是否处于待发送数据状态,当遍历到从背板单元21时,发现从背板单元处于待发送数据状态,则执行步骤102-105,结束。然后再遍历从背板单元22,是否处于待发送数据状态,若是,执行步骤102-105,若否,则继续判断从背板单元23是否处于待发送数据状态。

步骤102、主背板单元发送第一消息至串行总线上,所述第一消息包括处于待发送数据状态的从背板单元标识。

以图1为例,当主背板单元11获知从背板单元21需要发送数据时,主背板单元21会发送第一消息至串行总线上,其中,第一消息包括从背板单元21的标识,优选的,所述从背板单元21的标识可以为从背板单元21的地址,用于告知其他从背板单元22、从背板单元23,从背板单元21要发送数据了。

步骤103、其他从背板单元通过串行总线接收第一消息,并根据第一消息确定是否接收所述处于待发送数据状态的从背板单元发送的数据,若是,则对应的从背板单元处于接收数据状态。

所述其他从背板单元是指除所述处于待发送数据状态的从背板单元以外的从背板单元。

具体来说,除了待发送数据的从背板单元以外,其他的从背板单元会从串行总线上接收第一消息,并根据第一消息中的从背板单元标识确定要发送数据的是哪个从背板单元,进而判断自身是否需要接收该数据,若是,对应的从背板单元处于接收数据状态,否则保持空闲状态。

以图1为例,当主背板单元11发送的第一消息中包括从背板单元21的标识,则从背板单元22、从背板单元23从第一消息中获知从背板单元21要发送数据了,此时,从背板单元21、从背板单元23可以根据自身相关的配置信息确定是否接收该数据,假设从背板单元22确定需要接收,则从背板单元22处于接收数据状态,从背板单元23不需要接收,则从背板单元23保持空闲状态。

步骤104、所述处于待发送数据状态的从背板单元发送第二消息至串行总线上,所述第二消息包括待发送数据。

步骤105、所述处于接收数据状态的从背板单元接收所述第二消息。

以图1为例,要发送数据的从背板单元21发送第二消息至串行总线上,所述第二消息中包括待发送数据,处于数据接收状态的从背单元22会接收该第二消息。

另外,可以设置串行通信系统的工作模式,比如,触发第二消息方式不同,例如当主背板单元获知某一从背板单元需要发送数据时,主背板单元会发送第一消息,第一消息中包含需该需要发送数据的从背板单元标识,各从背板单元(包括该需要发送数据的从背板单元)接收该第一消息,各从背板单元根据第一消息判断是要求自己发送数据,还是接收数据,如果是发送数据,则该需要发送数据的从背板单元发送第二消息,如果是接收数据,则等待接收数据即可。还可以是当主背板单元依次遍历各从背板单元是否需要发送数据时,若是,则相应的从背板单元直接发送第二消息。又比如,第一消息的发送既可以实现点对点的发送,也可以是广播发送。

另外,第一消息显然是主发给从的消息,因此第一消息也可以称之为主消息,第二消息为从背板单元应答主背板单元的消息,因此第二消息也可以称之为从消息,即本发明示例是基于双消息模式,主消息或者从消息均由消息的报文头和消息的数据内容组成,其中消息的报文头包含:消息标签、从背板单元标识,和消息长度;消息标签定义了消息的类型,从背板单元标识了待发送数据的从背板单元的地址;消息长度定义了消息的数据长度,数据长度最多为32个字,最少为0,消息的数据内容,包括待发送数据的具体内容。另外,主消息中包含一个用户定义的ID(Identification number),从消息中会将此ID放入数据实体中,使得主背板单元依次来判断是哪个从背板单元进行了应答。

图3A为本发明所基于的一种消息报文起始符示意图,如图3A所示,报文开始用4个连续’1’来进行同步,然后是固定格式报文起始符(11110),然后紧接着是链路控制报文(即消息的报文头)和数据;图3B为本发明所基于的一种消息报文终止符示意图,如图3B所示,在链路控制报文(即消息的报文头)和数据之后,是固定格式报文终止符(H0000);其中,当电平有变化时用1表示,电平无变化时用0表示;图3C为本发明所基于的一种消息报文传输示意图,如图3C所示,在上一帧数据传输后,即上一帧报文终止符后,传输本帧数据,本帧数据传输完成后,继续传输下一帧数据。

本发明提供的串行背板总线通信方法,通过主背板单元依次遍历各从背板单元是否处于待发送数据状态;若是,主背板单元发送第一消息至串行总线上,所述第一消息包括处于待发送数据状态的从背板单元标识;其他从背板单元通过串行总线接收第一消息,并根据第一消息确定是否接收所述处于待发送数据状态的从背板单元发送的数据,若是,则对应的从背板单元处于接收数据状态,所述其他从背板单元是指除所述处于待发送数据状态的从背板单元以外的从背板单元;所述处于待发送数据状态的从背板单元发送第二消息至串行总线上,所述第二消息包括待发送数据;所述处于接收数据状态的从背板单元接收所述第二消息。即本发明示例通过主背板单元发送第一消息,需要发送数据的从背板单元发送第二消息,也就是通过双消息模式,实现了各个从设备之间的通信是通过主背板单元调度完成的,实时性好、处理性强、硬件结构简单,且易于实现。

结合前述的各实现方式,图4为本发明提供的另一种串行背板总线通信方法的流程示意图,如图4所示,该串行背板总线通信方法包括:

步骤201、判断主背板单元是否处于待发送数据状态。

若是,执行步骤202-步骤205;若否,则执行步骤206。

步骤202、主背板单元发送第三消息至串行总线上,所述第三消息包括主背板单元标识。

步骤203、各从背板单元通过串行总线接收第三消息,并根据第三消息确定是否接收主背板单元发送的数据,若是,则对应的从背板单元处于接收数据状态。

步骤204、所述主背板单元发送第四消息至串行总线上,所述第四消息包括待发送数据。

步骤205、所述处于接收数据状态的从背板单元接收所述第四消息。

步骤206、主背板单元依次遍历各从背板单元是否处于待发送数据状态。

当某一个从背板单元的当前状态信息为待发送数据时,则执行步骤102,否则继续判断下一个从背板单元是否处于待发送数据状态。

步骤207、主背板单元发送第一消息至串行总线上,所述第一消息包括处于待发送数据状态的从背板单元标识。

步骤208、其他从背板单元通过串行总线接收第一消息,并根据第一消息确定是否接收所述处于待发送数据状态的从背板单元发送的数据,若是,则对应的从背板单元处于接收数据状态。

步骤209、所述处于待发送数据状态的从背板单元发送第二消息至串行总线上,所述第二消息包括待发送数据。

步骤210、所述处于接收数据状态的从背板单元接收所述第二消息。

需要说明的是,当执行完步骤205后,可继续执行步骤206。另外步骤201和步骤206没有先后顺序,也可以先执行步骤206,若步骤206为否,可执行步骤201-205,若步骤206为是,则可以在执行完步骤207-210之后,再执行步骤201-205。

本实施方式中的步骤206-步骤210分别与前述实施方式中的步骤101-步骤105的实现方式类似,在此不进行赘述。

与前述实施方式不同的是,本实施方式考虑到主设备与从设备之间的信息交互场景,在本实施方式中,当所述主背板单元处于待发送数据状态时,主背板单元发送第三消息至串行总线上,所述第三消息包括主背板单元标识;各从背板单元通过串行总线接收第三消息,并根据第三消息确定是否接收主背板单元发送的数据,若是,则对应的从背板单元处于接收数据状态;所述主背板单元发送第四消息至串行总线上,所述第四消息包括待发送数据;所述处于接收数据状态的从背板单元接收所述第四消息。

具体来说,主设备与从设备之间的信息交互过程与前述实施例中从设备与从设备之间的发明构思类似,即主背板单元首先发送第三消息至串行总线上,告知各从背板单元主背板单元要发送数据了,然后各从背板单元根据自身相关的配置信息确定是否接收主背板单元发送的数据,若接收,则处于接收数据状态,等待主背板单元发送第四消息。

另外,在步骤201之前或者在执行步骤206之前,还可以包括:接收第四配置指令对各从背板单元进行接收中断信息配置。

则步骤203的一种实现方式如下:各从背板单元根据所述接收中断信息和所述第三消息确定是否接收主背板单元发送的数据。

则步骤207的一种实现方式如下:其他从背板单元根据所述接收中断信息和所述第一消息确定是否接收所述处于待发送数据状态的从背板单元发送的数据。

具体来说,在判断主背板单元或各从背板单元是否处于待发送数据状态之前,用户可以通过应用接口函数写入各从背板单元对应的接收中断信息,各从背板单元可以根据接收中断信息确定是否要接收主背板单元或者其他从背板单元发送的数据,也就是说,各从设备是否接收数据可以按照用于的应用需求自行配置,并且通过软件就能完成,不需要对硬件进行更改,灵活性较强,集成方便。

本发明提供的串行背板总线通信方法,当所述主背板单元处于待发送数据状态时,主背板单元发送第三消息至串行总线上,所述第三消息包括主背板单元标识;各从背板单元通过串行总线接收第三消息,并根据第三消息确定是否接收主背板单元发送的数据,若是,则对应的从背板单元处于接收数据状态;所述主背板单元发送第四消息至串行总线上,所述第四消息包括待发送数据;所述处于接收数据状态的从背板单元接收所述第四消息。即本发明示例通过主背板单元发送第一消息,随后发送第二消息,也是通过双消息模式,实现了主设备与从设备之间的信息交互,实时性好、处理性强、硬件结构简单,且易于实现。

结合前述的各实现方式,图5为本发明提供的再一种串行背板总线通信方法的流程示意图,如图5所示,该串行背板总线通信方法包括:

步骤301、接收第一配置指令配置其中一个背板单元为主背板单元,其中至少两个背板单元为从背板单元。

步骤302、接收第二配置指令将各从背板单元标识存储至主背板单元的遍历列表中。

步骤303、根据所述遍历列表的顺序依次遍历各从背板单元是否处于待发送数据状态。

步骤304、主背板单元发送第一消息至串行总线上,所述第一消息包括处于待发送数据状态的从背板单元标识。

步骤305、其他从背板单元通过串行总线接收第一消息,并根据第一消息确定是否接收所述处于待发送数据状态的从背板单元发送的数据,若是,则对应的从背板单元处于接收数据状态。

步骤306、所述处于待发送数据状态的从背板单元发送第二消息至串行总线上,所述第二消息包括待发送数据。

步骤307、所述处于接收数据状态的从背板单元接收所述第二消息。

本实施方式中的步骤304-步骤307分别与前述实施方式中的步骤102-步骤105的实现方式类似,在此不进行赘述。

与前述实施方式不同的是,本实施方式进一步限定了主背板单元和从背板单元的设置,在本实施方式中,接收第一配置指令配置其中一个背板单元为主背板单元,其中至少两个背板单元为从背板单元;接收第二配置指令将各从背板单元标识存储至主背板单元的遍历列表中;根据所述遍历列表的顺序依次遍历各从背板单元是否处于待发送数据状态。

具体来说,初始的背板单元没有主背板单元和从单元之分,将其分别与主设备、从设备连接后,用户可以通过应用接口函数对各背板单元进行配置,例如可以将与主设备连接的背板单元设置为主背板单元,将与从设备连接的背板单元设置为从背板单元,当配置完成后,可参考图1所示,与主设备A连接的背板单元设置为主背板单元11,与从设备B连接的背板单元设置为从背板单元21,与从设备C连接的背板单元设置为从背板单元22,与从设备D连接的背板单元设置为从背板单元23。进一步的,用户还可以通过应用接口函数将各从背板单元的标识写入主背板单元中的遍历列表中,以便于主背板单元根据遍历列表的顺序执行后续步骤,以图1为例,用户可以将从背板单元21、从背板单元22、从背板单元23的地址存储至主背板单元11的遍历列表中。

另外,考虑到用户可能期望对于不同的设备有先后的执行顺序,即优先级不同,在步骤302之前,还可以接收第三配置指令设置各从背板单元的优先级,并将优先级高于预设阈值的各从背板单元标识存储至主背板单元的优先遍历列表中。也就是说,本发明具有自动可配置功能,可以根据用户应用需求自动配置,只需要应用更改配置软件就能完成,不需要对硬件进行更改,灵活性较强,集成方便。

则步骤302的一种实现方式如下:将优先级低于预设阈值的各从背板单元标识存储至主背板单元的遍历列表中。

相应的,步骤303的一种实现方式如下:按照所述优先遍历列表的顺序、所述遍历列表的顺序依次遍历各从背板单元是否处于待发送数据状态。

具体来说,当主背板单元遍历各从背板单元是否处于待发送数据状态时,可以优先遍历所述优先遍历列表中所存储的各从背板单元,然后再遍历所述遍历列表中所存储的各背板单元。

本发明提供的串行背板总线通信方法,通过接收第一配置指令配置其中一个背板单元为主背板单元,其中至少两个背板单元为从背板单元;接收第二配置指令将各从背板单元标识存储至主背板单元的遍历列表中;根据所述遍历列表的顺序依次遍历各从背板单元是否处于待发送数据状态;若是,主背板单元发送第一消息至串行总线上,所述第一消息包括处于待发送数据状态的从背板单元标识;其他从背板单元通过串行总线接收第一消息,并根据第一消息确定是否接收所述处于待发送数据状态的从背板单元发送的数据,若是,则对应的从背板单元处于接收数据状态,所述其他从背板单元是指除所述处于待发送数据状态的从背板单元以外的从背板单元;所述处于待发送数据状态的从背板单元发送第二消息至串行总线上,所述第二消息包括待发送数据;所述处于接收数据状态的从背板单元接收所述第二消息。即本发明示例通过主背板单元发送第一消息,需要发送数据的从背板单元发送第二消息,也就是通过双消息模式,实现了各个从设备之间的通信是通过主背板单元调度完成的,实时性好、处理性强、硬件结构简单,且易于实现。

结合前述的各实现方式,图6为本发明提供的又一种串行背板总线通信方法的流程示意图,所述主背板单元、从背板单元均包括收发器和控制器,所述控制器包括编译码器、通信模块、配置模块、中断模块以及控制模块;

如图6所示,该串行背板总线通信方法包括:

步骤401、主背板单元依次遍历各从背板单元是否处于待发送数据状态。

具体来说,主背板单元或各从背板单元的配置模块中存储着当前的状态信息,本步骤中,主背板单元在控制模块的控制下依次遍历各从背板单元的配置模块中存储的当前状态信息,当所述状态信息为待发送数据状态时,执行步骤402。

步骤402、主背板单元的控制模块控制将存储在通信模块中第一数据通过编译码器编码封装,以获得第一消息,并将第一消息通过收发器发送至串行总线上,其中,所述第一数据包括待发送数据状态的从背板单元标识。

步骤403、其他从背板单元通过串行总线接收第一消息,并根据第一消息确定是否接收所述处于待发送数据状态的从背板单元发送的数据,若是,则对应的从背板单元处于接收数据状态。

具体来说,其他从背板单元通过收发器从串行总线上接收第一消息,然后根据第一消息以及中断模块中配置的接收中断信息,确定是否接收待发送数据状态的从背板单元发送的数据,若是,将对应的从背板单元的配置模块所存储的状态信息变更为接收数据状态信息。

步骤404、处于待发送数据状态的从背板单元的控制模块控制将存储在通信模块中的第二数据通过编译码器编码封装,以获得第二消息,并将第二消息通过收发器发送至串行总线上,其中,所述第二数据包括待发送数据。

步骤405、处于接收数据状态的从背板单元通过收发器从串行总线上接收第二消息,并将所述第二消息通过编译码器译码解封成第二数据,并将第二数据存储至通信模块中,以供上位机读取。

与前述实施方式不同的是,本实施方式进一步限定了串行总线通信的具体过程。另外需要说明的是,在主背板单元和从背板单元的状态信息除了待发送数据状态、接收数据状态,还包括判断状态、空闲状态以及上位机访问状态,例如当其他从背板单元通过串行总线接收第一消息,并根据第一消息确定是否接收所述处于待发送数据状态的从背板单元发送的数据时,其他从背板单元处于判断状态;当配置完主、从背板单元后,此时主、从背板单元可能处于空闲状态,当处于空闲状态时,上位机可能会访问各设备,此时进入上位机访问状态。

作为可选示例,所述背板单元、从背板单元均还包括与所述控制器属性相同的备份控制器,所述方法还包括:通过比较所述控制器和所述备份控制器的输出消息是否相同,判断所述串行背板通信过程是否出错;若是,根据预先存储在中断模块中的错误中断信息,确定是否重新发送数据。

具体来说,用户可以通过应用接口函数写入错误中断信息,用于设置哪些错误是需要重传或者丢弃的;当备份控制器和控制器的输出结果一致时,说明数据交互过程没有出错,当备份控制器和总控制器的输出结果不一致时,说明控制器的输出结果可能存在错误,此时可以要求数据重新发送或者丢弃。换句话说,本发明消息通信有两个链路通道:过程数据通道和诊断通道;两个通道的属性一样;过程数据通道是各个设备之间实时数据传输的通道;诊断通道是设备之间进行监视和故障判断的通道,提高了通信的可靠性。

作为可选示例,所述编译码器采用4B5B编解码方式,即通过采用5bit的二进制数来表示4bit二进制数,实现了足够多的码流跳变,提高编码效率,进而提高数据传输效率。

另外,需要说明的是,当主设备与从设备之间信息交互时,其过程与从设备之间交互过程类似,在此不再赘述。

本发明提供的串行背板总线通信方法,通过主背板单元依次遍历各从背板单元是否处于待发送数据状态;主背板单元的控制模块控制将存储在通信模块中第一数据通过编译码器编码封装,以获得第一消息,并将第一消息通过收发器发送至串行总线上,其中,所述第一数据包括待发送数据状态的从背板单元标识;从背板单元通过串行总线接收第一消息,并根据第一消息确定是否接收所述处于待发送数据状态的从背板单元发送的数据,若是,则对应的从背板单元处于接收数据状态;处于待发送数据状态的从背板单元的控制模块控制将存储在通信模块中的第二数据通过编译码器编码封装,以获得第二消息,并将第二消息通过收发器发送至串行总线上,其中,所述第二数据包括待发送数据;处于接收数据状态的从背板单元通过收发器从串行总线上接收第二消息,并将所述第二消息通过编译码器译码解封成第二数据,并将第二数据存储至通信模块中,以供上位机读取;即本发明示例通过主背板单元发送第一消息,需要发送数据的从背板单元发送第二消息,也就是通过双消息模式,实现了各个从设备之间的通信是通过主背板单元调度完成的,实时性好、处理性强、硬件结构简单,且易于实现。

第二方面,本发明示例提供了一种串行背板总线通信系统,可参考图1所示,该串行背板总线通信系统包括:一个主背板单元和至少两个从背板单元,所述主背板单元、从背板单元均连接至串行总线上;所述串行背板总线通信系统执行前任一所述的串行总线通信方法。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的控制设备的具体工作过程以及相应的有益效果,可以参考前述方法示例中的对应过程,在此不再赘述。

本发明提供的串行背板总线通信系统,包括一个主背板单元和至少两个从背板单元,所述主背板单元、从背板单元均连接至串行总线上;通过主背板单元依次遍历各从背板单元是否处于待发送数据状态;若是,主背板单元发送第一消息至串行总线上,所述第一消息包括处于待发送数据状态的从背板单元标识;各从背板单元根据接收到的第一消息确定是否接收所述处于待发送数据状态的从背板单元发送的数据,若是,对应的从背板单元处于接收数据状态;所述处于待发送数据状态的从背板单元发送第二消息至串行总线上,所述第二消息包括待发送数据;所述处于接收数据状态的从背板单元接收所述第二消息。即本发明示例通过主背板单元发送第一消息,需要发送数据的从背板单元发送第二消息,也就是通过双消息模式,实现了各个从设备之间的通信是通过主背板单元调度完成的,实时性好、处理性强、硬件结构简单,且易于实现。

在其他可选的实施方式中,图7为本发明提供的一种背板单元的结构示意图,如图7所示,所述主背板单元、从背板单元均包括收发器31和控制器32,所述控制器32包括编译码器321、通信模块322、配置模块323、中断模块324以及控制模块325;

其中,所述收发器31,用于接收编译码器321或串行总线326发送的消息;

所述编译码器321,用于对通信模块322所存储的数据进行编码封装以获得消息,或者对收发器31发送的消息进行译码解封以获得数据;

所述通信模块322,用于存储数据;

所述配置模块323,用于存储配置信息;

所述中断模块324,用于存储接收中断信息或错误中断信息,所述接收中断信息用于各从背板单元判断是否接收消息,所述错误中断信息用于判断当所述串行总线通信过程出错时是否重新发送数据。

所述控制模块325,用于控制收发器31、编译码器321、通信模块322、配置模块323以及中断模块324执行如前任一项所述的串行总线通信方法。

具体来说,收发器31连接至串行总线33上,实现对串行总线33进行数据的电平转换;编译码器321是对通信模块322中要发送的数据进行编码,并封装成特定的报文格式发送出去,还能对接收到的报文进行解析,对数据进行解码并将数据传送给通信模块322;通信模块322是通信数据的存储单元,所有要发送的或者接收到的数据都要放在通信模块322中;配置模块323是上位机接口软件访问的通道,能够访问状态信息、配置信息、控制信息、识别信息等;中断模块324是可以编程的,主要包括接收中断和错误中断,接收中断可以根据应用需要过滤一些有用的数据,判断哪些需要接收哪些不需要接收;错误中断可以设置哪些错误是需要重传或者丢弃的;控制模块325可以实现协议状态的控制,是整个控制协议的核心控制模块,主要完成各个控制机制的状态转换,协调各个模块之间的工作,其包含空闲状态、发送状态、接收状态、判断状态、上位机访问状态。

在其他可选的实施方式中,所述控制器为FPGA总控制器,其用于实现高速串行总线协议控制,该协议控制功能全部由FPGA来实现,与传统的背板总线相比,本示例只需要一个普通的FPGA就可以实现,不需要专用的总线芯片或者总线协议来完成,因此成本较低,设计也较简单灵活,另外通过FPGA来设计实现,其最低的通信速率为20Mbps,最高可达100Mbps,相对于CAN总线,通信速率大幅提高。

在其他可选的实施方式中,所述通信模块322包括发送数据队列和接收数据队列;所述发送数据队列用于存储待发送数据,所述接收数据队列用于存储接收到的数据。

在其他可选的实施方式中,所述发送数据队列包括发送数据优先级队列和发送数据标准队列,其中,所述发送数据优先级队列的优先级高于发送数据标准队列;

所述接收数据队列包括接收数据优先级队列和接收数据标准队列,其中,所述接收数据优先级队列的优先级高于接收数据标准队列。

具体来说,在FPGA内部实现时将要设置两个先入先出队列(简称FIFO队列),一个为标准顺序队列,一个为优先级队列,优先级队列中的消息,将先于标准队列中的消息进行收发,该优先级由应用来进行设定。

在其他可选的实施方式中,可继续参考图7所述,所述配置模块包括状态寄存器(qBusStat)、控制寄存器(qBusControl)、配置寄存器((qBusConfig),发现寄存器((qBusAck)。

其中,所述状态寄存器用于存储主背板单元或从背板单元的状态信息,所述状态信息包括空闲状态、发送数据状态、接收数据状态、判断状态以及上位机访问状态。

所述控制寄存器,用于存储工作控制模式。所述工作控制模式比如控制主背板单元进行单点通信或广播通信等。

所述配置寄存器,用于存储主从配置信息以及遍历列表,所述主从配置信息用于指示对应的背板单元为主背板单元或从背板单元。

所述发现寄存器,用于存储响应第一消息的从背板单元标识。具体来说,主背板单元发送第一消息后,各从背板单元根据所述第一消息确定是否对其进行响应,如果响应,则将响应的从背板单元标识等信息存储至发现寄存器中,并由用户通过应用接口写入是否对存储在发现寄存器中的各从背板单元进行初始化,即复位操作,以便于后续正常数据传输,实现了握手作用。

所述接收数据队列包括接收报头寄存器(RxHeader)和接收数据寄存器(RxData),其中,所述接收报头寄存器用于存储接收到数据的消息报头,所述接收数据寄存器用于存储接收到数据的消息报文。

所述发送数据队列包括发送报头寄存器(TxHeader)和发送数据寄存器(TxData),其中,所述发送报头寄存器用于存储待发送数据的消息报头,所述接收数据寄存器用于存储待发送数据的消息报文。

所述中断模块包括接收中断寄存器(qBusRxIRQ)和错误中断寄存器(qBusRrrorIRQ),所述中断寄存器用于存储接收中断信息,所述错误中断寄存器用于存储错误中断信息。

其中,表1对部分寄存器进行了定义和详细说明。

表1部分寄存器的定义和说明

在其他可选的实施方式中,所述主背板单元、从背板单元均还包括与所述控制器属性相同的备份控制器,换句话说,消息通信有两个链路通道,过程数据通道和诊断通道,两个通道的属性一样,通过两个通道中输出结果是否相同,从判断数据交互过程是否出错。当总线上有设备出现故障时,主设备通过查询将会得到相应的故障信息,并将故障信息存储到通信模块中,上位机访问时就能够告知应用哪些设备出现故障。

在其他可选的实施方式中,所述串行总线的两端设置终端匹配电阻,串行总线可为差分传输线,在差分传输线的两端设置终端匹配电阻,以防止总线物理波形的发射,引起波形叠加和畸变。

举例来说,本示例在执行上述串行背板总线通信方法过程如下:

图8为本发明所基于的一种背板单元的状态信息转化过程示意图,所述背板单元的状态信息包括空闲状态、发送状态、接收状态、判断状态和上位机访问状态,如果为主设备,那么发送状态还分发送主消息和发送从消息这两个状态。图9为本发明所基于的一种主背板单元和从背板单元之间的信息交互的示意图,如图9所示,一开始各背板单元处于空闲状态,当上位机对FPGA总控制器进行初始化配置时,配置数据将被存储到配置寄存器中,配置信息的内容将决定FPGA协议控制器是主背板单元(对应主设备)还是从背板单元(对应从设备),如果是主背板单元,相应的配置寄存器中也会有相应的遍历列表,用于主背板单元的依次遍历;在初始化配置结束后,FPGA协议控制器将开始工作,首先进入发送主消息状态,将从发送数据队列中读取数据,并通过编码器编码和封包发送出去,再经过收发器转成差分信号传送到串行总线上;串行总线上的其他从设备通过译码器接收到此主消息进入判断主消息状态,如果是从背板单元要发送从消息,那么将进入发送从消息状态,将从背板单元的通信模块中的发送队列数据准备好,通过编码器编码和封包发送出去;如果从背板单元判断主消息后确定是自己要接收从消息,那么进入接收状态,等待接收其他从设备备发送的从消息。当其他从设备发出从消息时,将通过编译码器解析和解码,将数据存储到通信模块中的接收队列中,以供上位机读取。

本发明提供的串行背板总线通信系统,所述主背板单元、从背板单元均包括收发器和控制器,所述控制器包括编译码器、通信模块、配置模块、中断模块以及控制模块;其中,所述收发器,用于接收编译码器或串行总线发送的消息;所述编译码器,用于对通信模块所存储的数据进行编码封装以获得消息,或者对收发器发送的消息进行译码解封以获得数据;所述通信模块,用于存储数据;所述配置模块,用于存储配置信息;所述中断模块,用于存储接收中断信息或错误中断信息,所述接收中断信息用于各从背板单元判断是否接收消息,所述错误中断信息用于判断当所述串行总线通信过程出错时是否重新发送数据;所述控制模块,用于控制收发器、编译码器、通信模块、配置模块以及中断模块执行如前任一项所述的串行总线通信方法。即本发明示例通过主背板单元发送第一消息,需要发送数据的从背板单元发送第二消息,也就是通过双消息模式,实现了各个从设备之间的通信是通过主背板单元调度完成的,实时性好、处理性强、硬件结构简单,且易于实现。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

相关技术
  • 串行背板总线通信方法及系统
  • 一种背板串行总线通讯方法及系统
技术分类

06120113008252