FlexRay通信协议中文版
- 格式:pdf
- 大小:1.20 MB
- 文档页数:20
FlexRay通讯卡技术规格书UL-XM7670为XMC接口flexray车载总线通讯采集卡,兼容XMC规范(VITA42.0),实现2路(4通道)FlexRay总线和4路CAN总线。
为汽车、无人机等高可靠性通讯应用提供解决方案。
本板FlexRay接口部分采用NXP公司的FlexRay控制器和收发器,CAN接口采用SJA1000控制芯片,支持前、后出线,为应用系统提供灵活、可靠的技术保障。
UL-XM7670的操作系统支持包括Windows32/64位,Wind River VxWorks和Linux。
UL-XM7670为当前和未来的车载总线应用提供了高性能,功能丰富的解决方案,可应用于网络仿真、测量设备、车辆内部测试及无人机测试等众多领域。
技术特点:4路隔离CAN2.0B总线2路隔离FlexRay总线(每路包括A、B两通道)后出线由XMC P16引出满足VITA 42.0结构电气规格PCIe x1 Gen1总线兼容PMC P14输出支持前面板出线提供定制接口可以搭配不同的载板实现不同的接口通讯方式,如PCIE、PXI、CPCI、VPX等总线接口Flexray XMC模块:FlexRay PCIE板:FlexRay 3U CPCI板:FlexRay 6U CPCI板:规格参数:通讯接口•满足XMC VITA42.0 结构电气规格;• PCIe x1 Gen1总线• 4路隔离CAN2.0B总线• 2路隔离FlexRay总线(每路包括A、B两通道)•后出线由XMC P16引出;兼容PMC P14输出软件支持• Linux32/64位• Wind River VxWorks 6.8/6.9• Windows 64位•国产化操作系统适配•提供基于windows平台的图形化测试软件Flexray BusTool,用户可使用该软件快速搭建仿真、测试系统。
总线运行起来后,监控界面会显示接收到的flexray信息。
FlexRay汽车通信总线介绍及测试环境综述FlexRay通信总线是由多个汽车制造商和领先的供应商共同开发的确定性、容错和高速总线系统。
FlexRay满足了线控应用(即线控驱动、线控转向、线控制动等)的容错性和时间确定性的性能要求,本文介绍FlexRay的基础知识。
为了使汽车继续提高安全性、提升性能、减少环境影响并增强舒适性,必须提高汽车电子控制单元(ECU)之间传送数据的速度、数量和可靠性。
先进的控制和安全系统(结合了多个传感器、执行器和电子控制单元)开始要求同步功能和传输性能超过现有标准的控制器局域网(CAN)所能提供的性能。
随着带宽需求的增长和各种先进功能的实现,汽车工程师急需下一代嵌入式网络。
经过OEM厂商、工具供应商和最终用户的多年合作,FlexRay标准已经成为车载通信总线,以应对下一代车辆中的这些新的挑战。
FlexRay还能够提供很多CAN网络不具有的可靠性特点,尤其是FlexRay 具备的冗余通信能力可实现通过硬件完全复制网络配置,双通道冗余进行数据通信。
FlexRay同时提供灵活的配置,可支持各种拓扑,如总线、星型和混合拓扑。
设计人员可以通过结合两种或两种以上的该类型拓扑来配置分布式系统。
了解FlexRay的工作原理对工程师在车辆设计和生产过程的各个方面都至关重要。
本文将解释FlexRay的核心概念。
FlexRay基础FlexRay的许多方面旨在降低成本,同时在恶劣的环境中提供最佳性能。
FlexRay使用非屏蔽双绞线电缆将节点连接在一起,FlexRay总线可以由一对或两对电缆组成的单通道和双通道组成。
每对线缆上的差分信号减少了外部噪声对网络的影响,而无需昂贵的屏蔽层。
大多数FlexRay节点通常还具有可用于收发器和微处理器的电源线和地线。
双通道配置可提高容错能力或增加带宽。
大多数第一代FlexRay网络仅利用一个信道来降低布线成本,但是随着应用程序对复杂性和安全性要求的提高,未来的网络将同时使用这两个信道。
FlexRay总线⽹络汽车FlexRay总线⽹络1.FlexRay总线定义FlexRay是⼀种⽤于汽车的⾼速可确定性的、具备故障容错的总线系统。
汽车中的控制器件、传感器和执⾏器之间的数据交换主要是通过CAN⽹络进⾏的。
然⽽新的X-by-wire系统设计思想的出现,导致车辆系统对信息传送速度尤其是故障容错与时间确定性的需求不断增加。
FlexRay通过在确定的时间槽中传送信息,以及在两个通道上的故障容错和冗余信息的传送,可以满⾜这些新增加的要求。
2.FlexRay总线⽹络特点FlexRay总线⽹络具有以下特点:1)数据传输速率⾼ FlexRay⽹络最⼤传输速率可达到10Mbit/s,双通道总数据传输可达到20Mbit/s,因此,应⽤在车载⽹络上,FlexRay的⽹络带宽可以是CAN⽹络的20倍。
2)可靠性好 FlexRay能够提供很多CAN⽹络所不具备的可靠性特点,尤其是FlexRay具备的冗余通信能⼒。
具有冗余数据传输能⼒的总线系统使⽤两个相互独⽴的信道,每个信道都由⼀组双线导线组成。
⼀个信道失灵时,该信道应传输的信息可在另⼀条没有发⽣故障的信道上传输,即每条信息读能在规定时间内进⾏传输。
3)确定性 FlexRay是⼀种时间触发式总线系统,他也可以通过时间触发⽅式进⾏部分数据传输。
在时间控制区域内,时隙分配给确定的信息。
⼀个时隙是指⼀个规定的时间段,该时间段对特定信息开放。
对时间要求不⾼的其他信息则在时间控制区域内传输。
确定性数据传输⽤于确保时间触发区域内的每条信息都能实现实时传输,即每条新新都能在规定的时间内进⾏传输。
4)灵活性灵活性是FlexRay总线的突出特点反映在以下⽅⾯:⽀持多种⽅式的⽹络拓扑结构,点对点连接、串级连接、主动星形连接、混合型连接等;信息长度可配置,可根据实际控制应⽤需求,为其设定相应的数据载荷长度;双通道拓扑可⽤以增加带宽,也可⽤于传输冗余的信息;周期内静态、动态信息传输的部分的时间都可随具体应⽤⽽改变。
一、FlexRay介绍FlexRay通讯协议运用于可靠的车内网络中,是一种具备故障容错的高速汽车总线系统。
它已经成为同类产品的基准,将在未来很多年内,引导汽车电子产品控制结构的发展方向。
FlexRay协议标准中定义了同步和异步帧传输,同步传输中保证帧的延迟和抖动,异步传输中有优先次序,还有多时钟同步,错误检测与避免,编码解码,物理层的总线监控设备等。
1.1汽车网络通信协议综述汽车网络通信协议在保证整个系统正常运行方面起着非常重要的作用。
它可以帮助解决系统很多问题,如数据共享、可扩展性、诊断接口等。
目前,应用于汽车领域的网络标准除了FlexRay还有很多,如CAN、LIN、J1850及MOST等。
CAN总线全称为“控制器局域网总线(Controller Area Network)”,是德国博世公司从80年代初为解决现代汽车中众多的控制与测试仪器之间的数据交换而开发的一种串行数据通信协议。
它是一种多主总线,通信介质可以是双绞线、同轴电缆或光导纤维。
CAN通信速率可达1Mbit/s,每帧的数据字节数为8个。
LIN(Local Interconnect Network,控制器局域网)总线是由LIN 协会发布的一种新型低成本串行通信总线,也称为经济型CAN网络。
LIN的目标是为现有汽车网络(例如CAN 总线)提供辅助功能,因此LIN总线是一种辅助的总线网络,在不需要CAN 总线的带宽和多功能的场合比如智能传感器和制动装置之间的通信使用LIN总线可大大节省成本。
J1850总线是1994年由汽车工程师协会颁布的标准,之后普及运用于美国车厂的汽车中。
不过,虽然美国各厂多采用J1850标准,但是各厂的实际做法又不相同,因此相对其他标准来说比较混乱。
由于J1850总线通信速率低,只适合用于车身控制系统及诊断系统,目前在美国逐步被CAN 所取代。
MOST(Media Oriented System Transport,面向媒体的系统传输)总线是采用光纤并用于智能交通及多媒体的网络协议,能够支持24.8Mbps的数据速率,与以前的铜缆相比具有减轻重量和减小电磁干扰的优势。
竭诚为您提供优质文档/双击可除flexray,协议中文版篇一:通信协议标准FlexRay总线的功能安全性详解通信协议标准FlexRay总线的功能安全性详解在汽车中采用电子系统已经有几十年的历史,它们使汽车安全、节能与环保方面的性能有大幅度的提高。
随着研究的深入,许多系统需要共享和交换信息,为了节省线缆,就形成了依赖于通信的分布式嵌入系统。
目前,世界上90%的都采用基于can总线的系统。
FlexRay是下一代通信协议事实上的标准,它的功能安全性如何是至关重要的。
1iec61508功能安全的要求目前车控系统正在向线控技术(xbywire)过渡,例如线控转向与线控刹车。
线控系统最终目标是取消机械后备,因为取消这些后备可以降低成本,增强设计的灵活性,扩大适用范围,为以后新添功能创造条件。
但是取消机械后备就对电子系统的可信赖性(dependability)要求大为提高。
车是一个运动的物体,处于运动的环境之中,它因故障可能伤及自身及别人。
取消机械后备,就将电子系统由今天的故障静默(failsilent)要求提升到故障仍工作(failoperational)的要求。
国际上对工业应用的功能安全要求已制定了标准iec61508,它主要关心被控设备及其控制系统的安全。
虽然它也适用于汽车,但汽车不仅有上述功能安全问题,而且要关心由于功能变化造成的整车系统安全,所以汽车业内正在制定相应的标准iso26262。
汽车的功能安全等级分为4级,要求最高的是asild,相应的失效概率<10-8/h,它相当于iec61508的sil3。
根据实践经验,分配给通信的失效概率<10-10/h。
有关这方面的介绍可参见参考文献。
现在安全攸关的应用系统的范围有所扩大,以前不算在内的一些系统现在都要算了。
例如安全预先动作系统(presafe)中座椅调整子系统、刹车辅助系统中的灯光控制子系统、碰撞后telematic自动呼叫求援的子系统,都将视为安全攸关系统。
第4章帧格式4.1 概述FLEXRAY帧格式如图4-1所示。
帧格式包含3个部分,他们分别是头段、有效载荷段和尾段。
节点应当传输帧在网络中,首先是头段,接着是有效载荷段,最后是尾段。
4.2 FLEXRAY 头段(5字节)头段包含了5个字节,分别是缺省位,有效载荷预指示符、空帧标示符、同步帧标示符、启动帧标示符、帧ID、有效载荷长度、头CRC以及周期计数。
4.2.1 缺省位(1bit)缺省位是缺省的为了以后协议使用。
应用层不使用该位。
发送节点应设置缺省位为0;接收节点忽略缺省位。
4.2.2有效载荷预指示符(1bit)有效载荷预指示符是否可选的变量包含在有效数据段。
●静态段,有效载荷预指示符指示包含网络管理变量在有效数据的开头;●动态段,有效载荷预指示符指示包含消息ID在有效数据的开头。
如果有效载荷预指示符设置为0,不含对应网络管理变量以及消息ID,如果设置为1,则包含相应的网络管理变量以及消息ID。
4.2.3 空帧指示符(1bit)空帧指示符指示帧是否是一个空帧,空帧标示不包含有效数据在有效载荷段。
是否发送一个空帧的详细介绍在第5章。
节点接收空帧仍然可能使用一些帧中的有用信息。
●如果设置为0,标示不包含有效数据,有效载荷区的数据全部设置为0,并且有效载荷预指示符要设置为0.●如果设置为1,则标示包含有效数据。
4.2.4 同步帧标示(1bit)同步帧标示指示当前帧是否是同步帧。
例如,帧被用于系统间通信同步。
(同步帧仅仅用于静态段。
)●如果同步帧标示设置为0,则接收节点不能用该帧作为同步,以及同步相关事务。
●如果同步帧标示设置为1,则所有的接收节点应当利用该帧做同步,如果该帧复合其他的验收标准(见下面描述)。
时钟同步机制(详见第8章)利用同步帧标示符。
有几个条件导致同步帧指示器被设置为1,随后被利用作为时钟同步机制。
详情如何设置见第5章以及8.8节。
4.2.5 启动帧标示符(1bit)启动帧标示符指示当前帧是否是一个启动帧。
汽车控制系统效能升级!FlexRay网络标准详解自2003年组建以来,AUTOSAR(汽车开放系统架构)联盟一直致力于改变车载网络和电子控制单元(ECU)的设计方式。
AUTOSAR提出了一个符合业界标准的车载网络设计方法,使行业能够集成、交换和传输汽车网络内的功能、数据和信息。
这一标准极大地促进了汽车原始设备制造商(OEM)及其一级供应商之间的合作,使他们能够以一种一致、明确且机器可读的格式来交换设计信息。
一辆汽车的不同部分对安全及性能有不同要求,而支持它们的车载网络必须具备可预测的安全性能。
随着汽车技术的不断演变,人们已经可以用一系列总线技术来连接豪华汽车上最多100个不同的ECU,这些总线技术通常包括LIN、CAN、FlexRay、MOST和基于以太网的架构。
如果靠手动来管理这些ECU 之间数以千计的信息和交互操作是不可能的,因此汽车设计人员必然用自动化设计和合成工具来预测网络性能和调整车载功能。
汽车数据总线一辆典型的现代化汽车将同时装配各类总线和协议并从LIN、CAN、FlexRay、MOST和以太网中选择合适的网络。
多媒体/视听信号和汽车环绕摄像系统需要更高的数据速率,因此汽车制造商和OEM厂商在网络解决方案上选择用以太网代替MOST.但对于许多标准汽车功能而言,LIN和CAN提供的带宽与性能就足够了。
在汽车架构中,ECU组合在一起形成“集群”,这些集群通过通信“网关”相连。
集群通常会共享同一类型的总线,因此要达到高可靠性、高速率的标准,就要采用FlexRay 网络,但要求没那么高的门锁ECU可以由CAN或LIN来负责。
ECU网关往往要连接不同类型的信号,并执行不同总线架构之间的映射和转换功能。
汽车行业对不断提高安全性和ISO26262等标准的合规性提出强烈需求,进而提升了车载网络的性能,同时也降低了制造和元件成本。
不断进步的网络标准可以适应越来越高的数据传输速率,汽车电缆也达到了安全且低成本的目标。
FlexRay总线通讯板广告(一)FlexRay总线介绍简介FlexRay是一种高速高可靠性的双通道总线系统,它能够提供充足的带宽、实时响应能力、冗余传输和故障容错机制,以解决目前广泛使用的CAN、LIN等总线系统在传输能力和可靠性等方面不足的问题。
特性●高传输速率单个通道上的数据速率最大可达10Mbps,两个通道的总数据速率可达到20 Mbps。
●高实时性和总线负载率支持同步(实时)和异步数据传输,支持时间触发和事件触发传输机制。
采用时间触发方式,能在总线上获得无竞争、无延时的通讯模式,总线负载可达90%以上,可有效的利用介质的物理带宽。
事件触发方式,可以满足在通讯周期内出现的不同带宽需求和随机通讯要求。
●高可靠性数据帧提供24位CRC(循环冗余校验码),具备故障容限功能。
双通道冗余总线传输,可通过硬件完全复制网络配置,并进行进度监测,提高了容错能力,增强了系统可靠性。
●灵活的拓扑结构支持星型、总线型和混合型网络拓扑结构,在混合型拓扑结构中节点个数可达64个。
支持点对多点的多主机传输方式,在在主动星型节点之间总线距离可达22米。
典型总线对比应用首个FlexRay应用产品Adaptive Drive已在BMW公司X5运动型多功能轿车上投入使用。
日本WITZ和阳光技研与瑞萨科技等公司合作,试制了采用控制类车内LAN接口标准“FlexRay”的电动车。
在未来几年中,FlexRay以汽车线控操作(X-by-Wire)为起点,将逐步覆盖到各种车辆类型的车载网络中,并推广到其它通讯控制领域,成为车辆电子和工业控制的广泛应用标准。
(二)FlexRay产品简介FlexRay总线通讯接口板1)FlexRay - PCI通讯接口板实现FlexRay总线与PCI总线之间的数据交换。
支持最新的FlexRay v2.1版协议。
两路FlexRay通道,传输速率在500Kb/s~10Mb/s之间可选。
支持FlexRay双通道冗余通讯,支持分布式多主机局域网络配置。
Chapter 7Wakeup and StartupThis chapter describes the procession of a FlexRay cluster from sleep mode to full operation and the integration of newly configured nodes into a FlexRay cluster already in operation.First the cluster wakeup is described in detail. Some application notes regarding the interaction between communication controller and host are provided.Following the wakeup section, communication startup and reintegration is described. This section also describes the integration of nodes into a communication cluster.7.1Cluster wakeupThis section describes the procedure64 used by communication controllers to initiate the cluster wakeup.7.1.1PrinciplesThe minimum prerequisite for a cluster wakeup is that the receivers of all bus drivers be supplied with power.A bus driver has the ability to wake up the other components of its node when it receives a wakeup pattern on its channel. At least one node in the cluster needs an external wakeup source.The host completely controls the wakeup procedure65. The communication controller provides the host the ability to transmit a special wakeup pattern (see Chapter 3) on each of its available channels separately. The wakeup pattern must not be transmitted on both channels at the same time. This is done to prevent a faulty node from disturbing communication on both channels simultaneously with the transmission. The host must configure which channel the communication controller shall wake up. The communication controller ensures that ongoing communication on this channel is not disturbed.The wakeup pattern then causes any fault-free receiving node to wake up if it is still asleep. Generally, the bus driver of the receiving node recognizes the wakeup pattern and triggers the node wakeup. The commu-nication controller needs to recognize the wakeup pattern only during the wakeup (for collision resolution) and startup phases.The communication controller cannot verify whether all nodes connected to the configured channel are awake after the transmission of the wakeup pattern66 since these nodes cannot give feedback until the startup phase. The host shall be aware of possible failures of the wakeup and act accordingly.The wakeup procedure supports the ability for single-channel devices in a dual-channel system to initiate cluster wakeup by transmitting the wakeup pattern on the single channel to which they are connected. Another node, which has access to both channels, then assumes the responsibility for waking up the other channel and transmits a wakeup pattern on it (see section 7.1.4.1).64 To simplify discussion, the sequence of tasks executed while triggering the cluster wakeup is referred to here as the wakeup"procedure" even though it is realized as an SDL macro, and not an SDL procedure. The normal grammatical use of the term is intended rather than the precise SDL definition. Since SDL processes are not used in the wakeup mechanism, the usage does not introduce ambiguity.65 The host may force a mode change from wakeup mode to the POC:ready state. Note, however, that a forced mode-changeto the POC:ready state during wakeup may have consequences regarding the consistency of the cluster.66 For example, the transmission unit of the bus driver may be faulty.The wakeup procedure tolerates any number of nodes simultaneously trying to wake up a channel and resolves this situation such that eventually only one node transmits the wakeup pattern. Additionally, the wakeup pattern is collision resilient; so even in the presence of a fault causing two nodes to simultaneously transmit a wakeup pattern the signal resulting from the collision can still wake up the other nodes.7.1.2DescriptionThe wakeup procedure is a subset of the Protocol Operation Control (POC) process. The relationship between the POC and the other protocol processes is depicted in Figure 7-167.Figure 7-1: Protocol operation control context.67 The dark lines represent data flows between mechanisms that are relevant to this chapter. The lighter gray lines are relevantto the protocol, but not to this chapter.7.1.3Wakeup support by the communication controllerThe host must initialize the wakeup of the FlexRay cluster. The host has to configure the wakeup channel pWakeupChannel while the communication controller is in the POC:config state.The host commands its communication controller to send a wakeup pattern on channel pWakeupChannel while the communication controller is in the POC:ready state. The communication controller then leaves the POC:ready state, begins the wakeup procedure (see Figure 7-2) and tries to transmit a wakeup pattern on the configured channel. Upon completion of the procedure it signals back the status of the wakeup attempt to the host (see section 9.3.1.3.1).The host must properly configure the communication controller before it may trigger the cluster wakeup. In the SDL description the wakeup procedure is realized as a macro that is called by the protocol operation control state machine (see Chapter 2).7.1.3.1Wakeup state diagramFigure 7-2: Structure of the wakeup state machine [POC].The parameter pWakeupChannel identifies the channel that the communication controller is configured to wake up. The host can only configure the wakeup channel in the POC:config state. After the communication controller has entered the POC:ready state the host can initiate wakeup on channel pWakeupChannel. Upon completing the wakeup procedure the communication controller shall return into the POC:ready state and signal to the host the result of the wakeup attempt.The return condition of the WAKEUP macro is formally defined as T_WakeupStatus in section 2.2.1.3 in Definition 2-5.The return status variable vPOC!WakeupStatus is set by the POC to•UNDEFINED, if the communication controller has not yet executed the WAKEUP mechanism since the last entry to the POC:default config state (see Figure 2-7), or when the POC responds to a CHI WAKEUP command,•RECEIVED_HEADER, if the communication controller has received a frame header without coding violation on either channel during the initial listen phase,•RECEIVED_WUP, if the communication controller has received a valid wakeup pattern on channel pWakeupChannel during the initial listen phase,•COLLISION_HEADER, if the communication controller has detected a collision during wakeup pattern transmission by receiving a valid header during the ensuing detection phase, •COLLISION_WUP, if the communication controller has detected a collision during wakeup pattern transmission by receiving a valid wakeup pattern during the ensuing detection phase,•COLLISION_UNKNOWN, if the communication controller has detected a collision but did not detecta subsequent reception event that would allow the collision to be categorized as either COLLI-SION_HEADER or COLLISION_WUP,•TRANSMITTED, if the wakeup pattern was completely transmitted.7.1.3.2The POC:wakeup listen stateFigure 7-3: Transitions from the POC:wakeup listen state [POC]68.The purpose of the POC:wakeup listen state is to inhibit the transmission of the wakeup pattern if existing communication or a startup is already in progress.68 For a single channel node, the unattached channel is assumed to always be idle.The timer tWakeup enables a fast cluster wakeup in a noise free environment, while the timer tWakeup-Noise enables wakeup under more difficult conditions when noise interference is present.When ongoing communication is detected or a wakeup of pWakeupChannel is already in progress, the wakeup attempt is aborted.7.1.3.3The POC:wakeup send stateFigure 7-4: Transitions from the state POC:wakeup send state [POC].In this state, the communication controller transmits the wakeup pattern on the configured channel and checks for collisions.Since the communication controller transmits the wakeup pattern on pWakeupChannel, it cannot really determine whether another node sends a wakeup pattern or frame on this channel during its transmission. Only during the idle portions of the wakeup pattern can it listen to the channel. If during one of these idle portions activity is detected, the communication controller leaves the send phase and enters a succeeding monitoring phase (POC:wakeup detect state) so that the cause of the collision might be identified and presented to the host.7.1.3.4The POC:wakeup detect stateFigure 7-5: Transitions from the state POC:wakeup detect state [POC].In this state, the communication controller attempts to discover the reason for the wakeup collision encoun-tered in the previous state (POC:wakeup send).This monitoring is bounded by the expiration of the timer tWakeup. The detection of either a wakeup pattern indicating a wakeup attempt by another node or the reception of a frame header indicating existing commu-nication causes a direct transition to the POC:ready state.7.1.4Wakeup application notesThe host must coordinate the bus driver and the communication controller wakeup modes. It must coordinate the wakeup of the two channels and must decide whether or not to wake a specific channel. Since proper behavior of the host is important to the wakeup procedure, the required host behavior is described here.7.1.4.1Wakeup initiation by the hostA host that wants to initiate a wakeup of the cluster should first check its bus driver(s) to see if they have received wakeup patterns. If the bus driver of a channel did not receive a wakeup pattern, and if there is no startup or communication in progress, the host shall try to wake this channel69.The host should not wake channels whose bus drivers have received a wakeup pattern unless additional information indicates that startup is not possible without an additional wakeup of those channels.70A single-channel node in a dual-channel cluster can trigger a cluster wake-up by waking its attached channel. This wakes up all nodes attached to this channel, including the coldstart nodes, which are always dual-channel. Any coldstart node that deems a system startup necessary will then wake the remaining channel before initiating communication startup.69 The host must distinguish between a local wakeup event and a remote wakeup received via the channel. This information isaccessible at the bus driver.70 This is done to speed up the wakeup process and to limit the amount of traffic on the channels, which reduces the number ofcollisions during this phase.7.1.4.1.1Single-channel nodesThis section describes the wakeup behavior of single-channel nodes in single- or dual-channel clusters. The bus driver is assumed to be in the BD_Sleep or BD_Standby mode. The host is assumed to have determined that a cluster wakeup should be triggered.1.The host first configures the communication controller. The coldstart inhibit mode71 shall be entered bysetting vColdStartInhibit to true.2.The host checks whether a wakeup pattern was received by the bus driver.3.The host puts the bus driver into the BD_Normal mode.4.If a wakeup pattern was received by the bus driver, the node should enter the startup (step 9) insteadof performing a wakeup.If no wakeup pattern received by the bus driver, the node may perform a wakeup of the attached chan-nel (which will eventually wake both channels of a dual-channel cluster).5.The host configures pWakeupChannel to the attached channel.6.The host commands the communication controller to begin the wakeup procedure.7.After its wakeup attempt is complete the communication controller returns the result of the wakeupattempt.8.The host commands the communication controller to leave the coldstart inhibit mode and to com-mence startup.7.1.4.1.2Dual-channel nodesThis section describes the wakeup behavior of dual-channel nodes in dual-channel clusters.Figure 7-6: A short example of how the wakeup of two channels can be accomplished in a fault-tolerant way by coldstart nodes.72A communication controller shall not send a wakeup pattern on both channels at the same time73. If it is necessary to wake both channels, the host can only wake them one at a time.71 This has no functional effect for non-coldstart nodes.72 Note that there is no requirement that a wakeup node be a coldstart node, or that a coldstart node be a wakeup node. In thisexample the wakeup nodes are also coldstart nodes, but this is not required.73 This requirement ensures that an erroneous communication controller cannot disturb all ongoing communication bytransmitting wakeup patterns on both channels at the same time.To avoid certain types of failures, a single communication controller should not wake up both channels. Instead, a different controller should wake up each channel.To accomplish this, a communication controller that has received a local wakeup event proceeds normally and only wakes a single channel, e.g., channel A (see Figure 7-6). Following this, it does not wake the other channel but rather enters startup. If it is a coldstart node, the coldstart inhibit flag must be set to true, so that it cannot actively initiate the cluster startup. Only after the node detects a wakeup pattern on channel B should it clear the coldstart inhibit flag and actively coldstart the cluster.Two example wakeup strategies are now given as examples to demonstrate how cluster wakeup can be accomplished. Neither strategy is concerned with the details of error recovery and therefore do not handle some error situations that are likely to occur.7.1.4.1.2.1Wakeup pattern reception by the bus driverThe bus drivers are assumed to be in the BD_Sleep or BD_Standby mode. The host is assumed to have determined that a cluster wakeup should be triggered.1.The host first configures the communication controller. It assumes both channels to be asleep. Thecoldstart inhibit mode74 shall be set.2.The host checks which of the bus drivers has received a wakeup pattern.3.The host puts all bus drivers that have received a wakeup pattern into BD_Normal mode (these chan-nels can be assumed to be awake).4.If both channels are awake, the host can proceed to startup (step 11).If both channels are asleep, the host shall wake up one of them.If one channel is asleep and one channel is awake, a non-coldstart host may wake up the channel that is asleep, but a coldstart host must wake up the channel that is asleep.5.The host configures pWakeupChannel to the channel to be awakened.6.The host activates the bus driver of pWakeupChannel.7.The host commands the communication controller to begin the wakeup procedure.8.The communication controller returns the result of the wakeup attempt.9.If the result of the wakeup attempt is TRANSMITTED, the host assumes pWakeupChannel to beawake and proceeds to startup (step 11).If the result of the wakeup attempt is RECEIVED_HEADER or COLLISION_HEADER, the host can assume that both channels are awake. It activates any remaining sleeping bus driver and proceeds to startup (step 11).If the result of the wakeup attempt is RECEIVED_WUP or COLLISION_WUP, the host assumes pWakeupChannel to be awake (return to step 4).If the result of the wakeup attempt is COLLISION_UNKOWN, an application-specific recovery strategy has to be employed, which is not covered by this document.10.The host commands the communication controller to begin the startup procedure.11.If all channels are awake, the host may command the communication controller to leave the coldstartinhibit mode. Otherwise, it waits until the bus driver of the still sleeping channel signals the reception ofa wakeup pattern. This bus driver shall then be put into the BD_Normal mode. As soon as all attachedchannels are awake, the host may command the communication controller to leave the coldstart inhibit mode.This method has the disadvantage that the channel pWakeupChannel cannot be listened to during the POC:wakeup listen state. If the bus driver of the channel is subject to an incoming link failure, ongoing communication might be disturbed and the node would not come up without additional error recovery strat-egies.74 This has no functional effect for non-coldstart nodes.7.1.4.1.2.2Wakeup pattern reception by the communication controllerThe wakeup pattern receiver of the communication controller is active as long as the CODEC is in WAKEUP mode. During this time the reception of a wakeup pattern will be directly signaled to the CHI and from there to the host.The bus drivers are assumed to be in the BD_Sleep or BD_Standby modes. The host is assumed to have determined that a cluster wakeup should be triggered.1.The host first configures the communication controller. It assumes both channels to be asleep. Thecoldstart inhibit mode75 shall be set.2.The host checks which of the bus drivers has received a wakeup pattern.3.The host puts both bus drivers into BD_Normal mode.4.If both channels are awake, the host can proceed to startup (step 10).If both channels are asleep, the host shall awake one of them.If one channel is asleep and one channel is awake, a non-coldstart host may wake up the channel that is asleep, but a coldstart host must wake up the channel that is asleep.5.The host configures pWakeupChannel to the channel that to be awakened.6.The host commands the communication controller to begin the wakeup procedure.7.The communication controller returns the result of the wakeup attempt.8.If the result of the wakeup attempt is TRANSMITTED, the host assumes pWakeupChannel to beawake and proceeds to startup (step 10).If the result of the wakeup attempt is RECEIVED_HEADER or COLLISION_HEADER, the hostassumes all attached channels to be awake and proceeds to startup (step 10).If the result of the wakeup attempt is RECEIVED_WUP or COLLISION_WUP, the host assumes pWakeupChannel to be awake (return to step 4).If the result of the wakeup attempt is COLLISION_UNKOWN, an application-specific recovery strategy has to be employed, which is not covered here.9.The host commands the communication controller to begin the startup procedure.10.If all channels are awake, the host may command the communication controller to leave the coldstartinhibit mode. Otherwise, it waits until the wakeup pattern receiver of the communication controller detects a wakeup pattern on the channel that is assumed to be asleep (this could already haveoccurred during one of the former steps). If the communication controller internal wakeup pattern detector receives a wakeup pattern on this channel, it is further assumed to be awake. As soon as all attached channels are awake, the host may command the communication controller to leave the cold-start inhibit mode.7.1.4.2Host reactions to status flags signaled by the communicationcontrollerThis section defines the status information that the communication controller can return to the host as result of its wakeup attempt and the recommended reaction of the host.7.1.4.2.1Frame header reception without coding violationWhen a frame header without coding violation is received by the communication controller on either available channel while in the POC:wakeup listen (or POC:wakeup detect) state the communication controller aborts the wakeup, even if channel pWakeupChannel is still silent.The host shall not command the communication controller to initiate additional wakeup attempts, since this could disturb ongoing communication. Instead, it shall command the communication controller to enter the startup to integrate into the apparently established cluster communication.75 This has no functional effect for non-coldstart nodes.7.1.4.2.2Wakeup pattern receptionThe communication controller has received a wakeup pattern on channel pWakeupChannel while in the POC:wakeup listen (or POC:wakeup detect) state. This indicates that another node is already waking up this channel. To prevent collisions of wakeup patterns on channel pWakeupChannel, the communication controller aborts the wakeup.If another channel is available that is not already awake, the host must determine whether the communi-cation controller is to wake up this channel. If all available channels are awake, the host shall command the communication controller to enter startup.7.1.4.2.3Wakeup pattern transmissionThe communication controller has transmitted the complete wakeup pattern on channel pWakeupChannel. The node can now proceed to startup. In a dual-channel cluster, coldstart nodes may need to be put into the coldstart inhibit mode (see section 7.1.4.1).7.1.4.2.4Termination due to unsuccessful wakeup pattern transmissionThe communication controller was not able to transmit a complete wakeup pattern because its attempt to transmit it resulted in at least cdWakeupMaxCollision occurrences of continuous logical LOW during the idle phase of a wakeup pattern. Possible reasons for this are heavy EMC disturbances on the bus or an internal error.76Since no complete wakeup pattern has been transmitted, it cannot be assumed that all nodes have receiveda wakeup pattern. The host may use the retransmission procedure described in section 7.1.4.3.7.1.4.3Retransmission of wakeup patternsSome events or conditions may prevent a cluster from waking up even though a wakeup attempt has been made (possibly even without the transmitting communication controller being able to immediately detect this failure77). The host detects such an error when the cluster does not start up successfully after the wakeup.The host may then initiate a retransmission of the wakeup pattern. The procedure described in section 7.1.2 shall be used to transmit a wakeup pattern on channel pWakeupChannel.Note that this might disturb ongoing communication of other nodes if the node initiating the wakeup procedure is subject to an incoming link failure or a fault in the communication controller. The host must ensure that such a failure condition will not lead to a permanent disturbance on the bus.7.1.4.4Transition to startupIt cannot be assumed that all nodes and stars need the same amount of time to become completely awake and to be configured.Since at least two nodes are necessary to start up the cluster communication, it is advisable to delay any potential startup attempt of the node having initiating the wakeup by the minimal amount of time it takes another coldstart node to become awake, to be configured, and to enter startup78. Otherwise, the wakeup-initiating coldstart node may fail in its startup attempt with an error condition that is not distinguishable froma defective outgoing link (the communication controller reports no communication partners; see section7.1.4.3).76 The collision of a wakeup pattern transmitted by this node with another wakeup pattern generated by a fault-free node willgenerally not result in this exit condition. Such a collision can be recognized after entering the POC:wakeup detect state and would be signaled by setting the variable vPOC!WakeupStatus to COLLISION_WUP.77 E.g. an erroneous star that needs significantly more time to start up and to be able to forward messages.78 This parameter depends heavily on implementation details of the components used and the ECU structure.The vColdstartInhibit flag can be used to effectively deal with this situation. A communication controller with this flag set to true will only participate in the startup attempts made by other nodes but not initiate one itself. The host should not clear this flag before the above mentioned minimal time for another node to become ready for the communication startup. However, the host shall clear it as soon as all coldstart nodes are awake in the fault-free case79. Please refer to section 7.2.2 for further details of this flag.7.2Communication startup and reintegrationA TDMA based communication scheme requires synchrony and alignment of all nodes that participate in cluster communication. A fault-tolerant, distributed startup strategy is specified for initial synchronization of all nodes. This strategy is described in the following subsections.7.2.1Principles7.2.1.1Definition and propertiesBefore communication startup can be performed, the cluster has to be awake, so the wakeup procedure has to be completed before startup can commence. The startup is performed on all channels synchronously.The action of initiating a startup process is called a coldstart. Only a limited number of nodes may initiate a startup, they are called the coldstart nodes.A coldstart attempt begins with the transmission of a collision avoidance symbol (CAS). Only the coldstart node that transmits the CAS transmits frames in the first four cycles after the CAS. It is then joined first by the other coldstart nodes and afterwards by all other nodes.A coldstart node has the configuration parameter pKeySlotUsedForStartup set to true and is configured with a frame header containing a startup frame indicator set to one (see Chapter 4). In each cluster consisting of at least three nodes, at least three nodes shall be configured to be coldstart nodes80. In clusters consisting of less than three nodes, each node shall be a coldstart node. Each startup frame shall also be a sync frame; therefore each coldstart node will also be a sync node. The parameter gColdStartAttempts shall be configured to be at least two. At least two fault-free coldstart nodes are necessary for the cluster to start up.A coldstart node that actively starts the cluster is also called a leading coldstart node. A coldstart node that integrates upon another coldstart node is also called a following coldstart node.A node is in "startup" if its protocol operation control machine is in one of the states contained in the STARTUP macro (vPOC!State is set to STARTUP during this time, see Chapter 2). During startup, a node may only transmit startup frames. Any coldstart node shall wake up the cluster or determine that it is already awake before entering startup (see section 7.1.4).7.2.1.2Principle of operationThe system startup consists of two logical steps. In the first step dedicated coldstart nodes start up. In the second step the other nodes integrate to the coldstart nodes.7.2.1.2.1Startup performed by the coldstart nodes•Only the coldstart nodes can initiate the cluster start up.•Each of the coldstart nodes finishes its startup as soon as stable communication with one of the other coldstart nodes is established.79 If these times are not known at system design time, it is advised to clear the flag late rather than early.80 This does not imply any restrictions concerning which nodes may initiate a cluster wakeup.7.2.1.2.2Integration of the non-coldstart nodes• A non-coldstart node requires at least two startup frames from distinct nodes for integration. This condition ensures that each non-coldstart node always joins the majority of the coldstart nodes81.•Integrating non-coldstart nodes may start their integration before coldstart nodes have finished their startup.•Integrating non-coldstart nodes may not finish their startup until at least two coldstart nodes have finished their startup.7.2.2DescriptionThe startup procedure is a subset of the Protocol Operation Control (POC) process. The relationship between the POC and the other protocol processes is depicted in Figure 7-7.Figure 7-7: Protocol operation control context.81 This is the case under the assumption that the cluster contains exactly the three recommended coldstart nodes.。
Appendix ASystem ParametersA.1Protocol constantsName Description Value cCASActionPointOffset Initialization value of the CAS action point offset timer. 1 MT cChannelIdleDelimiter Duration of the channel idle delimiter.11 gdBit cClockDeviationMax Maximum clock frequency deviation, equivalent to 15000.0015ppm (1500ppm = 1500/1000000 = 0.0015).0xFEDCBA cCrcInit[A]Initialization vector for the calculation of the frame CRCon channel A (hexadecimal).cCrcInit[B]Initialization vector for the calculation of the frame CRC0xABCDEFon channel B (hexadecimal).cCrcPolynomial Frame CRC polynomial (hexadecimal).0x5D6DCB cCrcSize Size of the frame CRC calculation register.24 bits cCycleCountMax Maximum cycle counter value in a cluster.63 cdBSS Duration of the Byte Start Sequence. 2 gdBit30 gdBit cdCAS Duration of the logical low portion of the collision avoid-ance symbol (CAS) and media access test symbol (MTS). cdCASRxLowMin Lower limit of the CAS acceptance window.29 gdBit cdCycleMax Maximum cycle length.16000 µs cdFES Duration of the Frame End Sequence. 2 gdBit cdFSS Duration of the Frame Start Sequence. 1 gdBit cdMaxMTNom a Maximum duration of a nominal macrotick. Each imple-6 µsmentation must be able to support macroticks of at leastthis length. Different implementations may support highervalues.1 µs cdMinMTNom b Minimum duration of a nominal macrotick. Each imple-mentation must be able to support macroticks of at leastthis length. Different implementations may support lowervalues.5 gdBit cdWakeupMaxCollision Number of continuous bit times at LOW during the idlephase of a WUS that will cause a sending node to detecta wakeup collision.Table A-1: Protocol constants.A.1.1cdCASRxLowMinThe lower limit of the acceptance window for a collision avoidance symbol (CAS) must meet the following constraint:Constraint 1:cdCASRxLowMin [gdBit]= floor( cdCAS [gdBit] * (1 - cClockDeviationMax ) / (1 + cClockDeviationMax ) )= 29 gdBitAs a result, the constant cdCASRxLowMin is 29 gdBit.cdWakeupSymbolTxLow Duration of low phase of a transmitted wakeup symbol. 6 µs cdWakeupSymbolTxIdle Duration of the idle phase between two low phases inside a wakeup pattern.18 µs cHCrcInit Initialization vector for the calculation of the header CRC on channel A or channel B (hexadecimal).0x01A cHCrcPolynomial Header CRC polynomial (hexadecimal).0x385cHCrcSizeSize of header CRC calculation register.11 bitscPayloadLengthMax Maximum length of the payload segment of a frame.127 two-byte-wordscMicroPerMacroMin Minimum number of microticks per macrotick during the offset correction phase.20 µT cMicroPerMacroNomMin Minimum number of microticks in a nominal (uncorrected) macrotick.40 µT cMicroPerMacroNomMax Maximum number of microticks in a nominal (uncor-rected) macrotick.240 µTcSamplesPerBit Number of samples taken in the determination of a bit value.8cSlotIDMax Highest slot ID number.2047cStaticSlotIDMax Highest static slot ID number.1023cStrobeOffset Sample where bit strobing is performed (first sample of a bit is considered as sample 1).5cSyncNodeMax Maximum number of sync nodes in a cluster.15cVotingDelay Number of samples of delay between the RxD input and the majority voted output in the glitch-free case.(cVotingSam-ples -1) / 2cVotingSamplesNumbers of samples in the voting window used for major-ity voting of the RxD input.5a This parameter is only introduced to be able to define a minimum conformance class range that all implementations mustsupport.bThis parameter is only introduced to be able to define a minimum conformance class range that all implementations must support.NameDescriptionValueTable A-1: Protocol constants.A.2Physical layer constantsAdditional parameters related to the Electrical Physical Layer and active/passive stars may be found in [EPL05].A.2.1cdTxMaxThe value of cdTxMax can be determined in the following way:Constraint 2:cdTxMax = max( adTxMax )To calculate the maximum of adTxMax the longest possible frames are taken into account (aFrame-LengthStatic Max = aFrameLengthDynamic Max , see B.4.9).[1]adTxMax [µs] >= (aFrameLengthStatic [gdBit] + 2 gdBit) * gdBitMax [µs/gdBit] +gdMinislot [MT] * gdMacrotick [µs/MT] * (1 + cClockDeviationMax )As a result, cdTxMax is 1433 µs.NameDescriptionValue cPropagationDelayMaxMaximum propagation delay from the falling edge (in the BSS) in the transmit signal of node M to corresponding falling edge at the receiver of node N.2.5 µscdTxMax aaThe value of cdTxMax is the lower bound of dBranchActive in [EPL05].Longest possible period of continuous transmission activity for a valid FlexRay configuration.1433 µsTable A-2: Physical layer constants.Bit Rate [MBit/s]2.5510aFrameLengthStatic Max [gdBit]262826312638gdBitMax [µs]0.40060.20030.10015gdMinislot Max [µs]63gdMacrotick Max [µs]6adTxMax [µs]1433906643Table A-3: Calculation of maximum values for adTxMax .A.3Performance ConstantsTable A-4: Performance constants.NameDescriptionValue cdMaxOffsetCalculationMaximum time allowed for calculation of the offset correction value, measured from the end of the static segment. In some situations the offset correction calculation deadline is actually longer - see section 8.6.2 for details.1350 µTcdMaxRateCalculation Maximum time allowed for calculation of the rate correction value, measured from the end of the static segment. In some situations the rate correction calculation deadline is actually longer - see section 8.6.3 for details.1500 µTAppendix BConfiguration ConstraintsB.1GeneralThis appendix specifies the configurable parameters of the FlexRay protocol. This appendix also identifies the configurable range of the parameters, and gives constraints on the values that the parameters may take on. The listed parameters will be part of the definition of FlexRay conformance classes.113 All implementa-tions that support a given parameter must support at least the parameter range identified in this appendix.An implementation is allowed, however, to support a broader range of configuration values.Currently the only bit rate defined for FlexRay is 10 Mbit/s. There is, however, the intent that the protocol will be expanded in the future to include bit rates lower than 10 Mbit/s. The configuration ranges shown in this appendix reflect bit rates of between 2.5 Mbit/s and 10 Mbit/s. Changes in the range of supported bit rates would also change the required configuration ranges of some parameters. Also, this range should not be interpreted as indicating that all possible bit rates between 2.5 Mbit/s and 10 Mbit/s would be acceptable.B.2Global cluster parametersB.2.1Protocol relevantProtocol relevant global cluster parameters are parameters used within the SDL models to describe the FlexRay protocol. They must have the same value in all nodes of a cluster.113Exceptions for parameters which should not be part of a conformance class are indicated by footnote.NameDescriptionRangegColdStartAttemptsMaximum number of times a node in the cluster is permit-ted to attempt to start the cluster by initiating schedule synchronization.2 - 31gdActionPointOffset Number of macroticks the action point is offset from the beginning of a static slot or symbol window. 1 - 63 MT gdCASRxLowMax Upper limit of the CAS acceptance window.67 - 99 gdBit gdDynamicSlotIdlePhase Duration of the idle phase within a dynamic slot.0 - 2 Minislot gdMinislotDuration of a minislot.2 - 63 MT gdMinislotActionPoint-Offset Number of macroticks the minislot action point is offset from the beginning of a minislot. 1 - 31 MT gdStaticSlot Duration of a static slot.a4 - 661 MT gdSymbolWindow Duration of the symbol window.0 - 142 MT gdTSSTransmitterNumber of bits in the Transmission Start Sequence. 3 - 15 gdBitTable B-1: Global protocol relevant parameters.gdWakeupSymbolRxIdle Number of bits used by the node to test the duration of the'idle' portion of a received wakeup symbol. Duration isequal to (gdWakeupSymbolTxIdle - gdWakeupSym-bolTxLow)/2 minus a safe part. (Collisions, clock differ-ences, and other effects can deform the Tx-wakeuppattern.)14 - 59 gdBitgdWakeupSymbolRxLow Number of bits used by the node to test the LOW portionof a received wakeup symbol. This lower limit of zero bitshas to be received to detect the LOW portion by thereceiver. The duration is equal to gdWakeupSym-bolTxLow minus a safe part. (Active stars, clock differ-ences, and other effects can deform the Tx-wakeuppattern.)11 - 59 gdBitgdWakeupSymbolRx-Window The size of the window used to detect wakeups. Detectionof a wakeup requires a low and idle period (from oneWUS) and a low period (from another WUS) to bedetected entirely within a window of this size. The durationis equal to gdWakeupSymbolTxIdle + 2 * gdWakeupSym-bolTxLow plus a safe part. (Clock differences and othereffects can deform the Tx-wakeup pattern.)76 - 301 gdBitgdWakeupSymbolTxIdle Number of bits used by the node to transmit the 'idle' partof a wakeup symbol. The duration is equal to cdWake-upSymbolTxIdle.45 - 180 gdBitgdWakeupSymbolTxLow Number of bits used by the node to transmit the LOWpart of a wakeup symbol. The duration is equal tocdWakeupSymbolTxLow.15 - 60 gdBitgListenNoise Upper limit for the startup listen timeout and wakeup lis-ten timeout in the presence of noise. It is used as a multi-plier of the node parameter pdListenTimeout.2 - 16gMacroPerCycle Number of macroticks in a communication cycle.10 - 16000MTgMaxWithoutClockCor-rectionFatal Threshold used for testing the vClockCorrectionFailedcounter. Defines the number of consecutive even/oddcycle pairs with missing clock correction terms that willcause the protocol to transition from the POC:normalactive or POC:normal passive state into the POC:haltstate.gMaxWithout-ClockCorrec-tionPassive -15 even/oddcycle pairsgMaxWithoutClockCor-rectionPassive Threshold used for testing the vClockCorrectionFailedcounter. Defines the number of consecutive even/oddcycle pairs with missing clock correction terms that willcause the protocol to transition from the POC:normalactive state to the POC:normal passive state. Note that gMaxWithoutClockCorrectionPassive <= gMaxWithout-ClockCorrectionFatal <= 15.1 - 15 even/odd cyclepairsgNumberOfMinislots Number of minislots in the dynamic segment.0 - 7986Table B-1: Global protocol relevant parameters.B.2.2Protocol relatedProtocol related global cluster parameters are parameters that have a meaning in the context of the FlexRay protocol but are not used within the SDL models. These parameters are used in the configuration constraints. They must have the same value in all nodes of a cluster.gNumberOfStaticSlots Number of static slots in the static segment.2 - cStatic-SlotIDMax gOffsetCorrectionStartStart of the offset correction phase within the NIT,expressed as the number of macroticks from the start of cycle.9 - 15999 MTgPayloadLengthStaticPayload length of a static frame.b0 - cPayload-LengthMax two-byte-words gSyncNodeMaxMaximum number of nodes that may send frames with the sync frame indicator bit set to one.2 - cSyncNo-deMaxa This parameter is also used in the FlexRay Electrical Physical Layer Specification [EPL05].bAll static frames in a cluster have the same payload length.NameDescriptionRange gAssumedPrecision Assumed precision of the application network.0.15 - 11.7 µs gChannelsThe channels that are used by the cluster.[A, B, A&B]gClusterDriftDampingThe cluster drift damping factor, based on the longest microtick gdMaxMicrotick used in the cluster. Used to compute the local cluster drift damping factor pCluster-DriftDamping .0 - 5 µTgdBitNominal bit time (see formula [7]).cSamplesPerBit *gdSampleClock-Period [µs]gdBitMax a Maximum bit time taking into account the allowable clock deviation of each node.gdBit * (1 + cClock-DeviationMax ) [µs]gdBitMin b Minimum bit time taking into account the allowable clock deviation of each node.gdBit * (1 - cClock-DeviationMax ) [µs]gdCycle Length of the cycle, expressed in µs.10 µs c -cdCycleMaxgdMacrotick Duration of the cluster wide nominal macrotick, expressed in µs (see formula [8]).1 - 6 µs gdMaxInitialization-ErrorMaximum timing error that a node may have following integration.0 - 11.7 µsTable B-2: Global protocol related parameters.Table B-1: Global protocol relevant parameters.B.2.3Physical layer relevantFor detailed information refer to [EPL05].B.3Node parametersB.3.1Protocol relevantProtocol relevant node parameters are parameters used within the SDL models to describe the FlexRay protocol. They may have different values in different nodes of a cluster.gdMaxMicrotick d Maximum microtick length of all microticks configured within a cluster (see formula [2]).pdMicrotick [µs]gdMaxPropagation-DelayMaximum propagation delay of a cluster (see Con-straint 3).<= cPropagation-DelayMax [µs]gdMinPropagation-Delay Minimum propagation delay of a cluster.<= gdMaxPropa-gationDelay [µs]gdNITDuration of the Network Idle Time. 2 - 805 MT gdSampleClockPeriod Sample clock period.[0.0125, 0.025,0.05 µs]gNetworkManage-mentVectorLength Length of the Network Management vector in a cluster.0 - 12 bytes gOffsetCorrectionMaxCluster global magnitude of the maximum necessary offset correction value.0.15 - 383.567 µsa This parameter is only introduced for configuration constraints.b This parameter is only introduced for configuration constraints.cSee the minimum constraint for gMacroPerCycle . Maximum value is given by cdCycleMax .dThis parameter is only introduced for configuration constraints.NameDescriptionRange pAllowHaltDueToClockBoolean flag that controls the transition to the POC:halt state due to a clock synchronization errors. If set to true, the CC is allowed to transition to POC:halt .If set to false, the CC will not transition to the POC:halt state but will enter or remain in the POC:normal pas-sive state (self healing would still be possible).BooleanpAllowPassiveToActiveNumber of consecutive even/odd cycle pairs that must have valid clock correction terms before the CC will be allowed to transition from the POC:normal passive state to POC:normal active state. If set to zero, the CC is not allowed to transition from POC:normal passive to POC:normal active .0 - 31 even/oddcycle pairsTable B-3: Local node protocol relevant parameters.Table B-2: Global protocol related parameters.pChannels Channels to which the node is connected.[A, B, A&B]pdAcceptedStartu-pRange Expanded range of measured clock deviation allowedfor startup frames during integration.0 - 1875 µTpClusterDriftDamping Local cluster drift damping factor used for rate correc-tion.0 - 20 µTpDecodingCorrection Value used by the receiver to calculate the differencebetween primary time reference point and secondarytime reference point.14 - 143 µTpDelayCompensa-tion[A], pDelayCompen-sation[B]Value used to compensate for reception delays on theindicated channel. This covers assumed propagationdelay up to cPropagationDelayMax for microticks in therange of 0.0125 µs to 0.05 µs.In practice, the minimum of the propagation delays ofall sync nodes should be applied.0 - 200 µTpdListenTimeout Value for the startup listen timeout and wakeup listentimeout. Although this is a node local parameter, thereal time equivalent of this value should be the samefor all nodes in the cluster.1284 - 1283846µTpdMaxDrift Maximum drift offset between two nodes that operatewith unsynchronized clocks over one communicationcycle.2 - 1923 µTpExternOffsetCorrection Number of microticks added or subtracted to the NIT tocarry out a host-requested external offset correction.0 - 7 µTpExternRateCorrection Number of microticks added or subtracted to the cycleto carry out a host-requested external rate correction.0 - 7 µTpKeySlotId ID of the slot used to transmit the startup frame, syncframe, or designated single slot frame.1 - cStaticSlot-IdMaxpKeySlotUsedForStartup Flag indicating whether the Key Slot is used to transmita startup frame. If pKeySlotUsedForStartup is set totrue then pKeySlotUsedForSync must also be set totrue.BooleanpKeySlotUsedForSync Flag indicating whether the Key Slot is used to transmita sync frame. If pKeySlotUsedForStartup is set to truethen pKeySlotUsedForSync must also be set to true.BooleanpLatestTx Number of the last minislot in which a frame transmis-sion can start in the dynamic segment.0 - 7980 MinislotpMacroInitialOffset[A], pMacroInitialOffset[B]Integer number of macroticks between the static slotboundary and the following macrotick boundary of thesecondary time reference point based on the nominalmacrotick duration.2 - 68 MT Table B-3: Local node protocol relevant parameters.B.3.2Protocol relatedProtocol related node parameters are parameters that have a meaning in the context of the FlexRay protocol but are not used within the SDL models. They may have different values in different nodes of a cluster.pMicroInitialOffset[A], pMicroInitialOffset[B]Number of microticks between the closest macrotick boundary described by pMacroInitialOffset[Ch] and the secondary time reference point.The parameter depends on pDelayCompensation[Ch] and therefore it has to be set independently for each channel.0 - 239 µTpMicroPerCycle Nominal number of microticks in the communication cycle of the local node. If nodes have different microtick durations this number will differ from node to node.640 - 640000 µTpOffsetCorrectionOut Magnitude of the maximum permissible offset correc-tion value.13 - 15567 µT pRateCorrectionOut Magnitude of the maximum permissible rate correction value.2 - 1923 µT pSingleSlotEnabled Flag indicating whether or not the node shall enter sin-gle slot mode following startup.Boolean pWakeupChannel Channel used by the node to send a wakeup pattern.[A, B]pWakeupPatternNumber of repetitions of the wakeup symbol that are combined to form a wakeup pattern when the node enters the POC:wakeup send state.2 - 63NameDescriptionRangepdMicrotick aa Shall not be part of the conformance test due to implementation dependency.Duration of a microtick.pSamplesPerMicrotick *gdSampleClockPeriod [µs]pMicroPerMacroNom Number of microticks per nominal macrotick that all implementations must support.cMicroPerMacroNomMin -cMicroPerMacroNomMax pPayloadLengthDynMax Maximum payload length for dynamic frames.0 - cPayloadLengthMaxpSamplesPerMicrotick bbShall not be part of the conformance test due to implementation dependency.Number of samples per microtick.[1, 2, 4]Table B-4: Local node protocol related parameters.Table B-3: Local node protocol relevant parameters.B.3.3Physical layer relevantFor values of the following parameter please refer to [EPL05].Name DescriptiondStarTruncation Interval by which a transmitted TSS is shortened by one star.nStarPath M,N Number of stars on the signal path from any node M to a node N in anetwork with active stars.dBDRxia Activity reaction time. Time by which a transmission becomes short-ened in a receiving node (when bus is switched from idle to active).dBDRxai Idle reaction time. Time by which a transmission becomes lengthenedin a receiving node (when bus is switched from active to idle). If the lastactive driven bit was HIGH the idle detection in the CC is not delayed.dBDTxia Activity reaction time. Time by which a transmission becomes short-ened in a transmitting node (when bus is switched from idle to active).dBDTxai Idle reaction time. Time by which a transmission becomes lengthenedin a transmitting node (when bus is switched from active to idle).dBDRx01Time by which a positive edge is delayed in a receiving node.dBDRx10Time by which a negative edge is delayed in a receiving node.dBDTx01Time by which a positive edge is delayed in a transmitting node.dBDTx10Time by which a negative edge is delayed in a transmitting node.Table B-5: Local node physical layer related parameters.B.4Calculation of configuration parametersFollowing abbreviations and functions are used in this section:1.Function ceil(x) returns the nearest integer greater than or equal to x.2.Function floor(x) returns the nearest integer less than or equal to x.3.Function max(x;y) returns the maximum value from a set of values {x;y}.4.Function min(x;y) returns the minimum value from a set of values {x;y}.5.Function round(x) returns the rounded integer value of x.6.Function if(c;x;y) returns x if condition c is true, otherwise y.7.[ ] denotes units.B.4.1Attainable precisionVarious error terms influence the attainable precision of the FlexRay clock synchronization algorithm (see [Mül01] and [Ung02]). In order to choose proper configuration parameters it is necessary to know the attainable precision of the application network.B.4.1.1Propagation DelayA parameter for the maximum propagation delay gdMaxPropagationDelay[µs] of the cluster is introduced withConstraint 3:gdMaxPropagationDelay[Ch][µs] = max( pdBDTx[Ch]M [µs] + LineLength[Ch]M,N [m] * T 0[µs/m] +[µs] + pdBDRx[Ch]N [µs] )M,N gdMaxPropagationDelay [µs] = max( gdMaxPropagationDelay[A][µs], gdMaxPropagationDelay[B][µs] )<= cPropagationDelayMaxmax(...)M,N means the maximum of all paths from node M to node N with M,N = 1, .., number of nodes andM <> N.•pdBDTx[Ch]M is the maximum propagation delay of the transmitter of node M on Channel Ch and represents the maximum of the propagation delay of a positive edge (dBDTx01) and a negative edge (dBDTx10) inside the transmitter•pdBDRx[Ch]N is the maximum propagation delay of the receiver of node N on Channel Ch and represents the maximum of the propagation delay of a positive edge (dBDRx01) and a negative edge (dBDRx10) inside the receiver.•pdStarDelay k is the propagation delay of star k .•LineLength[Ch]M,N is the real line length between node M and node N on Channel Ch .•{nStar[Ch]MN } is the number of active stars between node M and N on Channel Ch .•The propagation delay per unit length of a line T 0 is approximately 0.01µs/m.The value of gdMaxPropagationDelay should be estimated for the given network topology using the estimated propagation delays of line, star and transmitter. If this is not possible or a worst case estimation is needed, a value from Table B-6 should be chosen. The gdMaxPropagationDelay Max parameter from Table B-6 is also used to derive additional constraints on other parameters.In some cases the propagation delay of a star may be up to 0.7µs (if, for example, the star includes a signal refresh feature). It is acceptable to use a star with this increased propagation delay if the overall propagation delay gdMaxPropagationDelay is always less than or equal to the upper limit of cPropagationDelayMax .B.4.1.2Worst-case precisionFirst of all, a parameter defining the maximum used microtick of a cluster is introduced:[2]gdMaxMicrotick [µs] = max( { x | x = pdMicrotick of each node } )The worst-case error before the correction is given bynStar 012LineLength [m]244872pdBDTx Max [µs]0.1pdBDRx Max [µs]0.1pdStarDelay Max [µs]0.25gdMaxPropagationDelay Max [µs]0.440.931.42Table B-6: Maximum propagation delay in a cluster. Maximum values for LineLength , pdBDTx ,pdBDRx and pdStarDelay were chosen according to limits described in [EPL05].pdStarDelay kk nStar Ch []MN {}∈∑[3]aWorstCasePrecision [µs] = (34 µT + 20 * gClusterDriftDamping [µT]) * gdMaxMicrotick [µs/µT] +2 * gdMaxPropagationDelay [µs]It is important to note that the attainable precision directly depends on network topology (gdMaxPropaga-tionDelay ) and the maximum microtick used in the cluster (gdMaxMicrotick ).As explained in [Mül01] and [Ung02], it can be proven that a value of gClusterDriftDamping = 5 µT is enough to prevent cluster drifts. Since cluster precision becomes worse as gClusterDriftDamping increases, gClus-terDriftDamping is limited to 5 µT.Table B-7: Calculation of the worst-case precision.For further parameter calculations it is assumed that gdMaxMicrotick [µs] = 0.05 µs or a smaller value.Therefore the worst-case precision is assumed to be 11.7 µs.B.4.1.3Best-case precisionThe best-case precision can be calculated using a simplified equation [3] which does not take Byzantine errors into account.[4]aBestCasePrecision [µs] >= (12 µT + 6 * gClusterDriftDamping [µT]) * gdMaxMicrotick [µs/µT] +gdMaxPropagationDelay [µs] - gdMinPropagationDelay [µs]It is not possible to reach a precision better than calculated in [4].Table B-8: Calculation of the best-case precision.B.4.1.4Assumed precisionAn assumed precision of the cluster, gAssumedPrecision [µs] is introduced. This parameter depends on the parameters gdMaxPropagationDelay , gdMaxMicrotick and gClusterDriftDamping . The gAssumedPrecision parameter is necessary to derive additional constraints on other timing parameters. This parameter is given byConstraint 4:aBestCasePrecision [µs] <= gAssumedPrecision [µs] <= aWorstCasePrecision [µs]gdMaxMicrotick [µs]0.1000.0500.0250.0125gClusterDriftDamping Max [µT]5gdMaxPropagationDelay [µs] = cPropagationDelayMax [µs] 2.5aWorstCasePrecision Max [µs]18.411.78.356.675gdMaxMicrotick [µs]0.1000.0500.0250.0125gClusterDriftDamping Min [µT]0min( gdMaxPropagationDelay [µs] - gdMinPropagationDelay [µs] )0aBestCasePrecision Min [µs]1.20.60.30.15For purposes of configuration of the cluster, it is suggested that gAssumedPrecision should be:[5]gAssumedPrecision [µs] = aWorstCasePrecision [µs] = (34 µT + 20 * gClusterDriftDamping [µT])* gdMaxMicrotick [µs/µT] +2 * gdMaxPropagationDelay [µs]B.4.2Definition of microtick and macrotickThe parameter pdMicrotick is usually not a configuration parameter of an implementation. It is introduced here because it is used to derive various parameter constraints.The microtick length (pdMicrotick ) is implementation dependent and may be different for each node. The bit length (gdBit ) must be identical for all nodes of the cluster. Both parameters are defined in multiples of the sample clock period.[6] pdMicrotick = pSamplesPerMicrotick * gdSampleClockPeriod [7]gdBit = cSamplesPerBit * gdSampleClockPeriodTable B-9 shows the possible microtick lengths depending on pSamplesPerMicrotick and gdSampleClock-Period . Table B-10 shows the possible nominal macrotick lengths (gdMacrotick ) on a range of the microticks per macrotick parameter (pMicroPerMacroNom ) of between 40 to 240. In practice, it is assumed that the typical microtick range is pdMicrotick = 0.0125 µs ... 0.05 µs because of this parameter's direct influence to the attainable precision.Table B-9: pdMicrotick [µs] depending on pSamplesPerMicrotick and gdSampleClockPeriod .Table B-10: gdMacrotick [µs] depending on pMicroPerMacroNom and pdMicrotick .Some parameter constraints depend on the microtick length of the node and the nominal macrotick length of the cluster. To define a minimum parameter range for these parameters, that is the basis of conformance tests, a typical microtick length of 0.025 µs and the resulting nominal macrotick range of 1 µs to 6 µs (Constraint 5) are assumed (green fields within Table B-9 and B-10).gdSample-ClockPeriod [µs]pSamplesPerMicrotick 1240.01250.01250.0250.0500.02500.0250.0500.1000.05000.0500.100-pMicroPer-MacroNompdMicrotick [µs]0.01250.0250.0500.10040-12460- 1.53680124-1201.536-24036--。
一、FlexRay介绍FlexRay通讯协议运用于可靠的车内网络中,是一种具备故障容错的高速汽车总线系统。
它已经成为同类产品的基准,将在未来很多年内,引导汽车电子产品控制结构的发展方向。
FlexRay协议标准中定义了同步和异步帧传输,同步传输中保证帧的延迟和抖动,异步传输中有优先次序,还有多时钟同步,错误检测与避免,编码解码,物理层的总线监控设备等。
1.1汽车网络通信协议综述汽车网络通信协议在保证整个系统正常运行方面起着非常重要的作用。
它可以帮助解决系统很多问题,如数据共享、可扩展性、诊断接口等。
目前,应用于汽车领域的网络标准除了FlexRay还有很多,如CAN、LIN、J1850及MOST等。
CAN总线全称为“控制器局域网总线(Controller Area Network)”,是德国博世公司从80年代初为解决现代汽车中众多的控制与测试仪器之间的数据交换而开发的一种串行数据通信协议。
它是一种多主总线,通信介质可以是双绞线、同轴电缆或光导纤维。
CAN通信速率可达1Mbit/s,每帧的数据字节数为8个。
LIN(Local Interconnect Network,控制器局域网)总线是由LIN 协会发布的一种新型低成本串行通信总线,也称为经济型CAN网络。
LIN的目标是为现有汽车网络(例如CAN 总线)提供辅助功能,因此LIN总线是一种辅助的总线网络,在不需要CAN 总线的带宽和多功能的场合比如智能传感器和制动装置之间的通信使用LIN总线可大大节省成本。
J1850总线是1994年由汽车工程师协会颁布的标准,之后普及运用于美国车厂的汽车中。
不过,虽然美国各厂多采用J1850标准,但是各厂的实际做法又不相同,因此相对其他标准来说比较混乱。
由于J1850总线通信速率低,只适合用于车身控制系统及诊断系统,目前在美国逐步被CAN 所取代。
MOST(Media Oriented System Transport,面向媒体的系统传输)总线是采用光纤并用于智能交通及多媒体的网络协议,能够支持24.8Mbps的数据速率,与以前的铜缆相比具有减轻重量和减小电磁干扰的优势。
1.2 FlexRay特点作为一种灵活的车载网络系统,FlexRay具有高速、可靠及安全的特点,它不仅能简化车载通信系统的架构,而且还有助于汽车电子单元获得更高的稳定性和可靠性。
在宝马新款SUV “X5”的电子控制减震器系统中,首次采用了控制系列车内LAN接口规格FlexRay,此次实际应用预示着FlexRay在高速车载通信网络中的大规模应用已经指日可待。
图1-各个协议数据速率的比较FlexRay在物理上通过两条分开的总线通信,每一条的数据速率是10MBit/s。
CAN网络最高性能极限为1Mbps,而FlexRay总数据速率可达到20Mbit/秒。
因此,应用在车载网络,FlexRay 的网络带宽可能是CAN的20倍之多。
FlexRay还能够提供很多网络所不具有的可靠性特点。
尤其是FlexRay具备的冗余通信能力可实现通过硬件完全复制网络配置,并进行进度监测。
FlexRay同时提供灵活的配置,可支持各种拓扑,如总线、星型和混合拓扑。
设计人员可以通过结合两种或两种以上的该类型拓扑来配置分布式系统。
FlexRay本身不能确保系统安全,但它具备大量功能,可以支持以安全为导向的系统(如线控系统)的设计。
1.3 FlexRay协会FlexRay协会旨在推展开放式高速汇流排系统标准用于汽车的分布式控制应用。
自2000年9月成立以来,协会不断发展成长,成员包括汽车产业一些最大、最具影响力的公司。
FlexRay的开发工作正在BMW、戴姆勒克莱斯勒、Freescale半导体、通用汽车、恩智浦半导体、博世和大众等核心合作伙伴的推动下大步前进。
透过多种会员分级制度,会员企业可与 FlexRay协会工作小组进行交流,提出想法,参加评议会,并可提前获得相关规范以及积极参与推展这一国际标准的机会。
协会网站:1.4 FlexRay应用正如图2所示,FlexRay面向的是众多的车内线控操作(X-by-Wire)。
图中还展示了一个把FlexRay和CAN网络结合的网关。
图2-带有CAN网络扩充的FlexRay线控操作FlexRay导线控制应用的例子包括:●线控操作转向:典型的是使用电子控制单元。
●防抱死制动系统(ABS):包括车辆稳定控制(V)和车辆稳定助手(VSA)。
●动力系:—代替现有的机械系统控制电子节气门。
该电子节气门和现有系统结合工作,如电脑化燃油喷射器、电脑化可变进气系统、电脑化怠速控制系统。
二、FlexRay架构2.1 FlexRay节点FlexRay节点的核心是ECU(Electronic Control Unit),是接入车载网络中的独立完成相应功能的控制单元。
主要由电源供给系统(Power Supply)、主处理器(Host)、固化FlexRay 通信控制器(Communication Controller)、可选的总线监控器(Bus Guardian)和总线驱动器(Bus Driver)组成,如图XX。
主处理器提供和产生数据,并通过FlexRay 通信控制器传送出去。
其中BD和BG的个数对应于通道数,与通讯控制器和微处理器相连。
总线监控逻辑必须独立于其他的通讯控制器。
总线驱动器连接着通信控制器和总线,或是连接总线监控器和总线。
主处理器把FlexRay控制器分配的时间槽通知给总线监视器,然后总线监视器就允许FlexRay 控制器在这些时间槽中来传输数据。
数据可以在任何时候被接收。
节点的两个通讯过程如下。
a.发送数据Host将有效的数据送给CC,在CC中进行编码,形成数据位流(bitstream),通过BD发送到相应的通道上。
b.接受数据在某一时刻,由BD访问栈,将数据位流送到CC进行解码,将数据部分由CC传送给Host。
图3 FlexRay节点(ECU)如图2-3所示,FlexRay的节点有几个基本的运行状态:●配置状态(默认配置/配置):用于各种初始化设置,包括通信周期和数据速率。
●就绪状态:用于进行内部的通信设置。
●唤醒状态:用于唤醒没有在通信的节点。
唤醒针对的是电源管理系统。
有些节点在不工作时处于“省电”模式(power-saving mode),党再次投入工作时就需要“唤醒该节点”;单个节点可唤醒整个组群;主机可在通讯信道上传输唤醒模式。
节点通过收发器进行唤醒;当节点的收发器接受到唤醒特征符后,对主机处理器和通讯控制器进行上电,唤醒并激活通信控制器、总线驱动器和总线监控器。
●启动状态:用于启动时钟同步,并为通信做准备。
只有将节点唤醒后,才能启动节点工作。
初始化一个启动过程称为“cold-start”,能进行冷启动的节点数目是有限的。
系统的启动由两个逻辑步骤组成:冷启动节点启动+其他非冷启动节点通过接受启动帧与冷启动节点整合到一起。
●正常状态(主动/被动):可以进行通信的状态。
●中断状态:表明通信中断。
FlexRay的网络拓扑结构主要分为3种:总线式、星形、总线星形混合型。
在星型结构中,还存在联级方式。
通常,FlexRay节点可以支持两个信道,因而可以开发单信道和双信道两种系统。
在双信道系统中,不是所有节点都必须与两个信道连接。
与总线结构相比,星状结构的优势在于:它在接收器和发送器之间提供点到点连接。
该优势在高传输速率和长传输线路中尤为明显。
另一个重要优势是错误分离功能。
例如,如果信号传输使用的两条线路短路,总线系统在该信道不能进行进一步的通信。
如果是星状结构,则只有到连接短路的节点才会受到影响。
其它所有节点仍然可以继续与其它节点通信。
双通道总线结构如1-1,双通道备用星型结构如1-2,单双通道级联如1-3和1-4,单双通道混合型结构如图1-5,1-6。
三、FlexRay协议FlexRay 联盟目前只规定了数据链路层和物理层的协议。
3.1 FlexRay帧格式一个数据帧由帧头(Header Segment)、有效数据段(Payload Segment)和帧尾(Trailer Segment)三部分组成。
FlexRay数据帧格式如图4-1所示。
3.1.1帧头部分共由5个字节(40bit)组成。
包括以下几位:1.保留位(Reserved bit,1位)。
为日后的扩展做准备;2.负载段前言指示(Payload Preamble indicator,1位)。
指明帧的负载段的向量信息。
在静态帧中,该位指明的是NWVector;在动态帧中,该位指明的是信息ID;3.空帧指示(Null frame indicator,1位)。
指明负载段的数据帧是否为零;4.同步帧指示(sync frame indicator,1位)。
指明这是一个同步帧;5.起始帧指示(startup frame indicator,1位)。
指明发送帧的节点是否为启始帧;6.帧ID(11位)。
指明在系统设计过程中分配到每个节点的ID(有效范围:1至2047);长度-说明负载段的数据长度;7. 有效数据长度(7位)。
指示有效数据的的长度,以字为单位。
8.头部CRC(11位)。
表明同步帧指示器和起始帧指示器的CRC计算值,以及由主机计算的帧ID和帧长度;9.周期(6位)。
指明在帧传输时间内传输帧的节点的周期计数。
3.1.2有效数据部分有效数据由三个部分组成:1.数据。
可以是0-254字节或者说0-127个字,在图中分别以data0、data1…表示;2.信息ID。
使用负载段的前两个字节进行定义,可以在接收方作为可过滤数据使用;3.网络管理向量(NWVector)。
该向量长度必须为0至10个字节,并和所有节点相同。
该帧的尾段包括硬件规定的CRC值。
这些CRC值会在连接的信道上面改变种子值,以防不正确的校正。
一般将有效数据部分的前6个字节设为海明距离(Hamming Distance)。
3.1.3帧尾部分只含有单个的数据域,即CRC部分,包括帧头CRC和数据帧的CRC。
3.2 FlexRay帧编码编码的过程实际上就是对要发送的数据进行相应的处理“打包”的过程,如加上各种校验位、ID符等。
解码的过程就是对收到的数据帧进行“解包”的过程。
编码与解码主要发生在通讯控制器与总线驱动器之间,如图5。
图5 编码与解码其中RxD位接受信号,TxD为发送信号,TxEN为通讯控制器请求数据信号。
信息的二进制表示采用“不归零”码。
对于双通道的节点,每个通道上的编码与解码的过程是同时完成的。
编码与解码的过程主要由3各过程组成:主编码与解码过程(CODEC)、位过滤(bit strobing)过程和唤醒模式解码过程(WUPDEC)。
以主编吗与解码过程为主要过程。
3.2.1帧编码传输起始序列(Transmission Start Sequence简称TSS),为一段时间的低电平,用于初始化传输节点与网络的对接。