关注公众号

关注公众号

手机扫码查看

手机查看

喜欢作者

打赏方式

微信支付微信支付
支付宝支付支付宝支付
×

一文读懂什么是FlexRay?(二)

2020.10.05

FlexRay数据传输

FlexRay规范定义了OSI参考模型中的物理层和数据链路层,每个FlexRay节点通过一个FlexRay Controller和两个FlexRay Transceivers(用于通道冗余)与总线相连,FlexRay Controller负责Flexray协议中的数据链路层,FlexRay Transceivers则负责总线物理信号接收发送。

wx_article_20190812084236_DxMbYa.jpg

FlexRay可采用屏蔽或不屏蔽的双绞线,每个通道有两根导线,即总线正(Bus-Plus,BP)和总线负(Bus-Minus,BM)组成。采用不归零法(NRZ,Non-Return to Zero)进行编码。

可通过测量BP和BM之间的电压差识别总线状态,这样可减少外部干扰对总线信息的影响,因这些干扰同时作用在两根导线上可相互抵消。每一通道需使用80~110欧的终端电阻。将不同的电压加载在一个通道的两根导线上,可使总线有四种状态:Idle_Lp(Low power)、Idle、Data_0和Data_1

显性:差分电压不为0V(Data_0和Data_1)

隐性:差分电压为0V(Idle_Lp、Idle)

wx_article_20190812084236_l4FWXR.jpg

FlexRay帧格式

FlexRay帧由起始段、有效负载段和结束段三大部分构成。

wx_article_20190812084236_ULXbVP.jpg

1、起始段:由40个bits构成(5 bytes),包括

-Status Bits-5bits

-Frame ID-11bits

-Payload Length-7 bits

-Hedaer CRC-11bits

-Cycle count -6 bits

其中5bits的Status Bits包含四类指示符:净荷指示位(Payload Preamble Indicator)、空帧指示位(Null Frame Indicator-指明该帧是否为无效帧)、同步帧指示位(Sync Frame Indicator-指明该帧是否为一个同步帧)和起始帧指示位(Startup Frame Indicator-指明该帧是否为起始帧)。

Frame ID:数据标志符,定义了在时间窗口(Slot)中发送的号码,每个通道数据标志符需唯一。

Payload Length:工作区长度,指示该帧含有的有效数据长度,在每个Cycle下的静态区中,每帧的数据长度是相同的,在动态区的长度则是不同的。

Hedaer CRC:用于起始段冗余校验,检查传输中的错误。

Cycle count:循环计数器。

2、有效负载段

包含要传输的有效数据,有效数据长度最大254个Bytes(0~127个Words),

3、结束段

包含24  Bits的检验域,由起始段和有效负载段计算得出的CRC校验码,计算CRC时,根据网络传输顺序从保留位到有效负载段的最后一位放到CRC生成器中进行计算。

FlexRay编码

编码的过程实际就是对要发送的数据进行一定的打包处理,即在节点可传输带有主计算机数据的数据前需将其转换为“比特流(Bitstream)”。

wx_article_20190812084236_Jv9mWr.jpg

wx_article_20190812084236_UkHAnF.jpg

RxD为接收信号,TxD为发送信号,TxEN为通讯控制器请求数据,对于静态帧和动态帧分别按照如下方式进行编码。


推荐
关闭