汽车总线之----FlexRay总线

Introduction

随着汽车智能化发展,车辆开发的ECU数量不断增加,人们对汽车系统的各个性能方面提出了更高的需求,比如更多的数据交互,更高的传输带宽等。现如今人们广泛接受电子功能来提高驾驶安全性,像ABS防抱死系统,ASR驱动防滑系统,ESP电子稳定系统,但这类辅助驾驶功能涉及汽车主动被动安全领域,对汽车通信系统的可靠性,安全性和实时性提出了非常严格的需求,比如动力总成和底盘系统对数据传输的要求要达到2M/S,而当时传统的CAN总线已满足不了这些需求,而这些需求主要体现在以下四个方面,分别是通信速率(Transmission rate),可扩展性(Extendability),物理层(Physical Layer)及传输可靠性(Transmission reliability),才能适用于汽车主动被动安全功能领域。可扩展性呢体现在车上,增加减少节点时,不影响整车的效果,另外通信的物理连接保持简便并具备鲁棒性,同时通信系统需具备其容错性确定性,通过冗余备份等技术减少或避免出错,基于这些新的需求,因此需要一种具有可组合性的通信系统,其核心属性就是保证具有确定性和容错性的数据通信,不受总线负载的影响。
在这里插入图片描述

我们先看一下通信传输的方式,通信传输可以先结合实际生活的例子来理解,我们可以把每个人理解成是一条报文,报文发送到目标地址,相当于人们到达目的地,那人们出行可以有哪几种选择方式呢,主要像有打车,高铁飞机等,其中我们可以根据控制方式的不同分为两大类,第一类事件触发,比如我想去一个地方,通过打车软件打车,打车行为呢相当于触发事件,优点在于时间自由按需触发,缺点是每个人的打车时间是随机的,可能造成部分时段向早晚高峰时期路况拥堵,人们就无法及时到达目的地址,或想半夜时段或郊区地段,司机不能及时响应,其所花费的时间是不可预测的,第二类时间触发,根据时间表来执行,像飞机的航班表,高铁的时刻表,到点起飞或行驶,优点在于所花费的时间是可预测的,不会因交通拥堵而造成延迟的情况,缺点是不合理的,交通资源分配,像交通工具的早晚班机或特殊时期,比如目前的疫情期间,严格的人员流动限制,从而造成交通资源的浪费,
在这里插入图片描述

了解了两种通信传输的类型之后,包括CSMATDMA访问方式,其中CSMA全称载波监听多路访问方式,基于事件触发,事件出发后,节点尝试往总线上发送报文,比如传统汽车总线CAN就是此类访问方式。TDMA 时分多路访问方式,相当于发送节点的时间都是确定好的,按照时间片为单位划分并周期性发送,比如图中通信时间轴上以时间片段t cycle为单位,逐期发送,一个t cycle可分为四块,每个时间片段里指定一条报文发送,可以理解成高铁的一节车厢,车厢内的座位都是确定好的,每位上车乘客对应自己的座位并前往目的地,FlexRay总线就是基于时间触发的TDMA访问方式。
在这里插入图片描述

在传统CAN总线基础上,为满足更高的需求,因此有宝马,戴姆勒等oem和博士,恩智浦等供应商共同成立了FlexRay联盟,该联盟已在开发出具有确定性和容错性的FlexRay通信标准,于2005年推出FlexRay 2.1版本,随后2009年推出FlexRay为3.0版本,并提交为iso标准,iso 17458,该协议描述了FlexRay及其物理层和相应的一致性测试。
在这里插入图片描述

FlexRay和CAN一样均参考了iso模型,并定义了物理层和数据链路层规范,其中FlexRay的协议规范定义数据链路层,电气物理层规范定义物理层,另外FlexRay不同层对应的物理器件分别为数据链路层对应通信控制器,简称CC,CC主要任务包括组织总线访问错误检测,对收发报文的解码编码操作和同步总线,物理层对应总线驱动器简称BD, BD主要进行信号转换,包括模数数模转换,目前FlexRay规范仅涵盖iso模型的前两层及物理层和数据链路层,高层协议则由oto萨联盟和assum组织制定。
在这里插入图片描述

FlexRay物理层

首先介绍下拓扑结构,FlexRay总线支持多种不同类型的拓扑结构,即不限于任何特定的物理拓扑,先从最简单的拓扑说起,及点对点方式(peer-to-peer),其中FlexRay跟CAN一样,节点1通过两根信号线Bus Plus(BP)和Bus Minus(BM)与节点2连接,两个节点终端分别接了终端电阻阻值范围是80~110欧姆其作用过滤高频信号的干扰,另外任意两个节点之间的线长不得超过24米,其目的是为了保持信号完整性,因为随信号长度增加,会导致信号衰减,失真等信号质量变差的情况,从而影响节点通信,当FlexRay网络中存在四个或以上节点时,拓扑结构可选择被动星型总线型两种拓扑结构中,均在两个相距最远的节点添加终端电阻,并限制节点间的线长不得超过24米
在这里插入图片描述

为避免或减少影响通信情况的出现,FlexRay节点可通过采用主动星型耦合器互联的主动星型拓扑结构,其被动星型节点替换为主动星型节点,该节点与其他ECU节点连接处均添加终端电阻,通过主动星型拓扑结构可提高信号质量以及补偿信号失真,但同时成本价格也会较贵。
在这里插入图片描述

而在实际项目中,FlexRay的拓扑结构不会单独仅应用总线型,被动星型,主动星型的某一种,而是通过以组合的形式使用,即混合拓扑结构应用
在这里插入图片描述

FlexRay的数据转换,其物理信号基于差分信号传输,前面也提到FlexRay节点是通过BP BM进行数据通信,电气物理层规范定义了四种总线电平,分别为总线空闲电平总线空闲低功耗电平Data_1Data_0电平,其中总线空闲和空闲低功耗的差分电平为零,即隐性电平,两者区别在于空闲低功耗的bp bm电平值均为零,Data_0和Data_1总线电平为显性电平,当节点发送数据至总线上时,Data_0转化为物理电平值,bp 1.5v,bm 3.5v,Data_1转换为物理电平值,bp 3.5v,bm 1.5v,当节点采集总线上数据时,同样也是通过bp bm采集总线物理电平,并求取bp减bm的差分电压值,当差分电压值范围大于600毫伏时,转化为Data_1,当差分电压值范围小于负的600毫伏时,转化为Data_0。
在这里插入图片描述

介绍下FlexRay节点的网络组件,包括μC主机CC通信控制器以及BD总线驱动,其中CC服务mc间数据通信包括组织总线访问和收发报文,BD主要任务是进行信号转换及物理电平和逻辑信号间转换,此外BD除了作为CC接口外,还有一个mc主机接口,该接口主要跟io控制信号有关,除了基本结构外,FlexRay还存在扩展结构,即在CC和BD间添加了总线监控器,简称bg,其作用是为了防止故障节点在未分配给他们的实习内,出现未经授权的传输,简单的说就是防止故障节点在错误时间访问总线。
在这里插入图片描述

FlexRay 通信周期

FlexRay以通信周期为一个循环发送指定的数据,其中一个通讯周期中又划分为64cycle,cycle从零开始计数至63,每个cycle中可包含以下四个时间段,静态段动态段符号窗口及网络空闲时段。静态段用于确定性的传输报文,动态段用于传输事件驱动的报文,符号窗口传输特殊符号,网络空闲时段,即NIT段期间不会进行数据通信,需要注意的是,在一个周期中,仅静态段和NIT段是必须的,而动态段符号窗口是可选的。因此通讯周期的组合形式一共有四种,分别为静态段加网络空闲段,静态段加动态段加网络空弦段,静态段加符号窗口加网络空闲段,以及四个时段均包含,
在这里插入图片描述

首先静态段,静态段基于我们前面提到的TDMA 时分多路访问方式,通信提供确定性的数据传输,发送节点被指定分配到特定的静态slot中,发送静态帧在静态段中可划分为若干个等长的静态slot,可平均划分为2~1023个,静态slot的个数长度,分别由全局变量及number of static slots和gd static slot定义,另外静态段中的静态sd从一开始计数sd范围为2~1023之间,一条静态帧分为三部分,帧头有效负载帧位在静态段中,每条静态报文的长度均是固定等长的静态帧,尾部是CID通信空闲界定符,用于表示静态帧的结束,通俗的理解就是,静态段可以想象成一节火车车厢划分为若干个静态slot,静态slot相当于车厢的座位,座位大小都是相同的,并没有区别对待,每个座位分配给不同的乘客,静态报文可以理解成乘客静态段,发送静态报文则为乘客乘坐火车的过程。
在这里插入图片描述

接着动态段,动态段位于静态段之后,用于传输事件驱动报文及动态帧,动态段可分为若干个动态slot,由于动态段基于事件触发,主要用于刷写诊断功能,故长度不一,所以用于存放动态段的动态slot也均不相同,其中每个动态slot最小单位为一个动态mini slot,动态slot可由一到多个mini组成,在动态段中最多可包含2047个动态slot,且最多可划分为7986个mini slot,另外动态mini slot的个数和长度分别由全局变量,the number of mini slot和gd mini slot决定,通俗的理解就是动态段可以想象成火车的货物车厢用于运输货物,但货物的大小不一,动态真相当于货物,动态帧长度越长,所占用的车厢空间就越长,即动态slot越长,要确保放下最大的货物,即动态帧,所以要事先规定好车厢的大小,也就是动态段的长度。
在这里插入图片描述

然后FlexRay帧的符号窗口段和网络空闲段,FlexRay符号窗口的长度是固定的,用于传输符号,而非传输报文,数据符号包括三种类型,分别为冲突避免符号,用于表示第一个通讯周期的开始介质,测试符号用于测试总线监控器,唤醒符号用于唤醒FlexRay,网络通信中期的末尾部分是网络空闲段简称NIT段,用于同步本地时钟,另外NIT段期间不进行数据通信。
在这里插入图片描述

FlexRay 帧结构

FlexRay帧的组成部分,分为帧头,有效负载及帧尾,其中帧头存放FlexRay帧的特定属性信息,一共40位,帧尾存放CRC校验求得的校验结果有效负载Payload最多可支持254个字节的数据内容。首先我们看一下帧头部分,帧头的首位是保留位,默认发送零,第二到第五位是指示位,目的是更加精确的指示报文,根据动态静态报文类型的不同,其含义也随之变化,然后第三位空针指示位用于指示披露的部分是正常的还是无效的,第四位及第五位分别是同步帧指十位和启动针指十位,用于判断该针是否为同步帧。
在这里插入图片描述

启动针标示位后面是Frame ID即表示报文id一共11位Payload Length为七位用于表示有效负载的大小,其范围大小是0~127,简单的通过payload length表示报文长度是不可取的,所以FlexRay规定用word为单位表示有效负载的大小,word为单位,1word等于2Byte,127word等于254Byte。Byte后面紧跟着是11位的Header CRC,即帧头CRC序列,只对帧头的同步帧指示位,启动针指示位,Frame ID, Payload length进行CRC校验,帧头的末尾是Cycle Count即周期计数器,由六个位构成,表示报文发送的周期数,范围大小为0~63。
在这里插入图片描述

一条FlexRay报文Payload的部分最多传输254个数据字节,数据字节命名从Data_0开始,最大数据字节为Data_253,通过设置帧头的有效负载指示位,在静态动态报文中所表现的作用也是不一样的,在静态报文中,通过设置有效负载指示位,可以将披露的部分前12个字节作为传输网络管理向量,the network management vector,网络管理向量可用于在FlexRay 网络中实现网络管理,而动态报文中设置有效负载指示位,表示payload的部分,前两个字节为报文标识符,即message id,其作用是为了更加精确的指示,有效负载可在接收过滤器中用于实现更精细的区分依据。
在这里插入图片描述

最后FlexRay中尾部分是CRC段,一共24位,使用CRC循环冗余校验保护有效负载,校验范围是FlexRay帧头加有效负载区域,CC 即 FlexRay 通信控制器,会根据帧头,有效负载以及FlexRay规定生成的多项式,来计算CRC序列,求得checksum,并在FlexRay报文发送前与接收后将其作为帧尾追加到帧头和有效负载之后。
在这里插入图片描述

FlexRay 总线访问

FlexRay总线访问,包括总线访问机制介绍,来自通信调度表,图示为一个FlexRay总线拓扑结构,FlexRay可支持单双通道,即Channel a和Channel b,其中节点K节点L均连接两路通道,节点M节点N节点连接Channel a单通道,节点O连接Channel b单通道,我们以该拓扑结构为例,介绍FlexRay在不同数据时段,即静态段,动态段的总线访问机制,
在这里插入图片描述

首先介绍FlexRay ,图示将静态段分为三个静态slot,静态slot id为1,2,3,每个静态slot分配给特定的节点。其中 slot1 分配给节点K,slot2分配给节点M,slot3分配给节点L,节点K同时连接Channel a和Channel b,并在静态 slot1 中分配静态帧b,节点M仅连接单通道Channel a,并在静态slot 2中分配静态帧c,节点L同时连接Channel a和Channel b,分别在两路通道分配静态帧a和d。如果想提高FlexRay的容错性,可以让发送节点在同一静态slot内的两路通道发送两条相同的静态帧,如节点K如果想提高FlexRay的传输带宽,可以让发送节点在同静态slot中发送两条不同的静态帧,如节电l通信速率可实现从10M/S增至20M/S以上,为静态段的总线访问方式。
在这里插入图片描述

动态段总线访问方式,其特点是发送节点给予事件驱动发送动态帧,且动态针长度不一。从图示了解到,动态段报文通信较静态段更加灵活,根据事件触发,尝试在总线上发送动态帧,Channel a和Channel b通道相互独立,所以在不同通道的相同slot内可对应不同的发送节点发送动态帧,比如动态slot4 中Channel a节点L发送动态帧n,而Channel b上节点O发送动态帧m。另外存在事件驱动后不能发送动态帧的情况,比如动态帧p,即节点M尝试在动态slot7发送报文,但明显动态段剩余的部分不够容纳该动态帧的长度,所以这条报文不能在该周期内发送,这里就涉及到最迟发送时间的概念。什么是最迟发送时间,它是针对每个发送节点,用于在动态slot内是否允许发送节点发送报文,如果发送节点因事件触发,尝试在动态段发送动态帧时,则需考虑该节点的最迟发送时间,仅当此时动态minislot的id小于或等于支持最迟发送时间点,才允许拥有传输权限。比如说节点M设定它最迟可以在minislot 8 的位置发送,若他尝试在minislot 9的位置发送时,则无法成功,只能等待下一个cycle发送。
在这里插入图片描述

根据上述FlexRay总线访问的特点,一个cycle内通过调度表的形式通信,依据调度表的内容分为静态段,动态段不同的slotslot分配给指定的发送节点,发送节点发送报文帧,严格按照调度表发送数据,但实际情况中,为了更加有效地利用带宽,FlexRay可能在不同的cycle中通过复核调度表发送报文,通过这种复合调度表的方式,将更加有效地利用FlexRay带宽,增加了数据吞吐量,并允许每个时间段传输更多的信号值。例如图示,静态段的静态slot 2分配给发送节点M该节点在Channel a通道中,根据复合调度表在不同的cycle中发送不同的静态帧。另外复合调度表对静态段和动态段的影响作用也是不一样的。
在这里插入图片描述

静态段内,每个cycle的相同slot中可发送同一节点的不同静态帧,如图所示,Channel a中静态段slot2分配给发送节点M发送静态帧,第n至n+2的三个cycle中,分别发送静态帧c,静态帧x,和静态帧y。
在这里插入图片描述

而动态段可实现的复合调度表会有所不同,动态段总线访问方式会更加灵活,每个cycle的相同slot中可分配给不同节点来发送不同的动态帧,动态帧的长度也可以不一样,如图所示,动态slot 7在第n至n+2的三个cycle中分配给发送节点L,发送节点M,以动态帧u,动态帧t,以及动态帧p的顺序发送。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/882606.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

git push出错Push cannot contain secrets

报错原因: 因为你的代码里面包含了github token明文信息,github担心你的token会泄漏,所以就不允许你推送这些内容。 解决办法: 需要先把代码里面的github token信息删除掉,并且删掉之前的历史提交,只要包…

关于ShuffleNetV1中的channel shuffle操作【代码分析】

1. 官方给出的代码 旷视科技在自己的开源GitHub上给出的channel shuffle相关代码如下图所示: 分析上图中的代码,旷视科技将channel shuffle这个操作视为一个函数,函数传入的参数是输入张量x,x的shape为(batchsize, num_ch…

Ceph 基本架构(一)

Ceph架构图 Ceph整体组成 Ceph 是一个开源的分布式存储系统,设计用于提供优秀的性能、可靠性和可扩展性。Ceph 的架构主要由几个核心组件构成,每个组件都有特定的功能,共同协作以实现高可用性和数据的一致性。 以下是 Ceph 的整体架构及其…

大数据处理从零开始————3.Hadoop伪分布式和分布式搭建

1.伪分布式搭建(不会用,了解就好不需要搭建) 这里接上一节。 1.1 伪分布式集群概述 伪分布式集群就是只有⼀个服务器节点的分布式集群。在这种模式中,我们也是只需要⼀台机器。 但与本地模式不同,伪分布式采⽤了分布式…

新手操作指引:快速上手腾讯混元大模型

引言 腾讯混元大模型是一款功能强大的AI工具,适用于文本生成、图像创作和视频生成等多种应用场景。对于新手用户,快速上手并充分利用这一工具可能会有些挑战。本文将提供详细的新手操作指引,帮助您轻松开始使用腾讯混元大模型。 步骤一&…

计算机毕业设计 基于Python内蒙古旅游景点数据分析系统 Django+Vue 前后端分离 附源码 讲解 文档

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点…

006——队列

目录 队列: 单端队列: 存储结构: 顺序队列 思路1:r指针指向尾元素的下一个位置 思路2:r指针指向真正的尾元素 如何解决假溢出的问题? 链式队列 双端队列 存储方式: 顺式存储 代码案例…

Redis基础数据结构之 Sorted Set 有序集合 源码解读

目录标题 Sorted Set 是什么?Sorted Set 数据结构跳表(skiplist)跳表节点的结构定义跳表的定义跳表节点查询层数设置 Sorted Set 基本操作 Sorted Set 是什么? 有序集合(Sorted Set)是 Redis 中一种重要的数据类型,…

国央企如何完善黑名单排查体系?

国央企完善黑名单排查体系的关键在于建立健全的供应商管理机制、风险评估体系和信息共享平台。以下是一些具体措施: 1.建立黑名单库:国央企可以依据外部黑名单数据(如政府监管部门、行业协会、第三方征信机构公布的黑名单)和内部…

瑞芯微RK3588开发板Linux系统添加自启动命令的方法,深圳触觉智能Arm嵌入式鸿蒙硬件方案商

本文适用于触觉智能所有Linux系统的开发板、主板添加自启动命令的方法,本次使用了触觉智能的EVB3588开发板演示,搭载了瑞芯微RK3588旗舰芯片。 该开发板为核心板加底板设计,为工业场景设计研发的模块化产品,10年以上稳定供货,帮助…

免费分享:全月地质图

数据详情 世界第一幅1∶250万月球全月地质图 数据属性 数据名称:月球1:250万全月地质图 数据时间:- 空间位置:月球 数据格式:jpg 空间分辨率:1:250万 坐标系:- 下载方法 打开数字地球开放平台网站&…

跨境商家如何在1688找优质供应商货源,新手卖家必看

选产品和找供应,是每个跨境人不可避免的,但是盲目的选品,无疑是大海捞针。如果你选择的商品没有固定的供应商,要上1688找又得花不少时间,店雷达选品工具就能够帮助我们解决这个问题。据我所知,很多跨境同行…

STM32上实现FFT算法精准测量正弦波信号的幅值、频率和相位差(标准库)

在研究声音、电力或任何形式的波形时,我们常常需要穿过表面看本质。FFT(快速傅里叶变换)就是这样一种强大的工具,它能够揭示隐藏在复杂信号背后的频率成分。本文将带你走进FFT的世界,了解它是如何将时域信号转化为频域…

最新绿豆影视系统 /反编译版源码/PC+WAP+APP端 /附搭建教程+软件

源码简介: 最新的绿豆影视系统5.1.8,这可是个反编译版的源码哦!它不仅支持PC端、WAP端,还有APP端,一应俱全。而且附上了搭建教程和软件,安卓和苹果双端都能用,实用方便! 优化内容&…

设计模式 组合模式(Composite Pattern)

组合模式简绍 组合模式(Composite Pattern)是一种结构型设计模式,它允许你将对象组合成树形结构来表示“部分-整体”的层次结构。组合模式使得客户端可以用一致的方式处理单个对象和组合对象。这样,可以在不知道对象具体类型的条…

K8S容器实例Pod安装curl-vim-telnet工具

在没有域名的情况下,有时候需要调试接口等需要此工具 安装curl、telnet、vim等 直接使用 apk add curlapk add vimapk add tennet

裸土检测算法实际应用、裸土覆盖检测算法、裸土检测算法

裸土检测算法主要用于环境保护、农业管理、城市规划和土地管理等领域,通过图像识别技术来检测和识别地表上的裸露土壤。这种技术可以帮助管理者实时监控裸土面积,及时采取措施,防止水土流失、环境污染和生态退化。 一、技术实现 裸土检测算…

内核驱动开发之系统移植

系统移植 系统移植:定制linux操作系统 系统移植是驱动开发的前导,驱动开发是系统运行起来之后,在内核中新增一些子功能而已 系统移植就四个部分: 交叉编译环境搭建好bootloader的选择和移植:BootLoader有一些很成熟…

Linux-DHCP服务器搭建

环境 服务端:192.168.85.136 客户端:192.168.85.138 1. DHCP工作原理 DHCP动态分配IP地址。 2. DHCP服务器安装 2.1前提准备 # systemctl disable --now firewalld // 关闭firewalld自启动 # setenforce 0 # vim /etc/selinux/config SELINU…

如何在精益六西格玛项目实践中激励小组成员保持积极性?

在精益六西格玛项目实践中,激励小组成员保持积极性是推动项目成功与持续改进的关键因素。精益六西格玛作为一种集精益生产与六西格玛管理精髓于一体的管理模式,旨在通过流程优化、质量提升及成本降低,实现企业的卓越绩效。然而,这…