FlexRay

From emotive
Jump to navigation Jump to search

Das jüngs­te der heu­te im Ein­satz befind­li­chen Bus­sys­te­me ist Flex­Ray. Es wur­de ent­wi­ckelt, weil CAN sich immer mehr als ein „Fla­schen­hals“ erwies. Mit 500 kbit/s als prak­tisch nutz­ba­rer Bitra­te zeig­te sich CAN für anspruchs­vol­le Anwen­dun­gen im Bereich des Antriebss­tran­ges und ins­be­son­de­re im Bereich des Fahr­werks als nicht mehr aus­rei­chend.


FlexRay-History.png
Flex­Ray


Ein zwei­ter trei­ben­der Aspekt für die Ent­wick­lung von Flex­Ray waren künf­ti­ge X-By-Wire Anwen­dung, wie Break-By-Wire oder Stear-By-Wire. Hier sind nicht nur eine hohe Bitra­te, son­dern auch neue Ansät­ze für sicher­heits­kri­ti­sche Anwen­dun­gen gefor­dert. Flex­Ray bie­tet hier vom Grund­kon­zept her mit sei­nem zwei­ka­na­li­gen Ansatz grö­ße­re Mög­lich­kei­ten. Flex­Ray ist tech­nisch gese­hen aus dem pro­prie­tä­ren Bus­sys­tem Byte­f­light von BMW und TTP. Einer Lösung, die von der Uni­ver­si­tät Wien ent­wi­ckelt wur­de und heu­te von der Fir­ma TTTech ver­mark­tet wird.


FlexRay-Standards.png
Spe­zi­fi­ka­tio­nen – Flex­Ray Com­mu­ni­ca­ti­ons Sys­tem


Der ers­te Seri­enein­satz von Flex­Ray fand im Jahr 2006 statt. Das ers­te Fahr­zeug war der dama­li­ge BMW X5. Die Spe­zi­fi­ka­tion ist seit 2005 in der Ver­sion 2.1 sta­bil. Es fin­den klei­ne wei­te­re Ent­wick­lun­gen statt, die­se aber auf­wärts­kom­pa­ti­bel sein wer­den.


Physical Layer und Bus-Topologie

Wie CAN ver­wen­det Flex­Ray eine bit­strom­ba­sier­te Über­tra­gung. Es wird ein bidi­rek­tio­na­les Zwei-Draht-Bus­sys­tem ein­ge­setzt. Die Bus­lei­tun­gen müs­sen an bei­den Enden mit Abschluss­wi­der­stän­den abge­schlos­sen wer­den. Der zwei­te Kanal ist optio­nal. Er kann ent­we­der red­un­dant oder zur Ver­dopp­lung der Band­brei­te ein­ge­setzt wer­den.


FlexRay-PhysicalLayer.png
Flex­Ray – Phy­si­cal Layer und Bus-Topo­lo­gie


Der Bus­zu­griff fin­det zeit­ge­steu­ert mit einem Zeit­schei­ben­ver­fah­ren statt, sie­he nächs­ter Abschnitt. Es kön­nen maxi­mal 64 Steu­er­ge­rä­te in ver­schie­de­nen Topo­lo­gien an das Bus­sys­tem ange­schlos­sen wer­den. Die von CAN bekann­te Lini­en­struk­tur ist mit Flex­Ray auch mach­bar, stellt aber hier eher die Aus­nah­me dar. Die Vor­zug­sto­po­lo­gie ist eine Stern­struk­tur mit einem akti­ven Stern­punkt (Acti­ve-Star). Der akti­ve Stern­punkt ist ein Kop­pel­punkt, an dem die Signa­le rege­ne­riert wer­den. Somit sind Abstän­de zwi­schen Steu­er­ge­rät und Stern­punkt von bis zu 24 Metern mög­lich. Die Stan­dard­bi­tra­te von Flex­Ray ist 10 Mbit/s. Im Gegen­satz zu CAN hat Flex­Ray kei­ne inhä­ren­te Beschrän­kung bezüg­lich der Bitra­te. Das heißt, zukünf­tig kön­nen hier auch höhe­re Bitra­ten ein­ge­setzt wer­den.

Data Link Layer

Flex­Ray orga­ni­siert den zeit­li­chen Ablauf der Über­tra­gun­gen in so genann­ten Zyklen, sie­he Abbil­dung. Inner­halb eines Zyklus gibt es ein sta­ti­sches und ein dyna­mi­sches Seg­ment. Die Zyklen wer­den peri­odisch wie­der­holt, die Län­ge eines Zyklus ist fest.


FlexRay-DataLinkLayer.png
Flex­Ray Data Link Layer – Zyklus


Inner­halb des sta­ti­schen Seg­ments haben wir Zeit­schlit­ze mit einer fes­ten Län­ge. Die Län­ge eines Zeit­schlit­zes ist so groß, dass genau eine Bot­schaft hin­ein­passt. Wäh­rend der Ent­wick­lungs­pha­se wird fest­ge­legt, wel­ches Steu­er­ge­rät in wel­chem Zeit­schlitz sen­den darf und sen­den muss. Dabei ist es mög­lich, dass in einem bestimm­ten Zeit­schlitz für unter­schied­li­che Zyklen unter­schied­li­che Steu­er­ge­rä­te zuge­ord­net wer­den. Das ist das so genann­te Cycle-Mul­ti­ple­xing, auf des­sen Funk­tion und Sinn wir spä­ter kurz ein­ge­hen. Jedes Steu­er­ge­rät zählt, begin­nend mit dem Anfang des Zyklus, die Zeit­schlit­ze mit, so dass alle Steu­er­ge­rä­te dar­über ori­en­tiert sind, in wel­chem Zeit­schlitz sich das Über­tra­gungs­sys­tem gera­de befin­det.

Im dyna­mi­schen Seg­ment haben wir eben­falls Zeit­schlit­ze, die so genann­ten Minis­lots. Auch hier ist jedem Minis­lot genau ein Steu­er­ge­rät zuge­ord­net. Das heißt, nur jeweils ein Steu­er­ge­rät hat das Sen­de­recht, wodurch alles wie­der kol­li­si­ons­frei ablau­fen kann.

Im Gegen­satz zum sta­ti­schen Seg­ment dür­fen die Bot­schaf­ten im dyna­mi­schen Seg­ment aber nun eine varia­ble Län­ge auf­wei­sen. Sie kön­nen also mehr als einen Minis­lot lang dau­ern. Ein Steu­er­ge­rät darf hier auch ganz auf sein Sen­de­recht ver­zich­ten. Dann bleibt das zuge­hö­ri­ge Minis­lot frei, der Slot-Zäh­ler zählt wei­ter und im nächs­ten Minis­lot darf dann ein ande­res Steu­er­ge­rät zäh­len. Wenn ein Steu­er­ge­rät dage­gen sein Sen­de­recht nutzt und sei­ne Bot­schaft län­ger dau­ert, als ein Minis­lot, dann bleibt der Slot-Coun­ter ein­fach so lan­ge ste­hen, bis die Bot­schaft abge­schlos­sen ist. Eine Bot­schaft im dyna­mi­schen Seg­ment muss inner­halb des aktu­el­len Zyklus voll­stän­dig ver­sen­det wer­den kön­nen. Wenn das nicht der Fall ist, darf der Kom­mu­ni­ka­ti­ons­con­trol­ler die Bot­schaft nicht ver­sen­den. Die Bot­schaft muss min­des­tens bis zum nächs­ten Zyklus war­ten. Die Wahl des Minis­lots für eine Bot­schaft stellt damit einer Art Prio­ri­tät die­ser Bot­schaft dar.

Am Ende eines Kom­mu­ni­ka­ti­ons­zy­klus befin­den sich die Net­work-Idle-Time und das Sym­bol-Win­dow. Das Sym­bol-Win­dow ist für zukünf­ti­ge Erwei­te­run­gen vor­ge­se­hen. Die Net­work-Idle-Time dient der Syn­chro­ni­sa­tion zwi­schen Sen­dern und Emp­fän­gern.

Cycle-Multiplexing

Der Kom­mu­ni­ka­ti­ons­ab­lauf wie­der­holt sich in den Kom­mu­ni­ka­ti­ons­zy­klen peri­odisch. Übli­cher­wei­se wird eine Bot­schaft ein­mal je Zyklus ver­sen­det. Für zeit­kri­ti­sche Bot­schaf­ten muss die Zyklus­zeit ent­spre­chend klein gewählt wer­den. Beim BMW X5 zum Bei­spiel nahm man 5 Mil­li­se­kun­den. Um auch Bot­schaf­ten mit noch kür­ze­rer Zyklus­zeit ver­sen­den zu kön­nen, ohne den Zyklus an sich kür­zer zu machen, hat man sich einen Trick ein­fal­len las­sen: Das Cycle-Mul­ti­ple­xing, sie­he Abbil­dung.


FlexRay-CycleMultiplexing.png
Flex­Ray – Cycle Mul­ti­ple­xing


Man wählt mit 3 Mil­li­se­kun­den das sta­ti­sche Seg­ment etwas grö­ßer als die Hälf­te der gesam­ten Zyklus­dau­er. Dadurch ist es mög­lich, eine Bot­schaft zwei­mal zu ver­sen­den, am Anfang und in der Mit­te des Zyklus. Das ergibt eine effek­ti­ve Zyklus­dau­er von 2,5 Mil­li­se­kun­den. Für die­je­ni­gen Bot­schaf­ten, bei denen eine grö­ße­re Peri­oden­dau­er rei­chen wür­de, für die also eine Zyklus­zeit von 5 Mil­li­se­kun­den nicht not­wen­dig ist, hat man das Cycle-Mul­ti­ple­xing geschaf­fen. Dadurch muss man kei­ne Schlit­ze reser­vie­ren, die nicht benö­tigt wer­den. Beim Cycle Mul­ti­ple­xing benutzt man ein- und den­sel­ben Zeit­schlitz für unter­schied­li­che Bot­schaf­ten von unter­schied­li­chen Steu­er­ge­rä­ten. Im Bei­spiel ist hier in Oran­ge eine Bot­schaft dar­ge­stellt, die alle 10 Mil­li­se­kun­den ver­sen­det wird und in Gelb eine Bot­schaft, die nur alle 20 Mil­li­se­kun­den ver­sen­det wer­den soll. Ins­ge­samt kann man auf die­se Wei­se ein Sche­ma mit maxi­mal 64 Kom­mu­ni­ka­ti­ons­zy­klen auf­bau­en, bei denen die Zeit­schlit­ze unter­schied­lich ver­wen­det wer­den.

Frameformat

Das Bot­schafts­for­mat von Flex­Ray ist in nach­fol­gen­der Abbil­dung dar­ge­stellt. Die Über­tra­gung beginnt mit einer Rei­he von Steu­er­bits. Danach folgt die Fra­me-ID, die mit der Num­mer des Slots bzw. des Minis­lots iden­tisch ist. Hier sind 2048 ver­schie­de­ne Wer­te mög­lich. Dann folgt die Anzahl der Daten­wor­te. Im Gegen­satz zu CAN oder LIN, wer­den bei Flex­Ray die Anzahl der über­tra­ge­nen Daten in Wor­ten gezählt (16 Bit). Eine Flex­Ray-Bot­schaft kann zwi­schen Null und maxi­mal 127 Wor­ten, also maxi­mal 254 Byte Daten ent­hal­ten. Der Hea­der wird durch eine Prüf­sum­me, ein CRC, abge­si­chert. Zusam­men mit dem Hea­der wird zur Rea­li­sie­rung des Cycle-Mul­ti­ple­xing ein Zyklus­zäh­ler über­tra­gen. Abge­schlos­sen wird die Daten­über­tra­gung durch eine 24 Bit große Prüf­sum­me, die sich über die gesam­te Bot­schaft erstreckt.


FlexRay-FrameFormat.png
Flex­Ray – Fra­me­for­mat


In der Abbil­dung ist das For­mat der Bot­schaf­ten auf der Ebe­ne des Data-Link-Layers dar­ge­stellt, so wie sie die Soft­wa­re zu sehen bekommt. Auf phy­si­ka­li­scher Ebe­ne streut der Kom­mu­ni­ka­ti­ons­con­trol­ler, ganz ähn­lich wie bei CAN, noch eine gan­ze Rei­he von Bits ein: Am Anfang zum Bei­spiel die Trai­ling-Start-Sequence, die zur Syn­chro­ni­sa­tion dient. Eben­so die Fra­me-Start-Sequence, die eben­falls zu Syn­chro­ni­sa­ti­ons­zwe­cken ver­wen­det wird. Wei­ter­hin die Byte-Start-Sequence: Dies sind 2 Bits, die vor jedem Byte gesen­det wer­den, so dass für jedes über­tra­ge­ne Byte effek­tiv 10 Bit gesen­det wer­den. Der Pro­to­koll-Over­head des Gesamt­pro­to­kolls ist somit etwas grö­ßer als bei CAN. Die Nutz­da­ten­ra­te beträgt bei 10 Mbit/s im bes­ten Fall ca. 500 kBy­te/s. In der Pra­xis wird es eher etwas weni­ger sein. Grund: Am Anfang und am Ende eines Zeit­schlit­zes wird immer etwas Platz gelas­sen, da eine Bot­schaft unter allen Umstän­den in den Zeit­schlitz hin­ein­pas­sen muss.

Ein wei­te­rer wich­ti­ger Aspekt bei der Aus­le­gung von Flex­Ray-Sys­te­men ist die Tat­sa­che, dass die Zeit­schlit­ze den ein­zel­nen Steu­er­ge­rä­ten ein­deu­tig zuge­ord­net wer­den. Dies muss in der Ent­wick­lungs­pha­se des Sys­tems gesche­hen. Auch müs­sen Platz­hal­ter für künf­ti­ge Erwei­te­run­gen vor­ge­hal­ten wer­den. All die­se Aspek­te redu­zie­ren noch­mals deut­lich die effek­ti­ve Nutz­da­ten­ra­te bei Flex­Ray-Sys­te­men. Die Arbi­trie­rung fin­det hier, wenn man so sagen darf, nicht im Fahr­zeug, son­dern in den Ent­wick­lungs­ab­tei­lun­gen statt! Wer hier „gewinnt“, hängt ver­mut­lich nicht nur mit tech­ni­schen Anfor­de­run­gen zusam­men.

Netzwerkstart und Taktsynchronisation

Für das kor­rek­te Funk­tio­nie­ren des Flex­Ray-Sys­tems ist es von ent­schei­den­der Bedeu­tung, dass alle Steu­er­ge­rä­te zeit­syn­chro­nen zuein­an­der arbei­ten. Im lau­fen­den Betrieb wird dies durch die Takt­syn­chro­ni­sa­tion gewähr­leis­tet. Beim Netz­werk­start sind aller­dings ganz beson­de­re Maß­nah­men not­wen­dig.


FlexRay-NetworkStart.png
Flex­Ray – Netz­werk­start und Takt­syn­chro­ni­sa­tion


Zum Netz­werk­start muss es min­des­tens zwei, bes­ser drei so genann­te Kalt­start­kno­ten geben. Nur die­se dür­fen die Kom­mu­ni­ka­tion begin­nen. Bevor sie das tun, prü­fen sie, ob das Bus­sys­tem in Ruhe ist oder ob es bereits eine Kom­mu­ni­ka­tion gibt. Wenn schon eine Kom­mu­ni­ka­tion statt­fin­det, klin­ken sie sich ein­fach ohne zusätz­li­che Maß­nah­men in die­se Kom­mu­ni­ka­tion ein. Wenn dage­gen das Bus­sys­tem in Ruhe ist oder wenn das Bus­sys­tem vor­her im Schlaf­zu­stand war, dann wird zunächst ein­mal ein Wake-Up-Pat­tern gesen­det. Danach wird über­prüft, ob das Bus­sys­tem immer noch in Ruhe ist. Ist das der Fall, dann sen­det einer der Kalt­start­kno­ten ein Col­li­sion-Avoi­dan­ce-Sym­bol. Die­ses signa­li­siert allen ande­ren ange­schlos­se­nen Steu­er­ge­rä­ten, dass die­ser Kalt­start­kno­ten ver­sucht, das Netz­werk zu star­ten. Wenn das Bus­sys­tem wei­ter­hin in Ruhe ist, führt die­ser Kalt­start­kno­ten den Kalt­start durch, indem er sei­ne nor­ma­len Bot­schaf­ten sen­det. In die­sen Bot­schaf­ten sind im Hea­der das Star­tup-Fra­me-Indi­ca­tor-Bit und das Sync-Fra­me-Indi­ca­tor-Bit gesetzt. So dass die­se Bot­schaf­ten ein­deu­tig als Bot­schaf­ten eines Kalt­start­kno­tens erkannt wer­den kön­nen.

Die ande­ren Kalt­start­kno­ten neh­men die Kom­mu­ni­ka­tion erst dann auf, wenn sie min­des­tens vier sol­che Bot­schaf­ten vom ers­ten Kalt­start­kno­ten emp­fan­gen haben. Danach ist der Weg für die „nor­ma­len“ Steu­er­ge­rä­te frei, sich in die Kom­mu­ni­ka­tion ein­zu­klin­ken. Sie müs­sen aber, bevor sie die Kom­mu­ni­ka­tion auf­neh­men kön­nen, min­des­tens zwei Bot­schaf­ten von zwei unter­schied­li­chen Kalt­start­kno­ten emp­fan­gen haben.

Ins­ge­samt bedeu­tet dies, dass der Start eines Netz­wer­kes min­des­tens 8 voll­stän­di­ge Kom­mu­ni­ka­ti­ons­zy­klen erfor­dert. Im lau­fen­den Betrieb wer­den dann ins­be­son­de­re in der Net­work-Idle-Time die loka­len Takt­si­gna­le aller Kom­mu­ni­ka­ti­ons­con­trol­ler jus­tiert, so dass die Kno­ten syn­chron blei­ben. Dazu müs­sen min­des­tens zwei der Kalt­start­kno­ten auch im lau­fen­den Betrieb stän­dig Bot­schaf­ten mit dem ent­spre­chen­den Sync-Fra­me-Indi­ca­tor-Bit sen­den.

Alle Bot­schaf­ten für den Kalt­start des Net­zes und die Syn­chro­ni­sa­tion wer­den nur im sta­ti­schen Seg­ment gesen­det. Das heißt, bei der Kon­fi­gu­ra­tion eines Netz­werks muss auf jeden Fall ein sta­ti­sches Seg­ment mit min­des­tens zwei Zeit­schlit­zen kon­fi­gu­riert wer­den.


Siehe auch

CAN - Con­trol­ler Area Net­work

LIN - Local Interconnect Network

MOST - Media Oriented System Transport

K-Line

SAE J1850

SAE J1708