FlexRay设计解析.docx

上传人:b****5 文档编号:2772435 上传时间:2022-11-15 格式:DOCX 页数:10 大小:68.81KB
下载 相关 举报
FlexRay设计解析.docx_第1页
第1页 / 共10页
FlexRay设计解析.docx_第2页
第2页 / 共10页
FlexRay设计解析.docx_第3页
第3页 / 共10页
FlexRay设计解析.docx_第4页
第4页 / 共10页
FlexRay设计解析.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

FlexRay设计解析.docx

《FlexRay设计解析.docx》由会员分享,可在线阅读,更多相关《FlexRay设计解析.docx(10页珍藏版)》请在冰豆网上搜索。

FlexRay设计解析.docx

FlexRay设计解析

FlexRay设计、功能和应用

MathiasRausch博士,飞思卡尔半导体

在协议制定5年后,该协议规范(V2.1)的第二版也在2005年春季出版[1]。

第一批产品已于2003年推出,另外还将在今年推出更多产品。

由于新技术能实现经济高效的新应用的实施,整个行业对它产生了浓厚的兴趣。

在FlexRay功能的基础上,我们将在下文中探讨潜在的应用领域。

然后,我们将更加详细地介绍在FlexRay中使用的三种机制,并列举一系列示例来讨论FlexRay的几种应用。

最后,我们将讨论可行和不可行拓扑的示例,并简要论述唤醒集群的场景。

在本文的最后,我们将讨论如何计算最优的消息大小。

本文的主要目的是介绍FlexRay的相关知识,帮助用户了解FlexRay及其应用的潜力。

 返回

FlexRay概况

特性

FlexRay提供了传统车内通信协议所不具备的大量特性。

这些特性能为新型应用创造大量的机会。

这些基本特性包括:

∙2x10Mbit/s的数据速率

FlexRay支持两个通信信道:

每个信道的速度达到10Mbit/sec。

与CAN协议相比,取决于配置和比较模式的不同,它能将可用带宽提高10-40倍。

 

∙同步时基

FlexRay中使用的访问方法是基于同步时基的。

该时基通过协议自动建立和同步,以提供给应用。

时基的精确度介于0.5μs和10μs之间(通常为1--2μs)。

 

∙提前知道消息的延迟时间,保证偏差幅度

通信是在周期循环中进行的。

特定消息在通信循环中拥有固定位置,因此接收器已经提前知道了消息到达时间。

到达时间的临时偏差幅度会非常小,并能得到保证。

 

∙冗余和非冗余通信

为了增强系统的可用性,FlexRay提供了冗余传输消息的选项。

消息能够冗余传输,但并不是所有消息都必须冗余传输,否则会导致带宽的过多损失。

 

∙灵活性

在FlexRay开发过程中,主要重点是灵活性。

不仅提供消息冗余传输或非冗余传输两种选择,系统还可以进行优化,以提高可用性(静态带宽分配)或吞吐量(动态带宽分配)。

用户还可以扩展系统,而无需调整现有节点中的软件。

同时,它还支持总线或星状拓扑。

它提供了大量配置参数,可以支持对系统进行调整,以满足特定应用的需求,如通信循环的持续时间、消息长度等。

应用领域

2.1章节中列出的特性使它适合于大量应用领域:

∙CAN的替代技术

在数据速率要求超过CAN的应用中,人们现在同时使用了两条或多条CAN总线。

FlexRay是替代这种多总线解决方案的理想技术。

 

∙骨干

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

 

∙实时应用,分布式控制系统

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

 

∙以安全为导向的系统

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

在车内通信方面,FlexRay提供了一次"典型转移",从事件驱动通信(CAN)迁移到时间驱动通信。

这种迁移需要一定时间,因为它不仅会影响新技术的推出,还要求对涉及到的所有方面都进行重新培训。

一旦这个迁移步骤完成,就会发现更多应用领域。

协议分类

目前已经存在大量专门为汽车应用设计的各种协议。

图1进行了简要介绍。

历史最悠久、同时最广为人知的协议是CAN(大多数情况下是高速CAN:

CAN-C)。

该协议既部署在动力系统中,也部署在车身应用中(低速CAN最为普遍)。

它能够实现的最高数据速率为1Mbit/sec,但网络的传输速率通常低于500kbit/sec。

虽然LIN协议在几年前才制定,但其应用却已十分广泛。

该协议是为传输速率要求较低的经济高效的模块开发的。

它还特别部署在车身应用中,如座位和后视镜调整、电动窗等。

它可以达到20kbit/sec的速率,足以满足此类应用的需求。

图1:

汽车通信协议

D2B协议、MOST协议及其新版本协议是专为多媒体应用开发的,并且通常只在该领域使用。

该协议不适合部署到其它领域。

在速度方面,FlexRay的速度介于CAN协议和MOST协议之间,但是由于它具有容错功能,所以更为复杂。

 返回

功能

本章节将更详细地介绍FlexRay中使用的部分机制,包括访问方法、时钟同步和集群启动等。

访问方法

使用FlexRay的通信是在周期循环中进行的。

一个通信循环始终包括静态部分和网络闲置时间(NIT)。

协议内部流程需要网络闲置时间,并且,在这个时段内,集群的节点之间不进行任何通信(图2)。

通信循环的静态部分基于TDMA(时分多址)技术。

该技术将固定时槽分配给各个节点,在这个时槽内,允许节点传输数据。

所有时槽大小相同,并且是从1开始向上编号。

将1个或1个以上时槽固定分配给每个节点。

在运行期间,该时槽的分配不能修改。

图2:

带静态和动态段的通信循环

除了静态部分以外,通信循环还选择性地组成动态部分。

所谓的"小时槽法"用来访问动态部分的通信媒介。

呼出消息永远分配给动态时槽。

与大小都相同、始终用于传输的静态时槽相反,只要时槽分配给了节点,动态部分就只能在需要时才进行传输。

因此,动态部分的可用带宽是动态分配的。

如果消息号码(ID)和时槽号码对应,带有待发呼出消息的节点就会进行传输。

如果没有节点传输,所有节点就会等候,等待的时间长度正是时槽的长度,然后它们的时槽读数也会增加。

在时槽读数增加以后,所有节点都将检查该时槽号码是否与呼出消息对应。

如果两者匹配,该节点将发送消息。

所有节点接受这条消息,并且一直等到它们完全接收了这条消息后再增加时槽读数。

这一过程将会持续,直至到达动态部分。

如果在循环中,没有或者只有少数节点传输消息,在动态部分的结尾,就会达到更高的时槽数量。

如果有大量节点进行传输,则到达的时槽数量就比较少。

因此,拥有较高编号的(即优先权较低)呼出消息的节点可能在一个循环中传输,而不在另一个循环中传输,具体取决于动态部分在其之前已经传输的节点的数量。

要确定消息已经传输,用户必须在静态部分发送该消息,或者必须将它分配给动态部分中的较低消息编号(即优先权较高)。

时钟同步

如果使用基于TDMA的通信协议,则通信媒介的访问在时间域中控制。

因此,每个节点都必须保持时间同步,这一点非常重要。

所有节点的时钟必须同步,并且最大偏差必须在限定范围内,这是实现时钟同步的前提条件。

最大偏差称为精确。

图3:

时钟同步机制

时钟偏差可以分为相位和频率偏差。

相位偏差是两个时钟在某一特定时间的绝对差别。

频率偏差是相位偏差随着时间推移的变化。

它反映了相位偏差在特定时间的变化。

有多种方法可以通过相位纠正和频率纠正实施时钟同步。

FlexRay使用了一种综合方法,同时实施相位纠正和频率纠正。

时钟同步是一个控制环路,与其它控制环路一样,它也由测量、计算和设定功能组成。

要测量每个时钟与其它时钟的偏差,所有节点都要在接收期间测量消息的到达时间。

通过静态部分的定时机制,每个节点都知道消息应当何时到达。

如果消息比预计时间早到或晚到,将能测量得出实际时间与预定时间之间的偏差。

该偏差代表了传输和接收节点之间的时钟偏差。

借助获得的测量值,可用容错平均算法计算出每个节点的纠正值[2]。

在频率纠正中,需要使用两个通信循环的测量值。

这些测量值之间的差值反映每个通信循环中的时钟偏差变化。

它通常用于计算双循环结束时的纠正值(见上文提及的方法)。

在整个后来的双循环中,都使用该纠正值。

相位纠正值的计算只需一个循环周期的测量值,一旦接收了所有测量值,即可开始实施计算,并且它必须在开始相位纠正前完成。

在通信循环末尾,网络闲置时间(NIT)的一部分被保留,用于相位纠正。

相位纠正要相隔一个循环实施,避免影响时钟频率偏差的确定。

图3概述了时钟同步的相位,以及不同访问方法的分配。

如需了解时钟同步机制的详细消息,请参见[3]。

集群启动

与许多技术流程或程序一样,FlexRay中的启动阶段同样也是最复杂的操作阶段之一。

这是因为FlexRay中的通信基于同步时钟体制,但在启动阶段,这种体制还未建立。

由于具备容错功能,FlexRay中不存在主时钟,因而时基不是由主时钟定义的。

启动集群时,将会启动"coldstarter"程序,该程序始终会出现在多个实例中。

首先,启动传输消息的coldstarter被称为"引导coldstarter",其它coldstarter则被称为"后续coldstarter"。

一旦节点被唤醒并完成初始化,它就能在发出相应的主机命令后进入启动流程。

不属于coldstarter的节点会等候,直到它们至少识别到两个相互通讯的coldstarter为止。

coldstarter自己会监控两个通信循环的传输信道,以确定其它节点是否正在传输。

如果没有,该节点会开始进行传输,从而成为主要coldstarter。

主要coldstarter首先会传输无格式符号,向其它节点说明:

目前它正在启动该集群,作为主要coldstarter。

在传输符号后(符号即特定数量的无效位),该节点开始启动它自己的时钟,并且开始第一个通信循环。

根据预先定义的集群范围的通信机制,主要coldstarter将在其分配的时槽中传输,与其它所有节点一样,它将只在一个时槽的启动阶段传输。

主要coldstarter发送的消息可由后续coldstarter接收。

在消息身份识别号码(ID)(该号码与时槽编号相同)的帮助下,接收器能够确定发送器位于哪个时槽。

传输节点的当前循环编号附带在每条消息中发送。

在接收第一条消息后,其它节点等待在下一个通信循环中发送的第二条消息。

一旦收到第二条消息,后续coldstarter将开始启动他们的时钟,该时钟由循环编号和接收消息的时槽编号进行初始化。

这样就可以为传输器和接收器之间的同步时间操作奠定基础。

此外,接收节点会测量第一条消息和第二条消息之间的时间,该时间与通信循环的循环时间对应。

测量出的时间与本地coldstarter时间进行比较。

还可以通过减法确定可能偏差,频率纠正机制使用该偏差值作为纠正值。

因此,下列coldstarter不能使用接收到的循环号码和时间值(与传输的时间槽对应)来启动时钟,但是它会修改其时基的频率,使它尽可能地接近主要coldstarter的值。

图4:

FlexRay集群启动

原则上,在启动时,后续coldstarter的时钟会与主要coldstarter时钟同步。

为了减少可能的错误,下列coldstarter在传输前必须等待两个循环。

在这两个循环之间,下列coldstarter继续接受领先coldstarter的消息和其它已集成了下列coldstarter的消息。

从接收的消息看,接收时间将与本地coldstarter进行比较。

预测的和规定的接收之间的偏差需要测量出来,纠正数值则按照3.2介绍的时钟同步算法进行计算和应用。

如果计算出的纠正值没有超过特定的阈值,节点就可以从下一个循环开始传输。

它已经成功完成了启动阶段,并且现在正在"正常运行"(正常的通信状态)。

在确定和验证计算出的纠正值后,主要coldstarter会收到来自两个循环中的后续coldstarter的消息,完成启动阶段。

图4对主要coldstarter和后续coldstarter的启动阶段进行了介绍。

 返回

应用

可行和不可行的拓扑

FlexRay可以实现大量不同拓扑的应用。

通常,FlexRay节点可以支持两个信道,因而可以开发单信道和双信道两种系统。

在双信道系统中,不是所有节点都必须与两个信道连接。

图5和图6的示例显示了一个系统,其中的节点1、3、5都与两个信道连接,而节点2和4都只与一个信道连接。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1