1、高速实时总线协议 FlexRay,第五章,主要内容,5.1 FlexRay网络综述,5.2 FlexRay通信协议,5.3 FlexRay物理实现,5.4 FlexRay总线开发,5.5 FlexRay应用实例,5.1 FlexRay网络综述,5.1.1 FlexRay的技术背景 5.1.2 FlexRay技术特点 5.1.3 FlexRay的应用 5.1.4 FlexRay设备组成,5.1.1FlexRay的技术背景,名称含义 起源于“X-by-wire”技术 航空:Fly-by-wire 车用线控技术 Steer-by-wire Brake-by-wire Throttle-by-wire
2、 Suspension-by-wire Shift-by-wire Drive-by-wire,5.1.1FlexRay技术背景,X-by-wire线控系统需要什么样的总线通信? 高速-高带宽 硬实时-确定性通信 安全-容错性 成本可接受 为什么不用CAN总线? 事件触发报文不确定 总线负载率已接近极限 没有带宽储备及容错设计 为什么最终选择FlexRay? 时间触发的总线协议: TTCAN、TTP/C、Byteflight、FlexRay 特性对比,如下表 结论:允许系统成本和安全性之间进行最优平衡的FlexRay是适应未来车辆系统需求的高性能总线,5.1.1FlexRay技术背景,5.1.
3、1FlexRay技术背景,1999年,宝马与戴姆勒开始研究; 成立时间:2000年 成员类别 核心成员: 主要成员:目前28个 普通成员:目前73个 最高目标:使FlexRay成为汽车高速网络的事实标准,FlexRay联盟,5.1.2FlexRay技术特点,高通信速率 单通道最高10Mbps 双通道非冗余可达20Mbps 确定性 容错性 物理层双通道冗余 独立的总线监听者 4个同步节点 基于容错算法的时钟同步机制 灵活性 以时间触发为主,兼顾“事件触发” 支持多种网络拓扑结构 物理层介质双绞线或光线,5.1.3FlexRay的应用,应用领域 分布式控制系统:以微处理器为基础的,实行集中管理、分
4、散控制的计算机控制系统 集成化控制:动力系统、底盘系统 高安全性要求的系统 线控系统 ABS/TCS等安全控制系统 安全气囊等 高传输速率要求的系统 车辆主干网 军工:高速实时控制 工业控制领域,5.1.3FlexRay的应用,第一辆FlexRay量产车 BMW X5 4.8i 电子控制减震器系统:高达15个FlexRay节点,单通道,10Mbps,星型及总线拓扑结构 上市时间:2007年,5.1.3FlexRay的应用,宝马新7系 FlexRay以跨系统方式实现行驶动态管理系统与发动机管理系统的联网 共有12个节点(含一个网关) 通过网关,跟车上其他总线(CAN/LIN/MOST)进行通信,
5、5.1.3FlexRay的应用,奥迪 Audi A4:7个FlexRay节点 Audi A8 4.2 FSI:30个节点,豪华运动车的标定 需要大量测量数据传输功能,5.1.3FlexRay的应用,日本电动车-线控转向、线控加速/制动 2006年,日本WITZ和阳光技研与瑞萨科技等公司合作,试制了采用FlexRay协议标准的电动车 FlexRay节点 传感器ECU-瑞萨 加速、制动ECU-瑞萨 转向ECU-NEC 仪表ECU-富士通 示波器-横河电机,5.1.4FlexRay设备组成,节点架构一,Host-主机,CC-通讯控制器,BD-总线驱动器,BG-总线监控器,5.1.4FlexRay设备
6、组成,节点架构2,5.2FlexRay通信协议,5.2.1FlexRay媒体访问机制 5.2.2FlexRay数据帧结构 5.2.3FlexRay编码与解码 5.2.4FlexRay时钟同步 5.2.5FlexRay协议状态控制 5.2.6FlexRay唤醒与启动,5.2.1FlexRay媒体访问机制,基本概念:时间触发、时隙、通信周期 时间等级,5.2.1FlexRay媒体访问机制,采样时钟&位时间(10Mbps),5.2.1FlexRay媒体访问机制,媒体访问方式 静态部分:时分多址(Time Division Multiple Access) 动态部分:柔性时分多址(Flexible T
7、DMA),5.2.1FlexRay媒体访问机制,通信调度(周期内通信),5.2.1FlexRay媒体访问机制,5.2.1FlexRay媒体访问机制,5.2.1FlexRay媒体访问机制,特征符窗口&网络空闲时间 特征符窗口只能发送一个特征符 网络空闲时间 节点计算、执行时钟同步 举例 特征符窗时长(SW)=16MT 网络空闲时间(NIT)=136MT,5.2.2数据帧结构,数据帧组成 起始段(Header segment) 净荷段(Payload segment) 静态帧 动态帧 结束段(Trailer Segment),5.2.2数据帧结构,保留位 为将来协议预留 发送节点设为0,接受节点忽
8、视,5.2.2数据帧结构,净荷指示位P 指出在净荷段开头是否包含可选变量 NM Vector(静态段),Message ID(动态段) 1包含,0不包含 空帧(无效帧)指示位N 指示帧的净荷数据段中是否包含有用数据 1无效帧,0有效,5.2.2数据帧结构,同步帧指示位(Sync Frame Indicator) 1是,0不是 启动帧指示位(Startup Frame Indicator) 只有冷启动节点允许发送启动帧 启动帧一定是同步帧,但同步帧不一定是启动帧 1是,0不是 同步帧、启动帧必须是静态帧,5.2.2数据帧结构,帧标识符 定义该帧可以在哪个时隙中发送 一个通信周期中只能出现一次 取
9、值1-2047,0不是有效标识符 净荷段长度 单位为字,不是字节,故为净荷段字节数除2,0-127 静态帧:所有静态帧的数据长度固定 动态帧:不同动态帧的数据长度不固定,且同一动态帧在不同通信周期、不同信道的数据长度也不固定,5.2.2数据帧结构,起始CRC校验 计算长度:20位,校验码长度:11位 帧发送节点:离线计算CC发送 帧接收节点:CC在线校验 两信道:运算法则、初始向量均相同 帧周期计数 计数范围:0-63 发送节点:选择性发送,将节点周期计数写入帧周期计数 接收节点:根据帧周期计数进行选择性接收 64个通信周期组成一个“大”周期 实现:通过设置发送节点及接收节点的帧周期计数过滤器
10、,5.2.2数据帧结构,净荷段-静态帧 净荷长度:0-254字节,或0-127字 静态帧可选变量:网络管理向量(NM) 长度范围:0-12字节 一个FlexRay网络内,所有节点的NM长度应相同 主机:发送节点将其作为应用数据写入,5.2.2数据帧结构,净荷段动态帧 动态帧可选变量:消息标识符(Message ID) 变量长度固定:2字节 主机:发送节点将其作为应用数据写入,CC不参与 CC:接收节点通过Message ID过滤器识别报文 Message ID与Frame ID的区别?,5.2.2数据帧结构,帧CRC校验 计算长度:净荷段 帧发送:CC在发送前计算 帧接收:CC在接收后计算并校
11、验 两信道分别校验:运算法则相同,初始向量不同 信道A:0xFEDCBA 信道B:0xABCDEF 双信道冗余通信 校验通过视为有效帧,5.2.3FlexRay编码与解码,编码 FlexRay采用NRZ(非归零)编码,优缺点 NRZ编码确保报文紧凑,从而相同带宽下信息量更大 NRZ编码不能保证有足够的跳变沿用于同步,容易带来节点间计时器误差的累计 如何解决?,5.2.3FlexRay编码与解码,发送接收模块组成 时钟模块产生采样时钟和系统时钟:1bit=8采样周期(10Mbps)=100ns.采样时钟周期=12.5ns 编码模块:主机待发数据一定格式的可在通道上发送的位流。 采样判别模块:滤波
12、去毛刺 比特同步纠正与选通模块:发送端和接收端的同步 解码模块:对数据的提取,5.2.3FlexRay编码与解码,帧编码-静态帧,将数据帧分解成独立的字节 传输起始序列TSS(3-15低位) 帧起始序列FSS(1个高位) 字节起始序列BSS(1个高位+1个低位) 位同步边沿:发生在除了负载的数据段以外的下降沿(TSS的下降沿和每一个BSS的下降沿) 发送数据字节 帧结束序列FES( 1个低位+1个高位),5.2.3FlexRay编码与解码,帧编码-动态帧,在FES后面附加动态尾部序列DTS 确定发送节点下一个微时隙行动点的精确时间 避免接收节点过早进行信道空闲检测CID DTS是不定长度的0位
13、,其长度是动态配置的。,5.2.3FlexRay编码与解码,特征符编码,冲突避免特征符CAS 网络启动时发送-建立通信周期前 媒介访问测试特征符MTS 网络正常通信时发送-每个周期的特征符窗口 CAS/MTS采用完全相同的编码方式 TSS:时长同数据帧 cdCAS=30gdbit,5.2.3FlexRay编码与解码,唤醒特征符WUS(Wake up symbol) 没有TSS 15-60个低位,3倍低位的高位 唤醒模式(Wake up pattern) 由多个连续的WUS组成:2-63个 下图由2个WUS组成,5.2.3FlexRay编码与解码,解码 采样判别,RxD信号经过“干扰滤波”表决值
14、信号 采用少数服从多数的多数表决机制,且多数表决机制采样次数为5 可以抑制持续时间为一到两个采样时钟的短时脉冲干扰,5.2.3FlexRay编码与解码,帧解码 静态帧&动态帧 将BSS 后的字节提取组合成帧和 CRC 校验码, 根据 CRC 校验码判断接收是否正确。 信道空闲界定符(Channel Idle Delimiter) 固定时长的连续高电平,标志数据帧的结束 静态帧与动态帧一致 时长:11位,5.2.3FlexRay编码与解码,特征符解码,两者解码形式相同 接收节点将接收到的29(7399)位连续的低电平解码为CAS或MTS 信道空闲界定符CID,5.2.3FlexRay编码与解码,
15、唤醒特征符解码,只要满足以下条件即解码为WUP (1)接收到至少1560位的低电平信号 (2)紧接至少3倍的高电平信号 (3)再紧接至少1560位的低电平信号 (4)上述重复次数至少263次,5.2.4FlexRay时钟同步,时钟同步 同步&偏差 全局时间VS本地时间 同步概念 可接受误差 时间偏差 相位(Offset)偏差 频率(Rate)偏差,5.2.4FlexRay时钟同步,时钟同步测量过程 每个通信周期计算:相位偏差 每两个通信周期计算:频率偏差,5.2.4FlexRay时钟同步,时钟同步修正过程 修正法则 FTM(Fault Tolerant Midpoint)法则 相位偏差修正 周
16、期需要增加或减少的微节拍个数(单次) 奇数周期的NIT内修正,必须在下一周期开始前完成 频率偏差修正 周期需要增加或减少的微节拍数量(长期) 下两周期参数pMicroPerCycle启用修正值,5.2.4FlexRay时钟同步,时钟同步流程,5.2.5FlexRay协议状态控制,默认配置 配置 应用程序配置CC寄存器 只能由命令进入 就绪 节点可唤醒或启动 唤醒 接收或发送唤醒信号 启动 开始启动过程,5.2.5FlexRay协议状态控制,正常主动 正常收发报文 正常被动 只接收不发送 若干个(初始化进行配置,1-15)个无效通信周期后转至正常被动 若干个有效通信周期后转至正常主动 暂停 不允
17、许收发报文 因时钟同步错误进入此状态,5.2.6FlexRay唤醒与启动,唤醒节点 本地唤醒&总线唤醒 BD驱动电源管理系统,5.2.6FlexRay唤醒与启动,集群唤醒 本地唤醒 集群唤醒 唤醒特征符 一个节点只能唤醒一条总线 多个节点可以同时唤醒同一总线,5.2.6FlexRay唤醒与启动,冷启动-ColdStart,冲突避免特征符(CAS) 冷启动节点(ColdStart Node) 主冷启动节点、从冷启动节点 非冷启动节点,5.3FlexRay物理节点实现,5.3.1FlexRay总线网络拓扑 5.3.2FlexRay总线器件 5.3.3FlexRay电信号 5.3.4FlexRay节
18、点组成,5.3.1FlexRay总线网络拓扑,网络拓扑的分类 单通道&双通道 总线型&星型&混合型,5.3.1FlexRay总线网络拓扑,网络拓扑-单通道 点对点 IBus=24m 总线型 IBus=24m 4=节点数量=22,5.3.1FlexRay总线网络拓扑,无源星型 IStubn=2 有源星型连接器可避免一个节点发生错误而使得整个通道无法正常通信,5.3.1FlexRay总线网络拓扑,双有源星型 IStarStar=24m,混合拓扑,5.3.1FlexRay总线网络拓扑,网络拓扑-双通道 总线型 有源星型,5.3.1FlexRay总线网络拓扑,双星型,5.3.1FlexRay总线网络拓
19、扑,混合型,5.3.2FlexRay总线器件,线缆 电缆&光纤 屏蔽或非屏蔽双绞线 接插件 2:BM 7:BP 1、3、6、8:总线屏蔽,5.3.2FlexRay总线器件,终端电阻 电缆的末尾均是终端 终端点对点:终端电阻=电缆阻抗,5.3.2FlexRay总线器件,终端有源星型 均视为点对点 终端电阻=电缆阻抗,5.3.2FlexRay总线器件,终端无源星型/总线型 距离最远的两节点为终端 终端电阻等于或略高于电缆阻抗,5.3.3FlexRay电信号,差分信号uBus uBus=uBP-uBM 正线BP(Bus Plus) 负线BM(Bus Minus) 电平信号:1.9V,2.5V,3.1
20、V,5.3.4FlexRay节点组成,硬件实现方式 单片机MCU+独立通信控制器CC+总线驱动器BD,5.3.4FlexRay节点组成,独立FlexRay通信控制器列表,5.3.4FlexRay节点组成,硬件电路实例,5.3.4FlexRay节点组成,集成FlexRay功能的MCU+总线驱动器BD,5.3.4FlexRay节点组成,集成FlexRay功能的MCU列表,5.3.4FlexRay节点组成,硬件电路实例,5.3.4FlexRay节点组成,总线监控器BG BG功能 BD使能 监控调度表时序 监控时钟同步 BG分类 本地节点总线监控器 Node-Local BG 星型中心总线监控器Cen
21、tral BG,5.4FlexRay总线开发,5.4.1开发流程 5.4.2开发工具介绍,5.4.1FlexRay开发流程,V模式开发流程,5.4.1FlexRay开发流程图,目的: 1、掌握协议规范 2、确定功能需求 3、使用工具设计 优化网络参数 4、建立网络仿真 平台并仿真,第一阶段 网络设计和仿真,第二阶段 节点实现,第三阶段 网络集成,目的: 1、完成ECU的硬件 及软件设计 2、建立网络半仿真 平台 3、确定ECU测试标 准并测试ECU 功能,目的: 1、实现FlexRay网络 2、搭建FlexRay网络 台架 3、确定FlexRay网络 测试标准,提供测试 报告 4、实现自动测试
22、功能,5.4.1FlexRay开发流程,网络设计和仿真 网络设计 定义网络 定义节点 定义报文 定义信号 报文和信号关系 报文收发关系 定义调度表 网络仿真 调试网络模型 优化网络参数,5.4.1FlexRay开发流程,节点开发、实现,5.4.1FlexRay开发流程,网络集成,5.4.1FlexRay开发流程,开发工具 CANoe.FlexRay,5.4.1FlexRay开发流程,5.4.1FlexRay开发流程,Multibus Analyser多总线分析工具 IXXAT公司 Multi-bus Analyser、2 个FlexRay CCM、相关的FlexRay电缆配件 具有两个CAN接
23、口和两个FlexRay通道 能够实现FlexRay和CAN报文的接收,传输以及跟踪和解释功能。 飞思卡尔的FlexRay芯片,5.5结论,第六章 车载全网络应用实例,PT-CAN,网关 ZGM,FlexRay,K-CAN,LIN,MOST,Internet,D-Bus,宝马新7系车载网络系统,FlexRay网络系统,第六章 车载全网络应用实例,PT-CAN网络系统,第六章 车载全网络应用实例,MOST网络系统,第六章 车载全网络应用实例,Internet,PT-CAN,中央网关,K-CAN网络系统,第六章 车载全网络应用实例,工作原理举例:雨刮器,第六章 车载全网络应用实例,线控转向技术,返回,