天天看点

FlexRay关注事项2_网络总线资源分配问题

FlexRay关注事项2_网络总线资源分配问题

      要了解总线资源的分类,需要了解几个技术前提,第一个就是Flexray的数据收发硬件机制:

FlexRay关注事项2_网络总线资源分配问题

      被发送的数据首先到达数据主机进行数据确认,然后道道数据通信器,在其中进行数据编码,形成数据位流,然后通过总线驱动器将数据输出到总线上。整个过程总线监视器将进行状态监测。

FlexRay关注事项2_网络总线资源分配问题

      在时序范围内,总线驱动器访问总线,并将数据传输到总线通信器进行数据解码,解码后的数据传给数据主机。全过程总线监视器将进行状态监测。

      第二个是需要了解Flexray的时序格式:

FlexRay关注事项2_网络总线资源分配问题

      传输起始序列TSS是一连串的低电平,后面紧跟帧传输序列FSS,则是一段时间的高电平,然后是起始字节传输序列BSS,用于给接收方提供定时信息。后续为字节串,最后以一段低电平加高电平的帧结束序列FES结束,如果是动态帧,最后还需要一段低电平的动态尾部序列DTS。

      第三个是需要了解Flexray的数据格式:

FlexRay关注事项2_网络总线资源分配问题

      三大组成:40位帧头;最大254字节数据,24位校验。不同场景下的数据部分又有具体的格式标注。

      FlexRay的高速和高效特性体现在通信机制采用分时复用机制,具体在运行种存在两种模式,一种是TDMA模式,即分时多址接入;一种是基于最小时间片模式。

      在1个通讯周期内,有4个时间等级(timing hierarchy),从最低层到最高层分别是:最小时间节拍层(microtick)、最大时间节拍层(macrotick)、仲裁网格层(arbitrationgrid)和通讯周期层。

在最高层即通讯周期层,由静态部分、动态部分、特征窗和网络闲置时间(NIT)4个部分组成。在静态部分采用的是TDMA方式;在特征窗的这段时间内主要传输的是特征符。

仅次于最高层就是仲裁网格层,仲裁网格层形成FlexRay的媒体接入仲裁的核心,它解决的是采用何种方式接入媒体。在动态部分,仲裁网格由若干个最小时间片(minislot)组成。

FlexRay关注事项2_网络总线资源分配问题

第一部分:静态部分

在该时间段内由若干个静态时间片(staticslot)组成,每个时间片的长度都相等。不同的节点根据全局时间判断在某一时刻开始接收或发送某一特定的数据帧(flameID)。为了确定这一时刻每个节点的每一个通道上都含有一个时间片计数器,两个计数器是同步计数的。

例如有3个节点,分别为node1、node2和node3。假设静态部分开始于00:10,节点在时间上的顺序为1-2-3,那么node1将在00:10这一时刻开始在两个通道上传输flameID1;在00:20时刻node2开始在一个通道上传输flameID2;node3在00:30开始传输,即使没有数据帧。

FlexRay关注事项2_网络总线资源分配问题

第二部分:动态部分

      采用的是基于最小时间片的时序,由若干个最小时间片组成,最小时间片的长度都相等。帧的长度是可变的,而且与静态部分相比,动态部分的两个时间片计数器是独立计数的,在不传输数据帧时,计数器以minislot为周期进行加1计数,在传输数据帧时计数器不工作。两个通讯通道不必同步。一个动态时间片(Dynamicslot)包含一个或多个minislot。

FlexRay关注事项2_网络总线资源分配问题

第三部分:时钟同步

      时钟同步是非常核心的一部分,理解起来有难度。在Flexray总线的整个时序过程,包括数据帧的控制时序内,都是有时钟、时间、时序的概念的,这一点在Can上面很难理解。

总线所有的节点都应有相同的“时间观”,整个总线需要遵循一个时间节拍。

但这并不意味着节点间具有完全严格的同步时间,只要节点间的时间差保持在允许的误差范围内即可。

Flexray的时间等级制度:若干个最小时钟节拍构成一个最大时钟节拍,而若干个最大时钟节拍又构成通讯周期的一个单元。最小时钟节拍是由通讯控制器(CC)的外部晶振提供,对于不同的控制器,最小时钟节拍可能会不相同;在一个总线内所有同步节点的最大时钟节拍都相等。

      时钟同步包含两个主要过程:最大时钟节拍产生过程(MTG)和时钟同步过程(CPS)。

FlexRay关注事项2_网络总线资源分配问题

      MTG控制时间片计数器初值,并对其进行修正。时钟同步过程(CPS)主要完成一个通讯周期开始的初始化,测量并存储时间偏差值,计算频率与相位的修正值。时间偏差可以分为相位(offset)和频率(rate)偏差。相位偏差是两个时钟在某一特定时间的绝对差别频率偏差是相位.偏差随着时间推移的变化,它反映了相位偏差在特定时间的变化。FlexRay同时对频率与相位进行修正。节点计算数据帧到达的实际时刻,并与理论上的预测时刻比较,得到的值就是发送节点与接收节点的时间偏差,并采取一定的算法进行修正,最终使簇内的节点上的时间实现“同步”。

第四部分:唤醒与启动(wakeup and startup)

唤醒针对的是电源管理系统。有些节点在不工作时处于“节电”模式(power-savingmode),当再次投入工作时就需要“唤醒”该节点;单个节点可唤醒整个组群;主机可在通讯信道上传输唤醒模式(wakeup-pattern)。节点通过收发器进行唤醒:当节点的收发器接收到唤醒特征符(wakeup-symbol)后,对主机处理器和通讯控制器进行上电。

      只有将节点唤醒后,才能启动节点工作。初始化一个启动过程称为“冷启动(coldstart)”,能进行冷启动的节点数目是有限的。系统的启动由两个逻辑步骤组成:  ①冷启动节点启动;

      ②其他非冷启动节点通过接收启动帧,与冷启动节点整合到一起。

      实际上虽然整个过程很复杂,但是我们实际使用的时候不需要关注这些过程,因为总线控制器都给我们完成了,我们只要关注总线监视寄存器的内容,并对错误和状态处理进行及时处理就行,其他的只需要了解即可,不用重点关注。

继续阅读