APP下载

基于多主网络的TTCAN调度优化

2013-07-02许飞徐金榜王树林李胜

电气传动 2013年1期
关键词:参考消息总线消息

许飞,徐金榜,王树林,李胜

(1.华中科技大学 自动化学院,湖北 武汉 430074; 2.中核兰州铀浓缩有限公司,甘肃 兰州 730065)

1 引言

随着工业控制系统的发展,总线网络的需求和拓扑结构变得越来越复杂。随着网络复杂度提高,网络系统可靠性变得越来越重要,基于多主网络的系统应用需求与日俱增,需要总线上有相互形成冗余备用关系的多个主节点的存在。所以,针对多主网络设计一种高效可靠的CAN 总线应用层协议显得尤为必要。

根据多主网络的网络拓扑特点,选用时分型网络消息发送机制的TTCAN 协议为基本协议,基于TTCAN 协议的总线系统与传统的 CAN总线系统的拓扑结构完全相同,其主要区别在于其会话层和应用层协议不同[1]。但是多主网络由于有多个主节点的存在,无法像单主网络那样由某个节点单独控制网络的消息交换行为,极易出现消息交换混乱,某些消息甚至会出现长时间延时发送的情况。因此多主网络的消息调度必须要一定的网络调度策略的支持,通过对矩阵周期的循环调度,来实现对TTCAN 协议网络的调度。

文中针对某个系统的通讯网络的需求进行了分析,为了解决此多主网络的矩阵周期无法生成的问题,对TTCAN 的传输机制做出一定的突破,根据多主结构的网络行为架构优化后的多主系统矩阵,最后在Stateflow 仿真平台上予以验证,得出优化矩阵对复杂的网络任务集的调度具有良好效果。

2 多主节点TTCAN 网络调度优化

2.1 TTCAN 简介

TTCAN 是由时间触发CAN 报文传输的一种协议,采用时间触发机制,相对与CAN 协议,在CSMA/CA 的底层机制上,添加了时分多路(TDMA)的方式来实现总线通讯[2]。在时间触发系统中,网络有一个同步的全局时间,网络上的每个节点都参照这个时间来动作。时间触发系统的每个节点的软件结构中都保存一个任务调度表,参照当前的网络时间,每个节点对应任务调度表上的安排相应的任务执行[3]。

TTCAN 协议的系统矩阵周期MC(matrix cycle)由若干个基本周期BC(Basic Cycle)组成[4](见图1)。一个基本周期BC 以一个参考消息开始,由多个时间窗口组成,包括自由窗和仲裁窗等,对应矩阵周期的一行,处于同一列的时间窗构成了矩阵周期的列。矩阵周期的两个参考消息之间时间间隔是一个基本周期BC,它的长度为任务集中所有任务时间的最大公约数。

图1 TTCAN 的系统矩阵周期MC Fig.1 Matrix cycle of TTCAN

基本周期由3 类固定时间窗口组成:包括发送周期消息的独占时间窗;发送随机消息的仲裁时间窗以及用于网络扩展的自由时间窗[5]。每一个基本周期的时间窗口组成可能不同,各个时间窗口的长度及所完成的任务也可能不同,但是标准TTCAN 协议规定同一列的各个时间窗的长度应该相同。

2.2 多主节点生成系统矩阵步骤

2.2.1 确认参考消息的发送机制

在单主网络中,TTCAN 的参考消息由唯一的主节点发送。而在多主网络中,将发送窗口设置在每个时间片的开始,由该时间片内的通讯双方的主节点来发送参考消息,这样虽然降低了总线利用率,但是增加了总线可靠性,容错能力更强。

多主网络的参考消息发送机制如图2所示。

图2 多主网络的参考消息发送机制 Fig.2 The mechanism of multi-master network reference messaging

2.2.2 确定多主节点的链路关系

为了提高总线利用率,需要优化参考消息,简化携带的消息内容,在系统矩阵中开辟一个空闲时间片作为主节点网络连接关系的同步时间片,以通报网络连接情况,以免每次在参考消息中发送,增加参考消息的长度。

2.2.3 确定时间窗大小

在定时间片的长度的时候就要把参考消息的时间长度考虑进去,毕竟一个时间片里面并非只发一个消息帧,一个时间片是为了一个通讯任务而服务的。

一个扩展帧的长度为

其中Sm是CAN 中消息m的数据域的字节数。

对于参考消息:Sm取2,用于传输网络时间,帧长度L0= 73bits ;

对于正常消息:Sm取8,用于传输网络时间,帧长度Ln=130 bits,最大为150 bits。

根据需求确定基本周期中每列的长度Lt,即一个周期性任务所需要的总线传输时间,每个时间窗任务由一个参考消息和n个周期性消息组成,合计消息数量为n+1,消息与消息之间的位时间间隔Δtbits。

2.2.4 确定BC 和MC 的持续时间BCT和MCT

根据输入周期性节点的个数N以及各个节点消息发送周期T= {T1,T2,K KTN-1,TN}(其中T是升序排序的)进行确定,取所有消息的最大公约数为基本周期BCT。取所有报文传输周期的最小公倍数或者是最小公倍数的整数倍为MCT。

通过式(3)得到矩阵MC的行数R,即矩阵周期中基本周期BC 的个数。

2.2.5 确定TBC内可传输周期消息数

根据公式(2)确定周期性任务发送一周期消息的传输时间Lt。可由式(4)求出BC 内可以传输消息最大数目;由式(5)求出BC 中可以传输消息的平均数目;判断若满足α<γmax,则γ=α,传输非周期消息数β=γmax-γ,否则可要增大波特率以满足要求[6]。

式中:a是为了避免非周期性信号对周期性信号传输造成干扰,在两个周期间加入隔离窗口[7];Ti表示各节点的传输周期;BCT表示最小传输周期。

2.2.6 确定矩阵周期的列数

基本周期的列数,即在基本周期中可以调度传输的消息个数; 对于消息实例集合在满足消息实例的发送周期时,将任务集中的任务往Mc中填入,一般按照优先分配触发周期短、通讯时间长的任务,后分配触发周期长、通讯时间短的任务,得到待优化的初始矩阵周期Mc,矩阵周期的列数C[8]:

2.2.7 建立多主TTCAN 系统矩阵

在没有标准TTCAN 的同一列时间片长度一致的约束下,生成系统类矩阵周期和对应的时间片长度矩阵。将任务集中的执行时间的最大公约数作为矩阵的基本元素Uc,则Mc的每行的初始元素个数为 /BTc Uc,将每个任务所覆盖的初始元素窗口合并,这样矩阵周期将变成一个每行元素的个数不相等、需要进行补零操作,改进后的最终矩阵为Mc’,然后每个任务覆盖的初始元素的个数再构建一个时间片长度矩阵Lc’。

3 系统建模

电气系统的网络拓扑如图3所示。其中A,B,C,D,E是供电主节点,E,F,G,H,Ⅰ,J为从节点,分别与相应的主节点进行连接。节点J监听当前网络的工作状态。

图3 某实际工程的电气系统网络拓扑 Fig.3 Network topology of electrical system in a practical engineering

根据文中的调度表构造方法和实际的通讯链路,以上一节的仿真数据为基础,生成多主节点网络的系统矩阵。电气系统通讯任务集见表1。

表1 电气系统通讯任务集 Tab.1 Communication tasks set of electrical system

总线通讯波特率为200 kb/s,每个任务窗口包含1 个参考消息和1 个周期性消息,由于L0=73 bits,Lf=150 bits, 1n= ,Δt=50 bits, 根据公式(2)得出:Lt=273 bits,传输时间为1.365 ms,取2 ms作为时间窗口的最小宽度。

链路包含16个周期型消息和2个非周期型消息。周期消息数N=16,按周期消息的发送周期进行升序排列T={26,26,26,2678,78,78,78,156,156, 156,156,156,156,156,156},确定BCT=26 ms,MCT=156 ms,矩阵行数R=MCT/BCT=6,基本元素Uc=2 ms,则初始矩阵每行元素个数为13 个。

没有优化前的系统矩阵为Mc中的17 为仲裁窗口,任务2,6,10,14 所在的列的时间片长度均为10 ms,触发次数均为5 次。按照标准的TTCAN 的矩阵周期生成方法,是无法生成一个合适的矩阵周期来实现这个任务集的需求的。另外,即使在矩阵周期能生成,许多时候迫使同一列上的其他时间片长度必须一致将浪费不少的总线资源。

没有优化前的系统矩阵为Mc:

优化后的系统矩阵Mc’和时间片长度矩阵Lc’为

说明:系统矩阵Mc’中的元素0 是主节点信息同步窗口,用于在多主网络里面管理主节点的在线状态; -1 是仲裁信息窗口,多个非周期性消息仲裁通讯;-2 是冗余时间窗口,-是空的,仅为保持矩阵形式填充的。时间片长度矩阵Lc’与其一一对应。可见矩阵形式相比于原来的系统矩阵要求的列长度一致做出优化,以容纳更多的消息类型,提高总线利用率。

4 系统仿真

本文采用simulink 中的stateflow 工具对多主网络TTCAN 应用层协议以及改进后的系统矩阵周期的可行性进行验证。

仿真的母级模型示意图如图4所示,根据通讯链路表得,其中任务1~16 为周期信号,任务17,18 是非周期触发的随机信号。端口out 可以观察总线上的波形,而o1~o18 分别是上述通讯链路对应的输出端口。

图4 TTCAN 网络应用层仿真母级模型 Fig.4 Simulation master module of TTCAN network application layer

不同周期的通讯链路的触发、发送波形如图5~图7所示。

图5 周期为26 ms 的任务发送波形 Fig.5 Send out waveform with 26 ms period

图6 周期为78 ms 的任务发送波形 Fig.6 Send out waveform with 78 ms period

图7 周期为156 ms 的任务发送波形 Fig.7 Send out waveform with 156 ms period

可以看出对于周期信号,发送任务处于等待状态的时间相对于它们各自的截止期都是比较小的。

仿真结果如图8,图9所示。

图8 初始总线状态波形 Fig.8 The initial bus state waveforms

图9 优化后总线状态波形 Fig.9 Optimized bus state waveform

网络总线负载率是衡量一个总线通讯性能的重要指标,是总线被占用的时间和整个运行时 间的比率,由于在多主节点TTCAN 协议下总线网络的通讯过程实际上是矩阵周期的周期性循环,因此在整数个矩阵周期内都可以计算负载率,以基本周期为单位,根据图5和图6经过计算得到:系统优化前的网络总线负载率为0.6656,优化后网络总线负载率 0.7294,利用率提高了9.58%。优化后的网络总线负载率得到了明显的提高。

5 结论

文中分析了标准TTCAN 协议在多主网络下的不适用限制,并根据多主节点的网络特点对TTCAN 协议的系统矩阵的生成方法进行了修改,提出了改进型的系统矩阵周期和对应的时间片长度矩阵的生成方法,最后利用 Simulink 中Stateflow 工具,建立了一个某个工业控制现场TTCAN 网络系统的仿真模型。并对改进的TTCAN 协议进行验证,仿真结果表明改进后的多主TTCAN 网络调度平台的总线利用率提高了,并且增强了可靠性和稳定性。

[1] Leen G, Heffernan D.TTCAN:A New Time-triggered Controller Area Network[J].Microprocessors and Microsystems, 2002, 26(2):77-94.

[2] 夏泽中,雷志雄.基于CAN 总线的时间触发分布控制系统的设计[J].仪表技术,2005:22-23.

[3] 姚浩强.多主 TTCAN 网络设计应用研究[D].华中科技大学,2013.

[4] Leen G, Heffernan D.Time-triggered Controller Area Network[J].Computing & Control Engineering Journal, 2001, 12(6):245-256.

[5] 张小玉.基于粒子群算法的 TTCAN 总线系统矩阵优化研究[D].江南大学, 2008.

[6] Fonseca J, Coutinho F, Barreiros J.Scheduling for a TTCAN Network with a Stochastic Optimization Algorithm[C]//Proceedings of the International CAN Conference,2001:10-16.

[7] 冯晓东, 张争明, 张刚.TTCAN 网络调度平台的设计优化[J].微电子学与计算机, 2010, 3(17).

[8] Qiao X, Wang K, Sun Y,et al.A Genetic Algorithms Based Optimization for TTCAN[C]//Vehicular Electronics and Safety, 2007.ICVES.IEEE International Conference on.IEEE, 2007:1-7.

猜你喜欢

参考消息总线消息
一张图看5G消息
基于PCI Express总线的xHC与FPGA的直接通信
机载飞控1553B总线转以太网总线设计
多通道ARINC429总线检查仪
消息
消息
消息