一、车载网络概述
汽车电子化程度与日俱增,应用在车上的ecu模块数量也随之增加,从而使线束也增加。汽车电子系统的成本已经超过总成本的20%,并且还将继续增加。由于汽车生产商对制造成本的严格控制,加上对车身质量的控制,减少线束已经成为一个必须要解决的问题。另一方面,以网络通讯为基础的线控技术(x-by-wire)将在汽车上普遍应用。因此,车载网络时代终将来临。
车载网络种类有很多种,应用较多的有lin,can、flexray、tip/c、saej1850、tfcan、asrb、most等。美国汽车工程师协会(sae)根据速率将汽车网络划分为a、b、c3类。
a类总线标准包括ttp/a(time triggered protocol/a)和lin(local interconnect net-work),其传输速率较低。①ttp/a协议最初由维也纳工业大学制定,为时间触发类型的网络协议,主要应用于集成了智能变换器的实时现场总线。②lin是在1999年由欧洲汽车制造商audi、bmw、daimlerchrysler、volvo、volkswagen、vct公司以及motorola公司组成的lin协会共同努力下推出的用于汽车分布式电控系统的开放式的低成本串行通讯标准,从2003年开始得到使用。
b类标准主要包括j1850、van,低速can。①1994年sae正式将j1850作为b类网络标准协议。最早,saej1850被用在美国ford,gm以及chrysler公司的汽车中。现在,j1850协议作为诊断和数据共享被广泛应用在汽车产品中。②van标准是iso1994年6月推出的,它基于iso11519-3,主要为法国汽车公司所用。但目前就动力与传动系统而言,甚至在法国也集中应用can总线。③can是德国bosch公司从20世纪80年代初为解决现代汽车中众多的控制与测试仪器之间的数据交换而开发的一种串行数据通讯协议。低速can具有许多容错功能,一般用在车身电子控制中,而高速can则大多用在汽车底盘和发动机的电子控制中。
c类总线标准主要包括ttp/c,flexray和高速can(iso11898-2)。都用于与汽车安全相关以及实时性要求比较高的地方。如动力系统,其传输速率比较高,通常在125kb/s到10mb/s之间,必须支持实时的周期性的参数传输。①ttp/c协议由维也纳工业大学研发,基于tdma(time division multiple access)分时多址的访问方式。②flexray是bmw、daimler chrysler、motorola和philips等公司制定的功能强大的网络通讯协议。基于tdma的确定性访问方式,具有容错功能及确定的通讯消息传输时间,同时支持事件触发与时间触发通讯,具备高速率通讯能力。③欧洲的汽车制造商基本上采用的都是高速can总线标准iso11898。总线传输速率通常在125kb/s~1mb/s之间。然而,作为一种事件驱动型总线,can无法为下一代线控系统提供所需的容错功能或带宽,因为x-by-wire系统实时性和可靠性要求都很高,必须采用时间触发的通讯协议,如ttp/c或f1exray等。
二、flexray协议
flexray是由flexray共同体(flexrayconsortium)制定的协议。该共同体为一企业合作组织,成立于2000年。到2005年,flexray共同体的7个,核心成员是:bmwgroup、bosch、daimlerchrysler、gm、motorola/freescale、philips和vwag。除此之外,它还有超过93个协作和发展成员。从2002年发布的v0.4.3协议规范到2005年的v2.1协议规范,共发布多达7个版本。
f1exray网络是一种高传输速率(每通道10mb/s)的时间触发型网络。采用分时多址方式对总线进行访问,具有确定性和容错功能。非常适合于下一代汽车线控系统或分布式控制系统的通讯要求。
(一)拓扑结构(topology)
共有3种网络拓扑结构,即:总线型(bus)、星型(star)和混合型(hybrid)。而每一种类型都有单通道(singlechannel)和双通道(dualchannel)之分。在星型结构中,还存在联级方式。总线型如图1所示,单、双通道联级星型如图2、图3所示,单、双通道混合型结构如图4、图5所示。
(二)节点(node)的内部逻辑结构
主要由电源供给系统(power supply),总线驱动器(bus driver,简称bd)、总线监控逻辑(bus guardian,简称bg)、固化有flexray通讯协议的通讯控制器(communicationcontroller,简称cc)及主机(host)5个部分组成,如图6所示。其中bd和bg的个数对应于通道数,而bg是用于避免通道定时错误的一个独立部分,与通讯控制器和微处理器相连。总线监控逻辑必须独立于其他的通讯控制器。节点的两个通讯过程如下。
a.发送数据主机(host)将有效的数据送给通讯控制器(cc),在通讯控制器中进行编码,形成数据位流(bitstream),通过总线驱动器(bd)发送到相应的通道上。
b.接收数据在某一时刻,由总线驱动器访问总线,将数据位流送到通讯控制器进行解码,将有效数据部分由通讯控制器送给主机host。
(三)flexray网络通讯协议
flexray网络通讯协议主要体现在4个核心机制上:编码与解码(encoding and decoding)、媒体接入控制(media access control)、数据帧与特征符处理(frame and symbol processing)和时钟同步(clock synchronization)。除此之外,控制器主机接口(controller hostinter face,简称chi)为实现这些机制提供数据传输服务。
1.编码与解码(encoding and decoding)
编码的过程实际上就是对要发送的数据进行相应处理的过程,如加上各种校验位、id符等。解码的过程就是对接收到的数据帧进行“解包”的过程。编码与解码主要发生在通讯控制器与总线驱动器之间的通讯,如图7所示。
其中rxd为接收信号,txd为发送信号,txen为通讯控制器请求数据信号。信息的二进制表示采用“不归零”码。对于双通道的节点,每个通道上的编码与解码的过程是同时完成的。编码与解码的过程主要由3个过程组成:主编码与解码过程(codec)、位过滤(bitstrobing)过程和唤醒模式解码过程(wupdec)。以主编码与解码过程(codec)为主要过程。
1)帧编码
传输起始序列(transmission start sequence,简称tss),为一段时间的低电平,用于初始化传输节点与网络的对接。帧起始序列(frame start sequence,简称fss),为一小段时间的高电平,紧跟在传输起始序列(tss)之后。
字节起始序列(byte start sequence,简称bss),由一段高电平和一段低电平组成,位于fss之后。给接收方节点提供定时信息。
帧结束序列(frame end sequence,简称fes),由一段低电平和一段高电平组成,位于有效数据位之后。如果是在动态时序部分接入网络,则还要在fes后附加上dts——动态尾部序列(dynamic trailing sequence)。
将这些序列与有效数据位(从最大位msb到最小位lsb)“组装”起来就是编码过程,最终形成能够在网络传播的数据位流。此外,低电平的最小持续时间为一个gdbit。图8与图9分别为静态和动态部分的帧编码。
2)特征符编码
f1exray,协议有3种特征符:冲突避免特征符(collision avoidance symbol,简称cas)、媒体接入测试特征符(media access test symbol,简称mts)和唤醒特征符(wake up symbol,简称wus)。对cas和mts采用完全相同的方式进行编码,对唤醒特征符(wus)采用另一种模式编码。
节点对传输冲突避免特征符(cas)和媒体接入测试特征符(mts)的编码,是跟随在传输起始序列(tss)之后的一段时间长为cdcas(为某一具体数值)的低电平,如图10所示。
节点对唤醒特征符(wus)的编码并没有采用辅助信号tss,随txen的边沿触发同步于txd信号进行传输一个唤醒特征符(wus),如图11所示。
帧与特征符解码的过程就是编码的逆过程。这里不再赘述。
2.数据帧格式(formatofframe)
一个数据帧由帧头(headersegment)、有效数据(payloadsegment)和帧尾(trailersegment)多个部分组成。flexray数据帧格式如图12所示。
1)帧头部分
共由5个字节(40个位)组成。包括保留位(reserved bit,1位)、数据指示位(pay load preamble indicator,1位)、空帧指示位(null frame indicator,1位)、同步帧指示位(sync frame indicator,1位)、启动帧指示位(start up frame indicator,1位)、id(11位)、有效数据长度(7位)、头部循环校验crc(11位)和循环计数(6位)。
2)有效数据部分
可由0-254个字节或0-127个字组成。在图12中分别以data0、data1…data253表示。在帧的crc校验中,有效数据部分的前6个字节设为海明距离(hamming distance)。当数据超过248字节时,海明距离为4个字节。
在动态时序部分,有效数据部分的头两个字节通常用作消息识别域(messageidfield)。消息识别(又叫消息id)标明应.用数据的物理内容,仅仅用于在动态时序传输的数据帧,长度为16位。在传输节点中,消息id是由主机将其作为应用数据而写入的,通讯控制器(cc)并不能够对消息id进行识别。在接收节点中,对一个帧的存储依靠于利用消息id而进行过滤处理的结果,如图13所示。
在静态时序部分,有效数据部分的头13个字节(datao-data12)通常用作网络管理向量(networkmanagementvector,简称nm)。在同一个簇内,所有的节点应具有相同长度的网络管理向量,仅仅用于在静态时序传输的数据帧,长度为8位,如图14所示。
3)帧尾部分
只含有单个的数据域,即一个24位的crc。flexray的crc计算是遵循一定的运算法则。包括帧头crc计算和数据帧crc计算。
3.媒体接入控制(media access control)
在媒体接入控制中,一个重要的概念就是通讯周期(communicationcycle)。在一个通讯周期内,flexray提供两种媒体接入时序的选择:一种是静态的分时多址接入时序(tdma);一种是动态的基于最小时间片(mini-slotting)时序。
在1个通讯周期内,有4个时间等级(timing hierarchy),从最低层到最高层分别是:最小时间节拍层(microtick)、最大时间节拍层(macrotick)、仲裁网格层(arbitrationgrid)和通讯周期层。如图15所示。
在最高层即通讯周期层,由静态部分、动态部分、特征窗和网络闲置时间(nit)4个部分组成。在静态部分采用的是tdma方式;在特征窗的这段时间内主要传输的是特征符。
仅次于最高层就是仲裁网格层,仲裁网格层形成flexray的媒体接入仲裁的核心,它解决的是采用何种方式接入媒体。在动态部分,仲裁网格由若干个最小时间片(minislot)组成。
1)静态部分
在该时间段内由若干个静态时间片(staticslot)组成,每个时间片的长度都相等。不同的节点根据全局时间判断在某一时刻开始接收或发送某一特定的数据帧(flameid)。为了确定这一时刻每个节点的每一个通道上.都含有一个时间片计数器,两个计数器是同步计数的。例如有3个节点,分别为node1、node2和node3。假设静态部分开始于00:10,节点在时间上的顺序为1-2-3,那么node1将在00:10这一时刻开始在两个通道上传输flameid1;在00:20时刻node2开始在一个通道上传输flameid2;node3在00:30开始传输,即使没有数据帧。如图16所示。
2)动态部分
采用的是基于最小时间片的时序,由若干个最小时间片组成,最小时间片的长度都相等。帧的长度是可变的,而且与静态部分相比,动态部分的两个时间片计数器是独立计数的,在不传输数据帧时,计数器以minislot为周期进行加1计数,在传输数据帧时计数器不工作。两个通讯通道不必同步。一个动态时间片(dynamicslot)包含一个或多个minislot。如图17所示。
4.时钟同步
簇内所有的节点都应有相同的“时间观”,就好像全国都遵守一个标准的全局时间——北京时间。但这并不意味着节点间具有完全严格的同步时间,只要节点间的时间差保持在允许的误差范围内即可。由上述可知flexray的时间等级制度:若干个最小时钟节拍构成一个最大时钟节拍,而若干个最大时钟节拍又构成通讯周期的一个单元。最小时钟节拍是由通讯控制器(cc)的外部晶振提供,对于不同的控制器,最小时钟节拍可能会不相同;在一个簇内所有同步节点的最大时钟节拍都相等。
时钟同步包含两个主要过程:最大时钟节拍产生过程(mtg)和时钟同步过程(cps)。如图18所示。mtg控制时间片计数器初值,并对其进行修正。时钟同步过程(cps)主要完成一个通讯周期开始的初始化,测量并存储时间偏差值,计算频率与相位的修正值。时间偏差可以分为相位(offset)和频率(rate)偏差。相位偏差是两个时钟在某一特定时间的绝对差别频率偏差是相位.偏差随着时间推移的变化,它反映了相位偏差在特定时间的变化。flexray同时对频率与相位进行修正。节点计算数据帧到达的实际时刻,并与理论上的预测时刻比较,得到的值就是发送节点与接收节点的时间偏差,并采取一定的算法进行修正,最终使簇内的节点上的时间实现“同步”。
5.唤醒与启动(wakeup and startup)
唤醒针对的是电源管理系统。有些节点在不工作时处于“节电”模式(power-savingmode),当再次投入工作时就需要“唤醒”该节点;单个节点可唤醒整个组群;主机可在通讯信道上传输唤醒模式(wakeup-pattern)。节点通过收发器进行唤醒:当节点的收发器接收到唤醒特征符(wakeup-symbol)后,对主机处理器和通讯控制器进行上电。
只有将节点唤醒后,才能启动节点工作。初始化一个启动过程称为“冷启动(coldstart)”,能进行冷启动的节点数目是有限的。系统的启动由两个逻辑步骤组成:①冷启动节点启动;②其他非冷启动节点通过接收启动帧,与冷启动节点整合到一起。
三、flexray展望
flexray以其确定的网络通讯、高速的数据传输及强大的容错功能,很可能成为将来汽车上的底盘系统、动力系统及线控系统的ecu通讯新的标准,并取代高速ttcan网络。2005年10月,philips推出了全球第一个flexray系统解决方案,包括一个收发器和一个携带嵌入式flexray2.1版本通讯控制器且基于arm的微控制器。2006年1月,飞利浦半导体公司推出了面向主动安全系统的flexray2.1系统解决方案。该解决方案包括两个主要部分:tja1080收发器和包含一个arm9微控制器并且完整集成flexray2.1版本的sja2510通讯控制器。目前德国宝马汽车公司承认它将采用flexray作为主动悬架中用于节气阀控制的数据高速链路,在2006年末或2007年初基本实现生产。此外,flexray的评估套件也已经推出。相信在不久的将来,flexray必定成为新一代车载网络的“排头兵”。
如何制作一个采用滴漏计时的“水钟”?
一款由网易自研的VR多人在线开放世界游戏是如何开发出来的?
模拟电子疑难问题解惑系列(二):模拟电路设计问题须知
选购内存时需要注意什么
自愈式并联电容器是什么_工作原理及其应用
适用于下一代汽车线控系统通讯要求的FlexRay协议规范
由KUKA外部自动展开的PLC控制程序的分析
压力测量仪设计任务书
区块链在现实世界中的实际应用是什么
Google发布超低功耗的ASIC芯片Edge TPU处理器
基于音效发生器的单发声芯片UM3561介绍
“芯”创未来,赋能数字能源|PLC芯片原厂力合微亮相国际数字能源展
复杂情形下,中国半导体行业如何乘风破浪?
基于多位高阶级联的Σ-Δ调制器的应用方案设计
DHS:美国提网络安全战略 以积极集体的态度应对网络攻击
智能水位超限监测传感器 - CS-iWM-03监测下水井中水位变化情况
电动机功率大小与热继电器安装有联系吗
东芝宣布扩产30%的HDD硬盘
英特尔推动毫米波无线频段5G研究
2020中国SCARA机器人行业调研报告