作者简介:陈筠翰(1983-),男,博士研究生.研究方向:智能控制与嵌入式系统.E-mail:cyh10@mails.jlu.edu.cn
在控制器局域网(CAN)消息集固定优先级非抢占式调度(FPNS)的研究中,现有的CAN报文的最差响应时间(WCRT)分析方法会对某些消息集的可调度性做出错误判断。为此,本文根据CAN消息FPNS的报文忙期的定义重新分析了报文首次与其余各次进入相关节点的发送队列的情况,修正了其响应时间的最差假设。根据该最差假设所计算的WCRT修正了传统的WCRT分析方法的过优估计,消除了修正的WCRT分析方法引入的过差估计。
In the Fixed Priority Non-preemptive Scheduling (FPNS) research for Controller Area Network (CAN) message set, the existing Worst Case Response Time (WCRT) analysis may draw wrong conclusions to the schedulability of certain message sets. To overcome this problem, based on the message busy period concept of PFNS for CAN message set, this paper reanalyzes the scenarios that message enters the transmit queue of node for the first time and the subsequent times, and revises the worst case response time. The WCRT calculated from this worst case is employed to revise the optimistic result obtained by tradition WCRT analysis, and eliminate the pessimistic factor introduced in the modified WCRT analysis.
作为工业控制领域内具有国际标准的现场总线技术,控制器局域网(Controller area network,CAN)可在电控单元间建立起简单、有效、可靠的通信网络[ 1],因此被广泛地用于实现车辆的动力控制系统、底盘控制与安全系统、车身电子系统等硬实时系统的通信,且至今仍发挥着不可替代的作用[ 2, 3, 4]。
在被证明足以支持硬实时系统的设计后[ 5],用于单处理器系统任务集固定优先级抢占式调度(Fixed priority preemptive scheduling,FPPS)研究的最差响应时间(Worst case response time,WCRT)分析方法被引入到对CAN消息集FPNS的研究中[ 6, 7]。然而,最近的相关研究表明,由于对CAN报文响应时间的最差假设的错误分析,传统的WCRT分析方法会对某些不可调度的消息集的可调度性做出错误判断[ 3, 8]。该研究虽然指出并修正了此前的错误分析以消除误判情况,但其在响应时间的最差假设的分析中引入了过差估计。为此,本文进一步探讨了CAN报文响应时间的最差假设,以期消除误判情况与过差估计。
CAN消息集包含了CAN网络中的各节点间所需交互的全部消息类型。为充分利用总线的传输带宽,实际应用通常根据各消息的触发周期、截止期、优先级与长度,将多种类型的消息通过同一报文传输,并统筹确定该报文的触发周期、截止期、优先级和数据域长度。对于随机触发的消息,可以其最小触发间隔作为触发周期。为简化讨论,以下认为各消息分别通过触发周期、截止期、优先级与其一致的报文传输,消息的长度即为该报文数据域的长度。CAN报文的标准数据帧格式如图1所示。
CAN协议的物理层定义了在通信的过程中总线的每个bit处均存在电平信号,当总线空闲时,其处于低电平的隐性状态;当总线传输报文时,其分别以高电平的显性状态与低电平的隐性状态表示互补的逻辑值“0”与“1”[ 1]。
基于物理层的实现,CAN协议的数据链路层通过载波监听多路访问/冲突分解(Carrier sense multiple access/collision resolution,CSMA/CR)机制实现总线异步、多主、广播的串行数据通信[ 3, 7]。报文在被触发后,将进入节点发送缓冲区中的发送队列内等待被发送。在确认总线空闲后,发送队列为非空的节点均可开始发送位于其发送队列首部的报文。在多个节点同时开始发送报文的过程中,总线通过各报文独享的标识符逐bit仲裁其优先级。根据物理层的定义,逻辑值“0”将优先于逻辑值“1”被传输,因此标识符数值越小的报文具有越高优先级。最终,仅有优先级最高的报文可完成传输,其余各报文的发送则在相关节点确定总线正在进行优先级更高的报文的传输后停止。节点无法在总线传输报文期间开始发送报文。
若各报文的优先级固定,而各节点的发送队列也均以高优先级优先作为服务规则,则CAN的访问方式完全符合FPNS的特征。此时,可认为各节点的发送队列共同构成了CAN报文的全局发送队列。在确认总线空闲后,非空的全局发送队列中优先级最高的报文将首先被发送。此外,由于硬实时系统对于通信时效性的严格要求,CAN报文的截止期应小于等于其触发周期,以下的讨论均以此为前提。
WCRT分析方法源自单处理器系统任务集FPPS的研究,旨在通过分析任务响应时间的最差假设以计算任务的WCRT。若任务的WCRT小于其截止期,则判定该任务可调度,否则判定该任务不可调度。若任务集中所有的任务均可调度,则判定该任务集可调度,否则判定该任务集不可调度[ 8]。
根据CAN消息集传统的WCRT分析方法[ 6, 7],若不考虑传输错误造成的延时,报文 i的WCRT可通过如下公式计算:
式中: Ji为报文 i从被触发开始到其进入相关节点发送队列为止可能的最长排队抖动; MCi为报文 i在插入最多的填充bit后可能的最长传输时间; ωi为报文 i从进入相关节点的发送队列开始到其开始传输为止可能的最长排队延时。
Ji通常由相关硬件的性能决定,为简化讨论,以下认为 Ji=0。 MCi可通过如下公式计算:
MCi=( g+8 L+10 +
式中: L为报文 i的数据域长度; g为除数据域外bit填充机制在CAN报文内作用范围的长度,当采用标准数据帧格式通信时, g=34,当采用扩展数据帧格式通信时, g=54。
ωi应满足如下关系:
式中: MBi为报文 i在进入相关节点的发送队列后,由于无法抢占优先级低于 i的报文的传输而可能经历的最长阻塞延时; lp( i)为所有优先级低于 i的报文所组成的集合;求和项为报文 i在进入相关节点的发送队列后,由于优先级高于 i的报文的优先传输而可能经历的最长干扰延时; hp( i)为所有优先级高于 i的报文所组成的集合; k为其中任意报文;3 τbit为每帧报文传输完毕后总线连续3 bit的间歇所需的时间。
虽然 ωi同时存在于等式的两端,但由于等式右端为 ωi的单调非减函数形式。因此,满足等式的 ωi可通过如下的递归关系获得:
其终止条件为:
对于如表1所示的消息集,当总线的传输带宽为125 kbit/s并采用标准数据帧格式通信时,各消息所对应的报文的最长传输时间为 MC1 =MC2 =MC3=1 ms。根据CAN消息集传统的WCRT分析方法,各报文的WCRT分别为: R1=2 ms, R2=3 ms, R3=3 ms,均小于其截止期。
在如图2所示的情况中, m3所对应的报文在第二次被触发后所经历的响应时间为3.5 ms,大于其截止期。因此,该消息集实际不可调度。
根据CAN消息集修正的WCRT分析方法[ 3],若不考虑传输错误造成的延时,式(3)所定义的 MBi的取值应变更为:
式中: lep( i)为全体优先级不高于 i的报文所组成的集合。
对于如表2所示的消息集,当总线的传输带宽为125 kbits/s并采用标准数据帧格式通信时,各消息所对应的报文的最长传输时间分别为 MC4=1 ms, MC5 =MC6=0.6 ms。根据CAN消息修正的WCRT分析方法,各报文的WCRT分别为: R4=2 ms,大于其截止期, R5=1.6 ms, R6=2.8 ms,小于其截止期。
m4所对应的报文作为优先级最高的报文,其在被触发后不会经历干扰延时,可能经历的最大阻塞延时为0.6 ms。因此,该消息集实际是可调度的。
CAN消息集传统的WCRT分析方法未能正确分析报文响应时间的最差假设,其原因在于该分析方法沿用了单处理器系统任务集FPPS中任务的执行时序,忽略了CAN消息集FPNS中报文不同的传输时序。
在单处理器任务集的FPPS中,任务 i在进入任务的可执行队列后不会因无法抢占优先级低于 i的任务的执行而经历阻塞延时。任务 i从进入任务的可执行队列开始到其执行完毕为止的时段被定义为 i级忙期[ 5, 9],以下称为 i级任务忙期。其具有以下特征:
(1)在区间[ ts, te)内,优先级不低于 i的任务持续执行,而优先级低于 i的任务则无法执行。
(2)自其起始时刻 ts的前一时刻起,到其终止时刻 te为止,任务的可执行队列中不存在优先级不低于 i的任务等待被执行。
在 i级任务忙期内,任务 i的优先级最低,若不考虑排队抖动,在其执行期间进入任务的可执行队列的优先级高于 i的任务均可抢占执行。因此, i级任务忙期必然在任务 i执行完毕的时刻终止。若任务的截止期小于其周期,则当任务集可调度时,任务 i在每个 i级任务忙期内仅能进入任务的可执行队列一次,其可能在与全部优先级高于 i的任务同时进入任务的可执行队列时经历最长的干扰延时[ 10, 11]。根据 i级任务忙期的定义,该情况只能在 ts时刻发生。从而任务 i响应时间最差假设的可能存在情况是唯一确定的。
在CAN消息集的FPNS中,报文 i在进入相关节点的发送队列后可能因无法抢占优先级低于其报文的传输而经历阻塞延时。报文 i从进入相关节点的发送队列开始到传输完毕为止的时段被定义为 i级忙期[ 3],以下称为 i级报文忙期。其具有以下特征:
(1)在区间[ ts, te)内,优先级不低于 i的报文连续传输,优先级低于 i的报文仅能完成其此前开始但至 ts时刻为止仍未完成的传输。
(2)在其起始时刻 ts,优先级不低于 i的报文开始进入各相关节点的发送队列。
(3)自其起始时刻 ts的前一时刻起,到终止时刻 te为止,各相关节点的发送队列中不存优先级不低于 i的报文等待被传输。
在 i级报文忙期内,尽管报文 i的优先级最低,但在其传输期间进入各相关节点的发送队列的优先级高于 i的报文却无法抢占传输,这些报文需等到报文 i传输完毕后才能开始传输。因此, i级报文忙期未必在报文 i传输完毕的时刻终止[ 3]。当消息集可调度时,报文 i在每个 i级报文忙期内可能多次进入相关节点的发送队列。从而报文 i响应时间最差假设的可能存在情况未必是唯一确定的。报文 i每次进入相关节点的发送队列后,其响应时间的最差假设均可能成为报文 i的响应时间的最差假设。
CAN消息集传统的WCRT分析方法认为,当消息集可调度时,报文 i在每个 i级报文忙期内仅能进入相关节点的发送队列一次。因此,其分析忽略了报文 i其余各次进入相关节点的发送队列后响应时间的最差假设。
在 i级报文忙期内,报文 i在首次进入相关节点的发送队列后,可能因全部优先级高于 i的报文与其同时进入各相关节点的发送队列而经历最长的干扰延时[ 10, 11, 12]。根据 i级报文忙期的定义,该情况只能在 ts时刻发生。若报文 i在 ts时刻进入相关节点的发送队列,其还有可能因为优先级低于 i的报文中传输时间最长的报文此时开始传输而经历最长的阻塞延时。从而报文 i在首次进入相关节点的发送队列后响应时间的最差假设为:在优先级低于 i的报文中传输时间最长的报文开始传输时,报文 i与全部优先级高于 i的报文同时进入各相关节点的发送队列。这与CAN消息集传统的WCRT分析方法对报文响应时间的最差假设相一致[ 6, 7]。因此,仍可根据该方法计算相应的WCRT,记为
若报文 i在同一 i级报文忙期内多次进入相关节点的发送队列,将在报文 i的第 n次传输开始后优先级高于 i的报文首次进入相关节点的发送队列的时刻记为 tn;将报文 i的第 n+1次传输开始的时刻记为 tn+1。根据 i级报文忙期的定义,在区间[ tn, tn+1)内存在一个单独的或多个连续的 i+1级报文忙期。
定理 在CAN消息集的FPNS中,若在报文 i开始传输时,全部优先级高于 i的报文同时进入各相关节点的发送队列,则区间[ tn, tn+1)可持续最长的时间。
证明 区间[ tn, tn+1)由优先级高于 i的报文的连续传输与此前报文 i的第 n次传输可能在优先级高于 i的报文首次进入其相关节点的发送队列后完成的部分组成。若可持续最长的时间,其应满足如下条件:
(1)报文 i的第 n次传输在优先级高于 i的报文首次进入其相关节点的发送队列后完成的部分持续了最长的时间。
(2)至任意时刻为止,单位时间内存在最多的优先级高于 i的报文进入各相关节点的发送队列,以保证此后优先级高于 i的报文的连续传输可持续最长的时间。
显然,当且仅当全部优先级高于 i的报文同时进入各相关节点的发送队列时,至此后的任意时刻为止,单位时间内存在最多的优先级高于 i的报文进入各相关节点的发送队列。而当且仅当优先级高于 i的报文在报文 i的第 n次传输开始时进入其相关节点的发送队列时,报文 i的第 n次传输在此后完成的部分可持续最长的时间。
区间[ tn, tn+1)可持续的最长时间 τi+1可通过如下递归关系获得:
当消息集可调度时,报文 i在每个区间[ tn, tn+1)内仅能进入相关节点的发送队列一次,且此后不会因优先级不高于 i的报文的传输而经历阻塞延时。从而,报文 i在同一 i级报文忙期内其余各次进入相关节点的发送队列后响应时间最差假设为:在报文 i的前一次传输开始时,全部优先级高于 i的报文同时进入各相关节点的发送队列,而报文 i在其前一次传输完毕的下一时刻再次进入相关节点的发送队列。此时,报文 i最长的排队延时为:
相应的WCRT则仍可通过式(1)计算:
因此,式(6)所描述的递归关系的终止条件为:
CAN消息集修正的WCRT分析方法将 τi+1作为报文 i可能的最长排队延时。根据以上分析,当且仅当报文 i在其前一次传输开始时与全部优先级高于 i的报文同时进入各相关节点的发送队列,该情况才可能发生。此时,消息集不可调度,这与在应用WCRT分析方法时消息集可调度性未知的前提相矛盾。因此,该分析引入了过差估计。
汽车工程师协会(Society of automotive engineers,SAE)发布的简化基准测试消息集包含了车辆的动力控制系统、底盘控制与安全系统、车身电子系统中的53种类型的周期性或非周期性的消息[ 13]。当总线的传输带宽为125 kbit/s,负载率约为85%时,CAN可通过17种周期性的报文实现该消息集中全部消息的交互。根据对报文响应时间的最差假设的不同分析所计算的各报文的WCRT如表3所示。
表3中,
在针对该消息集可调度性的分析中,虽然CAN消息集传统的WCRT分析方法忽略了报文可能因优先级高于其报文的传输而经历阻塞延时,但仅影响优先级最低的报文的WCRT的最终结果:
本文所做的研究消除了CAN消息集传统的WCRT分析方法的误判情况。分析并消除了CAN消息集修正的WCRT分析方法所引入的过差估计,从而可在CAN消息集的可调度性分析中节省相应的时间与计算开销。