深入理解Flexray,必須夯實(shí)基礎(chǔ)。本文,以圖表形式,解析Flexray中的一些名詞。Flexray靜態(tài)段采用TDMA(Time Division Multiple Access,分時(shí)多路訪(fǎng)問(wèn))策略。Flexray網(wǎng)段中的各節(jié)點(diǎn),需要按照各自分配的時(shí)間片發(fā)送數(shù)據(jù),非發(fā)送時(shí)段可以接收數(shù)據(jù)。為了確保各個(gè)節(jié)點(diǎn)的發(fā)送時(shí)序,F(xiàn)lexray的通信中,設(shè)計(jì)了通信調(diào)度表,通信調(diào)度表周期性執(zhí)行,也就是通信循環(huán)(Communication Cycle),Communication Cycle的時(shí)間層級(jí)如下所示: 
如上圖,按照協(xié)議(1)規(guī)定,Flexray的一個(gè)通信周期可以包含四個(gè)部分:靜態(tài)段(Static Segment)、動(dòng)態(tài)段(Dynamic Segment)、符號(hào)窗(Symbol Window)、網(wǎng)絡(luò)空閑時(shí)間段(NIT,Network Idle Time)。 靜態(tài)段由多個(gè)靜態(tài)時(shí)間片(Static Slot)構(gòu)成,在一個(gè)Cycle中,必須包含靜態(tài)段,所有Static Slot包含的macrotick相同; 動(dòng)態(tài)段由多個(gè)微時(shí)間片(Mini Slot)構(gòu)成,在一個(gè)Cycle中,動(dòng)態(tài)段可選,即:可以不配置動(dòng)態(tài)段(minislot = 0)。動(dòng)態(tài)段中,所有的mini slot包含的macrotick相同。動(dòng)態(tài)段采用FTDMA(Flexible Time Division Multiple Access,柔性分時(shí)多路訪(fǎng)問(wèn))策略通信,基于事件(Event Trigger)觸發(fā)數(shù)據(jù)發(fā)送; 符號(hào)窗可選,由一定數(shù)量的macrotick構(gòu)成,如果不用符號(hào)窗,可以將該段的長(zhǎng)度設(shè)置為0個(gè)macrotick; 一個(gè)通信周期,必須包含網(wǎng)絡(luò)空閑時(shí)間段,NIT的長(zhǎng)度 = 一個(gè)循環(huán)的總長(zhǎng)度 - 靜態(tài)段長(zhǎng)度 - 動(dòng)態(tài)段長(zhǎng)度(如果有)- 符號(hào)窗長(zhǎng)度(如果有)。
不管是哪個(gè)Segment,均由宏時(shí)鐘(macrotick)構(gòu)成,macrotick是表示全局時(shí)間的最小粒度單位。每個(gè)通信循環(huán)由固定數(shù)量的macrotick構(gòu)成,eg:one cycle = 5000 macrotick。其中,宏時(shí)鐘又由多個(gè)微時(shí)鐘(microtick)構(gòu)成。微時(shí)鐘直接從晶振產(chǎn)生,也就是時(shí)鐘系統(tǒng)經(jīng)過(guò)倍頻和分頻后的結(jié)果。微時(shí)鐘不受時(shí)鐘同步機(jī)制的影響,是一個(gè)結(jié)點(diǎn)里面的最小時(shí)間單位。 microtick對(duì)應(yīng)的時(shí)間長(zhǎng)度是多少呢?microtick既然由時(shí)鐘產(chǎn)生,我們就的知道Flexray模塊獲取的時(shí)鐘是多少,eg:80MHz。那么就意味著一個(gè)tick = 1/80000000 = 0.0125us,如果需要經(jīng)過(guò)2次采樣(sample)得到一個(gè)microtick,也就是意味著一個(gè)microtick = 0.025us。規(guī)范(1)描述如下: 
當(dāng)microtick知道以后,即可推算macrotick。一般,macrotick長(zhǎng)度可以設(shè)置在1us-6us,工程上,常常設(shè)置macrotick = 1us。如果設(shè)置macrotick = 1us,且一個(gè)microtick = 0.025us,參考規(guī)范(1)可知:一個(gè)macrotick = 40 microtick,如下所示:  所以,如果一個(gè)Cycle = 5000 macrotick = 5000 * 1us = 5ms。一個(gè)Cycle需要包含5000 * 40 = 200000 microtick。 提示:工程需求中,會(huì)具體要求時(shí)鐘采樣周期(gdSampleClockPeriod)、一個(gè)microtick的最大值(gdMaxMicrotick)、以及microtick的采樣個(gè)數(shù)(pSamplesPerMicrotick),eg:gdSampleClockPeriod = 0.0125us,gdMaxMicrotick = 0.025us,pSamplesPerMicrotick = 2。為了便于理解,本文只討論單通道(Signal Channel)的場(chǎng)景。對(duì)于一個(gè)Flexray網(wǎng)絡(luò)簇,static slot數(shù)量固定不變,eg:gNumberOfStaticSlots = 60。而且,靜態(tài)段中,所有static slot長(zhǎng)度固定,即:static slot包含的macrotick個(gè)數(shù)固定,eg:gdStaticSlot = 61 MT(macrotick)。每個(gè)Flexray節(jié)點(diǎn)只能在所分配的時(shí)間槽內(nèi)發(fā)送數(shù)據(jù),其余時(shí)間只能接收數(shù)據(jù)。 進(jìn)一步細(xì)分Static Slot,其構(gòu)成如下:
工程上,Channel idle由參數(shù)gdDynamicSlotIdlePhase表示,eg:gdDynamicSlotIdlePhase = 0 minislot(不用該長(zhǎng)度)。 每個(gè)Static Slot包含一個(gè)動(dòng)作偏移點(diǎn)(Action Point),對(duì)于Flexray網(wǎng)段,Action Point偏移值固定,eg:gdActionPointOffset = 9 MT。gdActionPointOffset 同樣適用NIT中的動(dòng)作偏移,示意如下: 
提示:MT是macrotick簡(jiǎn)稱(chēng)。 (二)動(dòng)態(tài)段時(shí)間分片Flexray網(wǎng)絡(luò)簇中,mini slot個(gè)數(shù)固定不變,eg:gNumberOfMinislots = 129。且mini slot長(zhǎng)度固定,eg:gdMinislot = 10 MT。動(dòng)態(tài)段的長(zhǎng)度可變,是指dynamic slot長(zhǎng)度可變,一個(gè)dynamic slot由一個(gè)或者多個(gè)minislot構(gòu)成。但是,動(dòng)態(tài)段的總長(zhǎng)度固定,動(dòng)態(tài)段總長(zhǎng)度 = gNumberOfMinislots * gdMinislot ,eg:129 * 10 = 1290 MT = 1290us。如果發(fā)送的數(shù)據(jù)長(zhǎng),則占用的mini slot個(gè)數(shù)多;如果發(fā)送的數(shù)據(jù)短,則占用的minislot個(gè)數(shù)少。動(dòng)態(tài)段的分片示意如下: 每個(gè)mini slot會(huì)包含一個(gè)Minislot Action Point,同一網(wǎng)絡(luò)簇中的Minislot Action Point固定不變,eg:gdMinislotActionPointOffset = 3 MT,示意如下:
 動(dòng)態(tài)段發(fā)送數(shù)據(jù)終止也在minislot action point,示意如下: 認(rèn)識(shí)了Flexray的時(shí)間分層以后,即可進(jìn)一步了解Frame的編碼規(guī)則。即static slot和dynamic slot發(fā)送的frame構(gòu)成。談到frame,本質(zhì)上就是bit stream(位流)。 靜態(tài)段Frame的編碼構(gòu)成如下所示:

TSS:Transmission start sequence,當(dāng)發(fā)送節(jié)點(diǎn)需要發(fā)送數(shù)據(jù)時(shí),在所屬的slot中,首先發(fā)送TSS,TSS由多個(gè)連續(xù)的低電平組成,eg:gdTSSTransmitter = 9 gdBit = 9 * 0.1us = 0.9us。 FSS:Frame start sequence,由一個(gè)高電平組成。 BSS:Byte start sequence,由一個(gè)高電平+一個(gè)低電平組成,后跟一個(gè)byte數(shù)據(jù)。 FES:Frame end sequence,由一個(gè)低電平+一個(gè)高電平組成,表征數(shù)據(jù)傳輸結(jié)束。 提示:如果使用10MHz通信速率,1gdBit = 1/10000000 = 0.1us。 動(dòng)態(tài)段Frame的編碼構(gòu)成如下所示:
相對(duì)于靜態(tài)Frame,動(dòng)態(tài)Frame多了一個(gè)DTS(dynamic trailing sequence)表征數(shù)據(jù)的結(jié)束。 (1)FlexRay Communications SystemProtocol Specification Version 2.1.pdf
|