Flexray协议理论基础

发布时间 2023-03-27 23:50:15作者: 张一默

一、前言

  去年由于工作原因停更了某C**N上Flexray的讲解,近期很多小伙伴私信询问停更Flexray技术文章的原因。。。呐~本次介绍将从Flexray的物理层、链路层、网络管理做一个较为全面的基础讲解,并对诊断部分做一些小的介绍,期间应该也会穿插一些各类协议的对比与个人见解欸。此次更新持续时间会很久,但接下来,让我们继续出发!!!希望大家偶尔点点赞给本白一点动力~感谢~

  FlexRay是一种用于汽车网络通信的高速、实时、分布式总线系统,由富士通、宝马、戴姆勒-克莱斯勒、福特、大众等知名企业共同研发而成。它在汽车电子领域中主要应用于安全系统、驾驶员辅助系统、传输系统和智能化座舱等方面。FlexRay采用了双线冗余方式进行数据传输,每条线都有自己的发送器和接收器,同时还提供了极低的时延和灵活的带宽分配机制。此外,FlexRay协议中还支持多种数据类型和丰富的拓扑结构,既可以作为总线系统使用,也可以作为星形或树形网络结构使用。

  当下国内来说,FlexRay协议只有吉利、集度汽车两家在用,另外工业领域、军事也有一席之地。针对汽车领域,FlexRay本身就是一种采用TDMA机制的关键实时系统,因此总线多用于底盘线控系统,用于安全相关数据的传输与保障性传输,比如车速、车辆模式、E2E机制的相关功能模块信号等。拿数年前某OEM的系统拓扑图就可以了解到:

  总的来说,FlexRay协议具备以下特点:

  • 高带宽:单通道最高10Mbit/s,双通道冗余最高20Mbit/s。
  • 时间确定性:建立于通信循环的周期性访问与传输。
  • 分布式同步:自动建立同步时基访问,精度1us。
  • 冗错传输:专用容错,包括单双通道冗余、安全可靠。
  • 灵活性:结构多样、支持时间触发与事件触发。
  • 成本昂贵:设计及验证周期长、硬件成本高昂。

二、物理层

就物理层而言,FlexRay与CAN并无二异,都是基于双绞线进行传输。由于FlexRay的高速率,可能在实际应用时我们需要采购带屏蔽层的双绞线进行物理链路的搭建。接下来我们仔细说说FlexRay的物理层特性。Flexray下文统一简称FR。

2.1 总线拓扑及电阻

  FR的总线拓扑与CAN协议的总线拓扑基本上保持一致,都是基于总线型环境进行传输,终端电阻(100Ω)也是同样布置在总线两端来抵抗反射波效应。

  这张拓扑图中,圆点Star为一个星状连接器(网关),电阻T与R分别布置于两端。从17485定义可以看出这种拓扑的结构可以是多变的,但是拓扑改变后每个ECU和网关的交互关系也需要重新制定以满足车辆功能:车辆的正常通信与PNC网络管理。这里其实卖了一个关子,Flexray实际上有两条路,虽然大家从图上看节点与节点之间只有一条物理通道,但其实是两对双绞线,一对用来正常通信,一对用来容错机制(备用通道)。此外,Star节点在车载网络中一般都是网关,除此之外也可能什么都没有,就是单纯将几根线接到一起(类似于集线器)。

  其实,目前车载网络中的Flexray的两条通道被修改为TX与RX,也就是说两条通道一个作为FR报文出口,一个作为FR入口。

2.2 总线电平与总线速率

  

  Flexray与CAN一样都是采用差分信号传输,其中BP可以理解为CANH,BM对应CANL。具体的电平为:

  • Bit1:BP-BM=2V,BP=3.5V,BM=1.5V
  • Bit0:BM-BP=2V,BM=3.5V,BP=1.5V

  Flexray的电平一共有四种,分别归类为不为0V的显性电平与为0V的隐性电平:

  • 低功耗电平:属于隐性电平,此时BM=BP=0V
  • 空闲电平:属于隐性电平,此时BM=BP=2.5V
  • Data1:属于显性电平,表示Bit1
  • Data0:属于显性电平,表示Bit0

    基于差分传输,Flexray的信号速率在0-10Mbits,当我们配置为10M传输时,标准的眼图应为:

2.3 控制器与帧编码(可忽略)

  这是本白当初学习协议时,自己理解的一点东西,因为网络博客/论文没有这部分介绍。错误之处还请指出:

  协议中规定了

三、链路层

四、网络管理

五、诊断