FlexCAN架构的目标是在不影响它的灵活性的情况下,提供额外的确定性和可靠的能力给CAN协议。这是通过将一个附加层合并到CAN之上来完成的。FlexCAN架构的主要特点是复制组件,支持时域可组合性、复制同步化、复制管理和沉默型失效行为的实施。
如图6.13所示,FlexCAN架构可以灵活的方式,合并多个复制信道和若干个复制节点(除了通常未复制的节点)[PIME04b]。一个节点和它所有的副本称为容错单元(FTU),但并不是所有网络节点需要复制。时域可组合性一直是基于CAN网络对于对安全-关键应用程序的主要责任。存在几个协议来克服这个局限性,比如TTCAN[FUHR00](6.7.1节)和FTT-CAN[ALME02](6.5节),它们基本上在高层面采用时间触发传输方案,而在低层面仍然使用CAN。FlexCAN也通过使用参考信息来采用时间触发模式。参考信息之间的时间间隔称为通信周期,这个间隔进一步划分为许多子周期,如图6.14所示。而TTCAN使用一个时钟同步机制来实现时间触发计划,FTT-CAN采用主节点生成参考信息。在FlexCAN中,节点复制不仅处理节点失效,而且在分布的基础上,在不需要同步时钟或主从模式的情形下也支持可靠的参考信息。通信周期连同它们的次周期,不仅对时域可组合性有帮助,而且还帮助同步复制节点和信道,并执行沉默型失效行为,特别针对使用总线监控者。此外,通信周期对同步应用程序非常有用。FlexCAN的灵活性在于它同时支持周期性和非周期性的通信。多周期信息(即周期性信息具有不同的周期)也是通过适当信息调度来处理的。
在FlexCAN中对复制信道提供信息同步很简单,正如每个节点以原子的方式(即没有中断)向所有复制信道仅仅发送相同的信息。然而对复制节点提供信息同步不是一件小事,因此提供称为SafeCAN特殊协议来处理节点复制管理[PIME04a、PIME04]。SafeCAN存在许多容错特性。主节点的更换(称为下一个主节点)总是已经准备好的(假定硬件可用)。就采用的冗余算法类型而言,FlexCAN使用了静态和动态冗余组合。SafeCAN协议假定节点是失效沉默型。执行这样一个故障模型,FlexCAN使用在FTT-CAN协议提出的类似的技术,在一个确定间隔,即发送尝试窗口(TAW)之后,通过使用一个有特殊功能的总线监控者,从传输缓冲区中删除信息[BUJA05、BUJA06]。
图6.13 FlexCAN架构
图6.14 FlexCAN架构的时间触发结构(www.daowen.com)
下面给出了额外的时间触发特性细节。基本周期Tc分成Q个子周期,其长度等于Tsc。不考虑它们的节点位置,可以将多达P条信息分配到每一子周期。因此,网络上的最大信息数量是P×Q。我们的目标是使所有信息在第二个子周期开始之前的子周期内传播完成,这是基于时间独立性原理。显然,如果按照这种方式执行,那么就不存在信息从一个子周期排队到下一个子周期,因而也就不存在一个周期到下一个周期的排队。这种特殊的信息分配方案是FlexCAN采用的方案。所有信息分配是按离线方式完成的,就像TTCAN一样。但也与TTCAN不同,这个方案不需要对所有节点进行时钟同步,但只需要采用约0.1ms的最小分辨率管理计时器。
就像TTCAN一样,为了实施时间触发计划,FlexCAN需要同步消息来明确标记每个周期的开始,但不像TTCAN那样需要节点的时钟同步。相反,Flex-CAN依赖计时器将整个周期划分为Q个(如4个)子周期。TTCAN需要时钟来同步,因为专用窗口都分配到一条信息。另一方面,FlexCAN中的子周期都分配到一组信息,因此需要以较低的精度定义窗口的开始和结束时间。
TT全局时间调度和结束应用程序之间的时间同步性对于大多数控制系统是至关重要的。FlexCAN允许任何CST事件(在图6.15中,从E1到E8)同步到通信周期上。图6.15描绘了信息m1与通信周期的开始同步,而其他信息与子周期(如m3、m4或m6)的开始同步。
图6.15 FlexCAN全局信息调度表同步到CST功能单元
在时间触发和可靠特性方面,FlexCAN相比TTCAN的主要优势就是TTCAN不允许帧被重发——这个引人注目的特性是CAN针对可靠性操作的,而Flex-CAN让我们可以重新发送一个错误帧,但有一定的时间限制。在每一个子周期中为错误重传留下足够的时间,对可靠性应用程序来说是很重要的。因此,FlexCAN使用CAN容错属性,并执行严格的信息最后期限。FlexCAN容忍以下类型的缺点:瞬态任意故障、永久的硬件故障和永久性软件杂乱无章故障[BUJA05、BUJA06]。这些故障的语义定义如下:瞬态任意故障是被原始CAN协议检测到,并导致错误和/或过载帧的故障;永久硬件故障是通信控制器、收发器或总线的永久性故障,它们被冗余节点或信道掩盖;永久性软件杂乱无章故障是由软件错误引起的,表现为在主机控制器中用错误的数值和在错误的时间使用总线。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。