《1 引言》

1 引言

在网络控制系统中, 根据消息传输方式的不同, 可以分为事件触发方式和时间触发方式。事件触发方式主要适用于报警、管理等非周期性消息的传输;时间触发方式主要适用于传感器数据、控制变量等硬实时周期性消息的传输[1]。CAN总线作为一种典型的通信网络, 由于其可靠性高, 实时性强, 广泛地用于自动化和工业控制领域。另外由于CAN本身的非破坏性位仲裁机制, 使低优先级消息的传输有可能造成对高优先级消息的阻塞, 从而系统的响应不及时, 造成控制系统的性能下降[2]。为此, 基于CAN的底层协议, 引入时间触发机制, 设计消息的时间触发方案, 从而能够更好地对网络中消息进行管理与调度, 保证控制系统的性能, 提高了网络的带宽利用率。

《2 时间触发机制的基本概念与实验系统》

2 时间触发机制的基本概念与实验系统

《2.1时间触发机制的基本概念》

2.1时间触发机制的基本概念

时间触发机制是指将时间域分成大量的离散时间间隔 (称为时间片或时间窗口) , 通过同步机制将消息的传输分配在一定的时间窗口内完成。CAN总线消息时间触发机制是时间触发协议TTCAN的基础[3], 它的实现是以系统的同步为基础的, 而系统的同步是由同步消息来实现的。同步消息是指时间意义上的主节点发出的可以被网络中所有节点 (包括时间主节点自身) 识别的具有重发功能的周期性消息。

定义同步消息的发送周期为基本周期, 即基本周期以出现同步消息开始, 而以下一个同步消息结束。在基于表的静态调度算法中基本周期也被称为微周期, 通常取网络中所有消息的传输周期 (或采样周期) 的最小公约数。在实际网络控制系统中, 系统可能包含多个具有不同传输周期的控制环, 基本周期无法满足这种系统的需要, 因此将几个连续的基本周期连接在一起组成矩阵周期, 见图1。矩阵周期又称宏周期, 定义了整个系统消息调度的结构, 通过不断重复执行矩阵周期来保证消息可靠的确定性的传输。通常取网络中所有消息传输周期的最大公倍数作为整个网络的矩阵周期。

《图1》

图1 矩阵周期结构图
Fig.1 Construction of matrix cycle

图1 矩阵周期结构图 Fig.1 Construction of matrix cycle  

《2.2CAN总线的实验系统》

2.2CAN总线的实验系统

工业控制过程中, 现场总线的节点通常要完成一定的功能, 例如采样、计算和控制等, 同时还要将经过处理的信息通过现场总线传送给其他节点, 因此引起整个系统的延时。为了减少节点的负担, 更好地实现时间触发机制, 将任务节点划分为功能模块和管理模块, 由2个单片机分别负责这2个模块。功能模块负责数据采样和系统的控制, 管理模块负责信息的调度和管理, 2个模块之间通过共享RAM进行数据的交换。整个现场总线的结构图如图2所示。其中管理节点由CAN控制器SJA1000、CAN收发器PCA82C250和微控制器AT89S52组成。研究的重点是管理模块中的消息传输, 因此在管理节点中加入了键盘输入和显示输出两部分功能, 使该实验平台可以脱离实际系统来模拟各种控制对象的消息传输, 增加了实验系统的灵活性。管理节点中的键盘可以预先设置节点需要传输的数据, 节点接收和发送的消息可以通过LED显示出来。

《图2》

图2 CAN控制网络结构图
Fig.2 Construction of CAN control network

图2 CAN控制网络结构图 Fig.2 Construction of CAN control network  

《3 CAN总线时间触发机制的实现》

3 CAN总线时间触发机制的实现

《3.1CAN总线时间同步及时间窗口的实现》

3.1CAN总线时间同步及时间窗口的实现

CAN总线的时间触发机制本质上是基于时间窗口的消息传输方式, 其首要问题是实现网络上各个节点的同步。分布式系统时间同步方法有两类:一是将外部时间基准引入分布式系统的绝对时间同步, 另一种是仅在分布式系统内部使用算法实现同步的相对时间同步。

所研究的时间同步是指网络内的相对时间同步, 即指定CAN 网络内的一个节点作为时间主节点, 它周期性的发送同步消息, 网络中其余节点接收到同步消息后启动本地时钟。实验系统的同步过程中, 采用了单片机外部电平信号启动定时器的功能。具体步骤如下:

1) 主节点利用定时器T0实现基本周期TB的定时, 启动定时器T0并发送自接收同步消息, 当定时器T0时间到时 (图1的ts时刻) , 在其中断服务程序中启动下一个基本周期。

2) 网络中的各桔点包括时间主节点在内成功接收到同步消息后, 在每个CAN节点中的SJA1000的TX1管脚产生一个脉冲, 该脉冲经过RS触发器变为高电平, 输入到各节点AT89S52单片机的ΙΝΤ1¯引脚, 设置定时器控制寄存器TCON的TR1=1, TMOD的GATE=1, 由外部输入ΙΝΤ1¯控制启动定时器T1

3) 各节点以定时器T1的值作为同步时间, 根据定时器T1的值来确定时间窗的起始时刻。当时间到时 (图1中的ta, tb, tc等时刻) , 在定时器T1的中断服务程序中启动消息传输, 同时复位RS触发器, 等待下一个同步消息。

所采用的硬同步方法从接收同步脉冲到启动定时器T1只需要花费1个机器周期。如果在同步方法中采用常用的软件判断同步消息再启动定时器T1, 则从接收同步消息到启动定时器至少需花费30个机器周期。因此所提出的硬同步方法既可以减少软件的开销, 又可以提高总线利用率。

《3.2基于时间窗口的消息传输》

3.2基于时间窗口的消息传输

从图1中可以看到, 基本周期由消息传送时间窗口和隔离时间窗口组成。消息传送时间窗口分为专用窗口和仲裁窗口。其中专用窗口传送周期性确定消息, 例如图1中的消息A、消息B等;仲裁时间窗口用来发送非周期消息, 在仲裁时间窗口中可以发送1个或多个消息, 当多个非周期消息同时发送时, 依据CAN本身的非破坏性仲裁机制, 根据消息的优先权决定消息的发送。图1中的a和b均为隔离时间窗口。

《3.2.1 隔离时间窗口a和b的确定》

3.2.1 隔离时间窗口a和b的确定

隔离时间窗口a和b由软件开销和时钟误差两部分所组成。软件开销与中断响应和中断服务程序有关, 后台程序用原地跳转指令等待中断, 因此定时器T0和T1的中断响应时间均为4个机器周期, T0的中断服务程序执行的操作是重新装入定时器初值并启动定时器, 启动同步消息的发送, 共需要花费8个机器周期, T1的中断服务程序的操作是启动消息的发送, 只需花费3个机器周期, 另外网络系统的同步不可能是绝对意义上的同步, 它是在一定精度范围内的同步, 为了避免周期性消息发生碰撞, 因此在设置隔离时间窗口b时还加入了2个机器周期的冗余时间。综上分析可知隔离时间窗口a的大小为Δta=12个机器周期, 隔离时间窗口b的大小为Δtb=9个机器周期。

需要指出的是跟随同步消息后发送消息的节点也需要在硬启动定时器的T1前装入一个极小的计数初值, 使其能进入定时中断。

《3.2.2 基本周期最大传输消息个数的确定》

3.2.2 基本周期最大传输消息个数的确定

专用时间窗口被指定发送一个特定的消息, 在这段时间内, 其他消息不允许访问总线。专用时间窗口的大小由所发送的帧和通信所用的波特率决定。以CAN2.0B通信协议定义的扩展帧为基础, 考虑填充位和校验位, CAN扩展模式的最大传送位数LMFS[4]

LΜFS=(54+8Sm)/5+67+8Sm

其中Sm为CAN传送消息中数据场的字节数, 设位传输时间为τbit, 则每帧数据传输时间为:tm=LMFSτbit

设基本周期时间为TB, 假设在基本周期传送的周期性消息个数为αk, 考虑隔离窗口, 则在基本周期中能够传送的最大消息数目γmax=[TBta- (αk+1) Δtb]/tm

《4 网络控制系统的可调度分析》

4 网络控制系统的可调度分析

假定M为CAN系统中周期性消息的总个数 (不包括同步消息) , Ti (i∈[1, M]) 为周期性消息的传输周期。令TM个消息传输周期组成的向量, 且元素以增序排列, 即T=[T1, T2, …, TM], Ti+1Ti, i∈[0, M-1];向量K=[k1, k2, …, kM], ki=Ti/T1 , kiki+1, 即ki为第i个消息传输周期TiT1的比值;则T的最大公约数 GCD (T) =TB为系统的基本周期, T的最小公倍数LCM (T) =TM为系统的矩阵周期;令δk为在基本周期内传输周期消息的平均数目, 即δk=∑i=1Μ1/ki。若满足δkγmax, 则M个周期消息可以在矩阵周期中完成调度。

假定N为CAN系统中非周期性消息的总个数。若根据调度任务确定在基本周期内需要发送的周期性消息的个数为αk, 则基本周期的隔离时间窗口b为αk+1个。设同步消息传输时间为tsm, 在一个基本周期内可以发送的非周期消息的个数为βk=[TB-tsm-αktmta- (αk+1) Δtb]/tm。只要保证需要传输的非周期消息总数目Nβk (TM/TB) , 则非周期消息的最大传输延迟不超过消息的矩阵周期, 即Dmax<TM

由上述分析可知在一个基本周期内只要δk+βk +1≤γmax, 则可以保证系统内周期性消息和非周期性的可靠调度。若δk +βk+1>γmax, 则需要提高系统的波特率或者加大消息的采样周期, 按照上述方法重新进行消息的分配, 直到满足要求为止。

《5 实例分析》

5 实例分析

在中高档汽车的自动控制系统中, 汽车引擎控制系统是其重要的控制系统之一。汽车引擎控制系统主要从能耗方面来优化发动机的性能, 同时提高驾驶的舒适度以及控制废气的排放。在这个系统中传感器的周期性消息和非周期性消息如表1所示。

表1 汽车引擎控制系统消息 Table 1 Messages of vehicle engine control system

《表1》

周期性消息非周期性消息
转速传感器T=5 ms吸入空气温度传感器
空气压力传感器T=5 ms冷却器温度传感器
相位传感器T=10 msλ探测传感器
爆震传感器T=10 ms油料计量计
蝶形阀位置传感器T=10 ms发动机转数计
燃料泵执行器T=10 ms冷却器温度计量器
电子喷油器T=10 ms
电磁空气阀T=10 ms

依据表1, 可以确定在汽车引擎控制系统的调度中, 其基本周期的长度为5 ms, 矩阵周期的长度为10 ms。为使控制系统简单, 同步消息、周期性消息和非周期性消息的传输数据均为3 B, 传输速率为250 Mb/s, 每帧数据的最大长度为107 b, 则消息的最大传输时间为0.428 ms。根据表1可知周期性消息8个编号为M1…M8, 非周期性消息6个编号为M9…M14, 再加上1个同步消息SM, 总的传输时间为6.42 ms, 超过了周期性消息的最小周期5 ms, 因此需要对消息进行调度, 使消息按照时间机制触发。系统采用的单片机晶振频率为12 MHz, 可得到隔离时间窗口Δta=12 μs, Δtb=9 μs。则在基本周期中可以传送的最大消息的数目为γmax=10, 在基本周期内传输的周期性消息的平均数δk=5。因此取基本周期内传输的周期性消息为αk=5, 剩余的时间均安排给仲裁时间窗口, 使每个基本周期内可以传送的消息个数βk=3, δk+βk+1=9<γmax, 则整个系统可以调度, 其调度结构如图3所示:

《图3》

图3 汽车引擎控制系统消息调度
Fig.3 Messages scheduling of vehicle 
engine control system

图3 汽车引擎控制系统消息调度 Fig.3 Messages scheduling of vehicle engine control system  

按照表1在实验平台上模拟对汽车引擎控制系统消息进行调度管理, 从结果可以看出, 采用所提出的基于时间机制的调度方法可以有效地避免了消息的冲突, 实现了周期性消息的准确传输, 保证了非周期性消息的最大传输延迟不超过其矩阵周期10 ms。

《6 结语》

6 结语

在工业控制领域中, 网络控制系统的实时性要求越来越高, 为满足系统的硬实时应用的要求, 时间触发协议被引入CAN总线, 并在网络协议栈中 的会话层提出了TTCAN协议[3]。与传统的CAN总线协议相比, 它保证了消息传输的准确性和实时性, 避免了低优先级消息的死锁, 并提高了带宽利用率。此外, 在CAN应用层协议 CANopen中也为时间触发协议的实现设置了同步触发方式。为了实施这些高层协议, 基于8052单片机和CAN控制器SJA1000设计了时间触发机制的实现方案, 提出的硬同步与时间窗口的实现方法, 给出了网络中可传输的最大消息数目及可调度分析方法。该实验研究为时间触发协议的进一步实施奠定了基础, 例如研究基于表1的调度算法、在干扰下的最差响应时间及冗余主节点等问题, 均可在所搭建的实验系统上进行, 使得实验系统功能更加完善, 推动CAN总线的应用与发展。