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

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

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



背景技术:

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

但是现有技术中对于数据的顺序完整性的校验过程中,SN是以虚拟链路为单位进行分配的,只能对一条虚拟链路上的数据顺序进行校验,而不能对所有虚拟链路上的所有数据的顺序进行校验,对于消息中数据的顺序完整性的校验精度较低。



技术实现要素:

为解决上述技术问题,本发明提供了一种AFDX总线消息的校验系统及方法,以实现对所有虚拟链路上传输的数据的顺序进行校验,增加对消息中数据的顺序完整性的校验精度的目的。

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

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

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

获取本地时间作为时间戳,所述本地时间为所述发送端初始化之后的持续时间;

为所述消息中的每条数据分配所述时间戳,所述时间戳填充于所述数据的有效负载中;

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

根据所述消息中每条数据的时间戳进行校验;

如果所述消息中的数据通过校验,则接收通过校验的所述数据,并将通过校验的数据的时间戳作为比对时间戳;

如果所述消息中的数据未通过校验,则丢弃未通过校验的所述数据,并将未通过校验的所述数据的时间戳作为所述比对时间戳。

可选的,所述为所述消息中的每条数据分配所述时间戳,具体为:

按照所述数据的发送顺序为所述消息中的每条数据分配所述时间戳。

可选的,所述时间戳填充于每条数据的有效负载的头部。

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

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

校验过程为:

判断所述消息中的每条数据的时间戳与比对时间戳的差值是否大于或等于有效阈值,如果是,则所述数据通过校验;如果否,则所述数据未通过校验。

可选的,所述有效阈值为0;

所述时间戳的大小大于或等于6字节。

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

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

获取本地时间作为时间戳,所述本地时间为所述发送端初始化之后的持续时间;

为所述消息中的每条数据分配所述时间戳,所述时间戳填充于所述数据的有效负载中。

可选的,所述为所述消息中的每条数据分配所述时间戳,具体为:

按照所述数据的发送顺序为所述消息中的每条数据分配所述时间戳;其中,所述时间戳填充于每条数据的有效负载的头部。

可选的,所述时间戳的大小大于或等于6字节。

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

接收消息,所述消息中至少包括一条数据;

根据所述消息中每条数据的时间戳进行校验;

如果所述消息中的数据通过校验,则接收通过校验的所述数据,并将通过校验的数据的时间戳作为比对时间戳;

如果所述消息中的数据未通过校验,则丢弃未通过校验的所述数据,并将未通过校验的所述数据的时间戳作为所述比对时间戳。

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

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

校验过程为:

判断所述消息中的每条数据的时间戳与比对时间戳的差值是否大于或等于有效阈值,如果是,则所述数据通过校验;如果否,则所述数据未通过校验。

从上述技术方案可以看出,本发明实施例提供了一种AFDX总线消息的校验系统及方法,其中,所述AFDX总线消息的校验系统的发送端在消息发送之前,在消息的每条数据的有效负载中分配一个时间戳来标志消息中每条数据的顺序,所述AFDX总线消息的校验系统的接收端根据接收到的消息中的每条数据的时间戳进行校验,依次判断数据自身顺序是否正常,从而实现了对所有虚拟链路中传输的消息数据的顺序进行校验的目的,增加了对消息数据的顺序完整性的校验精度。

附图说明

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

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

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

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

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

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

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

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

具体实施方式

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

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

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

获取本地时间作为时间戳,所述本地时间为所述发送端初始化之后的持续时间;

为所述消息中的每条数据分配所述时间戳,所述时间戳填充于所述数据的有效负载中;

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

根据所述消息中每条数据的时间戳进行校验;

如果所述消息中的数据通过校验,则接收通过校验的所述数据,并将通过校验的数据的时间戳作为比对时间戳;

如果所述消息中的数据未通过校验,则丢弃未通过校验的所述数据,并将未通过校验的所述数据的时间戳作为所述比对时间戳。

需要说明的是,现有技术中的AFDX总线消息中的数据格式如图2和图3所示,其中,图2示出的是现有技术中最小以太网框架长度(minimum Ethernet frame length)的数据格式,包括:前导头(Preamble,7bytes)、帧首定界符(Start Frame Delimiter,1byte)、目的物理地址(Destination Address,6bytes)、源物理地址(Source Address,6bytes)、协议类型(0x800 Ipv4,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)、协议类型(0x800 Ipv4,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,所述发送端发送的每条数据的有效负载中包含了分配的时间戳(TTS),这个时间戳理论上可以位于每条数据的有效负载的任意位置,但是为了保证每条数据的有效负载的内容完整和降低接收端校验难度,所述时间戳优选位于所述有效负载的头部或尾部;但为了与数据尾部原有的SN进行区别,更优选地,将所述时间戳设置于每条数据的有效负载的头部。本申请对所述时间戳所处的具体位置并不做限定,具体视实际情况而定。

另外,所述时间戳包含的内容为本地时间,所述本地时间指所述发送端初始化之后的持续时间,所述发送端的初始化包括重启、复位或重新上电,也就是说在发送端重启、复位或重新上电之后,所述本地时间从零开始计时,所述本地时间用于标识发送端初始化后的持续工作时间。

在本申请中,所述发送端在消息发送之前,在消息的每条数据的有效负载中分配一个时间戳来标志消息中每条数据的顺序,所述AFDX总线消息的校验系统的接收端根据接收到的消息中的每条数据的时间戳进行校验,依次判断数据自身顺序是否正常,从而实现了对所有虚拟链路中传输的消息数据的顺序进行校验的目的,增加了对消息数据的顺序完整性的校验精度。

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

按照所述数据的发送顺序为所述消息中的每条数据分配所述时间戳。

同样的,在本实施例中,所述数据的时间戳也按照数据的发送顺序进行分配,例如一条发送周期为10ms的消息,待发送的当前数据的时间戳为9000000μs,则下一条待发送的数据的时间戳为9010000μs,这两条数据在发送顺序上称之为相邻数据。

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

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

校验过程为:

判断所述消息中的每条数据的时间戳与比对时间戳的差值是否大于或等于有效阈值,如果是,则所述数据通过校验;如果否,则所述数据未通过校验。

需要说明的是,所述消息中的每条数据的时间戳与比对时间戳的差值是指所述数据的时间戳减去所述比对时间戳所得的值。例如当前进行校验的数据所携带的时间戳为A,当前进行校验的数据的比对时间戳为B,则所述数据的时间戳与比对时间戳的差值为A-B。

在本申请的一个优选实施例中,所述有效阈值优选为0。

在所述接收端将每条数据的时间戳与比对时间戳进行比对时,如果该条数据的时间戳与所述比对时间戳的差值(数据的时间戳-比对时间戳)等于0时,也认为该条数据有效,这是因为在AFDX总线通信中,每条消息有BAG(Bandwidth Allocation Gap,最小帧间隔)约束,每条消息上两条相邻数据的最小帧间隔为1ms(参考《ARINC664 Part7》“3.2.3调度”章节),所以在正常情况下,一条消息的两条相邻数据的TTS应单向递增,而当两条相邻数据的TTS差值等于0时,说明发送端本地计时功能出现异常,无法通过所述数据中携带的时间戳判断所述数据的顺序,因此采取接受全部数据的策略。

当该条数据的时间戳与所述比对时间戳的差值小于0时,认为该条数据无效并丢弃,但该条数据的时间戳却需要被保存下来作为所述比对时间戳。这是因为如果发生发送端重启,则其本地时间会从0μs开始重新计时,所以发送端重启后发送的第一条数据的时间戳会小于接收端接收到的上一条数据的时间戳,此时发送端数据通信为正常状态,采用上述判断策略后,接收端仅会丢弃发送端重启后发送的第一条数据,后续数据均会正常接收,如果在丢弃数据的同时也不记录其时间戳,则接收端会在发送端重启后连续丢弃数据,直到发送端本地计时时间超过接收端记录的比对时间戳。

例如,假设当前通过校验的数据所携带的时间戳为1000000μs,则比对时间戳更新为1000000μs,此时所述发送端进行了一次初始化,则下一条数据所携带的时间戳为0μs,如果不将0μs更新为所述比对时间戳,则之后发送的数据都会被丢弃,一直到携带的时间戳超过1000000μs的数据才会被正常接收,这显然会丢弃大量的数据(长达1000000μs的数据);但是如果将所述发送端进行初始化后的第一条数据所携带的时间戳0μs更新为所述比对时间戳,则只会丢弃一条数据,不会对整个系统的信息通信产生较大的影响。

在上述实施例的基础上,在本申请的一个实施例中,所述时间戳的大小大于或等于6字节。

由于所述时间戳记录的内容为本地时间,6字节的时间戳最大可以表示(248-1)us=281474976710655us>78000小时,远远超过了航空电子系统一次上电后的连续工作时间(飞机一个起降经过时间),因此所述时间戳的大小等于6字节即可满足所有航空电子系统的使用要求。

综上所述,本申请实施例提供了一种AFDX总线消息的校验系统,所述AFDX总线消息的校验系统的发送端在消息发送之前,在消息的每条数据的有效负载中分配一个时间戳来标志消息中每条数据的顺序,所述AFDX总线消息的校验系统的接收端根据接收到的消息中的每条数据的时间戳进行校验,依次判断数据自身顺序是否正常,从而实现了对所有虚拟链路中传输的消息数据的顺序进行校验的目的,增加了对消息数据的顺序完整性的校验精度。

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

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

S102:获取本地时间作为时间戳,所述本地时间为所述发送端初始化之后的持续时间;

S103:为所述消息中的每条数据分配所述时间戳,所述时间戳填充于所述数据的有效负载中。

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

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

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

另外,所述时间戳包含的内容为本地时间,所述本地时间指所述发送端初始化之后的持续时间,所述发送端的初始化包括重启、复位或重新上电,也就是说在发送端重启、复位或重新上电之后,所述本地时间从零开始计时,所述本地时间用于标识发送端初始化后的持续工作时间

在本申请中,所述发送端在消息发送之前,在消息的每条数据的有效负载中分配一个时间戳来标志消息中每条数据的顺序,所述AFDX总线消息的校验系统的接收端根据接收到的消息中的每条数据的时间戳进行校验,依次判断数据自身顺序是否正常,从而实现了对所有虚拟链路中传输的消息数据的顺序进行校验的目的,增加了对消息数据的顺序完整性的校验精度。

在上述实施例的基础上,在本申请的一个实施例中,如图7所示,步骤S103,具体为:

S1031:按照所述数据的发送顺序为所述消息中的每条数据分配所述时间戳,所述时间戳填充于所述数据的有效负载中。

同样的,在本实施例中,所述数据的时间戳也按照数据的发送顺序进行分配,例如一条发送周期为10ms的消息,待发送的当前数据的时间戳为9000000μs,则下一条待发送的数据的时间戳则为9010000μs,这两条数据在发送顺序上称之为相邻数据。

在上述实施例的基础上,在本申请的一个实施例中,所述时间戳的大小大于或等于6字节。

由于所述时间戳记录的内容为本地时间,6字节的时间戳最大可以表示(248-1)us=281474976710655us>78000小时,远远超过了航空电子系统一次上电后的连续工作时间(飞机一个起降经过时间),因此所述时间戳的大小等于6字节即可满足所有航空电子系统的使用要求。

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

S201:接收消息,所述消息中至少包括一条数据;

S201:根据所述消息中每条数据的时间戳进行校验;

如果所述消息中的数据通过校验,则接收通过校验的所述数据,并将通过校验的数据的时间戳作为比对时间戳;

如果所述消息中的数据未通过校验,则丢弃未通过校验的所述数据,并将未通过校验的所述数据的时间戳作为所述比对时间戳。

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

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

如图9所示,校验过程为:

判断所述消息中的每条数据的时间戳与比对时间戳的差值是否大于或等于有效阈值,如果是,则所述数据通过校验;如果否,则所述数据未通过校验。

需要说明的是,所述消息中的每条数据的时间戳与比对时间戳的差值是指所述数据的时间戳减去所述比对时间戳所得的值。例如当前进行校验的数据所携带的时间戳为A,当前进行校验的数据的比对时间戳为B,则所述数据的时间戳与比对时间戳的差值为A-B。

在本申请的一个优选实施例中,所述有效阈值优选为0。

在所述接收端将每条数据的时间戳与比对时间戳进行比对时,如果该条数据的时间戳与所述比对时间戳的差值(数据的时间戳-比对时间戳)等于0时,也认为该条数据有效,这是因为在AFDX总线通信中,每条消息有BAG(Bandwidth Allocation Gap,最小帧间隔)约束,每条消息上两条相邻数据的最小帧间隔为1ms(参考《ARINC664 Part7》“3.2.3调度”章节),所以在正常情况下,一条消息的两条相邻数据的TTS应单向递增,而当两条相邻数据的TTS差值等于0时,说明发送端本地计时功能出现异常,无法通过所述数据中携带的时间戳判断所述数据的顺序,因此采取接受全部数据的策略。

当该条数据的时间戳与所述比对时间戳的差值小于0时,认为该条数据无效并丢弃,但该条数据的时间戳却需要被保存下来作为所述比对时间戳。这是因为如果发生发送端重启,则其本地时间会从0μs开始重新计时,所以发送端重启后发送的第一条数据的时间戳会小于接收端接收到的上一条数据的时间戳,此时发送端数据通信为正常状态,采用上述判断策略后,接收端仅会丢弃发送端重启后发送的第一条数据,后续数据均会正常接收,如果在丢弃数据的同时也不记录其时间戳,则接收端会在发送端重启后连续丢弃数据,直到发送端本地计时时间超过接收端记录的比对时间戳。

例如,假设当前通过校验的数据所携带的时间戳为1000000μs,则比对时间戳更新为1000000μs,此时所述发送端进行了一次初始化,则下一条数据所携带的时间戳为0μs,如果不将0μs更新为所述比对时间戳,则之后发送的数据都会被丢弃,一直到携带的时间戳超过1000000μs的数据才会被正常接收,这显然会丢弃大量的数据(长达1000000μs的数据);但是如果将所述发送端进行初始化后的第一条数据所携带的时间戳0μs更新为所述比对时间戳,则只会丢弃一条数据,不会对整个系统的信息通信产生较大的影响。

综上所述,本申请实施例提供了一种AFDX总线消息的校验系统及方法,其中,所述AFDX总线消息的校验系统的发送端在消息发送之前,在消息的每条数据的有效负载中分配一个时间戳来标志消息中每条数据的顺序,所述接收端根据接收到的消息中的每条数据的时间戳与所述比对时间戳判断该条数据自身顺序是否正常,从而实现了对所有虚拟链路中传输的消息数据的顺序进行校验的目的,增加了对消息数据的顺序完整性的校验精度。

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

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

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