CAN FD总线报文响应时间研究

2020-07-14 01:36王璐杰张凤登刘鲁平吴俊鹏
软件导刊 2020年1期
关键词:CAN总线

王璐杰 张凤登 刘鲁平 吴俊鹏

摘 要:针对CAN FD总线相较于CAN总线有更高的传输速率,但不能精确地限制给定报文的最坏情况响应时间问题,从CAN FD报文格式出发,通过分析影响报文最坏响应时间的阻塞因数,建立CAN FD报文时间响应模型并利用可调度性条件限制报文最坏情况响应时间。在模型中采用固定优先级的调度方案,同时提出利用报文截止时间分析报文及系统的可调度性。实验使用TrueTime工具箱进行仿真,在波特率为IMbps和SMbps时,各节点报文响应迅速,最坏响应时间的值远远小于各报文截止期。同125kbps和500kbps传输速率下的报文最坏响应时间相比,lMbps和SMbps传输速率下的报文响应较为迅速。实验结果能够充分体现出CAN FD总线在较高的有效传输负载和高传输速率下的报文传输优势。

关键词:CAN总线;CAN FD;报文响应时间;报文传输

DOI: 10. 11907/rjdk.192554

开放科学(资源服务)标识码(OSID):

中图分类号:TP393

文献标识码:A

文章编号:1672-7800( 2020)001-0256-06

0 引言

CAN( Controller Area Network)即控制器局域网,是德国Bosch公司20世纪80年代初为解决汽车中大量控制与测试仪器之间的数据交换而开发的一种串行数据通讯协议…,是国际上应用最广泛的开放式现场总线之一。作为一种技术先进、可靠性高、功能完善、成本合理的远程网络通信控制方式,CAN总线已广泛应用于自动化控制系统中。然而,随着系统复杂性和通信量的增加,传统的CAN总线由于带宽的限制已经难以满足市场应用需求。为了进一步提高传输速率,CAN总线的升级版-CAN FD( CAN with Flexible Data-Rate)应运而生。因此在2011年,Bosch发布了CAN的替代总线CAN FD[2]。CAN FD继承了CAN总线的绝大多数特性,即没有改变物理层、采用双线串行通讯协议、基于非破坏性仲裁技术、有可靠的错误处理和检测机制等;并且,CAN FD弥补了CAN总线在总线带宽和数据长度方面的不足。

文献[3]分析了影响CAN报文响应时间的阻塞因数,即低优先级报文的阻塞和高优先级报文的延迟。但未给出计算报文最坏传输时间Sm的一般公式;文献[4]分析了计算CAN标准帧和扩展帧最坏传输时间Sm的一般性公式,但没有考虑报文释放抖动;文献[5]通过分析CAN FD报文帧格式、报文传输的阻塞因数,给出计算报文最坏传输的一般性公式,但是未考虑CAN FD报文在波特率切换时对传输时间的影响,也未在不同傳输速度下进行对比实验。本文给出了计算报文最坏传输时间Sm的一般公式,在考虑到CAN FD报文在波特率切换时对传输时间影响的前提下,展开了不同传输速率的实验并进行了实验结果对比。

1 CAN FD总线变化

相对于CAN总线,CAN FD总线主要有如下变化:

(1)新数据场长度。数据场由在数据帧中传输的数据组成,它在CAN格式帧中包含0-8个字节,CAN FD对数据场的长度作了扩充,CAN FD格式帧中数据场包含0-64个字节。

(2)两种比特率。CAN FD采用了两种比特率,从控制场的BRS位到CRC场的界定符为可变速率,当到达CRC界定符的(第一位)采样点时,它从数据段速率切换回仲裁段速率[2.6-7]。两种速率各有一套位时间定义寄存器,它们不仅采用了不同的位时间单位(TQ),而且位时间各段的分配比例也可以不同。

(3)新添加位。在CAN FD格式帧中新增加了3个控制位。①EDL:扩展数据长度位,它只存在于CAN FD格式帧中,可用来区分CAN格式帧和CAN FD格式帧,该位为隐性位时表示CAN FD报文,该位为显性位时表示CAN报文;②BRS:位速率开关位,该位决定位速率是否在CAN FD格式帧内切换。如果该位为隐形位,则比特率从仲裁阶段的标称比特率切换到数据阶段预配置的替代比特率,如果它为显性位,则不切换比特率;③ESI:错误状态指示位,由错误主动节点标志显性,由错误被动节点标志隐性。

(4)新CRC算法。CAN FD节点对不同的格式帧使用不同的CRC生成多项式,CRC_15多项式用于CAN格式的所有帧,CRC_17多项式用于CAN FD格式的帧,数据字段为16个字节,CRC_21多项式用于数据字段大于16字节的CAN FD格式帧。①CRC_15=X15+X'4+X10+X8+X7+X4+X3+1;②C RC_17=X17+X16+X'4+X13+X11+X6+X4+X3+X2+X+1;③CRC_21=X21+X20+X13+X11+X7+X4+X3+1.

(5)新DLC编码。数据场中的字节数由DLC指示,其编码在CAN和CAN FD中不同。1-8字节的数据长度的DLC编码相同,在CAN FD中有更长的数据场,因此有特有的9-64字节数据长度的DLC编码。DLC编码方式如表1所示。

(6)远程数据请求。CAN FD格式中没有远程帧,但每个CAN FD节点能够以标准CAN格式发送远程帧。

2 CAN FD模型分析

2.1 报文收发规则

每当总线空闲时,任何节点均可以发送报文。如果两个或多个节点同时开始发送报文,则总线通过使用载波监听多路访问( CSMAICA)解决访问冲突。如果同时发送具有相同标示符的数据帧和远程帧,则数据帧优先于远程帧。在仲裁期间,每个节点将自己发送的位电平与总线上监视的电平进行比较。如果这些电平相等,则单元可以继续发送。当发送隐性电平(逻辑‘1)并监视显性电平(逻辑‘0)时,该节点仲裁失败退出仲裁。

2.1. 1报文有效接收

ACK场包含ACK间隙和ACK界定符。在ACK字段中,发送器发送隐性位。已正确接收到有效报文帧的接收器在ACK间隙时发送一个显性位重写发送器的隐性位以报告这一点。在CAN FD格式中,所有节点接受重叠ACK位的两位显性位作为有效ACK,以补偿接收器之间的相移。

报文被认为有效的时间点对于报文发送器和接收器而言是不同的。如果在“帧结束”结束前没有错误,则该报文对发送器有效。根据优先级报文会自动重传,在报文被破坏之后。为了能够与其它报文竞争总线访问,只要总线空闲,重传就必须开始。重传尝试的次数可以通过配置被限制到特定值。默认情况下,重传次数不受限制。如果在帧结束的最后一个位之前不出现错误,则报文对接收器是有效的。

2.1.2 位流编码

CAN FD格式帧中[8]的比特流根据不归零(NRZ)方法进行编码。无论何时发送器在要发送的比特流中检测到5个连续比特的相同值,它自动将极性相反的比特(称为填充比特)插入到实际发送的比特流中。接收器将识别相同值5个连续位的序列,并丢弃填充位。在CAN FD格式帧中,采用新的CRC填充方法[9]。如图1所示,填充位应当被插入在固定位置。即使前一个字段的最后一个位不满足CAN FD填充条件,在CRC序列的第一个位之前也应该有固定的填充位。在CRC序列的每4个比特位之后固定插入一个极性相反的比特位。接收器应从CRC校验的比特流中丢弃固定填充比特,如果固定填充比特具有与其前一比特相同的值,则它将检测填充错误。

2.2 调度理论

目前,常用的可调度性分析方法有两种[3]:

(1)基于CPU利用率的分析方法。这种方法首先算出处理器的利用率,继而使用一个测试条件(与该利用率相关)去鉴定系统的可调度性。

(2)基于最大响应时间的分析方法。分析过程被该办法分成两个阶段:分析和判定。分析阶段分析每个任务的最大响应时间,判定阶段将分析阶段得到的任务最大响应时间与该任务的截止时间相比较。若每个任务的最大响应时间全小于或等于其截止期,那么该系统可调度。

CAN FD总线上的报文调度类似于任务的固定优先级调度。对于最高优先级报文的最坏情况响应时间,能够很容易确定并计算,而对于较低优先级的报文,不能如此容易地获得最坏情况响应时间,由此产生的一般性问题是,在CAN FD上只有最高优先级报文才能得到保证。

2.2.1 任务模型

为了保证任务遵守时间约束,实时系统执行必须了解任务的定时特性。

(1)到达规律。随着时间的推移,任务(Ti)激活请求的重复情况,一般分成4类(见图2)。①周期性到达:任务激活请求是周期性的,设周期为pi;②零星到达:任务激活请求连续两次到达之间存在一个最短时间间隔,该最短到达间隔大于周期pi;③非周期性到达:任务到达不能以任何规律表征,可在任何时刻到达,零星任务是非周期性任务的一种特殊情况;④到达一个滑动窗口:某个任务到达一个滑动时间窗口Wi的次数最多为ni次。洛朗·乔治指出,一个任务ni次到达一个窗口Wi等同于周期为Wi的ni个独立的零星任务,应该使用零星模型研究该模型。

(2)激活时刻。任务激活时刻是指任务被激活的时间点,当把一个特定的激活方案强加给任务时,任务被认为是具体的,如果没有对任务的激活时刻作出假设,那么任务被认为是不具体的。例如,对于周期性到达规律,研究一个具体任务模型意味着定义任务的第一次激活时刻。

(3)执行时间。它是指任务本身在处理器内的执行时间。一般情况下,最坏情况执行时间(Ci)被作为量化参数,在验证是否遵守与任务相关的时间约束时,将它作为所用方法的一个重要输入参数。

(4)响应时间。它是任务的激活请求时刻和任务执行结束时刻之间的时间间隔,其中,最坏情况响应时间(Ri)表示任务的最长响应时间。该参数不仅与所用调度算法有关,而且与更高优先级任务引入的时间延迟有关。任何情况下,Ri≥Ci始终成立。

2.2.2 CAN FD接口

如图3所示,主机处理器正在将一个报文排列到用于标识符“1”的插槽中;标识符“4”的插槽已经被另一个报文占用[10]。

这些插槽通常作为在处理器之间共享的双端口存储器实现。当总线空闲时,接口处理器将尝试发送报文“1”。对于给定标识符,不存在报文队列:如果在报文“1”正在被发送时,另一个具有相同标识符[5]的报文被排队,则该时隙中的报文被覆盖和破坏。其中隐含了周期性排队报文的截止时间:报文必须在后续报文排队之前发送。

3 CAN FD报文响应时间模型分析

基于上述分析,本文對CAN FD报文时间响应模型进行分析。CAN FD主要是基于固定优先级的总线[11-13],分配了唯一标识符的CAN FD报文。假设给定报文周期性地排队(即每隔一段时间,报文源使具有相同大小和相同标识符的报文排入队列)。给定报文在一个站点上的排队窗口内排队,后续排队窗口之间具有最小的时间间隔(报文不必是严格周期性的:报文可以是零星的,但报文排队之间必须有最短时间),如图4所示。

在实时系统调度中如果消息响应时间小于消息截止时间,则该消息被认为是可调度的。为了限制CAN FD报文的响应时间,本文利用可调度性条件以限制CAN FD报文最坏情况响应时间。响应模型由{Jm,Sm,Tm,Dm,Qm)5个时间参数决定,如图5所示。

假设给定报文m的周期为Tm,报文m列队的释放抖动时间为Jm,即报文到达和被释放之间的最坏情况延迟。用bm表示报文中的字节数,Sm表示在总线上传输报文的最坏情况传输时间[15],由于CAN FD总线上一个报文按照每5个相同极性的比特位之后要添加一个极性相反的比特位,一个报文所能添加的最多填充位即为最坏情况,传输这样一个报文的时间就是最坏传输时间,因此.Sm是bm的函数。Dm为报文m的截止时间,给定报文m的最坏情况响应时间用Rm表示。本文采用WCRT(最坏情况响应时间)分析网络中的延迟时间,主要考虑两种延迟:排队延迟和传输延迟。

Rm= Qm+ Sm

(1)

其中,Qm是一个报文的阻塞时间,即排队延迟时间。Qm本身由两个时间组成:低优先级报文带来的延迟Bm[16]以及报文m最终被传输之前所有较高优先级报文可能用于排队和占用总线的最长时间Hm。

当一个报文被认为是可以调度的,需要满足截止时间要求,即:

Rm≤Dm

(2)

对于最坏响应时间,上文提到需要防止报文被覆盖,已排队的报文必须在其下一次排队之前被发送,因此要满足下列约束:

由式(1)和式(2)可以得到可调度报文的响应时间(用最坏情况响应时间Rm表示)。

为了找出任务最坏情况响应时间,先假设所有报文在到达时都被释放[17],且报文不会暂停。

式(5)中的hp(m)表示比报文m优先级高的任务集合,等式两边都出现了Rm通过迭代[18]方法可得式(6)。

其中,Rm =Sm。当满足式(2)时,一个报文被认为是可调度的,因此如果序列收敛大于截止时间的最坏响应时间值是无效的。

但是,实际情况中,报文排队时会发生抖动[10]。针对任务调度,CAN FD报文响应模型的分析中引入释放抖动[19]和阻塞时间。

其中,lp(m)是所有优先级低于m的报文集合。

针对最坏情况传输时间,需要考虑最坏情况的位填充场景。位填充的方法对帧起始、仲裁场、控制场、数据场和CRC序列进行编码。首先是BRS位之前的位填充情况,EDL、r0和BRS位状态分别为‘1,‘0,‘1(CAN FD帧在BRS位进行波特率切换,否则为CAN帧),因此有13个比特位受位填充规则约束。最坏情况的比特位排列按照1111100001111…,此时有3个填充位。其次是BRS位到CRC场之间的位填充,BRS为1并且ESI也可以作为1发送,需要在最坏情况的比特序列中考虑这两个附加比特。因此,BRS位到CRC场之间位填充的最大位数是L6+ 8p/4]=1+2p。最终可以得出具有p个字节的CAN FD标准帧的最坏情况传输时间Sm为:

对于CAN FD扩展帧,BRS位之前共有36个比特位,因此可以推出CAN FD扩展帧的最坏传输时间为:

4 CAN FD报文响应时间模型仿真

4.1 仿真模型

CAN FD总线网络由多个CAN FD节点组成(见图6),若干个CAN FD节点通过CAN FD总线收发器连接在一个网络中,通过相互的通讯和协作完成控制任务[1]。

在CAN FD总线报文响应时间仿真系统中(见图7),用仿真的网络节点取代真实网络节点。仿真实验所采用的报文如表2所示。

4.2 TrueTime仿真结果分析

在t=0时刻,同时释放表2中的所有报文,通过仿真系统可以得到报文在总线上不同的波特率,如125kbps、500kbps、IMbps、5Mbps条件下的响应时间,仿真结果如表3和图8所示。

在波特率为500kbps时,各节点报文响应较为迅速,虽然各节点间存在抖动,例如报文6的最坏响应时间是2.3ms,报文7的最坏响应时间是2.037ms。但是从图8可以看出,报文6和报文7的最坏响应时间小于截止期,因此报文6和报文7满足可调度性条件。

在波特率为125kbps时,虽然出现了低优先级报文抢先发送情况,但是从图8可以看出被低优先级报文抢先报文的最坏响应时间小于截止期。报文14的最坏响应时间为13.93ms,虽然与截止期相差很小,但小于截止期。

在波特率为lMbps和SMbps时,各节点报文响应迅速,最坏响应时间的值远远小于各报文截止期。同125kb-ps和500kbps传输速率下的报文最坏响应时间相比较,可以看出lMbps和SMbps传输速率下的报文响应较为迅速,体现了CAN FD总线在较高的有效传输负载和高传输速率下传输报文的优势。

5 结语

本文在介绍CAN FD协议内容的基础上,详细描述了CAN FD协议的报文收发准则;简述了处理器调度理论,借鉴调度理论对CAN FD报文最坏响应时间进行了模型建立;在模型基础上对影响CAN FD报文最坏响应时间的因数进行了详细分析。本文采用固定优先级算法分配报文ID,在不同波特率下对报文最坏情况响应时间进行实验验证,并得出了具体结论:在波特率为IMbps和SMbps时,各节点报文响应迅速,最坏响应时间的值远远小于各报文截止期。同125kbps和500kbps传输速率下的报文最坏响应时间相比较,可以得出在IMbps和SMbps传输速率下的报文响应较为迅速。由于CAN FD数据段波特率远高于CAN,可以大大提高总线带宽利用率,降低总线冲突概率。因此,CAN FD总线更加适合汽车行业对高速总线的需求。但是本文未考虑报文在传输出错情况下的最坏响应时间,也未建立真实的硬件节点对理论进行验证,后续研究中可以搭建真实硬件系统对理论进行验证。

参考文献:

[1]张凤登.现场总线技术与应用[M].北京:科学出版社,2008.

[2]BOSCH. CAN with flexihle data-rate specification versionl.0[Z]. 2012.

[4]DAVIS R I.Controller Area Network( CAN) schedulability analysis:refuted, revisited and revised[J]. Real-Time Svstems, 2007, 35(3):239-272.

[3]张凤登.实时传输网络FlexRay原理与范例[M].北京:电子工業出版社,2017:44-49.

[5]COKHAN URUL.A frame packing method to improve the schedulabil-itv on CAN and CAN FD[ D]. Ankara: Middle East Technical Universi-ty.2015.

[6] 郭创建,王琳煜.基于MCP2517FD的CAN FD通信实现[J].现代信息科技,2019, 3(16):67-69.

[7]ZHENG Z C, NAN J R.The advantages and application prospects ofCAN FD bus technology for vehicle network communication [C]. TheInternational Conference on Energy , Ecology and Environment , 2018.

[8] UNMESH, BORDOLOI, SOHEIL. The frame packing problem forCAN-FD[ C ] . 2014 IEEE Real-Time Systems Symposium . 2014.

[9]杨福宇. CAN总线的安全性研究进展 [J] .单片机与嵌A式系应用 .2015( 6) : 15-18.

[10]TINDELL K , BURNS , WELLINCS. Calculating controller area net-work ( CAN) message response times [J] . Control Engineering Prac-tice,1995( 8) :1163-1169.

[11]AUDSLEY, BURNS, RICHARDSON. et al. Applying new schedulingtheory to static priority pre-emptive sche-duling [J]. Software Engi-neering Journal, 1993 ( 9 ) : 284-292.

[12]TINDELL K. CLARK. Holistic schedulability analysis for distributedhard real-time systems [ J] . Micrprocessors and Microprogramming ,1994.40( 2-3) : 117-134.

[13]TINDELL K, BURNS, WELLINGS. An extendible approach for ana-lysing fixed priority hard real-time tasks [J]. Real-Time Systems,1994.6( 2) : 133-151.

[14]TINDELL K, A BURNS, WELLINGS A J. Analysis of hard real-timecommunications[ J] . Real-Time Systems , 1995 . 9( 2) : 147-171.

[15] BURNS A. NICHOLSON M. TINDELL K. et al. Allocating andscheduling hard real-time tasks on a point-to-point distributed sys-tem [C ]. Workshop on Parallel and Dist. Real-Time System, 1993 :1-22.

[16]TINDELL K, HANSSON H , WELLINCS A. Analysing real-time com-munications : controller area network ( CAN ) [J] . Real-time SystemsSymposium , 2013 : 259-263.

[17]JOSEPH M, PANDYA P. Finding response times in a real-time sys-tem[J]. BCS Computer Journal. 1986 . 29( 5) : 390-395.

[18] TINDELL K. Using offset information to analyse static prioritypre-emptively scheduled task sets[Z ]. 1992.

[19] BURNS , WELLINCS. Mode changes in priority pre-emptivelyscheduled systems [J]. Real-Time Systems Symposium, 1992 (1) :100-109.

[20]SHA L, LEHOCZKY J P, RAJKUMAR R. Priority inheritance proto-cols: an approach to real-time synchronization [J]. IEEE Trans. onComputers , 1990, 39( 9) : 1175-1185.

(責任编辑 :孙娟 )

基金项目:上海市自然科学基金项目( 15ZR1429300)

作者简介:王璐杰(1994-),男,上海理工大学光电信息与计算机工程学院硕士研究生,研究方向为现场总线、汽车电子;张凤登(1963-),男,博士,上海理工大学光电信息与计算机工程学院教授,研究方向为现场总线、汽车电子;刘鲁平(1992-),女,上海理工大学光电信息与计算机工程学院硕士研究生,研究方向为汽车电子、嵌入式系统;吴俊鹏(1993-).男,上海理工大学光电信息与计算机工程学院硕士研究生,研究方向为现场总线、嵌入式系统。

猜你喜欢
CAN总线
基于嵌入式的汽车辅助制动系统研究