1、第三章 基于时间触发的车载网络FlexRay第一节FlexRay概述FlexRay是一个为车上应用系统高层网络和“线控”系统开发的通信标准。它最突出的特点,是在提高数据传输率的条件下,能够满足汽车安全要求的可靠性指标。车上“线控”系统要求网络具有传输速度高、可靠性好和支持分布控制的性能;FlexRay不仅仅是一个通信协议,而且包括协议控制器、发送接收驱动器、以及各种FlexRay元件的硬件和软件接口标准。2第一节FlexRay概述FlexRay相对于传统的车内通信协议具有很多新特性。这些特性为新的应用提供了基础,也是FlexRay能够成为面向实时控制的车载总线标准的重要原因。这些基本的特性包括
2、:高传输速率同步时间触发冗余和非冗余通信拓扑结构灵活3第一节FlexRay概述FlexRay提供了两个独立的通信信道,每一个通信信道的速率都可以达到10Mbit/s。这两个通道可以配置为冗余通信或非冗余通信。冗余通信就是两个通道上传输一样的数据,通过信息的冗余来提高可靠性。非冗余通信就是两个通道上各自传输自己的数据,借此来达到高速率要求。4第一节FlexRay概述作为计算机网络通信协议,按照ISO的计算机网络OSI通信模型,FlexRay的分层结构如图3-1。5第一节FlexRay概述一、基本术语一、基本术语时间片(Slot):是FlexRay对通信过程划分的时间段,在这些时间段上控制器按一定
3、要求或条件访问通信媒体。TDMA(Time Division Multiple Access):分时多路复用访问方式。FlexRay支持TDMA媒体访问方式。通信周期(Communication Cycle):FlexRay一个信息传送的周期(Cycle)称为通信周期(Communication Cycle)。一个通信周期由静态和动态两个部分构成,静态和动态的两个部分任何一个都可以是空的。通信周期静态部分(Static Part):在这一部分中,信息按着固定的事先定义的TDMA方式传送。6第一节FlexRay概述通信周期动态部分(Dynamic Part):在这一部分,信息按最小时间片算法(M
4、ini-slotting Algorithm)发送;按信息标识符的优先级确定发送的顺序。电控单元(ECU)节点:连接到网络上的具有一定应用功能的节点。网络星节点(Active Star):只具有网络功能的通道连接节点。总线监控逻辑(Bus Guardian):用于避免通道定时错误的一个独立部分,它与一个通信控制器和一个微控制器相连;总线监控逻辑必须独立于其它的通信控制器。7第一节FlexRay概述通道(Channel):在FlexRay系统中,通道指通信控制器的物理连接。节点主机(Host):一个节点中执行应用程序的微控制器。集群(clique):一组具有一定相同系统属性的通信控制器。簇(cl
5、uster):由至少一条通信通道直接连接的多个节点构成的通信系统或子系统。通信控制器(CC,communication controller):在一个FexRay的节点中完成通信协议功能的部件。8第一节FlexRay概述周期数(cycle number):用于识别一个通信周期的正整数,系统启动后的第一个周期的周期数设为零,以后随着通信周期递增,到最大数后回零,以此往复。周期时间(cycle time):一个通信周期持续的时间,单位为宏时钟节拍(macroticks)。帧(frame):通信过程中交换信息的一个时间窗结构。帧标识符(frame identifier):标识一个帧的值,在通信周期的
6、静态段,定义了这个帧的时间片位置;在动态段定义了这个帧的优先级,数值越小优先级越高。9第一节FlexRay概述关键时间片(key slot):用于传输同步帧和启动帧的时间片。宏时钟节拍(macrotick):由簇时钟同步算法确定的一个时间段,用单位为微时钟节拍的一个整数表示。时钟同步算法会动态调节这个值。全局时钟以宏时钟节拍为单位。微时钟节拍(microtick):一个节点的通信控制器时钟振荡器产生的一个基本时间单位。微时间片(minislot):一个通信周期的动态段中的一个时间片,用于同步传输部分媒体访问优先级仲裁。空帧(null frame):没有传输有效数据的帧,其数据部分都置为0。10
7、第一节FlexRay概述时间片编号(slot number):在一个通信周期中各个时间片的编号,用于识别时间片。启动帧(startup frame):帧头含有一个标识部分,帧中的时间信息可以在启动过程用来初始化系统。同步帧(sync frame):帧头含有一个标识部分,其中有帧实际到达时间和预计到达时间的偏差,其可用于时钟同步算法。同步节点(sync node):被配置传输同步帧的节点。工作点(action point):宏时钟节拍的边界点,在这些点启动或停止发送。11第一节FlexRay概述二、节点基本结构在FlexRay网络中,有节点三种基本类型三种基本类型:同步节点、冷启动节点和应用任务
8、节点。同步节点在网络中提供时钟同步算法的支持,实现同步的功能。冷启动节点的特点是在网络尚未同步之前就可以发送启动帧,支持节点和网络的通信的初始化过程。冷启动节点一定是一个同步节点。这两种节点之外,网络中还有一些完成一定应用功能的节点,就是应用任务节点。12第一节FlexRay概述1.节点基本构成及接口信息一个节点的基本构成如图3-2,一般由微控制器(也称为主控制器、节点主机)、通信控制器、总线管理逻辑、总线驱动逻辑(发送/接收驱动器)和电源系统等5个部分组成。通信功能主要由通信控制器、总线管理及驱动逻辑、以及这些部分与主机的接口完成。节点各个部分之间的信息接口关系如图3-3。131415第一节
9、FlexRay概述2.节点基本功能节点中,一个通信控制器连接到1个或2个总线驱动器,即一个节点可以连接到一个或两个总线通道上;节点可以进入休眠态;处于休眠态的节点可以由总线事件唤醒;节点的总线活动可以由主控制器关闭;节点与电源常连接;节点的应用功能。网络星节点是一个只有网络功能的节点,没有主控制器和通信控制器,一个星节点有1个以上总线驱动器,它可以由总线唤醒和由总线关闭。16第一节FlexRay概述三、网络拓扑网络拓扑结构FlexRay网络的拓扑结构有总线型、星型结构,也可以由这些结构混合构成混合型结构。17第一节FlexRay概述1.总线型拓扑结构FlexRay网络双总线型拓扑结构如图3-4
10、,每个节点可以连到两个总线上,也可以只连接到一个总线上。18第一节FlexRay概述2.星型结构FlexRay网络的星型拓扑结构有多种连接方式。图3-5是一个双通道单星的结构,每个通道由一个星节点连接,一个节点可以连接到一个或两个通道上(星节点上)。19第一节FlexRay概述图3-6是两个单通道星型结构级联的结构,每个通道由一个星节点连接,一个节点连接到一个通道上(星节点上),两个星节点之间互联。在这样的结构基础上,也可以构建冗余通道的结构,如图3-7所示。2021第一节FlexRay概述3.总线与星型的混合结构FlexRay网络除了可以使用总线和星型结构外,只要级联的每一个子网不超过节点数
11、等限制,还可以使用两种结构混合的网络拓扑结构。图3-8是两个混合结构的例子。图3-8(a)是一个星节点(2A)直接连接节点并连接到一个总线上,总线上又连接了一些其他节点;然后又与另外一个星节点(1A)相连,星节点(1A)也直接连接了一些节点,也可以再连接总线。图3-8(b)是一个星型拓扑结构与总线构成的双通道结构。2223第一节FlexRay概述四、四、FlexRay协议操作控制协议操作控制FlexRay网络通信过程的完成,是协议规定的各个通信操作的核心机制的有序执行。媒体访问控制、编码解码、帧和符号处理以及时钟同步构成了FlexRay网络的核心机制。如图3-9所示2425第一节FlexRay
12、概述通信控制器(CC,Communication Controller)与主控制器的接口(CHI,Controller Host Interface)的作用是POC部分和主控制器之间的信息交互。包括主控制器向POC部分发送各种控制命令及回读POC部分的各种状态。编码解码(CODEC,Coding and Decoding)模块定义的是通信控制器和总线驱动器(BD,Bus Driver)之间通过串行数据线TxD,RxD,TxEN进行信息转换。媒体访问控制(MAC,Media Access Controll)完成FlexRay网络的媒体访问操作。26第一节FlexRay概述FlexRay网络的协议
13、操作控制过程中,网络的状态转换过程如图3-10。27第二节 FlexRay网络中信息的基本传输过程FlexRay网络按周期循环组织信息的传送。在传送信息时,一个通信周期有静态的和动态的两个部分。动态段和静态段又由一些时间片构成,每个时间片传输一个FlexRay帧。FlexRay帧是一个有格式的位流。28第二节 FlexRay网络中信息的基本传输过程一、FlexRay通信周期通信周期FlexRay的一个通信周期包含静态段(Static Segment)、动态段(Dynamic Segment)、符号窗(Symbol Window)和网络空闲向量(Network Idle Time)。29第二节
14、FlexRay网络中信息的基本传输过程图3-11是FlexRay一个通信周的时间分层结构。图3-12是只包含静态段和动态段的通信周期例。30第二节 FlexRay网络中信息的基本传输过程31第二节 FlexRay网络中信息的基本传输过程1.通信周期的基本执行过程除了启动阶段,FlexRay通信周期以一个固定的宏时钟数周期性地循环执行。通信周期依次从0到一个可设置的最大值依次计数。总线仲裁基于在静态段和动态段的帧标识符。帧标识符决定了其在通信周期的哪个段和这个段的哪个时间片发送。图3-13是一个FlexRay通信周期执行的示意图。32第二节 FlexRay网络中信息的基本传输过程33第二节 Fl
15、exRay网络中信息的基本传输过程2.静态段一个FlexRay通信周期的静态段,按照配置值设置其时间片数。所有静态段中的时间片大小相同,由一个以宏时钟为单位的数给出。每个时间片有一个序号,在静态段中将固定的时间片分配给各个节点,在一个通信周期的静态段中,每个节点在一个通道上只能在分配给它的时间片内发送数据帧,而在自己的时间片之外的时间只能接收数据。在FlexRay网络运行的时候,这个时间片的分配情况是不允许动态发生改变的。静态段结构如图3-14,时序关系如图3-15。34第二节 FlexRay网络中信息的基本传输过程3.动态段可以配置一个FlexRay通信周期动态段的微时间片数量,并且从1开始
16、依次编号。所有微时间片的大小相同,也由一个以宏时钟为单位的数给出,不用动态段的时候可以设置微时间片数为0。在一个通信周期的动态段中,节点如果要发送消息,要通过竞争获得总线使用权。在动态段部分,是按照发送数据的数据帧优先级分配带宽,优先级由帧的标识ID确定。动态段结构如图3-16,时序关系如图3-17。353637第二节 FlexRay网络中信息的基本传输过程4.符号窗一个FlexRay通信周期可以有一个符号窗。符号窗通过配置设定一定数量宏时钟的时间宽度,这个配置值为零表示不用符号窗。在符号窗内的内容及功能由高层协议规定,FlexRay节点发送一个符号表示某种自定义的特殊用途。38第二节 Fle
17、xRay网络中信息的基本传输过程5.网络空闲向量一个FlexRay通信周期的网络空闲向量用来对FlexRay网络进行调整,是不可缺少的部分。一个周期除去前面几个段使用的时间,余下的就是空闲段的长度。一个通信周期可以根据节点的实际需要,动态配置动态段和网络空闲向量各部分的带宽。在网络空闲向量时间范围内,FlexRay网络中的节点不进行任何通信。39第二节 FlexRay网络中信息的基本传输过程二二、FlexRay帧格式帧格式在FlexRay网络中,节点把要发送的信息打包成帧在静态段或动态段的时间片发送,一个帧的格式如图3-18。由帧头段、有效数据段和帧尾构成。每个字段又分成具有不同意义的位段。4
18、0第二节 FlexRay网络中信息的基本传输过程三三.帧位流的编码解码帧位流的编码解码一个信息帧在物理层传输要进行编码。把一帧本身要传输的信息加上位置标识以及同步等需要的信息编码成一个二进制位流,每一帧以一组位流在物理层由发送节点发出;接收端接收到这些位流进行解码,分解出一帧的信息,提供给链路层。41第二节 FlexRay网络中信息的基本传输过程1.编码插入序列编码插入序列,是对一帧进行编码时加到帧中的二进制序列。有以下几种:传输起始序列帧起始序列字节起始序列帧结束序列动态段帧尾序列42第二节 FlexRay网络中信息的基本传输过程2.帧位流的编码传输一个帧的时候,节点按照一定的要求把要发送的
19、信息和插入序列成一个位流,依次发送到物理层上。静态段帧和动态段帧的编码图示如图3-19,3-20。4344第二节 FlexRay网络中信息的基本传输过程3.帧位流解码对于接收端,在总线空闲时监测到总线上传输起始序列TSS,表示有帧将要启动传输,这时启动帧接受过程,按照同步机制定时,开始接收后续位流,并按照编码规则进行解码处理。当接收端节点检测到错误的时候,终止通信位流的解码过程,并一直等待总线回到空闲状态。45第三节FlexRay网络的同步及启动在FlexRay的通信周期,静态段中使用的是基于TDMA的通信协议,通信媒介的访问是在时间域中各个节点分时进行的。这种方式,要求每一个节点都必须保持时
20、间上的一致,并且每一个节点的最大时间偏差在限定的范围之内,才能真正实现时钟同步,并按照这个时间安排发送顺序。所有的节点在时钟同步的前提下才能进行正确的通信。46第三节FlexRay网络的同步及启动一、时钟同步方式时钟同步的主要任务是确保一个簇中所有节点之间的时间偏差在允许的范围。在 FlexRay 协议中,每一个节点通过由同步帧传来其它节点的定时信息,进而可以计算出与本地时间(本节点的时间)的偏差,使用分布式时钟同步机制,使其本地时钟同步到所在簇的全局时钟。47第三节FlexRay网络的同步及启动1.时钟同步方法一个FlexRay节点可以使用三种不同的时钟同步方式,一个FlexRay簇的节点的
21、同步方式影响其工作特点。1)TT-D 时钟同步方法2)TT-L时钟同步方法3)TT-E时钟同步方法48第三节FlexRay网络的同步及启动2.时钟的层次结构1)全局时间与局部时间一个FlexRay簇范围公共的时间称为全局时间,FlexRay协议本身没有一个绝对的全局时间,每一个节点有一个从其角度看到的全局时间。局部时间是一个节点自己的时钟给出的时间,一个节点的局部时间是基于其认知的全局时间的,通过时钟同步算法尽量调节它的局部时间与全局时间一致。一个FlexRay簇的定时精度是簇内任意两个同步了的节点的局部时间之差。49第三节FlexRay网络的同步及启动2)时间单位层次在FlexRay簇和节点
22、中,时间单位的层次有周期、宏时钟节拍、微时钟节拍,其关系如图3-21。微时钟直接由通信控制器的振荡器产生,是面向通信控制器的时间单位,也是一个节点里面最小时间单位。50第三节FlexRay网络的同步及启动3.时钟同步过程FlexRay的时钟同步包含两个主要的过程。一个是宏时钟产生过程(MTG),其控制宏时钟计数器和周期计数器,并进行频率和相位偏移的校正;一个是时钟同步过程(CSP),其完成周期开始时的初始化、检测并存储偏差值、以及计算速率和偏移的校正值。这两个过程的定时关系以及与媒体访问的关系如图3-22。5152第三节FlexRay网络的同步及启动FlexRay中允许的最大时钟偏差称为精确度
23、。FlexRay中的时钟偏差包括两部分,一个是相位上的偏差,一个是频率上的偏差。其中相位上的偏差指的是在某一个时间的绝对差别。而频率上的偏差是相位偏差随着时间推移的变化。实现时钟同步,是通过相位的更正和频率的更正实现的。FlexRay使用了一种综合的方法,来同时实现相位上的校正和频率上的校正。53第三节FlexRay网络的同步及启动图3-23是FlexRay时钟同步基本过程54第三节FlexRay网络的同步及启动二、FlexRay簇启动所谓启动就是使网络节点从休眠状态进入同步操作,并初始化同步操作或并入一个已经在运行状态的簇中。系统启动过程包含两个逻辑步骤,一个是冷启动节点的启动,一个是其他节
24、点响应冷启动节点。55第三节FlexRay网络的同步及启动当使用TT-D 同步方法,每个 TT-D冷启动节点完成其启动并建立起与另一个冷启动节点的稳定通信表示启动完成。一个TT-L冷启动节点在六个周期后完成其启动。一个TT-E冷启动节点,在接收到对应的簇中与其对偶的节点的时间同步参数之后,第一个周期开始就完成了启动。56第三节FlexRay网络的同步及启动在FlexRay簇进行启动的时候,先执行冷启动程序(Coldstart Node)。首先主动传输启动消息的节点称为主冷启动节点(Leading Coldstart Node),其他的冷启动节点称为从冷启动节点(Following Coldst
25、art Node)。57第三节FlexRay网络的同步及启动节点完成冷启动阶段后进入正常操作模式,进行数据的收发。在确定和验证算法计算得出的校正值之后,主冷启动节点会收到来自两个通信周期的从冷启动节点的消息,进而完成启动阶段。图3-24是主冷启动节点和从冷启动节点的启动阶段的一个图例。58第四节FlexRay网络节点设计一、概述FlexRay网络的设计主要包括网络结构的设计以及各个功能节点的设计。59第四节FlexRay网络节点设计节点的结构设计节点的结构设计构建一个FlexRay节点,有3种结构方式,分别是MCU+CC+BD形式、MCU+BD形式以及MCU形式。60第四节FlexRay网络节
26、点设计图3-25是FlexRay结点基本结构。61第四节FlexRay网络节点设计62第四节FlexRay网络节点设计二、FlexRay节点设计例本例中本例中,MCU选用英飞凌生产的XC164CM,CC选用的英飞凌生产的SAK-CIC310,BD选用的是飞利浦的TJA1080。XC164CM为16位单片机,它通过SSC(高速同步串行接口)和CIC310的SSC口进行连接,完成各个模块间的数据交换。63第四节FlexRay网络节点设计1.结点硬件结构主控控制整个节点的功能及通信过程。通信控制器和总线收发器之间通过一个串口交换数据。由于主机及端口电压是5V,通信控制器的端口电压是3.3V,所以它们
27、不能直接进行相连,需要在它们之间加一个电压转换模块。电压转换模块采用SN74ALVC164245,它的功能就是完成XC164CM和CIC310之间的电压匹配,以及TJA1080和CIC310之间的电压匹配。节点总体结构如图3-26。6465第四节FlexRay网络节点设计2.结点硬件设计(1)XC164CM连接电路 微控制器XC164CM是整个节点的控制核心,它通过SSC端口和通信控制器CIC310相连,并通过这个端口向CIC310发送数据控制CIC310和读取CIC310的状态。XC164CM有SSC功能端口,可直接与CIC310的SSC端口进行连接。标准的SSC端口有5条信号线:时钟SCL
28、K、主机发送MOSI、从机发送MISO、片选信号SLS和就绪RDY。与两个TJA1080总线收发器通过EN,ERRN和RXEN引脚进行相连,并通过这些引脚控制总线收发器的使能、禁止和工作模式。XC164CM的主体电路的连接如图3-27,图3-27中XC164CM各引脚的基本功能如表3-3。666768表表3-3 XC164CM引脚功能引脚功能引脚序号引脚序号引脚功能引脚功能1-5连接LED,给出模式选择9-18输入功能,可用于模数转变21-24输入功能,可用于模数转变28-31对应OCDS的接口,用于调试33复用通信控制器35-39SSC0接口,通过配置,XC164CM的SSC0可以作为SSC
29、端口使用49-55用于连接两个总线收发器60-64系统支持功能:复位、时钟信号端第四节FlexRay网络节点设计图3-28为复位电路以调试支持接口电路。6970第四节FlexRay网络节点设计图3-28(a)为XC164CM的复位电路,以TL7705芯片为核心产生XC164CM的复位信号。TL7705的复位信号比常规的RC复位电路稳定,可以使XC164CM进行可靠的复位。图3-28(b)为OCDS调试接口电路。使用OCDS双列直插16针的接口,支持对XC164CM开发调试的连接。71第四节FlexRay网络节点设计选用的具体芯片为XC164CM-8F20F,其最大系统时钟为20MHZ。XC16
30、4CM内部具有锁相环电路,可以通过对相应寄存器的设置,来对输入晶振信号进行倍频、分频。当系统采用8MHZ晶振,按公式3-1编程配置有关寄存器就可得到20MHZ的系统时钟。式中fin代表锁相环PLL的输入频率,fosc表示晶振频率,fcpu表示系统时钟频率。PLLIDIV,PLLMUL,PLLODIV,CPSYS是XC164CM中寄存器的一些可编程位域。fin=fosc/2=8M/2=4M(通过PLLIDIV配置)fvco=fin*25=4M*25=100M(通过PLLMUL配置)fpll=fvco/5=100M/2=20M(通过PLLODIV配置)fcpu=fpll/1=20M/1=20M(通
31、过CPSYS配置)(3-1)72第四节FlexRay网络节点设计(2)CIC310I电路连接CIC310的主要功能是接收来自节点主控制器XC164CM的控制命令,配置自己的工作模式。CIC310连接主控制器和总线收发器,用来发送和接受数据。73第四节FlexRay网络节点设计CIC310和主机之间通过SSC口连接。其复位信号由主机提供,在主控制器启动正常工作之后,向CIC310发送复位信号,使CIC310复位。复位之后,主控制器通过SSC口向CIC310的内部寄存器写控制命令,配置CIC310工作模式等信息。当ERAY配置完毕之后,就可以开始进行正常通信的数据收发操作,有在接收到总线来的报文时
32、向主控制器发送中断,通知主控制器读取刚收到的报文;发送时,接收主控制器发来的数据并发送给收发器送上物理线路上。74第四节FlexRay网络节点设计CIC310和TJA1080之间通过FlexRay收发线连接。系统设计为双通道,所以两个FlexRay的端口都连到物理线路上。图3-29为CIC310的主体电路。表3-4为CIC310引脚连接关系。7576引脚序号引脚序号引脚功能引脚功能1-6与总线收发器TJA1080进行相连12-13晶振信号输入22-23测试用LED的引脚27-28测试用LED的引脚35模式选择,通过上拉电阻接电源,选择SSC接口模式46模式选择,通过上拉电阻接电源,选择SSC接
33、口模式36-40SSC端口,实现和主控制器之间的信息交互31连接上拉电阻,置“1”47连接上拉电阻,置“1”48复位引脚输入端60中断请求信号输出端77表表3-4 CIC310引脚连接引脚连接第四节FlexRay网络节点设计节点中,CIC310的核供电电压为1.5V,端口供电电压为3.3V。主控制器XC164CM的核心供电电压为2.5V,端口电压为5V。如图3-30的图a、图b,为了满足不同芯片的电源需求并简化电路,使用电压转化芯片AMS1117来产生所需的电源。系统输入5V供电电源,通过AMS1117-2.5将5V电压转为2.5V供XC164CM使用,转换为3.3V供CIC310端口使用。7
34、879第四节FlexRay网络节点设计产生CIC310的1.5V电源如图3-30(c),LM1117-ADJ的参考电压为1.25V,输出电压和参考电压的关系为:Vout=Vref*(1+R36/R35)。欲使输出电压Vout=1.5V,需要满足R36/R35=1/5。在LM1117-ADJ输入输出端的电容必须使用钽电容。使用普通的电解电容输出电压会不够稳定。80第四节FlexRay网络节点设计(3)TJA1080连接电路TJA1080是FlexRay节点的物理层收发器,如图3-31。TJA1080共有20个引脚。通过TRXD0和TRXD1引脚可以配置TJA1080的工作模式。工作在普通的收/发
35、模式时TRXD0和TRXD1都必须为“0”,即必须使用下拉电阻接地。1-2引脚用作电源管理,需要配合FlexRay节点中的总线监控器(Bus Guardian)使用。5-7为TJA1080和通信控制器CIC310的接口,用来发送和接收数据。12-13引脚用于向主控制器芯片反馈状态信息。15脚WAKE为唤醒引脚。BP,BM为TJA1080的差分信号线。为了减少信号线上的干扰,需要接共模电感(Common Mode Chock)。8182第四节FlexRay网络节点设计(4)SN74ALVC164245电路连接为了解决主控芯片端口电压和通信控制器端口电压的匹配问题,使用了一片SN74ALVC164
36、245。这个芯片专用于高速串行通信的电压匹配。如图3-32,1脚和24脚为DIR功能,也就是方向选择。DIR=0传输方向为BA,DIR=1传输方向为AB。A侧电压为3.3V供电,B侧电压为5V供电。25脚和48脚为OE片选信号,分别对应组1和组2的使能。这两个引脚同时接到主控制器芯片上,由主控制器芯片控制SN74ALVC164245的使能。8384第四节FlexRay网络节点设计3.结点的软件设计节点的软件部分主要包括FlexRay通信驱动程序以及节点的应用功能程序。一个FlexRay节点最基本的功能,就是能够完成正常的FlexRay通信接口控制及数据收发操作,包括主控制器芯片正确地控制节点内
37、各个部分、完成FlexRay节点的启动、正确驱动通信模块完成数据收发任务,应用程序根据节点的具体应用功能设计。软件部分依据应用有较大的区别。本例一个节点的软件部分主要包括:85第四节FlexRay网络节点设计(1)主控制器XC164CM和CIC310之间的SSC通信程序节点中主控制器芯片XC164CM和通信控制器CIC310之间通过SSC接口连接完成信息交互。SSC接口在传输普通数据之前会先传送一个控制字,具体的操作类型由控制字的最高两位进行选择。正常的SSC端口都是由五根线组成的,分别是MTSR,MRST,SCLK,SLS和RDY信号。CIC310完全支持这五种信号线,主控制器XC164CM
38、只有MTSR,MRST,SCLK和SLS。所以,不能按照标准的SSC接口方式进行连接,应采用可以不使用RDY信号的操作模式。86第四节FlexRay网络节点设计(2)通信过程的CRC校验程序CRC校验功能的实现包括发送时产生校验码和接收时的校验。当使用CIC310作为 FlexRay的通信协议控制器时,由于其没有计算能力,为了在FlexRay帧传输中使用校验,需要由主控制器芯片完成对FlexRay帧加入CRC校验码的计算,既需要CRC校验编程。通信控制器对主控制器芯片计算的检验码进行验证,如果正确的话则进行FlexRay帧的发送。FlexRay的头校验包含同步帧指示位、起始帧指示位、帧ID和有
39、效载荷段长度,共20位。主控制器部分根据FlexRay规定的CRC校验方式来对这20位数据进行CRC校验码的计算。FlexRay规定的CRC校验方式和普通的CRC校验基本一致,并规定了CRC校验的初始值和生成多项式。这些参数已经在通信控制器的硬件中设置好了,必须按照这样规定的方式产生CRC校验码,被通信控制器才能产生正确的校验结果,否则通信控制器会认为产生的校验码是错误的,而忽略掉主控芯片发送的数据。87第四节FlexRay网络节点设计(3)CIC310的状态转换程序通过SSC端口驱动程序,主控制器能够控制通信控制器后,还需要了解FlexRay通信控制器的状态转换,才能正确的启动FlexRay
40、节点和进行数据传输。FlexRay协议规定了的状态以及各个状态之间的转换条件,应按照CIC310工作状态转换要求编写控制状态转换的程序。88第四节FlexRay网络节点设计(4)FlexRay节点主体程序在上电复位后,执行节点的主控程序。一个FlexRay节点的主控程序要完成与系统唤醒、启动等相关的功能,以及基本的通信功能和应用功能。即使硬件和应用相同的节点,其软件上功能代码也不完全一样,它们在唤醒和启动过程中所担任的任务是不同的,而且它们作为FlexRay的单独节点,消息缓存(以下简称MB)的配置也是不一样的。89第四节FlexRay网络节点设计在进行唤醒操作和启动操作之前,FlexRay节
41、点必须被正确的进行配置。包括MB(Message RAM)的配置,FlexRay通信周期有关的寄存器配置,消息处理机(Message Handler)的配置等。这些配置的过程实际上就是往对应通信控制器的响应寄存器中写入适当的参数的过程。对节点进行成功的唤醒之后,节点就可以进行启动了。在FlexRay网络中,至少要有两个节点担当启动的任务。节点的启动具体过程必须遵循FlexRay协议的规定进行编程。90第四节FlexRay网络节点设计三、FlexRay开发工具介绍随着网络的结构越来越复杂,网络类型的增加,其对应的开发工作越来越依赖于强大的开发工具。适用于FlexRay网络开发的工具有CANoe、
42、Muitibus Analyser等开发平台。91第四节FlexRay网络节点设计1.CANoeVector公司生产的总线系统设计和分析开发工具CANoe具有开发多种总线网络系统的功能,其中包括FlexRay网络。CANoe/DENoe提供了针对整个FlexRay网络系统开发周期所有阶段的功能,92第四节FlexRay网络节点设计2.Multibus Analyser网络开发工具Multi-bus Analyser能够实现FlexRay网络的主站和从站功能。能够通过PC机进行FlexRay节点的编程和网络参数配置。这套工具由Multi-bus Analyser和2个FlexRay CCM及相关
43、的FlexRay电缆配件组成。93第四节FlexRay网络节点设计(1)用于FlexRay的多总线分析工具多总线分析软件需要和FlexRay CCM一起工作。总线分析软件,CCM和PC机构成了一个完备的FlexRay开发环境,能够实现FlexRay和CAN报文的接收,传输以及跟踪和解释功能。94第四节FlexRay网络节点设计多总线分析工具的功能有:接收和显示FlexRay和CAN的报文,并对报文做详细的分析和解释(接收模块)、记录CAN报文(跟踪模块)、显示和解释物理信号(信号模块)、发送报文(传输模块)。为了能让用户很快并且很方便的将多总线分析仪用于特定的测试和分析任务,生产商还提供了主脚本模块及输入输出功能。95第四节FlexRay网络节点设计(2)FlexRay CCMFlexRay CCM是FlexRay、CAN的接口设备,它可以在车辆高速运行中建立仿真模型。FlexRay CCM和FlexRay多总线分析工具配合使用,可以实现FlexRay与CAN网络的数据跟踪,报文解释,物理层信号分析以及FlexRay参数分析等功能。96