通信协议可以被分成两大类:事件触发和时间触发。这两类方法在操作上有很大不同[52]。事件触发模式是一种异步模式,时间触发模式是一种同步模式。在事件触发模式中,当一个特定的事件发生时传输数据。例如,一个按钮被按下或者一个操作杆被推上。这里,在时间轴上,数据传输是随机发生的。然而,在时间触发模式下,数据传输发生在时间轴上的规定时间段。在这种模式下,所有的节点都是同步的且遵循一个主时钟,所以这些节点都有相同的时间。每一个节点都被分配有一段时间,只有在这个被分配的时间段中,该节点才可以传输。这有点类似于时分复用访问的机理。
之前提到,数据是随着时间的推进不断传输的,节点是如何得知什么时候可以开始传送数据呢?在静态方案中,节点被固定分配了一段时间。在时间触发CAN中,这个问题是通过采用参考帧解决的。通过标示符,可以将参考帧和其他帧明确区分开来。参考帧中有一位称为帧开始位的特殊位,接收到这个位就表示可以开始数据传输了。根据准则规定,TTCAN有两层操作[54]。第一层利用参考帧保证时间触发机制得以执行,第二级保证网络中各个节点的时间同步。不同之处在于,第一层的参考帧携带有一个字节的控制信息,而第二级参考帧包含了四个字节的控制信息,另外的四个字节可被用于数据传输。
TTCAN相比于CAN的一个优势是在它的每个操作循环中,TTCAN既允许传输定期的时间触发消息又允许传输事件触发消息。TTCAN会留出一定的时间段用于事件触发消息。例如,线控系统集成了用于执行严格实时控制功能的传感器和执行器,它就需要用TTCAN。这样可以使网络行为具有可预测性,这一点十分重要,因为很多网络都是分布式结构的。一个分布式网络由许多小系统组成,这些小系统被组织成子网络,每个子网络可能使用不同的协议。因此,如果一个协议明确定义了传输步骤并且按照事先定义的时间段去执行,那么将极大减小网络操作的复杂性,并能充分利用可用带宽。另外,此协议还可以减少CAN中用于仲裁所需的时间。同时也能防止低优先级的消息被长时间搁置不能传输的情况发生。
之前提到,TTCAN的基本传输原理在于参考帧的使用。两个连续参考帧之间的时间差称为周期[53]。这一时间段被称为基本周期,基本周期被分为多个被称为是独立窗的时间段。数据传输就发生在每个独立窗之中。哪个节点在哪个独立窗里传输/接收消息是由系统分配引擎决定的。这些独立窗不仅支持时间触发消息,还允许事件触发消息,这是TTCAN的固有特点。这些独立窗可以有不同的长度和持续时间来适应不同的数据传输要求。一般而言,在一个基本周期中,要合理安排各个独立窗,以保证最大程度使用带宽。几个基本周期可以组成一个“矩阵周期”或者说是“矩阵系统”,如图4-55所示。
图4-55 TTCAN传输
之前提到,时间触发消息也可以在TTCAN中被传输。被称作“仲裁窗”的窗可以用于这种传输。在仲裁窗中,用位仲裁法决定哪个节点可以连接上总线。在仲裁窗中,可以传输复合消息。应用软件在此用来决定哪个消息被传送,哪个消息不被传送。损坏消息的自动重发是不可能的。另一个允许的特点是,在设计系统时,往往留出许多空白窗。这样,未来新的节点可以顺利集成进系统中而不造成很多麻烦。
和传统网络使用路线表不同,TTCAN的节点只得到与自身相关的独特信息。提供的信息与该节点发送或接收数据的时间段相对应。由于节点不需要知道任何有关矩阵周期的信息,因此存储空间可以节省。
之前已经提过,几个基本周期组成一个矩阵周期。矩阵周期完全地描述了整个网络的传输计划。它定义了哪个节点在哪个给定的时间进行传输。这样,每个节点都知道什么时候轮到它传输,矩阵周期不断重复。图4-56表述了矩阵周期的概念。
图4-56 TTCAN系统的矩阵周期
每一个基本周期由几个独立窗和/或仲裁窗和自由窗组成。从图中可以看出,这种结构是高度队列化的。矩阵周期中的每一列叫做“传输列”。所有的属于某个传输列的窗长度相同。周期计数器用来表示目前基本周期的号码,每过去一个基本周期,周期计数器就加1。
除了独立窗和仲裁窗之外,还有一种称为Tx—使能的窗,该窗包含在独立窗和仲裁窗里。该窗用来告知节点它被安排开始传输的时间。这么做使得紧接着目前消息的下一个消息,可以不因为目前这个消息传输的延迟而延迟。Tx—使能窗的概念如图4-57所示。
(www.xing528.com)
图4-57 独立/仲裁窗
TTCAN系统的另外一个特点就是两个仲裁窗可以合并成一个仲裁窗。然而,这种情形要遵循一个约束。合并的两个窗中原来的消息是完全相同的。
每一个独立窗和仲裁窗以时间标志标记其开始。开始一个即将用来传输的独立窗的时间标记被称作一个Tx触发器。它包含了以下部分:
1)指向将要被发送的那个特定消息的指针;
2)将要传输这个消息的基本周期;
3)传输发生所在的传输列;
4)必须进行重传的传输列中的位置。如果没有要求,这部分无效。
与此类似,将用于接收消息的窗的时间标记被称为Rx—触发器。实际上,Rx—触发器和Tx—触发器都是用于存储发送和接收消息的相关信息的介质。时间标记由一个基本标记和一个重复计数信息组成。基本标记跟在“节点传输/接收消息所在的那个基本周期”后面的一个基本周期的编号。重复计数信息包含两个连续的传输或者接收所在基本周期之间的基本周期个数。
TTCAN网络中任何网络动作所使用的时间单位被称作网络时间单位(NTU)。在第一层TTCAN中,NTU可以是一个CAN位(CAN bit)所用的时间,在第二层TTCAN中,NTU可以是几分之一秒。
一个消息状态计数器(MSC)连接每一个被传输或者接收的消息。消息错误会反映在MSC的增长上。当MSC的值达到了7或者两个MSC的值的差大于2时,节点就会置位一个错误标志。由于偏差的影响,节点可能会失去全局时间。因此,应该设计一些机制保证所有节点都同步于总时钟。
为了补偿时间上的漂移,每个节点都会测量该节点的本地时间。当一个主节点发送一个帧同步脉冲的时候,它也会发送它的全局时间值。节点在收到这个帧同步脉冲的时候,也捕获了包含其中的全局时间。这个节点接下来计算本地时间偏移,即用全局时间值和测量的本地时间相减。在下一个基本周期中,原本的全局时间会被修正,也就是说,全局时间值=本地时间+本地时间偏移。然而,每一个节点可能有和别的节点不同的时间漂移单位。为了补偿这个效应,我们使用了一个被称作时间单位率的单元。两个连续的帧同步脉冲的差被分别在本地和全局测量,这两个的商就是TUR。
由于整个TTCAN的结构都取决于主节点的操作,主节点的安全操作就变得十分必要了。为保证这一点,我们给一对节点赋予了对应的标示符(identifier),并将它们作为备用主节点。如果一个备用主节点发现总线上没有信号流或者发现没有参考消息,那么它就传输自己的标识符并且扮演起主节点的角色,然后开始传输参考消息。如果它看到另一个主节点占据了主节点的角色,并且有更高的优先级,那么该节点就将自己同步于那个特定的参考消息。高带宽利用率,低抖动和延迟,更高的安全性、灵活性和动作的确定性是这种自动网络的主要优点。
总之,通过在CAN网络的协议堆栈中增加会话层,就已在CAN中实现时间触发模式,这个模式不仅灵活而且动作确定性强。这个事实未来会被诸如线控系统所开发。慢慢地,这种网络可能被用于现有的机械和/或液压后备系统上,以保证操作控制系统的绝对安全。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。