众所周知,CAN总线利用数据帧中的标识符表示信息的来源和优先级。标识符既可以被静态设定,也可以动态设定。现在常用的主要是以优先级作为参考的调度算法,在满足可调度性的实时调度算法中,它可分为静态优先级调度算法和动态优先级调度算法。
静态调度算法是一种可预测的方法,建立在确定性系统模型基础上,它要求对任务集和任务约束有确定的了解,如任务的截止期限、执行时间等。该算法的特点是在系统运行过程中,无法对调度分配进行修正,任务的优先级在调度过程中固定不变。静态调度中最常用的是Rate Monotonic(RM)算法,即单速率调度算法。
RM调度算法根据总线给出的任务周期来分配优先级,每种节点可设置不同的任务周期,任务周期越短,其优先级越高。对于N个独立的周期性任务的可调度性分析有以下定理:
其中,ci为信息的执行时间,hi为信息的周期。当N=1时,只有一个信息,就不需要调度,只要ci<hi,不等式能得到满足;当N=2时,利用率U的上界为0.8284,当N->∞时,利用率U的上界收敛到In2=0.693。由此可知,当节点任务数越多,对网络的利用率便越低。
RM调度算法在网络控制系统中,对采样速率越高的对象,其处理优先级越高,网络中信息的传输调度是不可抢优的。
综上所述,静态调度算法有如下优点:
1)简单性;
2)可管理性;
3)可预测性;
4)运行开销低。
但是,由于静态调度算法具有灵活性差的特点,虽然对网络资源有可调度性,可是网络利用率并不高,因此只适用于系统时间特性固定不变的系统。如果网络中的某个节点传输信息的时间特性发生了变化,就需要对整个调度方案进行重新设计和构建。
|