目前在CAN总线上消息的传输通常采用基于事件触发机制的固定优先级调度算法 (FPS)
《1 TT-FPS算法》
1 TT-FPS算法
TT-FPS调度实质上是将时间触发机制引入CAN总线, 基于时分多路访问 (TDMA) , 将消息的传输分配在特定的时间窗口内完成。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构成, 即
在固定优先级调度算法中 qm, 包括正在占用总线的低优先级消息的阻塞时间Bm和高优先级消息抢占总线的等待延迟Im。对TT-FPS而言, 由于同步消息被节点接收后, 处在当前基本周期内的消息会同时发出并竞争总线, 这不仅不会出现固定优先级算法中由于随机发送而引起高优先级消息被低优先级消息所阻塞的问题, 而且每个基本周期内的消息只会被发送一次。于是得到
其中S为帧间隙时间, τbit为每一位的传输时间, 集合hpb (m) 只包含了基本周期内优先级高于m的消息。扩展帧格式的最糟糕传输时间为
综合上述公式, 可以得到TT-FPS算法下消息m的最糟糕响应时间为
可见在TT-FPS算法下消息的最糟糕响应时间有了明显减少, 这是由于时间触发机制的引入使得消息的发送不再是一种随机性的行为, 系统的有序性大大增加, 使消息响应时间的不确定性大为减少。
《2.2总线使用率》
2.2总线使用率
在TT-FPS调度算法中, 由于对消息系统的消息模型按照基于表的静态调度算法进行过规划以及同步机制的引入, 其带宽利用率会得到提高。设矩阵周期由k个基本周期组成, 矩阵周期传输的消息总个数为n个, 则矩阵周期总的消息传输时间长度
其中TMC为矩阵周期的时间。该算法的最大带宽利用率在理想情况下可以达到100%, 一般情况下其总线利用率通常可以达到80%~90%。而对于通常的CAN协议, 为了保证消息传输的正确性和实时性, 在非严格实时的控制系统中, CAN的带宽利用率通常推荐为50%, 而在严格实时的控制系统中, 推荐的最大带宽利用率为20%~30%
经上述分析得到TT-FPS算法可调度分析的充分条件, 只要系统中任意消息m的最糟糕响应时间小于系统的截止期即Rm<Dm, 并且总线利用率UTT-FPS<1, 则系统是可调度的。
《3 实例分析》
3 实例分析
《3.1纯电动汽车总线消息模型》
3.1纯电动汽车总线消息模型
纯电动汽车主要包括:动力总成控制器、电机控制器、动力电池组管理系统和监控终端, 它们之间通过CAN总线交换消息。其中电机ECU对电机状态进行监测和控制, 电池ECU对电池的电气参数和热参数测量, 完成电量计算和安全管理, 两者都向动力总成控制器发送自身的状态参数。动力总成控制器对纯电动汽车系统中的各个环节进行管理、协调和监控, 以提高纯电动汽车整车能量利用效率, 确保车辆的安全性和可靠性。优化后的纯电动汽车的消息传输系统所承载的主要消息如表1所示, 其中m1…m4, m12…m13为动力总成控制器消息, m5…m8为电机控制器消息, m9…m11, 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总线上将会有很好的应用前景。