问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

FlexRay通信技术在汽车电子系统中的应用

创作时间:
作者:
@小白创作中心

FlexRay通信技术在汽车电子系统中的应用

引用
CSDN
1.
https://blog.csdn.net/csd_jerry/article/details/143373933

随着汽车电子技术的不断发展,FlexRay通信技术在汽车安全关键系统中的应用越来越广泛。本文将为您详细介绍FlexRay技术的原理、架构和应用,帮助您更好地理解这一重要的汽车电子技术。

一、FlexRay技术背景

在现代汽车中,电子辅助系统已经成为提高驾驶安全性和舒适性的关键。例如,电子访问系统可以自动检测电子钥匙,驾驶员无需手动使用钥匙即可方便地解锁和启动汽车。此外,巡航控制系统可以保持最低30 km/h的恒定行驶速度,让长途旅行更加舒适。

在这些系统中,应用程序不仅仅在一个ECU中,而是需要多个ECU在通信系统的帮助下协同工作。控制系统不再是单个ECU,而是逐渐成为新式安全系统和驾驶员辅助系统支柱的分布式系统。仅仅合并通信系统是不够的,还需要确保严格基于时间的因果关系链。重点是如何提供不受总线负载影响的确定性通信,保证等距信号传输,即时间触发(time-triggered)的实时通信系统。

在传统机械和液压系统占主导地位的领域,汽车电子化也并未避让。为了实现具有更大优势的驾驶员辅助功能,需要连接底盘系统的电子接口,主要是连接制动系统和转向系统。例如,线控刹车系统不仅可以单独地制动各个车轮,从而显著提高制动稳定性,还可以根据驾驶员的需要修改软件调整踏板特性和制动效果。线控转向系统则可以实现可变的转向助力和转向比,从而提高主动安全性。

然而,这些功能存在的安全风险不容忽视,一个系统组件中只要发生一个故障或错误就会造成严重后果。为保证线控系统的安全性,应从一开始就完善系统组件,努力避免出错。如果故障无法避免,则应采用容错来保护整个系统的特定功能。实现容错需要有额外的方法来补足出错位置本应实现的功能。这里需要区分信息冗余和结构冗余。这两种原理在确保数据通信可靠性方面都非常重要。

信息冗余是通过添加有用的信息作为元信息来实现的,例如用于错误检测和错误纠正。而结构冗余则是通过添加正常情况下不必要的组件扩展来实现的,这样,即使在通信相关组件(例如总线节点)中出现错误时,也可以维护系统规范定义的无故障应用功能。

为最大程度地降低安全风险,尤其是线控系统中的风险,通信通道的布局也采用冗余的方式,要求相同的信息必须通过两个通信通道传输。只有这样才能容忍一个通道出现故障。

二、FlexRay通信技术

FlexRay通信系统(FlexRay簇)由多个FlexRay节点和节点间互连的物理传输介质(FlexRay总线)构成。由于FlexRay通信不限于任何特定的物理拓扑,因此FlexRay簇可以基于各种物理拓扑,点对点连接、总线型拓扑、被动星型拓扑或主动星型拓扑均可。

为最大程度地降低故障风险,FlexRay规定了通信通道的冗余布局。两个通信通道的数据传输速率均可达到最高10 Mbit/s。此外也可使用冗余通道将数据传输速率增加至20 Mbit/s。每个FlexRay报文都可以单独选择利用冗余通道来提高容错或是提高传输速率。

FlexRay簇基于时间触发的通信架构,其核心是在分布式系统中静态、定时地触发动作。时间控制不仅可以实现确定性数据通信,还可以实现通信系统的可组合性以及容错性。

TDMA(Time Division Multiple Access,时分多路访问)用于实现时间触发的控制,这意味着FlexRay节点不像CAN节点那样以不受控制的方式访问总线来响应应用程序相关事件。FlexRay节点必须遵守精确定义的通信调度表,该调度表会在每个通信周期为每个FlexRay报文分配特定的时隙,规定所有FlexRay报文的发送时间。

被动拓扑

FlexRay通信不限于任何特定的物理拓扑,简单的点对点连接与总线型拓扑或星型拓扑一样可行。此外,系统设计人员可以选择单通道或双通道通信。

如果是点对点连接,则两个FlexRay节点直接互连。EPL(Electrical Physical Layer,电气物理层)规范规定线长不得超过24米。如果是三个FlexRay节点,节点间可以通过一个被动星型中心节点互连。此类拓扑称为被动星型。即使在此类物理拓扑中,任意两个FlexRay节点之间的线长也不得超过24米。此外,根据EPL规范,被动星型中最多连接22个FlexRay节点。

如果有四个或以上数量的FlexRay节点,系统设计人员可以选择被动星型拓扑和总线型拓扑。在总线型拓扑中,FlexRay节点通过单独的支线连接到总线。“Line Topology with Redundant Communication Channel”图显示了基于总线型拓扑的FlexRay簇,其中总线(即通信通道)设计为冗余的。这意味着可以同时通过通道A和通道B传输数据。

如果使用总线型拓扑,根据FlexRay规范,当FlexRay簇的通信通道的数据传输速率为10 Mbit/s时,任意两个FlexRay节点之间的最大距离不得超过24米。如果数据传输速率降低,则彼此相距最远的两个FlexRay节点之间的最大距离可以增大。根据FlexRay规范,一条线路最多连接22个FlexRay节点。

与被动星型拓扑一样,为保持信号完整性,总线型拓扑的支线数量和长度也会受到限制,尽管电磁兼容性方面可能会出现严重问题。

主动拓扑

作为被动星型拓扑的补充,FlexRay节点也可以通过主动星型耦合器进行互连:需要互连的FlexRay节点按星型排列,中心的被动星型节点替换为主动星型节点。

主动星型节点通过通信分支接收信号,然后将信号放大并发布到其他所有通信分支。除混合拓扑外,每个分支的末尾都有一个FlexRay节点。主动星型节点与任意FlexRay节点之间的最大距离不得超过24米。

主动星型拓扑的优点在于,可以通过断开主动星型节点与故障通信分支的连接来避免传播错误。此外,由于采用了合适的总线终端,可以扩展FlexRay簇并提供更稳定的电气条件。

设计主动星型拓扑时,必须考虑主动星型节点对信号传输造成的延迟。由于星型截断,传输每个FlexRay报文时,必须以TSS(Transmission Start Sequence,传输起始序列)开头。星型截断是主动星型节点进入工作状态所需的时间。根据FlexRay规范,这一时间不得超过450纳秒。

通过串联两个主动星型节点,可以将FlexRay簇的长度延长24米,通过串联主动星型节点最多可将FlexRay簇延长至72米。但为确保信号完整,实践中采用的最大网络长度为3x12米。

FlexRay节点

FlexRay节点是通过FlexRay接口连接到FlexRay总线的ECU。FlexRay接口由一个通信控制器(即FlexRay控制器)和一到两个总线驱动器(即FlexRay收发器)构成,总线驱动器的具体数量取决于通道数。

FlexRay控制器执行FlexRay规范中定义的通信协议,主要任务包括组帧、总线访问、错误检测和处理、同步、休眠和唤醒FlexRay总线,以及对TX报文进行编码和对RX报文进行解码。

FlexRay控制器可以是主机的外设,即集成式FlexRay控制器。集成式FlexRay控制器的优势在于,主机与FlexRay控制器之间的通信更加简单快捷,但缺点是缺乏灵活性。另外一种较灵活的方案就是与主机分离的独立式FlexRay控制器。

FlexRay收发器将FlexRay控制器耦合到物理传输介质。FlexRay收发器的主要任务是转换信号:发送信息时,FlexRay收发器将逻辑信号转换为物理电平发送到总线上;接收信息时,FlexRay收发器将接收到的物理电平转换为逻辑信号。

FlexRay控制器

FlexRay控制器(请访问动图FlexRay Node)减轻了主机的通信任务负担。FlexRay控制器通过CHI(Controller Host Interface,控制器-主机接口)连接到主机。CHI提供了用户可配置的TX和RX报文缓冲区。其中,RX报文缓冲区还配有接收过滤器。同时,CHI中还设有状态寄存器和控制寄存器。

FlexRay控制器中包含多个通信组件:用于总线访问的MAC(Media Access Control,介质访问控制子层)组件、对从MAC获取的字节进行编码的编码组件和对FlexRay收发器接收的逻辑位流进行解码的解码组件。

此外,FSP(The frame and symbol processing,帧和符号处理)组件检查是否符合FlexRay簇的通信周期,并检查RX报文是否存在传输错误。时钟同步处理组件用于同步FlexRay节点。唤醒和启动组件负责唤醒和启动。

FlexRay控制器可以根据通信进程进入八种不同的状态(请访问动图Controller States)。每个状态都有相应的通信行为,并由相应的通信组件控制。通信组件POC(Protocol Operation Control,协议运行控制)负责切换控制器状态。

FlexRay总线

FlexRay支持的数据传输速率高达10 Mbit/s,同时由于成本原因使用非屏蔽线,这对于确保电磁兼容性是一个巨大的挑战。因此,FlexRay物理层定义了一些机制,以增强对高频干扰场和ESD(Electrostatic Discharge,静电放电)的抗干扰性,并减少电磁噪声辐射。

FlexRay簇中的物理信号基于差分电压进行传输,可以抵消发动机、点火装置和开关触点产生的干扰电压。较低的差分电压也在一定程度上限制了电磁辐射(总线电平“Data_1”为2V,总线电平“Data_0”为-2V)。

由于采用差分信号传输,因此FlexRay总线由两条线路构成:BP(Bus Plus,总线正)和BM(Bus Minus,总线负)。将两条线路绞合可显著降低磁场,因此实践中通常使用双绞线,并且出于成本考虑通常不加屏蔽。

由于信号传播速度有限,反射现象的影响会随着数据传输速率和总线长度的增加而增强。在通信通道的末端设置终端电阻可防止FlexRay簇中发生反射。

FlexRay规范规定负载介于40Ω到55Ω之间,总线终端电阻必须介于80Ω到110Ω之间。因此,应使用特征阻抗介于80Ω到110Ω之间的电缆进行传输。

可以在FlexRay总线的末端设置分离总线终端,而不是在通信通道的各个末端设置单独的总线终端电阻。分离总线终端类似于低通滤波器,可以滤除高频信号的干扰。

通过交互式动画“Bus Termination”可以了解FlexRay总线的终端。

FlexRay总线电平

FlexRay簇中的物理信号基于差分信号传输。因此,传输介质(FlexRay总线)由BP和BM两根线构成。

EPL规范定义了四种总线电平,分别分配给隐性或显性总线状态。隐性总线状态的差分电压为0 V,显性总线状态的差分电压不为0 V。

空闲总线电平和空闲低功耗总线电平都是隐性的。空闲总线电平的特征在于两根线上的对地电压均为2.5V,因而差分电压为0V。空闲总线电平的有效范围介于1.8V至3.2V之间。

当所有FlexRay收发器均处于低功耗模式时,FlexRay总线上将出现空闲低功耗总线电平。除了两根线的差分电压为0V外,另一个特征是两根线的对地电压也为0V。此时,有效范围介于-0.2V至0.2V之间。

Data_1和Data_0总线电平都是显性总线电平。对于Data_1总线电平,BP上的电压为3.5V,BM上的电压为1.5V,因而产生的差分电压为2V。Data_1总线电平代表逻辑1。

对于Data_0总线电平,BP上的电压为1.5V,BM上的电压为3.5V,因而产生的差分电压为-2V。Data_0总线电平代表逻辑0。

图“FlexRay Bus Level”显示了总线状态和总线电平,以及发送方和接收方的相关电压阈值。

FlexRay总线接口

FlexRay控制器无法直接连接到物理传输介质,因为 FlexRay控制器采用二进制信号,而物理传输介质则使用差分信号传输。因此,需使用物理总线接口,即FlexRay收发器。

FlexRay收发器可以将从FlexRay控制器接收的逻辑信号流转换为物理差分信号流,同时,FlexRay收发器也可以将从FlexRay总线接收到的物理差分信号流转换为逻辑信号流。

除了作为FlexRay控制器接口,FlexRay收发器还有一个主机接口,该接口主要与STBN(待机)和EN(允许输入)控制线路有关。主机通过这两条控制线路来控制FlexRay收发器。进入四种不同的状态:正常、待机、睡眠或仅接收,其中后两个状态是可选状态。

FlexRay收发器的关键特征在于电磁兼容性特别强,但仍需使用干扰抑制线圈来进一步减少辐射:这在很大程度上可防止对其他电子系统的干扰。

通过交互式动画“FlexRay Node”可以了解FlexRay节点的布局。

由于LC抑制电路的抑制线圈阻抗值较高,因此在FlexRay收发器中使用该电路可抑制非对称电路可能产生的干扰电流。此外,由分离终端的耦合电容器以及干扰抑制线圈构成的低通滤波器可滤除高频干扰。

尽管电感更高的线圈的噪声抑制效果更强,但必须考虑到漏电感对信号完整性的影响。EPL规范为干扰抑制线圈规定了以下参数:线路电阻<2Ω;电感>50μH,漏电感<1μH。

LC电路有一个小缺点,即漏电感与耦合电容器组合会形成振荡电路,该振荡电路在FlexRay收发器的转换过程中会导致总线信号过冲。

总线监控器(Bus Guardian,BG)

FlexRay主要用于安全和时间要求严格的汽车应用。在FlexRay簇中使用静态通信周期,并将时隙分配给FlexRay节点,可实现平稳的确定性通信流。然而,有故障的FlexRay节点可能会在未分配给它们的时隙内进行未经授权的传输,从而破坏这种确定性通信。总线监控器则可以防止这种情况发生。

每一个FlexRay收发器都会配备一个总线监控器。只有在符合通信调度表的情况下,总线监控器才会允许FlexRay收发器将从FlexRay控制器接收的数据发送到总线上。

总线监控器的功能仅限于静态段的通信。在动态通信段内,没有此类保护,因为只有当事件发生时,FlexRay节点才会发送报文。只能完全允许FlexRay节点在动态通信段中发送,或者完全禁止其发送。

通过交互式动画“FlexRay Node with Bus Guardian”可以了解配备总线监控器的FlexRay节点的基本结构。

总线监控器必须知道通信调度表和FlexRay簇中的时间。在理想情况下,总线监控器不依赖FlexRay控制器生成的本地时基,而是独立于FlexRay控制器生成自己的时基。这是总线监控器确保FlexRay节点只在自己的时隙中发送数据的唯一方法,因为该方法除了检查时隙本身之外,还可以检测到FlexRay控制器时钟的所有错误。

但这意味着总线监控器必须配备与FlexRay控制器几乎相同的功能,使其具有相似的复杂度,这将增加FlexRay通信的成本。因此,尽管总线监控器可以确保时隙正确性,但至今为止还未在实际应用中使用过任何本地总线监控器。最早定义本地总线监控器相关功能的规范为2.0.9版,至今仍是一个初步性规范。

2.0.9版中的中央总线监控器规范也是初步性规范,并且尚未实现任何中央总线监控器。此处的概念涉及主动星型节点中的总线监控器。在通信周期内,当某个分支上连接的FlexRay节点具有发送权时,中央总线监控器会激活该通信分支,从而防止信号冲突。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号