其中 Jm——信息Sm的扰动时间,即信息被排队的最早和最晚时间差;
Im——信息Sm的等待延迟时间;
Cm——信息Sm的传送时间。
要保障CAN总线信息传输的实时性,一条进入传输队列的信息必须在下一条信息到来之前发送出,如果信息未及时传送出去,会被下一条信息所覆盖。因此,信息的传送必须满足
(2)
其中Dm为信息的截止期,表示信息从产生到被正确接收的最大允许时间。
如果每一条信息都满足了此条件,我们就说网络是可调度的,网络调度算法选择的目的是保证网络的可调度性。
2.2 基本调度算法
CAN总线利用数据帧中的标识符表示信息的来源和优先级。标识符既可以静态设定,也可以动态设定,即利用标识符可以实现静态或者动态的信息优先级。在满足可调度性的实时调度算法中,目前常用的是优先级驱动的实时调度算法,它可分为静态优先级调度算法和动态优先级调度算法。在静态优先级调度算法中,任务调度的优先级在调度过程中固定不变,如固定优先级调度算法(FP)和单调速率算法(RM)。RM根据信息的周期分配信息的优先级,信息的周期越小,则优先级越高。在动态优先级调度算法中,任务调度的优先级随各控制任务的执行时间或截止时间动态变化,任务优先级不仅仅与任务自身有关系,而且与系统中其他任务有关,如最早时间限优先算法(EDF)和截止期单调算法(DM)。DM根据信息的截止期分配信息的优先级,信息的截止期越小,则优先级越高。
2.3 改进的混合调度算法的提出
根据动态优先级调度具有高利用率的特性,文献[6]提出按照任务的绝对截止期为信息分配标识号,并设计出一种混合调度算法(MTS)。MTS算法是一种介于静态优先级调度算法和动态优先级调度算法之间的折中算法。MTS算法的核心思想是将信息的绝对截止时间编入标识符中,充分利用信息的标识符反映信息截止期的变化,对高优先级的信息使用EDF算法,对低优先级的信息使用FP算法。由于在CAN总线中每个信息必须有唯一的标识号,MTS把标识号分成优先级域、截止期域、节点域三个域,使标识号既反映截止期的变化,又能保证唯一性。在一个典型的系统中,由于截止期随着时钟的改变而改变,因此所有信息截止期域的内容应该及时更新,而且还要与时钟同步。为了解决上述问题,MTS算法采用分布式时钟同步算法,并把时间分为几个区间,根据截止期所在的时间区间进行截止期域内容的编码。