FlexRay总线原理及应用

汽车ECU开发 2021-10-31 11:10
由于传统的CAN解决方案不能满足汽车线控系统(X-by-Wire) 的要求。于是在 2000 年 9 月 , 宝马和戴姆勒克莱斯勒联合飞利浦和摩托罗拉成立了 FlexRay 联盟。该联盟致力于推广 FlexRay 通信系统在全球的采用, 使其成为高级动力总成、 底盘、 线控系统的标准协议。其具体任务为制定 FlexRay 需求定义、 开发 FlexRay协议、 定义数据链路层、 提供支持 FlexRay 的控制器、 开发 FlexRay 物理层规范并实现基础解决方案。

1 FlexRay 特点

FlexRay 提供了传统车内通信协议不具备的大量特性, 包括:

(1)高传输速率:FlexRay 的每个信道具有 10Mbps 带宽。由于它不仅可以像 CAN 和 LIN 网络这样的单信道系统一般运行, 而且还可以作为一个双信道系统运行, 因此可以达到 20Mbps 的最大传输速率, 是当前 CAN 最高运行速率的 20 倍。

(2)同步时基:FlexRay 中使用的访问方法是基于同步时基的。该时基通过协议自动建立和同步,并提供给应用。时基的精确度介于 0.5μs 和 10μs 之间(通常为 1~2μs)。

(3)确定性:通信是在不断循环的周期中进行的, 特定消息在通信周期中拥有固定位置, 因此接收器已经提前知道了消息到达的时间。到达时间的临时偏差幅度会非常小, 并能得到保证。

(4)高容错:强大的错误检测性能和容错功能是 FlexRay 设计时考虑的重要方面。FlexRay 总线使用循环冗余校验 CRC(Cyclic redundancy cheek)来检验通信中的差错。FlexRay 总线通过双通道通信,能够提供冗余功能, 并且使用星型拓扑可完全解决容错问题。

(5)灵活性:在 FlexRay 协议的开发过程中, 关注的主要问题是灵活性, 反映在如下几个方面:①支持多种方式的网络拓扑结构;②消息长度可配置:可根据实际控制应用需求, 为其设定相应的数据载荷长度;③使用双通道拓扑时, 即可用以增加带宽, 也可用于传输冗余的消息;④周期内静态、 动态消息传输部分的时间都可随具体应用而定。

2 FlexRay 通讯协议和机制原理

2.1 节点架构

ECU(Electronic Control Unit), 即节点 node, 是接入车载网络中的独立完成相应功能的控制单元。主要由电源供给系统(Power Supply)、主处理器(Host)、固化 FlexRay 通信控制器(Communication Controller)、 可选的总线监控器(Bus Guardian) 和总线驱动器(Bus Driver) 组成, 如图所示。主处理器提供和产生数据, 并通过 FlexRay 通信控制器传送出去。其中 BD 和 BG 的个数对应于通道数,与通讯控制器和微处理器相连。总线监控逻辑必须独立于其他的通讯控制器。总线驱动器连接着通信控制器和总线, 或是连接总线监控器和总线。


节点的两个通讯过程为:
(1)发送数据:Host 将有效的数据送给 CC,在CC中进行编码,形成数据位流,通过BD发送到相应的通道上。
(2)接受数据:在某一时刻,由BD访问栈,将数据位流送到CC进行解码, 将数据部分由 CC传送给 Host。

2.2 拓扑结构

FlexRay 的拓扑主要分为 3 种:总线式、 星型、 总线星型混合型。

通常, FlexRay 节点可以支持两个信道, 因而可以分为单信道和双信道两种系统。在双信道系统中, 不是所有节点都必须与两个信道连接。

与总线结构相比, 星状结构的优势在于:它在接收器和发送器之间提供点到点连接。该优势在高传输速率和长传输线路中尤为明显。另一个重要优势是错误分离功能。例如, 如果信号传输使用的两条线路短路, 总线系统在该信道不能进行进一步的通信。如果使用星状结构, 则只有到连接短路的节点才会受到影响, 其它所有节点仍然可以继续与其它节点通信。


2.3 数据帧

一个数据帧由头段(Header Segment)、 有效负载段(Payload Segment) 和尾段(Trailer Segment)三部分组成。FlexRay 数据帧格式如图 2.5 所示。

(1)头段共由 5 个字节(40 位) 组成, 包括以下几位:
1.保留位(1 位):为日后的扩展做准备;
2.负载段前言指示(1 位):指明负载段的向量信息;
3.无效帧指示(1 位):指明该帧是否为无效帧;
4.同步帧指示(1 位):指明这是否为一个同步帧;
5.起始帧指示(1 位):指明该帧是否为起始帧;
6.帧 ID(11 位):用于识别该帧和该帧在时间触发帧中的优先级;
7.负载段长度(7 位):标注一帧中能传送的字数;
8.头部 CRC(11 位):用于检测传输中的错误;
9.周期计数(6 位):每一通信开始, 所有节点的周期计数器增 1。

(2)负载段是用于传送数据的部分, FlexRay 有效负载段包含 0~254 个字节数据。
对于动态帧, 有效负载段的前两个字节通常用作信息 ID, 接受节点根据接受的 ID 来判断是否为需要的数据帧。

对于静态帧, 有效负载段的前 13 个字节为网络管理向量(NM), 用于网络管理。
(3)尾段只含有 24 位的校验域, 包含了由头段与有效负载段计算得出的 CRC 校验码。计算 CRC时, 根据网络传输顺序将从保留位到负载段最后一位的数据放入 CRC 生成器进行计算。

2.4 编码与解码

编码的过程实际上就是对要发送的数据进行相应的处理“打包”的过程, 如加上各种校验位、 ID符等。编码与解码主要发生在通讯控制器与总线驱动器之间, 如图 2.6。


其中 RxD 位接受信号, TxD 为发送信号, TxEN 为通讯控制器请求数据信号。信息的二进制表示采用“不归零”码。对于双通道的节点, 每个通道上的编码与解码的过程是同时完成的。


TSS(传输启动序列):用于初始化节点和网络通信的对接, 为一小段低电平。
FSS(帧启动序列):用来补偿 TSS 后第一个字节可能出现的量化误差, 为一位的高电平BSS(字节启动序列):给接受节点提供数据定时信息, 由一位高电平和一位低电平组成。
FES(帧结束序列):用来标识数据帧最后一个字节序列结束, 由一位低电平和一位高电平组成。


DST(动态段尾部序列):仅用于动态帧传输, 用来表明动态段中传输时隙动作点的精确时间点,并防止接受段过早的检测到网络空闲状态。由一个长度可变的低电平和一位高电平组成。

将这些序列与有效位(从最大位 MSB 到最小位 LSB) 组装起来就是编码过程, 最终形成能够在网络传播的数据位流。

2.5 媒体访问方式

在媒体接入控制中, 一个重要的概念就是通信周期(Communication Cycle), 如图所示。一个通信周期由静态段(Static Segment)、 动态段(Dynamic Segment)、 特征窗(Symbol Window) 和网络空闲时间(Network Idle Time) 4 个部分组成。FlexRay 提供两种媒体接入时序的选择:静态段采用时分多址方式(TDMA), 由固定的时隙数组成, 不可修改, 且所有时隙的大小一致。用来传输周期性的数据信息;动态段采用灵活的时分多址(FTDMA), 由较小的时隙组成, 可根据需要扩展变动, 一般用于传输事件控制的消息。符号窗用于传输特征符号。网络空闲时间用于时钟同步处理。


仲裁层包含有仲裁网络, 它构成了 FlexRay 媒介仲裁的主干部分。在静态段中, 仲裁网络由叫做静态时槽(Static Slots)的连续时间间隔组成, 在动态段中, 由称为微型时槽(Minislots)的连续时间间隔组成。

仲裁网络层是建立在由宏节拍(Marcotick)组成的宏节拍层之上的。每个本地宏节拍的时间都是一个整数倍的微节拍的时间。已分配的宏节拍边缘叫做行动点(Action points)。行动点是一些特定的时刻, 在这些时刻上, 将会发生传输的开始和结束。
微节拍层是由微节拍组成的。微节拍是由通信控制器外部振荡器时钟刻度,选择性地使用分频器导出的时间单元。微节拍是控制器中的特殊单元, 它在不同的控制器中可能有不同的时间。节点内部的本地时间间隔尺寸就是微节拍。

2.6 时钟同步

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

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

FlexRay 使用一种综合方法, 同时实施相位纠正和频率纠正, 包含两个主要过程:时间同步校正机制(最大时间节拍生成 MTG)和时钟同步计算机制(时钟同步进程 CSP)。MTG 控制时隙初值, 即周期计数器和最大时钟节拍的计数器, 并对其进行修正。CSP 主要完成一个通信循环开始的初始化,测量并存储偏差值, 计算相位和频率的修正值。


相位修正仅在奇数通信周期的 NIT 段执行, 在下一个通信周期起始前结束。相位改变量指明了添加到 NIT 相位修正段的微节拍数目, 它的值由时钟同步算法决定, 并有可能为负数。相位改变量的计算发生在每个周期内, 但修正仅应用在奇数通信周期的末尾。

在频率纠正中, 需要使用两个通信循环的测量值。这些测量值之间的差值反映每个通信循环中的时钟偏差变化。它通常用于计算双循环结束时的纠正值。在整个后来的两个通信周期中, 都使用该纠正值。

2.7 唤醒与启动

为了节省资源, 部分节点处于不工作状态时, 进入“节电模式”。当这些节点需要再次工作时,就需要“唤醒”它们。主机可以在通信信道上传输唤醒模式, 当节点接收到唤醒特征符(Wakeup Symbol)后, 主机处理器和通信控制器才进行上电。

在通信启动执行之前, 整个簇需要被唤醒。启动节点工作需要在所有通道上同步执行。初始一个启动过程的行为被称为冷启动(Coldstart), 能启动一个起始帧的节点是有限的, 它们称作冷启动节点(Coldstart Node)。在至少由三个节点组成的簇中, 至少要有三个节点被配置为冷启动节点。冷启动节点中, 主动启动簇中消息的节点称之为主冷启动节点(Leading Coldstart Node), 其余的冷启动节点则称之为从冷启动节点(Following Coldstart Node)。

当节点被唤醒并完成初始化后, 它就可以在相应的主机控制命令发出之后进入启动程序。在非冷启动节点接收并识别至少两个相互通信的冷启动节点前, 非冷启动节点一直等待。同时, 冷启动节点监控两个通信通道, 确定是否有其他的节点正在进行传输。当检测到通信信道没有进行传输时,该节点就成为主冷启动节点。

冷启动尝试以冲突避免操作符(Collision Avoidance Symbol)开始, 只有传输 CAS 的冷启动节点能在最开始的四个周期传输帧。主冷启动节点先在两个通道上发送无格式的符号(一定数量的无效位),然后启动集群。在无格式符号发送完毕后, 主冷启动节点启动该节点的时钟, 进入第一个通信周期。从冷启动节点可以接收主冷启动节点发送的消息, 在识别消息后, 从冷启动节点便可确认主冷启动节点发送的消息的时槽位置。然后等待下一个通信周期, 当接收到第二个消息后, 从冷启动节点便开始启动它们的时钟。根据两条消息的时间间隔, 测量与计算频率修正值,尽可能地使从启动节点接近主冷启动节点的时间基准。为减少错误的出现, 冷启动节点在传输前需等待两个通信周期。在这期间, 其余的冷启动节点可继续接收从主冷启动节点及已完成集群冷启动节点的消息。

从第五个周期开始, 其余的冷启动节点开始传输起始帧。主冷启动节点接收第五与第六个周期内其余冷启动节点的所有消息, 并同时进行时钟修正。在这个过程中没有故障发生, 且冷启动节点至少收到一个有效的起始帧报文对, 主冷启动节点则完成启动阶段, 开始进入正常运行状态。

非冷启动节点首先监听通信信道, 并接收信道上传输的信息帧。若接收到信道上传输的信息帧,便开始尝试融入到启动节点。在接下来的两个周期内, 非冷启动节点要确定至少两个发送启动帧的冷启动节点, 并符合它们的进度。若无法满足条件, 非冷启动节点将退出启动程序。非冷启动节点接收到至少两个启动节点连续的两组双周期启动帧后, 开始进入正常运行状态。非冷启动节点进入正常工作状态, 比主冷启动节点晚两个周期。

如下图所示, 描述了正确的启动过程。其中, A 是主冷启动节点, B 是从冷启动节点, C是非冷启动节点。


3 FlexRay 的应用

3.1 FlexRay 总线在 BMW 车系中的应用

(1)FlexRay 总线应用概述 

在 BMW 车系 F01 / F02 车型中, 通过 FlexRay 总线系统以跨系统方式实现汽车行驶动态 管理系统和发动机管理系统的联网。同时, FlexRay 是行驶动态管理系统的综合性 主总线系统 (图3.1), 中央网关模块用于不同总线系统与 FlexRay 之间的连接 (图3.2)。

图3.1 FlexRay 是行驶动态管理系统的综合性主总线系统
图3.2 中央网关模块 (ZGM) 用于不同总线系统与 FlexRay 之间的连接

F01 / F02 车型 FlexRay 总线系统的拓扑结构如图3.3所示。根据车辆配置情况, ZGM 带有一个或两个星形连接器, 每个星形连接器都有 4 个总线驱动器。总线驱动器将控制单元 数据通过通信控制器传输给中央网关模块 (ZGM)。根据 FlexRay 控制单元的终端形式, 总 线驱动器通过两种方式与这些控制单元相连。

图3.3 F01 / F02 车型 FlexRay 总线系统的拓扑结构 

AL—主动转向系统 BD—总线驱动器 DME—数字式发动机电子系统 DSC—动态稳定控制系统 EDCSHL—左后 电子减振器控制系统卫星式控制单元 EDCSHR—右后电子减振器控制系统卫星式控制单元 EDCSVL—左前电子减 振器控制系统卫星式控制单元 EDCSVR—右前电子减振器控制系统卫星式控制单元 HSR—后桥侧偏角控制系统 ICM—集成式底盘管理系统 SZL—转向柱开关中心 VDM—垂直动态管理系统 ZGM—中央网关模块


(2)终端电阻的设置 

与大多数总线系统一样, 为了避免在导线上产生信号反射, FlexRay 上的数据导线两端 也使用了终端电阻 (作为总线终端)。这些终端电阻的阻值由数据传输速率和导线长度决 定。终端电阻位于各个控制单元内部。 

如果一个总线驱动器上仅连接一个控制单元 (例如 SZL 与总线驱动器 BDO 相连), 则 总线驱动器和控制单元的接口各有一个终端电阻 (图3.4)。中央网关模块的这种连接方式 称为 “终止节点终端”。

图3.4 终止节点终端内部的终端电阻 

如果控制单元上的接口不是物理终止节点 (例如总线驱动器 BD2 上的 IEC、 ICM 和 DME), 而是形成环路, 则每个总线路径端部的两个组件内部必须设置终端电阻(图3.5)。

图3.5 形成环路的 FlexRay 终端电阻的设置

这种连接方式既用于中央网关模块, 也用于一些控制单元。但是形成环路的控制单元还 使用一个 “非终止节点终端” 来获取数据。受这种终端形式的电阻/ 电容器电路所限, 无法 通过测量技术在控制单元插头上对其进行检查。通过测量 (无电流) FlexRay 总线确定导线 或终端电阻时, 必须使用车辆电路图。

来源:道客巴巴,侵删


推荐阅读

详解CANoe之CAPL编程

关于CAN时间同步的理解

关于cdd文件的配置

dbc文件的格式以及创建详解

大众ID.4X的ECU接口梳理

大众ID.4 X网络架构详解

学习笔记——NVM数据处理机制

学习笔记——AUTOSAR NVM基础知识

浅析特斯拉Model 3的热管理策略

基于UDS的Bootloder详解

关于整车上下电流程的理解

一文详解奥迪e-tron内部系统 |附下载

ID.3 和大众的电气化平台 |附下载

一文详解CAN总线错误帧|附下载

DoIP协议介绍,资料分享!

详解车载网络 OTA系统的开发|文末附下载

一文了解汽车嵌入式AUTOSAR架构|附下载

特斯拉Autopilot系统安全研究|附dbc下载

分享不易,恳请点个【在看】
汽车ECU开发 专注于汽车电子ECU软件开发,技术分享。
评论
  • 2024年是很平淡的一年,能保住饭碗就是万幸了,公司业绩不好,跳槽又不敢跳,还有一个原因就是老板对我们这些员工还是很好的,碍于人情也不能在公司困难时去雪上加霜。在工作其间遇到的大问题没有,小问题还是有不少,这里就举一两个来说一下。第一个就是,先看下下面的这个封装,你能猜出它的引脚间距是多少吗?这种排线座比较常规的是0.6mm间距(即排线是0.3mm间距)的,而这个规格也是我们用得最多的,所以我们按惯性思维来看的话,就会认为这个座子就是0.6mm间距的,这样往往就不会去细看规格书了,所以这次的运气
    wuliangu 2025-01-21 00:15 241浏览
  • 现在为止,我们已经完成了Purple Pi OH主板的串口调试和部分配件的连接,接下来,让我们趁热打铁,完成剩余配件的连接!注:配件连接前请断开主板所有供电,避免敏感电路损坏!1.1 耳机接口主板有一路OTMP 标准四节耳机座J6,具备进行音频输出及录音功能,接入耳机后声音将优先从耳机输出,如下图所示:1.21.2 相机接口MIPI CSI 接口如上图所示,支持OV5648 和OV8858 摄像头模组。接入摄像头模组后,使用系统相机软件打开相机拍照和录像,如下图所示:1.3 以太网接口主板有一路
    Industio_触觉智能 2025-01-20 11:04 173浏览
  • 临近春节,各方社交及应酬也变得多起来了,甚至一月份就排满了各式约见。有的是关系好的专业朋友的周末“恳谈会”,基本是关于2025年经济预判的话题,以及如何稳定工作等话题;但更多的预约是来自几个客户老板及副总裁们的见面,他们为今年的经济预判与企业发展焦虑而来。在聊天过程中,我发现今年的聊天有个很有意思的“点”,挺多人尤其关心我到底是怎么成长成现在的多领域风格的,还能掌握一些经济趋势的分析能力,到底学过哪些专业、在企业管过哪些具体事情?单单就这个一个月内,我就重复了数次“为什么”,再辅以我上次写的:《
    牛言喵语 2025-01-22 17:10 118浏览
  • 日前,商务部等部门办公厅印发《手机、平板、智能手表(手环)购新补贴实施方案》明确,个人消费者购买手机、平板、智能手表(手环)3类数码产品(单件销售价格不超过6000元),可享受购新补贴。每人每类可补贴1件,每件补贴比例为减去生产、流通环节及移动运营商所有优惠后最终销售价格的15%,每件最高不超过500元。目前,京东已经做好了承接手机、平板等数码产品国补优惠的落地准备工作,未来随着各省市关于手机、平板等品类的国补开启,京东将第一时间率先上线,满足消费者的换新升级需求。为保障国补的真实有效发放,基于
    华尔街科技眼 2025-01-17 10:44 225浏览
  • 数字隔离芯片是一种实现电气隔离功能的集成电路,在工业自动化、汽车电子、光伏储能与电力通信等领域的电气系统中发挥着至关重要的作用。其不仅可令高、低压系统之间相互独立,提高低压系统的抗干扰能力,同时还可确保高、低压系统之间的安全交互,使系统稳定工作,并避免操作者遭受来自高压系统的电击伤害。典型数字隔离芯片的简化原理图值得一提的是,数字隔离芯片历经多年发展,其应用范围已十分广泛,凡涉及到在高、低压系统之间进行信号传输的场景中基本都需要应用到此种芯片。那么,电气工程师在进行电路设计时到底该如何评估选择一
    华普微HOPERF 2025-01-20 16:50 88浏览
  • 嘿,咱来聊聊RISC-V MCU技术哈。 这RISC-V MCU技术呢,简单来说就是基于一个叫RISC-V的指令集架构做出的微控制器技术。RISC-V这个啊,2010年的时候,是加州大学伯克利分校的研究团队弄出来的,目的就是想搞个新的、开放的指令集架构,能跟上现代计算的需要。到了2015年,专门成立了个RISC-V基金会,让这个架构更标准,也更好地推广开了。这几年啊,这个RISC-V的生态系统发展得可快了,好多公司和机构都加入了RISC-V International,还推出了不少RISC-V
    丙丁先生 2025-01-21 12:10 267浏览
  •  万万没想到!科幻电影中的人形机器人,正在一步步走进我们人类的日常生活中来了。1月17日,乐聚将第100台全尺寸人形机器人交付北汽越野车,再次吹响了人形机器人疯狂进厂打工的号角。无独有尔,银河通用机器人作为一家成立不到两年时间的创业公司,在短短一年多时间内推出革命性的第一代产品Galbot G1,这是一款轮式、双臂、身体可折叠的人形机器人,得到了美团战投、经纬创投、IDG资本等众多投资方的认可。作为一家成立仅仅只有两年多时间的企业,智元机器人也把机器人从梦想带进了现实。2024年8月1
    刘旷 2025-01-21 11:15 588浏览
  •  光伏及击穿,都可视之为 复合的逆过程,但是,复合、光伏与击穿,不单是进程的方向相反,偏置状态也不一样,复合的工况,是正偏,光伏是零偏,击穿与漂移则是反偏,光伏的能源是外来的,而击穿消耗的是结区自身和电源的能量,漂移的载流子是 客席载流子,须借外延层才能引入,客席载流子 不受反偏PN结的空乏区阻碍,能漂不能漂,只取决于反偏PN结是否处于外延层的「射程」范围,而穿通的成因,则是因耗尽层的过度扩张,致使跟 端子、外延层或其他空乏区 碰触,当耗尽层融通,耐压 (反向阻断能力) 即告彻底丧失,
    MrCU204 2025-01-17 11:30 198浏览
  • 高速先生成员--黄刚这不马上就要过年了嘛,高速先生就不打算给大家上难度了,整一篇简单但很实用的文章给大伙瞧瞧好了。相信这个标题一出来,尤其对于PCB设计工程师来说,心就立马凉了半截。他们辛辛苦苦进行PCB的过孔设计,高速先生居然说设计多大的过孔他们不关心!另外估计这时候就跳出很多“挑刺”的粉丝了哈,因为翻看很多以往的文章,高速先生都表达了过孔孔径对高速性能的影响是很大的哦!咋滴,今天居然说孔径不关心了?别,别急哈,听高速先生在这篇文章中娓娓道来。首先还是要对各位设计工程师的设计表示肯定,毕竟像我
    一博科技 2025-01-21 16:17 126浏览
  •     IPC-2581是基于ODB++标准、结合PCB行业特点而指定的PCB加工文件规范。    IPC-2581旨在替代CAM350格式,成为PCB加工行业的新的工业规范。    有一些免费软件,可以查看(不可修改)IPC-2581数据文件。这些软件典型用途是工艺校核。    1. Vu2581        出品:Downstream     
    电子知识打边炉 2025-01-22 11:12 102浏览
  • Ubuntu20.04默认情况下为root账号自动登录,本文介绍如何取消root账号自动登录,改为通过输入账号密码登录,使用触觉智能EVB3568鸿蒙开发板演示,搭载瑞芯微RK3568,四核A55处理器,主频2.0Ghz,1T算力NPU;支持OpenHarmony5.0及Linux、Android等操作系统,接口丰富,开发评估快人一步!添加新账号1、使用adduser命令来添加新用户,用户名以industio为例,系统会提示设置密码以及其他信息,您可以根据需要填写或跳过,命令如下:root@id
    Industio_触觉智能 2025-01-17 14:14 135浏览
  • 本文介绍瑞芯微开发板/主板Android配置APK默认开启性能模式方法,开启性能模式后,APK的CPU使用优先级会有所提高。触觉智能RK3562开发板演示,搭载4核A53处理器,主频高达2.0GHz;内置独立1Tops算力NPU,可应用于物联网网关、平板电脑、智能家居、教育电子、工业显示与控制等行业。源码修改修改源码根目录下文件device/rockchip/rk3562/package_performance.xml并添加以下内容,注意"+"号为添加内容,"com.tencent.mm"为AP
    Industio_触觉智能 2025-01-17 14:09 176浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦