目前在CAN总线上消息的传输通常采用基于事件触发机制的固定优先级调度算法 (FPS) [1], 它有额外开销小和实现简单的优点。但是在最差条件下存在着传输不可预知、容错能力差、低优先级消息容易被阻塞、总线负荷不平均等不足。尤其是当系统迸发消息较多, 即在小时间间隔中出现较多的连续消息时, 某些低优先级的消息会由于高优先级消息长时间占用总线而被阻塞, 使得整个系统性能遭到破坏。因此, 提出了基于时间触发机制的固定优先级调度 (TT-FPS) 算法, 可有效地防止消息的阻塞, 使总线负荷均匀分布。

《1 TT-FPS算法》

1 TT-FPS算法

TT-FPS调度实质上是将时间触发机制引入CAN总线, 基于时分多路访问 (TDMA) , 将消息的传输分配在特定的时间窗口内完成。TT-FPS调度运行的前提条件是网络中各个节点达到一定精度的时钟同步, 在系统运行之前, 按照系统消息的截止期用基于表的静态调度算法 [2], 将各个消息分配到矩阵周期中的各个基本周期中 (见图1) , 每个消息按照截止期单调 (DM) 算法 [3] 分配消息的优先级。系统运行时, 以主节点发出的同步消息作为基本周期的起始, 被规划在同一基本周期内的消息同时发送, 并按CAN总线的自身仲裁机制传输。

《图1》

图1 TT-FPS消息传输结构图
Fig.1 Messages transfer construction of TT-FPS

图1 TT-FPS消息传输结构图 Fig.1 Messages transfer construction of TT-FPS  

 

为实现TT-FPS, 首先需要对消息的周期进行优化。由于TT-FPS中固定优先级调度算法选用的是DM, 从而消息的截止期可以小于消息周期, 即D<T。因此, 将所有消息的周期向下收缩不会影响实时性, 可以使各消息的周期成倍数关系, 为基于表的静态调度的实现带来了极大便利。TT-FPS将时间轴划分为由基本周期组成的矩阵周期, 矩阵周期是优化后所有消息周期的最小公倍数, 基本周期是优化后所有消息周期的最大公约数。

《2 TT-FPS算法可调度分析》

2 TT-FPS算法可调度分析

在TT-FPS中, 系统的总体性能分析分解到各个基本周期中进行, 各个基本周期中消息的可调度分析方法与固定优先级调度算法类似。

《2.1TT-FPS算法最糟糕响应时间》

2.1TT-FPS算法最糟糕响应时间

消息m的最糟糕响应时间Rm是指从该消息进入发送节点排队窗口到它被目的节点正确接收所用的最长时间。消息的最糟糕响应时间由消息的抖动时间Jm、排队延迟qm和传输延迟Cm构成, 即

Rm=Jm+qm+Cm(1)

在固定优先级调度算法中 qm, 包括正在占用总线的低优先级消息的阻塞时间Bm和高优先级消息抢占总线的等待延迟Im。对TT-FPS而言, 由于同步消息被节点接收后, 处在当前基本周期内的消息会同时发出并竞争总线, 这不仅不会出现固定优先级算法中由于随机发送而引起高优先级消息被低优先级消息所阻塞的问题, 而且每个基本周期内的消息只会被发送一次。于是得到

Bm=0Ιm=jhpb(m)(Cj+S)S=3τbit(2)

其中S为帧间隙时间, τbit为每一位的传输时间, 集合hpb (m) 只包含了基本周期内优先级高于m的消息。扩展帧格式的最糟糕传输时间为 [4]

Cm=(8Sm+67+[(54+8Sm)/4])τbit(3)

综合上述公式, 可以得到TT-FPS算法下消息m的最糟糕响应时间为

Rm=Jm+Ιm+Cm=Jm+jhpb(m)(Cj+S)+(8Sm+67+[(54+8Sm)/4])τbit

可见在TT-FPS算法下消息的最糟糕响应时间有了明显减少, 这是由于时间触发机制的引入使得消息的发送不再是一种随机性的行为, 系统的有序性大大增加, 使消息响应时间的不确定性大为减少。

《2.2总线使用率》

2.2总线使用率

在TT-FPS调度算法中, 由于对消息系统的消息模型按照基于表的静态调度算法进行过规划以及同步机制的引入, 其带宽利用率会得到提高。设矩阵周期由k个基本周期组成, 矩阵周期传输的消息总个数为n个, 则矩阵周期总的消息传输时间长度tΤR=kCs+m=1nCm, 其中Cs为同步消息传输时间, 因此TT-FPS算法的带宽利用率为

UΤΤ-FΡS=tΤR/ΤΜC=(kCs+m=1nCm)/ΤΜC

其中TMC为矩阵周期的时间。该算法的最大带宽利用率在理想情况下可以达到100%, 一般情况下其总线利用率通常可以达到80%~90%。而对于通常的CAN协议, 为了保证消息传输的正确性和实时性, 在非严格实时的控制系统中, CAN的带宽利用率通常推荐为50%, 而在严格实时的控制系统中, 推荐的最大带宽利用率为20%~30% [5]

经上述分析得到TT-FPS算法可调度分析的充分条件, 只要系统中任意消息m的最糟糕响应时间小于系统的截止期即Rm<Dm, 并且总线利用率UTT-FPS<1, 则系统是可调度的。

《3 实例分析》

3 实例分析

《3.1纯电动汽车总线消息模型》

3.1纯电动汽车总线消息模型

纯电动汽车主要包括:动力总成控制器、电机控制器、动力电池组管理系统和监控终端, 它们之间通过CAN总线交换消息。其中电机ECU对电机状态进行监测和控制, 电池ECU对电池的电气参数和热参数测量, 完成电量计算和安全管理, 两者都向动力总成控制器发送自身的状态参数。动力总成控制器对纯电动汽车系统中的各个环节进行管理、协调和监控, 以提高纯电动汽车整车能量利用效率, 确保车辆的安全性和可靠性。优化后的纯电动汽车的消息传输系统所承载的主要消息如表1所示, 其中m1m4, m12m13为动力总成控制器消息, m5m8为电机控制器消息, m9m11, m14为动力电池管理系统消息。设传输消息的波特率为250 kb/s, 按照基于表的静态调度算法对消息进行规划, 确定基本周期的长度, 矩阵周期的长度及每个消息在矩阵周期的传输位置, 静态调度表如表2所示。其中基本周期为10 ms, 矩阵周期为200 ms。

表1 纯电动汽车总线消息 Table 1 Bus messages of electric vehicle

 

 

《表1》

消息类型 消息名 周期/ms 截止期/ms 数据/B
周期性消息 电机控制指令 m1 10 10 8
  电池控制指令 m2 10 10 1
  驾驶需求 m3 10 10 8
  制动踏板 m4 10 10 4
  电机状态1 m5 50 50 7
  电机状态2 m6 50 50 4
  电机状态3 m7 50 50 7
  电机故障 m8 50 50 8
  电池状态1 m9 200 200 8
  电池状态2 m10 200 200 6
  电池故障 m11 200 200 8
非周期性息 整车故障 m12 偶发 200 8
  总线错误 m13 偶发 200 2
  驾驶开关 m14 偶发 200 4

 

 

表2 纯电动汽车总线消息调度表 Table 2 Message scheduling of electric vehicle

 

 

《表2》

序列 ms 序列 ms
1 m1, m2, m3, m4, m5, m13 11 m1, m2, m3, m4, m5, m14
2 m1, m2, m3, m4, m6 12 m1, m2, m3, m4, m6,
3 m1, m2, m3, m4, m7 13 m1, m2, m3, m4, m7
4 m1, m2, m3, m4, m8 14 m1, m2, m3, m4, m8
5 m1, m2, m3, m4, m9 15 m1, m2, m3, m4, m11
6 m1, m2, m3, m4, m5 16 m1, m2, m3, m4, m5
7 m1, m2, m3, m4, m6 17 m1, m2, m3, m4, m6
8 m1, m2, m3, m4, m7 18 m1, m2, m3, m4, m7
9 m1, m2, m3, m4, m8 19 m1, m2, m3, m4, m8
10 m1, m2, m3, m4, m10 20 m1, m2, m3, m4, m12

 

 

《3.2FPS与TT-FPS性能比较》

3.2FPS与TT-FPS性能比较

用开发的CAN总线FPS, TT-FPS性能分析软件对纯电动汽车消息系统进行可调度分析, 结果如表3、表4所示。可以看出, TT-FPS总线负载率为33.56%, 略大于FPS的相应值, 是由于加入同步消息所致, 但是消息的响应时间大大减小, 系统冗余度提高到3.023, 因为TT-FPS算法对消息按基本周期进行规划, 避免了消息竞争的无序性。

在开发的CAN总线实验系统上, 用3个节点分别模拟电动汽车的动力总成控制器、电机控制

表3 FPS算法纯电动汽车消息系统性能参数* Table 3 Electric vehicle messages performance parameter of FPS

 

 

《表3》

消息名 ID 周期
/ms
截止期
/ms
数据
/b
阻塞时间
/ns
传输时间
/ms
等待时间
/ms
响应时间
/ms
允许最大抖
动时间/ms
负载率
/%
节点号
驾驶开关 00000003 200 200 4 0.640 0.480 0.640 1.120 198.880 0.240 3
电池控制 08040001 10 10 1 0.640 0.360 1.120 1.480 8.520 3.600 1
制动踏板 08080001 10 10 4 0.640 0.480 1.480 1.960 8.040 4.800 1
总线错误/状态 080D0001 200 200 2 0.640 0.400 1.960 2.360 197.640 4.000 1
电机控制 0C010001 10 10 8 0.640 0.640 2.360 3.000 7.000 6.400 1
驾驶需求 18070001 10 10 8 0.640 0.640 3.000 3.640 6.360 6.400 1
整车故障 180C0001 200 200 8 0.640 0.640 3.640 4.280 195.720 0.320 1
电机状态1 18100002 50 50 7 0.640 0.600 4.280 4.880 45.120 1.200 2
电机状态2 18110002 50 50 4 0.640 0.480 5.360 5.360 44.640 0.960 2
电机状态3 18120002 50 50 7 0.640 0.600 5.960 5.960 44.404 1.200 2
电机故障 18170002 50 50 8 0.640 0.640 6.600 6.600 43.400 1.280 2
电池状态1 18200003 200 200 8 0.640 0.640 7.240 7.240 192.760 0.320 3
电池状态3 18220003 200 200 6 0.640 0.560 7.800 7.800 192.200 0.280 3
电池故障 18290003 200 200 8 0 0.640 7.800 7.800 192.200 0.320 3

* 系统总线的平均负载率为31.32 %, 系统冗余度为2.583

 

表4 TT-FPS算法纯电动汽车消息系统性能参数* Table 4 Electric vehicle messages performance parameter of TT-FPS

 

 

《表4》

消息名 ID 周期
/ms
截止期
/ms
数据
/b
阻塞时间
/ns
传输时间
/ms
等待时间
/ms
响应时间
/ms
允许最大抖
动时间/ms
负载率
/%
节点号
电池控制 08040001 10 10 1 0 0.360 0 0.360 9.640 3.600 1
制动踏板 08080001 10 10 4 0 0.480 0.360 0.840 9.160 4.800 1
电机控制 0C010001 10 10 8 0 0.640 0.840 1.480 8.520 6.400 1
驾驶需求 18070002 10 10 8 0 0.640 1.480 2.120 7.880 6.400 1
电机状态1 18100002 50 50 7 0 0.600 2.120 2.720 47.280 1.200 2
电机状态2 18110002 50 50 4 0 0.480 2.120 2.600 47.400 0.960 2
电机状态3 18120002 50 50 7 0 0.600 2.120 2.720 47.280 1.200 2
电机故障 18170002 50 50 8 0 0.640 2.120 2.760 47.240 1.280 2
驾驶开关 00000003 200 200 4 0 0.480 2.720 3.200 196.800 0.240 3
总线错误/状态 080D0001 200 200 2 0 0.400 2.600 3.000 197.000 0.200 1
整车故障 180C0001 200 200 8 0 0.640 2.720 3.360 196.640 0.320 1
电池状态1 18200003 200 200 8 0 0.640 2.780 3.400 196.600 0.320 3
电池状态3 18220003 200 200 6 0 0.560 2.720 3.280 196.720 0.280 3
电池故障 18290003 200 200 8 0 0.640 2.600 3.240 196.760 0.320 3

* 系统总线的平均负载率为33.56%, 系统冗余度为3.032

 

器、动力电池组管理系统, 利用IXXAT公司的USB-to-CAN智能接口卡与PC机相连, 监测总线上传送的全部消息并记录相关信息。在实验系统中分别运行FPS算法和TT-FPS算法, 从测得的总线负载率可以看出, TT-FPS算法的总线负载率平稳, 在29.92%与31.04%之间波动, 而FPS则在26.2%与29.44%之间波动。这是由于消息按照严格时序划分后, 总线上消息分布均匀的结果;另外FPS与TT-FPS实测总线平均负载率分别为28.2%与30.56% 均低于理论计算值, 这是由于理论计算值是按最坏情况下得到的。

《4 结论》

4 结论

TT-FPS在基本周期中传送的所有消息不仅在运行前经过了规划, 而且在运行时进入排队窗口的消息在接收到同步消息后才同时竞争总线, 并按优先顺序占用总线。这使得TT-FPS具有了消息传输可预知, 实时性强, 带宽利用率高, 总线负载平稳等优点。而且, 当错误产生时能将其限制在某个基本周期内, 不会影响下一个基本周期中消息的传输。随着时间触发通信需求的增长, 具有时间触发方式的总线将在未来汽车网络中起着重要的作用。TT-FPS综合了时间触发机制与CAN的MAC层非破坏性仲裁机制, 是对固定优先级调度的有意义延伸, 在CAN总线上将会有很好的应用前景。