一种用于FlexRay网络的静态段错误消息的快速重传方法与流程

文档序号:12131405阅读:286来源:国知局
一种用于FlexRay网络的静态段错误消息的快速重传方法与流程

本发明涉及一种用于FlexRay网络的静态段错误消息的快速重传方法,主要用于针对发生传输错误的静态帧重要消息进行快速重传,属于通信技术领域。



背景技术:

随着汽车电子技术的发展,人们对汽车安全性能的要求越来越高。越来越多汽车上的电控模块都是通过车载网络连接,使得通信系统的复杂程度变高。FlexRay作为新一代汽车内部网络的主干网络,采用基于时间驱动机制,具有高带宽、灵活性、可靠性和确定性等特点,尤其适用于对于安全性能要求较高的线控操作(X-By-Wire)场合。FlexRay静态段采用基于时间触发的时分多址媒体访问机制,时间触发方式和时分多址媒体访问机制被广泛应用在安全关键系统中。FlexRay通信系统中在静态段进行传输的是安全关键消息,所以静态段传输质量对于系统的安全性和可靠性方面具有很重要的影响。

FlexRay网络系统采用的是双绞线作为通信介质,此通信介质会有一定概率的误码率,导致在其中传输的消息发生传输错误,这种错误是不可避免的,并且有干扰的情况下误码率会提高,这这种传输故障性在一些线控操作场合是不满足要求的。FlexRay提高容错性的方法是协议中的协议头部CRC校验、数据CRC校验以及双通道冗余传输,但是CRC校验方法只能是将发生传输错误的消息进行简单的丢弃;双通道冗余传输一方面会大大增加系统的工作量,另一方面有可能出现两个通道中传输的相同信息都发生传输错误的情况。

面向实时性要求苛刻的一些场合,比如线控操作,针对提高消息传输可靠性的方法一般是从应用层协议入手,主要有两种:一种是每次发送消息都进行冗余发送,也即发送两次,这样虽然提高了可靠性,但是极大的浪费了带宽;另一种就是针对错误消息进行重传,但重传时刻很滞后,不能满足实时性的要求。



技术实现要素:

本发明提出了一种用于FlexRay网络的静态段错误消息的快速重传方法,可以保证对实时性要求高的应用场合下,部分安全关键消息能够在短时间内完成重传,从而提高系统的可靠性和安全性。

本发明的一种用于FlexRay网络的静态段错误消息的快速重传方法,其针对的目标FlexRay网络中数据的传输模式为周期模式,每个周期中均包含两个连续的时间段:依次为静态段和动态段,其中静态段为时分复用方式,分为多个长度相等的时槽,每个时槽分配给固定的结点用以发送数据,所发送的数据为网络设计者认为对实时性要求较高的数据,动态段为事件触发方式,整个动态段分为多个时槽,该时槽也用于数据的发送,结点在动态段发送数据采用竞争的机制,如果某个动态段时槽有消息发送,其长度决定于消息长度,如果没有则为一个最小的空时槽长度;

本发明的一种用于FlexRay网络的静态段错误消息的快速重传方法,其硬件平台包括目标FlexRay网络和一个额外的FlexRay结点,称为PR结点,该PR结点接入目标FlexRay网络,用于网络中错误消息的检测及对外播报,其发送的对外播报的消息称为PR消息,该PR结点不能作为FlexRay网络的启动结点,PR消息所在的帧不能作为FlexRay网络的同步帧;

本发明的一种用于FlexRay网络的静态段错误消息的快速重传方法,具体步骤如下:

1)每个周期开始前,确定需保护的消息范围,也即发生错误时需要快速重传的消息的范围:将每个周期中在静态段发送的全部消息作为保护目标,称为SC消息,同时将发送SC消息的结点称为SC结点,将发送SC消息当时的时槽称为SC时槽;

2)每个周期开始后,在静态段时间段内,对静态段中的每一个SC消息均按照其当前所在的通信周期和时槽进行编号,SC结点在预先设定好的对应时槽发送SC消息,同时每发送一次SC消息都要在本结点作备份以备该SC消息发生错误后的重传;

3)PR结点开始对信道进行监听,接收每一条SC消息并判断其传输是否正确,若有错误,记录该错误SC消息的通信周期和时槽编号,当动态段开始时进入步骤4),若无错误,当动态段开始时进入步骤5);

4)动态段开始后,顺序执行如下步骤:

4.1 PR结点创建用于对外播报错误的PR消息;

4.2 PR结点在预留给PR消息的动态段时槽广播发送PR消息;

4.3各SC结点接收PR消息,并根据其中所记录的错误SC消息的通信周期和时槽编号,确定是否有本SC结点发送的SC消息发生错误,如有,则该SC结点重新发送备份的SC消息,将重新发送的备份SC消息称为RE_SC消息并结束本周期与快速重传相关的操作,如无则预留给该SC结点重新发送备份的SC消息的每个动态段时槽均为一个最小的空时槽长度,不发送消息,同时该SC结点结束本周期与快速重传相关的操作;

5)动态段开始后,预留给PR结点创建和发送PR消息以及各SC结点重传SC消息的每个动态段时槽为一个最小的空时槽长度,不发送消息,同时结束本周期与快速重传相关的操作;

所述的PR消息为固定格式,包括prx个字段,每个字段播报一条发生传输错误的SC消息,prx的数量值由设计者根据当前网络状况给出且取值范围为大于等于1,每个字段包括2个字节,标识错误SC消息所在的6位的通信周期编号和10位的时槽编号;

进一步地,为了节约带宽,综合考虑消息错误概率,所述prx优选值为2;

进一步地,为了进一步提高传输可靠性,发生传输错误时,所述PR结点可以连续重复发送Kx次PR消息,Kx取值范围为大于等于1,优选值为2;

为了给PR结点创建PR消息在动态段起始处留出时间,所述预留给PR结点发送PR消息的动态段时槽为第n+1个至n+Kx个动态段时槽,其中前n个时槽为空时槽,用于留出时间给PR结点创建PR消息,n的取值范围为大于等于1,优选值为2;

所述SC结点重新发送备份的错误SC消息的顺序为,按照原来SC消息在静态段时槽的编号大小,从小到大依次在预留给重传SC消息的每个动态段时槽连续发送;

同理,为了给SC结点接收、分析PR消息以及创建重新发送的SC消息留出时间,在动态段中PR消息发送完后、SC结点重新发送RE_SC消息前,需要预留n’个空时槽,n’的取值范围为大于等于1,优选值为3;

进一步地,为了节约带宽,综合考虑消息错误概率,共计在动态段为SC结点重新发送备份的错误SC消息预留s个时槽,s取值与上述prx值相同,优选值也为2。

有益效果

本发明提出的一种用于FlexRay网络的静态段错误消息的快速重传方法解决了FlexRay通信机制本身不能对发生传输错误的消息进行修复,导致这部分安全关键消息内容被丢弃的问题,同时可以解决现有的错误消息重传方法浪费带宽或者实时性较差的问题,不仅能够保证发生传输错误的静态帧消息能够被及时检测并在一个周期内进行重新发送,还能进一步保证动态段中用于快速重传的时槽占用量在保证传输可靠性的前提下尽可能少,尽可能地节约带宽。

附图说明

图1为本发明实施例中的方法执行流程图;

图2为本发明实施例中的PR消息的帧格式;

图3为本发明实施例中SC和PR时槽的时序图;

图4为本发明实施例中最糟糕情况下的SC和PR时槽的时序图;

图5为本发明实施例中PR结点的通信控制器CC和内核控制器CPU的任务调度表;

图6为本发明实施例中SC结点的通信控制器CC和内核控制器CPU的任务调度表。

具体实施方式

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

实施例

本发明提出的一种用于FlexRay网络的静态段错误消息的快速重传方法可以及时检测静态帧消息是否发生传输错误并将错误消息在一个周期以内进行重新传输,有效提高系统传输可靠性和实时性。本方法需要在目标FlexRay网络中加入一个PR结点,协助完成快速重传。

实施例中的目标FlexRay网络参数为:

传输速率:C=10Mbit/s;周期长度:TC=5ms;动态段最小时槽时间长度:TMS=8us;静态段长度:TSS=3ms;静态时槽数量:NSS=30;静态帧负载段字节数:PLSC=16;静态段和动态段中AP offset长度为:10bits;双绞线传输误码率:BER=10-7;Kx=2,prx=2;n=2,n’=3,PR消息创建和发送所占用的时槽数:nPR=2;RE_SC消息创建和发送所占用的时槽数:nRE_SC=4;PR结点选用MC9S12XF512作为主控芯片。

按照本发明方法的实施步骤,具体应用在本实施例中,给出了在某个SC结点发送一条SC消息情况下的具体步骤,如图1所示,具体步骤描述如下:

1)每个周期开始前,确定需保护的消息范围,也即发生错误时需要快速重传的消息的范围:将每个周期中在静态段发送的全部消息作为保护目标,称为SC消息,同时将发送SC消息的结点称为SC结点,将发送SC消息当时的时槽称为SC时槽;

2)每个周期开始后,在静态段时间段内,对静态段中的每一个SC消息均按照其当前所在的通信周期和时槽进行编号,SC结点发送SC消息,同时每发送一次SC消息都要在本结点作备份以备该SC消息发生错误后的重传;

3)PR结点开始对信道进行监听,接收每一条SC消息并判断其传输是否正确,若有错误,记录该错误SC消息的通信周期和时槽编号,当动态段开始时进入步骤4),若无错误,当动态段开始时进入步骤5);

4)动态段开始后,顺序执行如下步骤:

4.1 PR结点创建用于对外播报错误的PR消息;

4.2 PR结点在预留给PR消息的动态段时槽广播发送PR消息;

4.3各SC结点接收PR消息,并根据其中所记录的错误SC消息的通信周期和时槽编号,确定是否有本SC结点发送的SC消息发生错误,如有,则该SC结点重新发送备份的SC消息,将重新发送的备份SC消息称为RE_SC消息并结束本周期与快速重传相关的操作,如无则预留给该SC结点重新发送备份的SC消息的每个动态段时槽均为一个最小的空时槽长度,不发送消息,同时该SC结点结束本周期与快速重传相关的操作;

5)动态段开始,预留给PR结点创建和发送PR消息以及各SC结点重传SC消息的每个动态段时槽为一个最小的空时槽长度,不发送消息,同时结束本周期与快速重传相关的操作;所述的PR消息为固定格式,包括prx个字段,prx的数量值由设计者根据当前网络状况给出,每个字段播报一条发生传输错误的SC消息,每个字段包括2个字节,包含错误SC消息所在的6位的通信周期编号和10位的时槽编号,,PR消息格式如图2所示;

本实施例中prx值为2;

本实施例中,PR结点可以连续重复发送Kx次PR消息,Kx值为2;

为了给PR结点创建PR消息在动态段起始处留出时间,所述预留给PR消息的动态段时槽为第n+1个至n+Kx个动态段时槽,其中前n个时槽为空时槽,用于留出时间给PR结点创建PR消息,本实施例中n的值为2;

所述SC结点重新发送备份的错误SC消息的顺序为,按照原来SC消息在静态段时槽的编号大小,从小到大依次在预留给重传SC消息的每个动态段时槽连续发送;

同理,为了给SC结点接收、分析PR消息以及创建重新发送的SC消息留出时间,在动态段中PR消息发送完后、SC结点重新发送RE_SC消息前,需要预留n’个空时槽,本实施例中n’的值为3;

进一步地,为了节约带宽,综合考虑消息错误概率,共计在动态段为SC结点重新发送备份的错误SC消息预留s个时槽,s的值与上述prx值相同,也为2。

以下对上述涉及到的参数优化取值进行分析。

(1)prx和Kx优选值的确定

所述的PR消息中预留的用来存储错误消息编号的字段个数参数prx优选值为2以及PR消息连续发送次数Kx优选值为2,是经过故障率模型分析得出的优选值取值结论,具体分析过程如下。

TC表示周期长度;TSS表示静态段时间长度;NSS表示静态段时槽个数;TDS表示动态段时间长度;NDS表示动态段时槽个数;TMS表示动态段时槽长度;NMAPO表示动态段中每个时槽包含的macrotick个数,macrotick在FlexRay协议中被规定为代表最大时间节拍;Wi和PLi表示序号为i的SC消息总长度(单位:位)和负载段长度(单位:字节);(WPR,PLPR)和(WRE_SC_i,PLRE_SC_i)分别表示序号为i的PR消息和RE-SC消息总长度(单位:位)和负载段长度(单位:字节),prx表示PR消息字段个数,Kx表示PR结点连续发送PR消息的次数。

PFSC表示一个周期内至少有一个SC消息发生传输错误的概率:

WSC表示一个周期内传输的所有SC消息包含的位的个数:

BSS是FlexRay协议中规定的字节编码序列,长度为2bits,OverHead_S表示经过编码的一帧数据中除去静态帧数据后的编码位总位数。mfz表示序号为z的发生传输错误的SC消息。PFSC_fz表示一个周期中个数为z的SC消息发生传输错误的概率:

Ws表示一个周期中正确传输的所有SC=f消息包含位的总个数:

PFPRTM表示经过一次重传之后一个周期f中仍然至少有一个SC消息发生传输错误的概率:

等式右边的第二部分表示z大于prx时的故障率之和,基本上可被PFSC-f(prx+1)代替,因为z大于prx时:1)至少有一个SC消息不能被重新传输,PR消息和RE-SC消息的影响基本就可以忽略;2)PFSC-fz(z>prx+1)小于PFSC-f(prx+1)

等式右边的第一部分表示z小于等于prx的故障率之和,可以由下式计算:

PFPRTM_z=PFSC_fz×{(PFPR)Kx+[1-(PFPR)Kx]×PFRE_SC_z},z≤pfx (6)

PFPR表示PR消息传输错误的概率:

上式中,OverHead_D=105,要比静态段的OverHead_S多2位的DTS。

PFRE_SC_z表示RE-SC消息中至少有一个发生传输错误的概率:

本发明方法通过上述故障率模型分析并进行大量的仿真试验来确定prx的优选值,按照下面的条件进行组网:BER=10-7,C=10Mbit/s,slot AP offset为10bits,TC选择为5ms,SC消息负载段长度分布在下面的区间中[8,PLmax],

TSS选取为{2ms,3ms,4ms}三种情况,每种情况根据NSS分成96个例子进行仿真研究,在不同的prx和Kx值情况下,每种情况进行100次仿真试验,通过观察不同NSS,prx和Kx情况下的PFPRTM仿真结果,发现,

1)TSS一定时,PFPRTM随着NSS的增加而减小;

2)prx取值为2或3时,PFPRTM的值相差不大,并且均比prx取1时要小,综合考虑节约带宽问题后,本方法实施例prx优选值为2;

3)Kx取2和3时的PFPRTM是相似的,而且均比Kx取1时要小,综合考虑节约带宽问题后,本方法实施例Kx优选值为2。

(2)n和n’优选值的确定

所述的预留给PR结点创建PR消息所需的动态时槽个数n优选值为2以及预留给SC结点接收、分析PR消息和创建RE_SC消息的动态时槽个数n’优选值为3是经过时序分析得出的优选值结论,具体分析过程如下。

SC和PR时槽的时序图如图3所示,Tdelimiter和Tidle分别表示协议中的Idle-D和channel idle时间。

第一条PR消息的AP offset之前,PR结点需要完成下面的工作:SC帧解码、SC消息检测和第一条PR消息的创建(如果检测到有传输错误)。因此,实际的调度应满足下面的约束:

τ≥Tdecode+Tdetect+Tbuild (10)

Tdecode,Tdetect和Tbuild分别表示解码、检测和创建消息的时间,τ表示可利用的时间。

假设最后一个静态时槽非空,最后一条SC消息在发送结束后,经过Tpd的传输延迟之后,PR结点开始接收最后一条SC消息。系统经过Idle-D时间段,用来识别当前通信元素结束,之后信道进入Channel idle时间段继续进行保持空闲,直到当前时槽结束。假设在第一个PR时槽之前,动态时槽个数为n,那么静态段中最后一条消息传输完成后的空闲时间τ可以表示为:

τ=τ'+n×TMS+NMAPO×TMT,τ'=Tdelimiter+Tidle (11)

考虑到最糟糕的情况就是消息发送时间Ttd和消息传输延迟时间Tpd太长,以至于Tidle为0,Tdelimiter仅仅能够满足通信控制器CC对接收到的数据帧进行解码,解码的数据流不一定能够被主机接收。所以:

(τ'worst>Tdecode)∪(τ'worst≈Tdecode) (12)

最糟糕情况下的SC和PR时槽时序图如图4所示。

另外一方面的约束来自PR结点CC的缓存方面,在PR消息所在的PR时槽之前需要检测其发送缓存是否被占用,所以在PR时槽的AP offset之前的时间是不可以使用的。

根据上述约束条件,本设计规定,在动态段的PR时槽之前至少存在一个动态时槽。

n×TMS≥Tdiscern+Tbuild (13)

基于上述约束条件,PR结点的通信控制器CC和内核控制器CPU的任务调度如图5所示。

假设PR结点的指令执行周期是Tic,用于检测和生成消息的伪代码长度为vdetect和vbuild,那么

与PR结点的任务分析相似,SC结点检测PR消息和生成RE-SC消息可以在个数为n’的动态时槽内完成,第二个RE-SC消息也可以在第一个RE-SC时槽中完成。SC结点的CC和CPU的任务调度表如图6所示。

根据公式(14),有

上述时序分析中提及的PR结点的指令执行周期是Tic、用于检测和生成消息的伪代码长度为vdetect和vbuild以及SC结点的指令执行周期是Tic、用于检测和生成消息的伪代码长度为v’detect和v’build在本方法中均为已知量,故根据上述公式(14)和公式(15),并结合尽可能减少带宽的浪费的原则,也即在大多数情况下没有错误发生时要减少空时槽占用,由此,预留给PR结点创建PR消息所需的动态时槽个数n优选值为2以及预留给SC结点接收、分析PR消息和创建RE_SC消息的动态时槽个数n’优选值为3。

基于上述所述实施例的应用环境,分别对采用和不采用用于FlexRay网络的静态段错误消息的快速重传方法这两种状况进行100次试验,并对试验过程中一个周期中至少有一个SC消息发生传输错误的概率进行统计对比,统计结果显示:未采用本方法的网络传输过程中,单周期内至少一个SC message发生传输错误的故障率在10-3水平附近微小浮动;采用本方法的网络传输过程中,单周期内至少一个SC message 发生传输错误的故障率对数在10-12水平附近微小浮动;可见,采用本发明方法的FlexRay网络相比于未采用本发明方法的FlexRay网络传输故障率明显降低了约9个数量级,并且随着Nss的增加传输故障率不断减小,本方法可以有效提高系统的传输可靠性和安全性。

以上对本发明所提供的一种用于FlexRay网络的静态段错误消息的快速重传方法进行了详细介绍,本文中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

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