CAN 总线网络品质评价方法研究
2021-03-31田涌君蔡其瑾唐风敏华一丁
田涌君, 蔡其瑾, 唐风敏, 华一丁
(1.中汽研(常州) 汽车工程研究院有限公司, 江苏 常州 213000;2.东风柳州汽车有限公司, 广西 柳州 515005;3.中汽研(天津) 汽车工程研究院有限公司, 天津 300300)
CAN总线是当今世界汽车领域使用最为广泛的总线之一,以其高效、可靠、灵活的特点受到设计者的青睐。但随着技术的进步,越来越多的控制模块被加入到总线系统中,这些模块中包含了许多有着高实时性要求的任务,且在实际工作过程中,由于CAN总线自身的非破坏性逐步仲裁机制导致的调度问题、仲裁问题及阻塞问题等都会导致实时系统的网络品质下降。但是当前还没有人提出完善的总线网络的品质评价方法。
目前国内外已经有许多学者对CAN总线的评价指标进行了研究。Tindell等人针对基于CAN总线的实时系统研究了不同工况下的最差情况响应时间,即可调度性的问题[1]。刘洪鹏等提出了关于负载率的算法及其优化的设计[2];龚晖等将负载率的分析与优化策略在CANoe内进行了验证[3];马卓等提出了锁相环的降低抖动技术[4]。以上研究均是针对某一具体指标进行的,随着总线技术的不断发展,针对单一指标的评价方式显然无法满足行业需求,一种完善的评价方法是业内急需的。
为此,本文以CAN总线传输过程中主要的评价指标为研究对象,在对其进行建模分析的基础上研究其在总线网络品质中所起到的作用,并设计一套完整的网络品质评价流程,最后选取某实车CAN总线在Symtavision软件内进行测试,对所提出的评价方法进行示例说明。
1 主要指标
1.1 可调度性
评价系统的实时性首先要做的就是保证不丢帧,如果丢失了所需传输的消息,那实时性也就无从谈起。而是否丢帧,所反映的就是消息的可调度性[5]。
以单调速率算法 (RM算法) 为例,当系统的利用率低于69%时,任务模型中的任何任务集都是可以调度的。但是仅利用这一点对可调度性进行判断是不精确的。详细分析如式(1) 所示:
式中:Uj——任务j的利用率,如式(2) 所示:
式中:Cj——任务j的最坏情况执行时间;Tj——任务j的周期;Rj由式(3) 可得:
上述公式精确地对单调速率算法的实际工作情况进行了分析,可以通过利用率有效地判断出可调度性。
根据可调度性的定义,若系统可以将一个任务在其最终期限前完成调度,则称此任务是可调度的,这就是可调度性的另一种判断方式:计算任务的最差情况响应时间。
最差情况响应时间能有效地计算出各消息可能发生的最大延时情况,从而衡量出该消息的可调度性。对最差情况响应时间进行分析,当消息的最差情况响应时间大于该消息传输的周期时,可以判定为不可调度,这种情况是不可接受的,必须进行优化处理。
最差情况响应时间分析如下:
式中:ri——给定任务i的最差情况响应时间;Ci——任务i的最差情况执行时间;Tj——任务i的周期;hp(i)——所有优先级高于任务i的任务的集合。
式(4) 可通过形成递归关系来解:
式中:rni——ri的n次逼近。
在该式中,ri的递归关系是单调的,那么若r0i=0,则通过归纳法这一公式将有可能收敛为:
或:
在这种情况下,结果是无效的,表明任务i是不可调度的。
通过上述方式可以判断出总线系统的可调度性,这也是网络品质分析的第一步,只有可调度的系统才有资格进行下一步的网络品质评估。
1.2 抖动
在报文实际传输过程中,由于仲裁、堵塞、控制器自身等原因,每个报文实际到达的时间都不可能与最初设计的时间相同,都会存在一定的差距,这种现象叫做抖动。抖动的时间长短与设计周期的比值被称为抖动百分比,它可以近似地显示出报文的延时情况。若某报文的抖动百分比超过40%,则代表报文延时情况已经较为严重,需要对该报文进行具体分析。
1.3 负载率
一般来说,负载率被定义为当前系统正在进行的数据传输速率与系统设计时的理论最大传输速率之比。负载率是一个在时间上被定义的概念,说明在一定时间范围内,位资源的使用情况。负载率越高,代表在这一时间段内需要传输的数据越多,低优先级的报文可以得到的网络资源就会越少,因此就越有可能发生通信延时甚至严重情况下的丢帧。若总线系统的负载率为10%~20%时,基本不存在堵塞的情况,可以畅通无阻地进行传输。若负载率为30%左右时,各节点可能会出现轻微延时,根据优先级的高低存在些许差异。但是当负载率逐步增加至60%以上时,就已经会开始影响总线系统的实时性,延时情况会变得比较严重。负载率继续增加至80%以上时,通信情况可能会相当糟糕,严重情况下可能造成丢帧、错误帧等现象。在实际应用中,负载率越低,越能保证实时性,但CAN总线的特性就决定了负载率过低无法满足报文传输的速率,这是一个无法解决的问题,只能在二者之间寻找一定的平衡。根据实验表明,当负载率在30%左右时,可以取得最好的兼顾效果。
1.4 Burst情况
Burst即连续发送,在实际应用中,只需设定好起始地址与连续传输长度,就可以方便有效地进行连续传输。但是在CAN总线中,系统依靠报文优先级来进行仲裁分配传输,连续传输会造成高优先级的报文不断地被发送,比该报文优先级低的报文就只能持续等待仲裁,这样极容易造成总线传输的堵塞、延时,甚至丢帧问题。
2 评价体系
本文依据以上研究的几个重要指标提出了一套完整的测试评价方法,具体流程如下。
1) 获得完整的CAN总线报文后,首先需要对该总线上所有的消息进行可调度性分析。若该总线采用静态调度算法进行调度,则可优先对该总线的负载率进行测试,若负载率小于69%,则该总线上的所有报文均可调度。否则需对每个报文的最差情况响应时间进行分析。若存在最差情况响应时间大于该报文设计周期的报文,则证明该报文不可调度,该总线上会出现丢帧情况。因此该总线网络品质不合格,必须重新进行优化。若不存在这样的报文,则可以进入下一步。
2) 若通过最差情况响应时间进行可调度性判断,则下一步还需要对负载率进行分析。依据前文分析,当总线系统的负载率处于30%~40%时,是较为理想的状态,当负载率大于80%时,低优先级的报文延时会较为严重,严重影响了实时性。此时总线必须接受优化。若总线负载率大于40%小于80%,则应根据具体情况具体分析,研究占用负载率大的控制器的工作情况。
3) 通过系统的可调度性与负载率测试后,需要对总线中各报文的抖动及Burst情况进行分析。将抖动的时长与该报文设计周期之比称为抖动百分比或相对延时,令抖动百分比为x,并将各报文的抖动情况分为3种:x<10%,10%
4) 经过上述测试步骤,该总线系统的可调度性、延时情况等指标都已较为清晰明了,可以较好地帮助工程人员进行针对性地优化。
3 实例分析
将实车trace通过CANoe导出,将CANoe trace文件导入symtavision工具自动建模,进行Analyze Trace分析。
依据本文提出的评价方法,首先对系统的可调度性进行分析,图1为各报文的相对延时和最差情况响应时间分析图。
对该总线的最差情况响应时间和抖动时长与设计周期之比(以下简称相对延时) 进行分析,由分析结果可知,该总线各报文相对延时均在40%以下,最差情况延时均在70%以下,各报文延时在可接受范围内,代表该总线上的各报文虽存在延时,但均可调度,因此可继续进行下一步评测。
图1 各报文相对延时和最差情况响应时间
随后需要对负载率进行评估,图2为BDCAN总线各控制器的负载率分析图。
图2 BDCAN总线各控制器负载率图
如图2所示,该总线负载率为35%左右。其中,GW_BCM占主要比例,25%左右。其余控制器所在负载均在3.1%以下。根据上文分析,负载率在30%左右时,基本满足高优先级报文的传输需求,但低优先级的报文还存在少许延时,可根据具体情况进行适当优化。
Burst情况:该总线Burst分析图如图3所示。
图3为该总线的报文发送情况甘特图。由图3可知,只有GW_BCM控制器发送的报文存在多帧报文连续发送的情况。对图3进行数据统计,该总线Burst数据情况如图4所示。
据图4可知,总线Burst最长约为5.2ms,有20帧左右报文连续发送。这一现象代表存在连续传输的现象发生,且持续时间接近50%的设计周期,因此应该对该任务进行优化。
综上,依照本文提出的总线网络品质评价体系,首先应当对GW_BCM这一控制器进行具体分析检测,该控制器发送的任务存在占用高负载率、报文连续发送的情况,会严重限制后续总线的可扩展性。对于负载率和可调度性来说,该总线基本符合要求,但还有可优化提升的空间。
图3 报文Burst情况分析图
图4 Burst数据情况图
4 结束语
本文以总线网络品质评估为研究对象,在多种网络指标研究的基础上提出对不同CAN总线网络品质的通用评估方法。面对越来越复杂的总线网络,此方法可以有效地对网络品质进行评价并针对具体问题给予解决措施。