一种AFDX总线消息的校验系统及方法与流程

文档序号:12490732阅读:396来源:国知局
一种AFDX总线消息的校验系统及方法与流程

本申请涉及通信技术领域,更具体地说,涉及一种AFDX总线消息的校验系统及方法。



背景技术:

在航空电子网络的通信过程中经常包含一些数据或帧之间存在某种关联,需要保持接收的数据的顺序完整性。AFDX(Avionics Full Duplex Switched Ethernet,航空电子全双工交换式以太网)通信协议中要求数据在给定的虚拟链路中保持顺序完整性,为此,AFDX协议中提出了一种对虚拟链路中的数据顺序进行校验的通信规则:发送端通过“调度器”给一条虚拟链路上发送的每条数据分配一个SN(Sequence Number,序列号),每条数据的SN位于该条数据的尾部,SN从1-255循环递增1,0代表发送端设备复位后发送的第一条数据。接收端在接收到一条虚拟链路的数据以后,将SN于从该条虚拟链路上接收到的上一条数据的SN进行比对,当相邻数据的SN的差值超过有效窗口时,则丢弃当前接收的数据,以保证数据的顺序完整性。

但是现有技术中对于数据的顺序完整性的校验过程中,SN是以虚拟链路为单位进行分配的,只能对一条虚拟链路上的数据顺序进行校验,而不能对每条消息自身数据的顺序进行校验,有可能出现消息中的数据在传输过程中保持顺序正常,但是接收端接收到的消息数据顺序异常的情况。



技术实现要素:

为解决上述技术问题,本发明提供了一种AFDX总线消息的校验系统及方法,以实现对每条消息自身数据的顺序进行校验,避免出现消息中的数据在传输过程中保持顺序正常,但接收端接收到的消息数据顺序异常的情况。

为实现上述技术目的,本发明实施例提供了如下技术方案:

一种AFDX总线消息的校验系统,包括:发送端和接收端;其中,

所述发送端用于生成消息,所述消息中至少包括一种种类数据,所述种类数据中至少包括一条数据;

为所述消息中的每条数据分配数据序列号,同种类数据的数据序列号按预设步长递增;

所述接收端用于接收所述消息;

对所述消息中的每条数据进行校验;

如果所述消息中的数据通过校验,则接收通过校验的所述数据,并将通过校验的所述数据的数据序列号作为通过校验的所述数据所属种类数据的比对序列号;

如果所述消息中的数据未通过校验,则丢弃未通过校验的所述数据,并将未通过校验的所述数据的数据序列号作为未通过校验的所述数据所属种类数据的比对序列号。

可选的,所述为所述消息中的每条数据分配数据序列号,具体为:

按照所述数据的生成顺序为所述消息中的每条数据分配数据序列号;其中,所述数据序列号填充于每条数据的有效负载的头部。

可选的,所述对所述消息中的每条数据进行校验,具体为:

按照所述数据的接收顺序对所述消息中的每条数据进行校验;

校验过程为:判断所述数据的数据序列号与所述数据所属种类数据的比对序列号的差值是否小于有效阈值,如果是,则所述数据通过校验,如果否,则所述数据未通过校验。

可选的,所述有效阈值大于或等于1;

所述数据序列号的大小大于或等于2字节。

一种AFDX总线消息的校验方法,应用于发送端;所述AFDX总线消息的校验方法包括:

生成消息,所述消息中至少包括一种种类数据,所述种类数据中至少包括一条数据;

为所述消息中的每条数据分配数据序列号,同种类数据的数据序列号按预设步长递增。

可选的,所述为所述消息中的每条数据分配数据序列号,具体为:

按照所述数据的生成顺序为所述消息中的每条数据分配数据序列号;其中,所述数据序列号填充于每条数据的有效负载的头部。

可选的,所述数据序列号的大小大于或等于2字节。

一种AFDX总线消息的校验方法,应用于接收端,所述AFDX总线消息的校验方法包括:

接收发送端发送的消息,所述消息中至少包括一种种类数据,所述种类数据中至少包括一条数据;

对所述消息中的每条数据进行校验;

如果所述消息中的数据通过校验,则接收通过校验的所述数据,并将通过校验的所述数据的数据序列号作为通过校验的所述数据所属种类数据的比对序列号;

如果所述消息中的数据未通过校验,则丢弃未通过校验的所述数据,并将未通过校验的所述数据的数据序列号作为未通过校验的所述数据所属种类数据的比对序列号。

可选的,所述对所述消息中的每条数据进行校验,具体为:

按照所述数据的接收顺序对所述消息中的每条数据进行校验;

校验过程为:判断所述数据的数据序列号与所述数据所属种类数据的比对序列号的差值是否小于有效阈值,如果是,则所述数据通过校验,如果否,则所述数据未通过校验。

可选的,所述有效阈值大于或等于1。

从上述技术方案可以看出,本发明实施例提供了一种AFDX总线消息的校验系统及方法,其中,所述AFDX总线消息的校验系统的发送端在消息的每条数据的有效负载中分配一个数据序列号来标志每种数据自身的产生顺序,所述AFDX总线消息的校验系统的接收端依据所述数据序列号对所述消息中的每条数据进行校验,以此判断该条数据自身顺序是否正常,从而实现了对每条消息的数据顺序完整性进行校验的目的,避免出现消息中的数据在传输过程中保持顺序正常,但是由于自身数据顺序错误而导致接收端接收到的消息数据顺序异常的情况。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请的一个实施例提供的一种AFDX总线消息的校验系统示意图;

图2和图3为现有技术中的AFDX总线消息数据的格式结构示意图;

图4和图5为本申请实施例提供的AFDX总线消息数据的格式结构示意图;

图6为本申请的一个实施例提供的一种AFDX总线消息的校验方法的流程示意图;

图7为本申请的另一个实施例提供的一种AFDX总线消息的校验方法的流程示意图;

图8为本申请的又一个实施例提供的一种AFDX总线消息的校验方法的流程示意图;

图9为本申请的一个实施例提供的一种数据校验过程的流程示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本申请实施例提供了一种AFDX总线消息的校验系统,如图1所示,包括:发送端和接收端;其中,

所述发送端用于生成消息,所述消息中至少包括一种种类数据,所述种类数据中至少包括一条数据;

为所述消息中的每条数据分配数据序列号,同种类数据的数据序列号按预设步长递增;

所述接收端用于接收所述消息;

对所述消息中的每条数据进行校验;

如果所述消息中的数据通过校验,则接收通过校验的所述数据,并将通过校验的所述数据的数据序列号作为通过校验的所述数据所属种类数据的比对序列号;

如果所述消息中的数据未通过校验,则丢弃未通过校验的所述数据,并将未通过校验的所述数据的数据序列号作为未通过校验的所述数据所属种类数据的比对序列号。

需要说明的是,所述发送端产生的消息中一般包括至少一种种类数据,每种数据携带不同的信息,这些信息可以是飞行高度或飞行速度等。在本实施例中,每种数据的数据序列号按预设步长递增,例如携带飞行高度的当前数据的数据序列号为1,则发送端为下一条携带飞行高度的数据分配的数据序列号为2。

现有技术中的AFDX总线消息中的数据格式如图2和图3所示,其中,图2示出的是现有技术中最小以太网框架长度(minimum Ethernet frame length)的数据格式,包括:前导头(Preamble,7bytes)、帧首定界符(Start Frame Delimiter,1byte)、目的物理地址(Destination Address,6bytes)、源物理地址(Source Address,6bytes)、协议类型(0x800Ipv4,2bytes)、IP头(IP Structure,20bytes)、UDP头(UDP Structure,8bytes)、有效负载(AFDX Payload,1-17bytes)、补偿(Padding,0-16bytes)、序列号(SN,1byte)、框架检验序列(Frame Check Seq,4bytes)和框架间隔(Inter Frame Gap,12bytes)。图3示出的是现有技术中最大以太网框架长度(maximum Ethernet frame length)的数据格式,包括:前导头(Preamble,7bytes)、帧首定界符(Start Frame Delimiter,1byte)、目的物理地址(Destination Address,6bytes)、源物理地址(Source Address,6bytes)、协议类型(0x800Ipv4,2bytes)、IP头(IP Structure,20bytes)、UDP头(UDP Structure,8bytes)、有效负载(AFDX Payload,1471bytes)、序列号(SN,1byte)、框架检验序列(Frame Check Seq,4bytes)和框架间隔(Inter Frame Gap,12bytes)。

由于SN是以虚拟链路为单位分配的,而一条虚拟链路上可以传输多条消息数据,所以在现有技术中AFDX协议中的完整性校验规则只能对一条虚拟链路上的数据顺序完整性进行校验,而不能对每条消息自身数据的顺序进行校验;

另外,由于SN由“调度器”分配,从OSI(Open System Interconnection,开放系统互联)的七层参考模型来看,调度器位于网络层和链路层之间,也就是说SN是在数据进入网络层之后分配的,而数据的有效负载产生于应用层,这就意味着可能出现由于发送端一条消息的应用数据顺序发生了异常,即使在传输过程中保持了顺序完整,接收端接收到的数据自身顺序仍然是错误的情况。

因此,参考图4和图5,所述发送端发送的每条数据的有效负载中包含了分配的数据序列号(MSN),这个数据序列号理论上可以位于每条数据的有效负载的任意位置,但是为了保证每条数据的有效负载的内容完整和降低接收端校验难度,所述数据序列号优选位于所述有效负载的头部或尾部。在本申请中,所述发送端在消息的每条数据的有效负载中分配一个数据序列号来标志每种数据自身的产生顺序,所述接收端依据所述数据序列号对所述消息中的每条数据进行校验,以此判断该条数据自身顺序是否正常,从而实现了对每条消息的数据顺序完整性进行校验的目的,避免出现消息中的数据在传输过程中保持顺序正常,但是由于自身数据顺序错误而导致接收端接收到的消息数据顺序异常的情况。

还需要说明的是,所述预设步长一般情况下设置为1,即所述数据序列号以1为单位循环递增,当发送端完成初始化后,发送的第一条数据中分配的MSN设置为0。当所述数据序列号增长到其数据格式能够到达的最大值时,从0重新开始。

无论进行校验的数据是否通过校验,该数据的数据序列号都会作为其所属种类数据的比对序列号。例如,当前进行校验的携带有飞行高度信息的数据携带的数据序列号为50,则在该数据进行校验之后,携带有飞行高度信息的数据的比对序列号就更新为50,下一条携带飞行高度信息的数据携带的数据序列号就需要与50进行对比,以判断进行校验的数据的顺序完整性是否正常。

在上述实施例的基础上,在本申请的一个实施例中,所述对所述消息中的每条数据进行校验,具体为:

按照所述数据的接收顺序对所述消息中的每条数据进行校验;

校验过程为:判断所述数据的数据序列号与所述数据所属种类数据的比对序列号的差值是否小于有效阈值,如果是,则所述数据通过校验,如果否,则所述数据未通过校验。

需要说明的是,所述数据的数据序列号与所述数据所属种类数据的比对序列号的差值是指所述数据的数据序列号减去所述数据所属种类数据的比对序列号所得的值。例如当前进行校验的数据所携带的数据序列号为A,当前进行校验的数据的比对序列号为B,则所述数据的数据序列号与所述数据所属种类数据的比对序列号的差值为A-B。

由于所述发送端初始化后,发送的第一条数据中分配的MSN从0开始的原因,即使当前正在进行校验的数据未通过校验,也要将其数据序列号作为未通过校验的所述数据所属种类数据的比对序列号,避免在所述发送端初始化后出现连续丢弃正常数据的情况出现。例如,假设当前通过校验的数据所携带的数据序列号为100,则比对序列号更新为100,此时所述发送端进行了一次初始化,则下一条数据所携带的数据序列号为0,如果不将0更新为该条数据所属种类的比对序列号,则之后发送的数据都会被丢弃,一直到携带的数据序列号为101的数据才会被正常接收,这显然会丢弃大量的数据;但是如果将所述发送端进行初始化后的第一条数据所携带的数据序列号0更新为所述比对序列号,则只会丢弃一条数据,不会对整个系统的信息通信产生较大的影响。

在本申请的一个具体实施例中,所述数据序列号的大小大于或等于2字节。而SN的大小为1字节,其取值范围为1-255,由于AFDX总线上允许传输的数据量对1-255的范围区间来说是很大的,当AFDX总线出现闪断或其他异常时,很容易出现发送数据数量超过255,从而造成SN产生回滚的情况,无法避免由于刚好回滚到SN的有效窗口内,造成顺序错误的数据无法被识别出来的问题。而所述数据序列号的大小大于或等于2字节,其取值范围大大增加,从而避免了由于数据序列号回滚而造成的顺序错误的数据无法被识别出来的可能。

在本申请的一个优选实施例中,所述数据序列号的大小优选为2字节,这是因为当数据序列号为2字节时,其取值范围为0-65535,按一般AFDX总线通信消息最高周期10ms计算,可以在超过10分钟的时间内不产生MSN的回滚现象,提高了所述AFDX总线消息的校验系统的健壮性。但本申请对所述数据序列号的具体大小和数据类型并不做限定,具体视实际情况而定。

在上述实施例的基础上,在本申请的另一个实施例中,所述有效阈值大于或等于1。

在本申请的一个具体实施例中,所述有效阈值的具体取值范围为1-7,包括端点值。本申请对所述有效阈值的具体取值并不做限定,具体视实际情况而定。

在上述实施例的基础上,在本申请的又一个实施例中,所述为所述消息中的每条数据分配数据序列号,具体为:

按照所述数据的生成顺序为所述消息中的每条数据分配数据序列号;其中,所述数据序列号填充于每条数据的有效负载的头部。

需要说明的是,在本实施例中,每种数据的数据序列号按照数据生成的顺序进行分配,例如当前生成的携带飞行高度的当前数据的数据序列号为9,则下一条生成的携带飞行高度的当前数据的数据序列号则为10,这两条数据称为该种类数据中的相邻数据。

另外,为了与数据尾部原有的SN进行区别,优选地,将所述数据序列号设置于每条数据的有效负载的头部。本申请对所述数据序列号所处的具体位置并不做限定,具体视实际情况而定。

相应的,本申请实施例还提供了一种AFDX总线消息的校验方法,如图6所示,应用于发送端;所述AFDX总线消息的校验方法包括:

S101:生成消息,所述消息中至少包括一种种类数据,所述种类数据中至少包括一条数据;

S102:为所述消息中的每条数据分配数据序列号,同种类数据的数据序列号按预设步长递增。

需要说明的是,所述发送端产生的消息中一般包括多种数据,每种数据携带不同的信息,这些信息可以是飞行高度或飞行速度等。在本实施例中,每种数据的数据序列号按预设步长递增,例如携带飞行高度的当前数据的数据序列号为1,则发送端为下一条携带飞行高度的数据分配的数据序列号为2。

如图7所示,在本申请的一个优选实施例中,所述为所述消息中的每条数据分配数据序列号,包括:

S1021:按照所述数据的生成顺序为所述消息中的每条数据分配数据序列号;其中,所述数据序列号填充于每条数据的有效负载的头部。

例如当前生成的携带飞行高度的当前数据的数据序列号为9,则下一条生成的携带飞行高度的当前数据的数据序列号则为10,这两条数据称为该种类数据中的相邻数据。

参考图4和图5,所述发送端发送的每条数据的有效负载中包含了分配的数据序列号(MSN),这个数据序列号理论上可以位于每条数据的有效负载的任意位置,但是为了保证每条数据的有效负载的内容完整和降低接收端校验难度,所述数据序列号优选位于所述有效负载的头部或尾部;但为了与数据尾部原有的SN进行区别,更优选地,将所述数据序列号设置于每条数据的有效负载的头部。本申请对所述数据序列号所处的具体位置并不做限定,具体视实际情况而定。

在本申请中,所述发送端在消息的每条数据的有效负载中分配一个数据序列号来标志每种数据自身的产生顺序,所述接收端根据接收到的消息中的每条数据的数据序列号与该种类数据的比对序列号判断该条数据自身顺序是否正常,从而实现了对每条消息的数据顺序完整性进行校验的目的,避免出现消息中的数据在传输过程中保持顺序正常,但是由于自身数据顺序错误而导致接收端接收到的消息数据顺序异常的情况。

还需要说明的是,所述预设步长一般情况下设置为1,即所述数据序列号以1为单位循环递增,当发送端完成初始化后,发送的第一条数据中分配的MSN设置为0。当所述数据序列号增长到其数据格式能够到达的最大值时,从0重新开始。

在本申请的一个具体实施例中,所述数据序列号的大小大于或等于2字节。而SN的大小为1字节,其取值范围为1-255,由于AFDX总线上允许传输的数据量对1-255的范围区间来说是很大的,当AFDX总线出现闪断或其他异常时,很容易出现发送数据数量超过255,从而造成SN产生回滚的情况,无法避免由于刚好回滚到SN的有效窗口内,造成顺序错误的数据无法被识别出来的问题。而所述数据序列号的大小大于或等于2字节,其取值范围大大增加,从而避免了由于数据序列号回滚而造成的顺序错误的数据无法被识别出来的可能。

在本申请的一个优选实施例中,所述数据序列号的大小优选为2字节,这是因为当数据序列号为2字节时,其取值范围为0-65535,按一般AFDX总线通信消息最高周期10ms计算,可以在超过10分钟的时间内不产生MSN的回滚现象,提高了所述AFDX总线消息的校验系统的健壮性。但本申请对所述数据序列号的具体大小和数据类型并不做限定,具体视实际情况而定。

相应的,本申请实施例还提供了一种AFDX总线消息的校验方法,如图8所示,应用于接收端,所述AFDX总线消息的校验方法包括:

S201:接收发送端发送的消息,所述消息中至少包括一种种类数据,所述种类数据中至少包括一条数据;

S202:对所述消息中的每条数据进行校验;

如果所述消息中的数据通过校验,则接收通过校验的所述数据,并将通过校验的所述数据的数据序列号作为通过校验的所述数据所属种类数据的比对序列号;

如果所述消息中的数据未通过校验,则丢弃未通过校验的所述数据,并将未通过校验的所述数据的数据序列号作为未通过校验的所述数据所属种类数据的比对序列号。

在本实施例中,所述接收端依据所述数据序列号对所述消息中的每条数据进行校验,以此判断该条数据自身顺序是否正常,从而实现了对每条消息的数据顺序完整性进行校验的目的,避免出现消息中的数据在传输过程中保持顺序正常,但是由于自身数据顺序错误而导致接收端接收到的消息数据顺序异常的情况。

在上述实施例的基础上,在本申请的另一个实施例中,所述对所述消息中的每条数据进行校验,具体为:

按照所述数据的接收顺序对所述消息中的每条数据进行校验;

如图9所示,校验过程为:判断所述数据的数据序列号与所述数据所属种类数据的比对序列号的差值是否小于有效阈值,如果是,则所述数据通过校验,如果否,则所述数据未通过校验。

需要说明的是,所述数据的数据序列号与所述数据所属种类数据的比对序列号的差值是指所述数据的数据序列号减去所述数据所属种类数据的比对序列号所得的值。例如当前进行校验的数据所携带的数据序列号为A,当前进行校验的数据的比对序列号为B,则所述数据的数据序列号与所述数据所属种类数据的比对序列号的差值为A-B。

无论进行校验的数据是否通过校验,该数据的数据序列号都会作为其所属种类数据的比对序列号。例如,当前进行校验的携带有飞行高度信息的数据携带的数据序列号为50,则在该数据进行校验之后,携带有飞行高度信息的数据的比对序列号就更新为50,下一条携带飞行高度信息的数据携带的数据序列号就需要与50进行对比,以判断进行校验的数据的顺序完整性是否正常。

还需要说明的是,由于所述发送端初始化后,发送的第一条数据中分配的MSN从0开始的原因,即使当前正在进行校验的数据未通过校验,也要将其数据序列号作为未通过校验的所述数据所属种类数据的比对序列号,避免在所述发送端初始化后出现连续丢弃正常数据的情况出现。例如,假设当前通过校验的数据所携带的数据序列号为100,则比对序列号更新为100,此时所述发送端进行了一次初始化,则下一条数据所携带的数据序列号为0,如果不将0更新为该条数据所属种类的比对序列号,则之后发送的数据都会被丢弃,一直到携带的数据序列号为101的数据才会被正常接收,这显然会丢弃大量的数据;但是如果将所述发送端进行初始化后的第一条数据所携带的数据序列号0更新为所述比对序列号,则只会丢弃一条数据,不会对整个系统的信息通信产生较大的影响。

在上述实施例的基础上,在本申请的另一个实施例中,所述有效阈值大于或等于1。

在本申请的一个具体实施例中,所述有效阈值的具体取值范围为1-7,包括端点值。本申请对所述有效阈值的具体取值并不做限定,具体视实际情况而定。

综上所述,本申请实施例提供了一种AFDX总线消息的校验系统及方法,其中,所述AFDX总线消息的校验系统的发送端在消息的每条数据的有效负载中分配一个数据序列号来标志每种数据自身的产生顺序,所述AFDX总线消息的校验系统的接收端依据所述数据序列号对所述消息中的每条数据进行校验,以此判断该条数据自身顺序是否正常,从而实现了对每条消息的数据顺序完整性进行校验的目的,避免出现消息中的数据在传输过程中保持顺序正常,但是由于自身数据顺序错误而导致接收端接收到的消息数据顺序异常的情况。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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