总线介绍
随着汽车电子技术的不断发展和系统的集成化,我们可不需要传统的机械传递控制信号而是通过电子手段来驾驶汽车,而这一电子手段即X-By-Wire(X代表汽车中的各个系统,By-Wire可称为电子线控),如线控转向(Steering-By-Wire),线控制动(Brake-By-Wire),线控技术主要应用在主动安全等关键系统中,这些场合都对信息的实时性和安全性有很高的要求。常见的几种汽车总线有以下几种形式:
CAN + LIN 总线
LIN 总线一般控制车身对时间,速率要求不高的ECU ,如 门窗,车灯的控制上
传统低端汽车一般使用此种总线,特点是稳定,抗干扰能力强,已经被车商千锤百炼。缺点,容易堵塞,不可预测性,详情参考以下链接
[can总线的特点和优缺点以及和485比较]^1
CAN + Flexry+ LIN
传统总线基础上,将动力,底盘,ADAS 等对时间延迟要求比价高的ECU 挂载 Flexry 总线下,并通过 Gateway 与CAN 总线进行通信
奥迪 奔驰 宝马 多为此种同种总线架构
CAN + Flexry + LIN+Ethnet
总线再次升级,加上了以太网,以太网最大的特点就是传输速率大,此种通信,得以将OTA完美的发挥,或其他音视频流的传输,新起之秀,功能强大
[车载以太网]^2
传输最大速率
1.CAN ---- 1Mb/s
2.Flexry ---- 10Mb/s
3.LIN ------ 20 Kb/s
4.Ethnet ----- 100 Mb/s - 1G/s
BM == Bus-Minus 信号负
BP == Bus-Plus 信号正
**稳定的东西还要继续使用,因为成熟老练,所以还是要继续了解Flexry **
Flexry传输
Flexry 通过差分信号进行数据传输, 差分信号即,已用两个信号的差作为数据参考
通过上图可知,Flexry 的通信有四种状态:
idle_LP idel data_0 data_1
前两种状态的差分信号为 0 为隐性信号
后两种状态的差分信号不为 0 为显性信号
Flexry 帧格式
1、起始段:由40个bits构成(5 bytes),包括 -Status Bits-5bits -Frame ID-11bits -Payload Length-7 bits -Hedaer CRC-11bits -Cycle count -6 bits 其中5bits的Status Bits包含四类指示符:净荷指示位(Payload Preamble Indicator)、空帧指示位(Null Frame Indicator-指明该帧是否为无效帧)、同步帧指示位(Sync Frame Indicator-指明该帧是否为一个同步帧)和起始帧指示位(Startup Frame Indicator-指明该帧是否为起始帧)。 Frame ID:数据标志符,定义了在时间窗口(Slot)中发送的号码,每个通道数据标志符需唯一。 Payload Length:工作区长度,指示该帧含有的有效数据长度,在每个Cycle下的静态区中,每帧的数据长度是相同的,在动态区的长度则是不同的。 Hedaer CRC:用于起始段冗余校验,检查传输中的错误。 Cycle count:循环计数器。
2、有效负载段 包含要传输的有效数据,有效数据长度最大254个Bytes(0~127个Words),
3、结束段 包含24 Bits的检验域,由起始段和有效负载段计算得出的CRC校验码,计算CRC时,根据网络传输顺序从保留位到有效负载段的最后一位放到CRC生成器中进行计算。
**总结一下就是,起始段 5 个字节,负载段 0-127 个words , 0-254 个字节, 结束段,3 个字节, 标准CAN为 8 个字节 64 个比特位 **
Flexry 编码
编码的过程实际就是对要发送的数据进行一定的打包处理,即在节点可传输带有主计算机数据的数据前需将其转换为“比特流(Bitstream)”。
其中TSS(传输启动序列):用于初始化节点和网络通讯的对接(5~15位的低电平);FSS(帧启动序列):用于补偿TSS后第一个字节可能出现的量化误差(一位高电平);BSS(字节启动序列):给接收节点提供数据定时信息(一位高电平并紧随一位低电平);FES(帧结束序列):用于标识数据帧最后一个字节序列结束(一位低电平紧随一位高电平)。
对于动态区数据还额外需要DST(动态段尾部序列):仅用于动态帧传输,用于表明动态段中传输时动作点的精确时间防止接收段过早检测到网络空闲状态(一位长度可变的低电平和高电平)。
将这些序列和有效位(MSB到LSB)组装起来完成了编码过程,最终构成在网络传播的比特流。
Flexry 通讯
FlexRay总线的通讯由通讯周期(Communication Cycle)构成,从总线启动到停止都在不断重复该通讯周期。每个通讯周期具有相同的可配置时间间隔,且每个通讯周期由静态段(Static Segment)、动态段(Dynamic Segment)、特征窗(Symblo Window)和网络空闲时间(Network Idle Time)四部分构成。
1、静态段(Static Segment) 静态段采用TDMA(Time Division Multiple Access)方式由固定的时隙(Slot)组成,不可更改且所有时隙大小一致。
因此每个节点可拥有一个或多个Slots,这样每个节点在每个通讯周期内都可在其所占有的Slot内发送,两个节点也可在不同的通道上共享同一Slot,单个Slot也可为空(即不被任何节点占用),所有的帧和Slots在静态段都具有相同的长度。单个Slot的长度由总线中最长的FlexRay Message决定,其包括四部分:Action Point Offset、FlexRay Frame、Channel Idle Delimiter(11个隐性位)和Channel Idle。
2、动态段(Dynamic Segment) 动态段采用FTDMA(Flexible Time Division Multiple Access)方式,由较小的时隙(Minislot)组成,可根据需要拓展变动,一般用于传输事件控制型消息。
在动态段每帧可能有不同的长度,动态时隙(Dynamic Slot)的长度依赖于帧的长度,只有空的Slot才是实际的一个Minislot的大小。、
3、特征窗(Symblo Window) 用于传输特征符号,FlexRay的符号有三种: -冲突避免符号:用于冷启动节点的通讯启动 -测试符号:用于总线的测试 -唤醒符号:用于唤醒过程的初始化