新闻中心

EEPW首页>嵌入式系统>设计应用> 车内通信网络标准FlexRay的功能和特性分析

车内通信网络标准FlexRay的功能和特性分析

作者: 时间:2012-11-27 来源:网络 收藏


2.骨干网络
具有很高的数据速率,因而非常适合于汽车骨干网络,用于连接多个独立网络。

3.实时应用,分布式控制系统
用户可以提前知道消息到达时间,消息周期偏差非常小,这使得成为具有严格实时要求的分布式控制系统的首选技术。

4.面向安全的系统
本身不能确保系统安全,但它具备大量功能,可以支持面向安全的系统(如线控系统)设计。

在车内通信方面,FlexRay提供了从事件驱动的通信转换到时间驱动通信的一个转换范例。这种转换需要一定时间,因为它不仅会影响新技术的引入,还要求对涉及到的所有人员都进行重新培训。一旦这个转换步骤完成,就可以发现更多的应用领域。

功能和机制分析

1.访问方法
FlexRay的通信是在逐周期中进行的,一个通信周期始终由静态部分和网络闲置时间(NIT)组成。协议内部流程需要网络闲置时间,在这个时段内,群组的节点之间不进行任何通信(见图2)。

图4:FlexRay 群组启动。

通信周期的静态部分基于时分多址(TDMA)技术。该技术将固定时隙分配给各个节点,在这个时隙内,允许节点传输数据。所有时隙大小相同,并且是从“1”开始向上编号。将一个或一个以上的时隙固定分配给每个节点。在运行期间,该时隙的分配不能修改。

除了静态部分以外,通信周期还可以选择性地组成动态部分。一种所谓的“微时隙”法用来访问动态部分内的通信媒介。发送出去的消息永远分配给动态时隙。只要时隙分配给了节点,与大小都相同、始终用于传输的静态时隙相反,动态部分就只能在需要时才进行传输。因此,动态部分的可用带宽是动态分配的。

如果消息号(ID)和时隙号对应,有待发消息的节点就会进行传输。如果没有节点传输,则所有节点就会等候,等待的时间长度正是微时隙的长度,然后它们的时隙计数器也会增加。在时隙计数器增加以后,所有节点都将检查该时隙号是否与将发出的消息对应。如果两者匹配,该节点将发送消息。所有其它节点接受这条消息,并且一直等到它们完全接收了这条消息后再增加时隙读数。这一过程将会持续,直至动态部分结束。如果在一个周期中,没有或者只有少数节点发送消息,在动态部分的结尾将达到更高的时隙号。如果有大量节点进行发送,则到达的时隙号就比较低。因此,拥有较高编号的(即优先权较低)发送消息的节点可能在一个周期中传输,而不在另一个周期中传输,具体取决于在其之前在动态部分已经由多少个节点进行了消息传输。要确定消息已经传输,用户必须在静态部分发送该消息,或者必须在动态部分中对其分配较低消息编号(即优先权较高)。

2.时钟同步
如果使用基于TDMA的通信协议,则在时间域上控制对通信媒介的访问。因此,每个节点都必须保持时间同步,这一点非常重要。所有节点的时钟必须同步,并且最大偏差必须在限定范围内,这是实现时钟同步的前提条件。最大的偏差反应了精确度的大小。

图5:双信道拓扑举例。

时钟偏差可以分为相位和频率偏差。相位偏差是两个时钟在某一特定时间的绝对差别。频率偏差是相位偏差随着时间推移的变化,它反映了相位偏差在特定时间的变化。

通过相位修正和频率修正可以实现时钟同步。FlexRay使用了一种综合方法,即同时采用相位修正和频率修正。时钟同步是一个控制环路,与其它控制环路一样,也由测量、计算和设定功能组成。

要测量每个时钟与其它时钟的偏差,所有节点都要在接收期间测量消息的到达时间。通过静态部分的定时机制,每个节点都知道消息应当何时到达。如果消息比预计时间早到或晚到,将能测量得出实际时间与预定时间之间的偏差。该偏差代表了传输和接收节点之间的时钟偏差。借助获得的测量值,可用容错平均算法计算出每个节点的修正值。

在频率修正中,需要使用两个通信周期的测量值。这些测量值之间的差值反映每个通信周期中的时钟偏差变化,它通常用于计算双周期结束时的修正值(见上文提及的方法)。在整个后来的两个周期中,都使用该修正值。

相位修正值的计算只需一个周期的测量值,一旦接收了所有测量值,即可开始进行计算,并且它必须在开始相位修正前完成。在通信周期末尾,网络闲置时间(NIT)的一部分被保留,用于相位修正。相位修正要相隔一个周期来完成,避免影响时钟频率偏差的确定。图3概述了时钟同步的每个阶段,以及不同访问方法的分配。

3. 群组启动
与许多技术流程或程序一样,FlexRay中的启动阶段同样也是最复杂的阶段之一。这是因为FlexRay中的通信基于同步时钟机制,但在启动阶段这种机制还未建立。由于具备容错功能,FlexRay中不存在主时钟,因而时基不是由主时钟定义的。

启动群组时,将会启动“coldstarter”,coldstarter总是存在于多个实例中。首先,启动传输消息的coldstarter被称为“主coldstarter”(leading coldstarter),其它coldstarter则被称为“从coldstarter”(following coldstarter)。

图6:双信道星型拓扑。

一旦节点被唤醒并完成初始化,它就能在发出相应的主控制器命令后进入启动流程。不属于coldstarter的节点会等候,直到它们至少识别到两个相互通讯的coldstarter为止。coldstarter自己会监控两个通信周期的传输信道,以确定其它节点是否正在传输。如果没有,该节点会开始传输,从而成为主coldstarter。主coldstarter首先会传输一个空符号,向其它节点说明目前它正在作为主coldstarter启动该群组。在传输符号(符号即特定数量的无效位)后,该节点开始启动它自己的时钟,并且开始第一个通信周期。根据预先定义的群组范围的通信机制,主coldstarter将在其分配的时隙中传输。与其它所有节点一样,它将只在一个时隙的启动阶段传输。

主coldstarter发送的消息可由从coldstarter接收。在消息ID(该号码与时隙编号相同)的帮助下,接收器能够确定发送器位于哪个时隙。传输节点的当前周期编号附带在每条消息中发送。在接收第一条消息后,其它节点等待在下一个通信周期中发送的第二条消息。一旦收到第二条消息,从coldstarter将开始启动它们的时钟,该时钟由周期编号和接收消息的时隙号进行初始化。这样就可以为传输器和接收器之间的同步时间操作奠定基础。此外,接收节点会测量第一条消息和第二条消息之间的时间,该时间与通信周期的周期时间对应。测量出的时间与本地coldstarter时间进行比较。还可以通过减法确定可能偏差,频率修正机制使用该偏差值作为修正值。因此,从coldstarter不仅使用接收到的周期号和时间值(与传输的时隙对应)来启动其时钟,还会修改其时基的频率,使它尽可能地接近主coldstarter的值。


评论


相关推荐

技术专区

关闭