M icí systém na bázi sb rnice FlexRay

Transkript

M icí systém na bázi sb rnice FlexRay
ýESKÉ VYSOKÉ UýENÍ TECHNICKÉ V PRAZE
Fakulta elektrotechnická – Katedra mČĜení
Diplomová práce
MČĜicí systém na bázi sbČrnice FlexRay
Denis Waraus
Vedoucí práce: Ing. Jan Malinský
Obor: MČĜení a pĜístrojová technika
leden 2008
ýeské vysoké uþení technické v Praze
Fakulta elektrotechnická
Katedra mČĜení 13138
Školní rok
2006/2007
ZADÁNÍ DIPLOMOVÉ PRÁCE
Student:
Denis Waraus
Obor:
MČĜení a pĜístrojová technika
Název práce:
MČĜicí systém na bázi sbČrnice FlexRay
Zásady pro vypracování:
NavrhnČte a fyzicky realizujte elektronické jednotky, vþetnČ softwarového vybavení,
umožĖujících mČĜit vybrané základní elektrické veliþiny a komunikovat s ostatními uzly,
za úþelem pĜedávání namČĜených dat, prostĜednictvím sbČrnice FlaxRay. MČĜicí systém
vytvoĜte alespoĖ z 5-ti stanic. Pro realizaci použijte integrovaný FlexRay Ĝadiþ MFR4300
od firmy Freescale a procesor STR710 od ST Microelectronic.
Seznam odborné literatury:
[1] Kocourek, P., Novák, J.: PĜenos informace. Skripta ýVUT, Praha 2003
[2] Haasz, V., Roztoþil,J., Novák,J.: ýíslicové mČĜicí systémy, ýVUT 2000
[3] FlexRay Consortium: Protocol Specification V2.1, 2006
[4] FlexRay Consortium: Electrical Physical Layer Specification V2.1, 2006
[5] Firemní literatura Freescale, ST Microelectronic, Philips
Vedoucí diplomové práce:
Ing. Jan Malinský
Datum zadání diplomové práce:
Termín odevzdání diplomové práce:
21. listopad 2006
18. leden 2008
L.S.
Prof. Ing. Vladimír Haasz, CSc.
vedoucí katedry
Doc. RNDr. Tomáš Bílek, CSc.
prodČkan
V Praze dne 21.11.2006
PodČkování
DČkuji Ing. Janu Malinskému za odborné vedení pĜi zpracování diplomové práce a stejnČ tak
bych chtČl podČkovat všem blízkým za podporu a pomoc bČhem studií.
Prohlášení
Prohlašuji, že jsem svou diplomovou práci vypracoval samostatnČ a použil jsem pouze podklady
uvedené v pĜiloženém seznamu.
Nemám závažný dĤvod proti užití tohoto školního díla ve smyslu § 60 Zákona þ.121/2000 Sb.,
o právu autorském, o právech souvisejících s právem autorským a o zmČnČ nČkterých zákonĤ
(autorský zákon).
V Praze dne 17. ledna 2008
Abstrakt
Hlavním tématem této práce je ukázka aplikace nového komunikaþního standardu FlexRay,
který je vĤdþím protokolem pro systémy x-by-wire v automobilové technice. Zabývá se realizací
a programovým vybavením jednotlivých mČĜicích stanic, které tvoĜí demonstraþní síĢ, na které
ukazuje pĜednosti tohoto nového standardu. Dále nastiĖuje základní principy dalších protokolĤ
navržených pro x-by-wire systémy.
Klíþová slova
FlexRay, systémy x-by-wire, TTP/C, TTCAN, Byteflight, TDMA, MFR4300
Abstract
Main topic of diploma thesis is application of new FlexRay communication protocol, which is
getting used in automotive safety-critical realtime systems (x-by-wire systems). It is focused on
hardware and firmware implementation of several nodes that form demonstration measurement
and control network. Most of the specific features of this new protocol are presented by the
implementation and principles of other protocols used in x-by-wire systems are explained
further.
Keywords
FlexRay, x-by-wire systems, TTP/C, TTCAN, Byteflight, TDMA, MFR4300
Obsah
SEZNAM TABULEK........................................................................................................................................... 9
SEZNAM OBRÁZKģ........................................................................................................................................ 10
1
ÚVOD........................................................................................................................................................ 11
2
SYSTÉMY X-BY-WIRE........................................................................................................................... 12
2.1
3
PRINCIP TDMA/FTDMA.................................................................................................................... 13
TTCAN...................................................................................................................................................... 15
3.1
FYZICKÁ VRSTVA................................................................................................................................ 15
3.2
LINKOVÁ VRSTVA .............................................................................................................................. 15
3.2.1
Komunikaþní cyklus....................................................................................................................... 15
3.2.1.1
Basic cycle.......................................................................................................................................... 16
3.2.1.2
Systémová matice................................................................................................................................ 16
3.2.2
3.2.3
4
ýasování ....................................................................................................................................... 18
Synchronizace na událost............................................................................................................... 18
TTP/C........................................................................................................................................................ 19
4.1
FYZICKÁ VRSTVA................................................................................................................................ 19
4.1.1
Topologie sítČ................................................................................................................................ 19
4.2
LINKOVÁ VRSTVA ............................................................................................................................... 20
4.2.1
Komunikaþní cyklus....................................................................................................................... 20
4.2.2
Formát rámce................................................................................................................................ 20
4.2.3
Start sítČ........................................................................................................................................ 21
4.2.4
Synchronizace stanic ..................................................................................................................... 22
5
BYTEFLIGHT .......................................................................................................................................... 23
5.1
LINKOVÁ VRSTVA ............................................................................................................................... 23
5.1.1
Komunikaþní cyklus....................................................................................................................... 23
5.1.2
Formát datového rámce................................................................................................................. 24
6
FLEXRAY................................................................................................................................................. 25
6.1
FYZICKÁ VRSTVA................................................................................................................................ 25
6.1.1
Topologie sítČ................................................................................................................................ 25
6.2
LINKOVÁ VRSTVA ............................................................................................................................... 27
6.2.1
Komunikaþní cyklus....................................................................................................................... 27
6.2.2
Formát rámce................................................................................................................................ 29
6.2.3
Typy stanic .................................................................................................................................... 30
6.2.4
Synchronizace stanic ..................................................................................................................... 30
6.2.5
Start sítČ........................................................................................................................................ 31
7
HARDWARE MċěICÍ STANICE........................................................................................................... 33
7.1
MIKROKONTROLÉR STR710 ............................................................................................................... 33
7.2
ěADIý MFR4300................................................................................................................................ 34
7.2.1
Popis a základní vlastnosti Ĝadiþe MFR4300.................................................................................. 34
7.2.2
RozdČlení pamČti Ĝadiþe MF 4300.................................................................................................. 35
7.2.3
Koncept message bufferĤ ............................................................................................................... 36
7.2.3.1
Individual Message Buffer................................................................................................................... 38
7.2.3.2
PĜíchozí FIFO ..................................................................................................................................... 39
7.2.3.3
PĜíchozí Shadow buffer ....................................................................................................................... 39
7.2.4
Odesílání rámcĤ ............................................................................................................................ 39
7.2.4.1
Jednoduchý individual message buffer ................................................................................................. 39
7.2.4.2
Dvojitý individual message buffer........................................................................................................ 40
7.2.5
Protocol Operation Control........................................................................................................... 41
7.3
TJA1080............................................................................................................................................ 42
7.4
PROPOJENÍ ZÁKLADNÍ DESKY S DESKOU OSAZENOU FLEXRAY ěADIýEM ............................................... 43
7.5
CHYBY HARDWARU ............................................................................................................................ 44
-7-
8
KNIHOVNA PRO ěADIý MFR4300 ...................................................................................................... 45
8.1
8.2
8.3
8.4
8.5
8.6
8.6.1
8.6.2
8.6.3
8.6.4
8.6.5
9
JMENNÁ KONVENCE ............................................................................................................................ 45
DATOVÉ TYPY .................................................................................................................................... 46
PěÍSTUP DO PAMċTI ěADIýE MFR4300................................................................................................ 46
ZÁKLADNÍ KONFIGURACE MODULU ..................................................................................................... 47
PARAMETRY PROTOKOLU FLEXRAY .................................................................................................... 48
KONFIGURACE A PRÁCE S MESSAGE BUFFERY....................................................................................... 51
PĜíchozí message buffer................................................................................................................. 53
PĜíchozí shadow message buffer .................................................................................................... 55
PĜíchozí FIFO ............................................................................................................................... 55
Vysílací buffery.............................................................................................................................. 57
POC pĜíkazy.................................................................................................................................. 59
MċěICÍ SÍġ.............................................................................................................................................. 62
9.1
9.2
9.3
9.4
9.5
SCHÉMA SÍTċ ...................................................................................................................................... 62
ROZDċLENÍ KOMUNIKAýNÍHO CYKLU .................................................................................................. 63
MċěENÍ VYBRANÝCH VELIýIN ............................................................................................................. 64
PROPOJENÍ STANICE S POýÍTAýEM ....................................................................................................... 65
FIRMWARE MċěÍCÍCH STANIC .............................................................................................................. 66
10
POPIS SOFTWARE PRO PC .................................................................................................................. 68
11
ZÁVċR...................................................................................................................................................... 69
12
SEZNAM LITERATURY A POUŽITÝCH MATERIÁLģ..................................................................... 70
PěÍLOHA A – VÝVOJOVÝ DIAGRAM HLAVNÍHO PROGRAMU ............................................................ 71
PěÍLOHA B – VÝVOJOVÝ DIAGRAM FUNKCE FR_INIT ........................................................................ 72
PěÍLOHA C – STRUKTURA PěILOŽENÉHO CD........................................................................................ 73
-8-
Seznam tabulek
TAB. 1: STANOVENÍ PARAMETRU K. ..................................................................................................................... 31
TAB. 2: ROZDċLENÍ PAMċTI ěADIýE MFR4300 ...................................................................................................... 35
TAB. 3: POPIS PRVKģ V POLI FRAME HEADER ......................................................................................................... 36
TAB. 4: PěEHLED POC STAVģ............................................................................................................................... 42
TAB. 5: PROPOJENÍ SIGNÁLU MEZI MIKROPOýÍTAýEM A ěADIýEM FLEXRAY ........................................................... 43
TAB. 6: POPIS SOUBORģ KNIHOVNY PRO PRÁCI S FLEXRAY ěADIýEM ...................................................................... 45
TAB. 7: POPIS STRUKTURY FR_HW_CONFIG_TYPEDEF............................................................................................ 47
TAB. 8: GLOBÁLNÍ PARAMETRY SÍTċ FLEXRAY...................................................................................................... 48
TAB. 9: LOKÁLNÍ PARAMETRY STANICE V SÍTI FLEXRAY ........................................................................................ 50
TAB. 10: PěEHLED HODNOT VÝýTOVÉHO TYPU FR_CHANNEL_TYPE ......................................................................... 51
TAB. 11: POPIS STRUKTURY FR_BUFFER_CONFIG_TYPEDEF ................................................................................... 52
TAB. 12: PěEHLED HODNOT VÝýTOVÉHO TYPU FR_BUFFER_TYPE .......................................................................... 52
TAB. 13: POPIS PARAMETRģ FUNKCE FR_BUFFERS_INIT........................................................................................ 53
TAB. 14: POPIS STRUKTURY FR_RECEIVE_BUFFER_CONFIG_TYPEDEF .................................................................... 53
TAB. 15: POPIS PARAMETRģ FUNKCE FR_RECEIVEDATA ........................................................................................ 54
TAB. 16: PěEHLED HODNOT VÝýTOVÉHO TYPU FR_RX_MB_STATUS_TYPE .............................................................. 54
TAB. 17: PěEHLED HODNOT VÝýTOVÉHO TYPU FR_RECEIVE_SHADOW_BUFFER_TYPE .............................................. 55
TAB. 18: POPIS STRUKTURY FR_RECEIVE_BUFFER_CONFIG_TYPEDEF .................................................................... 55
TAB. 19: POPIS STRUKTURY FR_FIFO_RANGE_FILTERS_TYPEDEF ......................................................................... 56
TAB. 20: POPIS STRUKTURY FR_FIFO_CONFIG_TYPEDEF ..................................................................................... 56
TAB. 21: POPIS PARAMETRģ FUNKCE FR_TRANSMITDATA ....................................................................................... 57
TAB. 22: POPIS STRUKTURY FR_TRANSMIT_BUFFER_CONFIG_TYPEDEF .................................................................. 58
TAB. 23: PěEHLED POC PěÍKAZģ .......................................................................................................................... 59
TAB. 24: PěEHLED HODNOT VÝýTOVÉHO TYPU FR_POC_STATE_TYPE .................................................................. 59
TAB. 25: PěEHLED HODNOT VÝýTOVÉHO FR_WAKEUP_STATE_TYPE ........................................................................ 60
TAB. 26: PěEHLED HODNOT VÝýTOVÉHO FR_STARTUP_STATE_TYPE ...................................................................... 60
-9-
Seznam obrázkĤ
OBR. 1:
OBR. 2:
OBR. 3:
OBR. 4:
OBR. 5:
OBR. 6:
OBR. 7:
OBR. 8:
OBR. 9:
OBR. 10:
OBR. 11:
OBR. 12:
OBR. 13:
OBR. 14:
OBR. 15:
OBR. 16:
OBR. 17:
OBR. 18:
OBR. 19:
OBR. 20:
OBR. 21:
OBR. 22:
OBR. 23:
OBR. 24:
OBR. 25:
OBR. 26:
OBR. 27:
OBR. 28:
OBR. 29:
OBR. 30:
OBR. 31:
OBR. 32:
OBR. 33 :
OBR. 34 :
OBR. 35 :
SCHEMATICKÉ ZNÁZORNċNÍ PODVOZKU ............................................................................................... 12
PRINCIP TDMA ................................................................................................................................... 13
KOMUNIKAýNÍ CYKLUS NA SBċRNICI VYUŽÍVAJÍCÍ TDMA .................................................................... 14
TTCAN – BASIC CYCLE....................................................................................................................... 16
TTCAN - SYSTÉMOVÁ MATICE ............................................................................................................ 17
TTP/C – KOMUNIKAýNÍ CYKLUS.......................................................................................................... 19
TTP/C - ROZDċLENÍ ýASOVÉHO SLOTU ................................................................................................ 20
TTP/C – START SÍTċ ............................................................................................................................ 22
BYTEFLIGHT – KOMUNIKAýNÍ CYKLUS ................................................................................................. 23
BYTEFLIGHT – PěÍKLAD KOMUNIKAýNÍHO CYKLU ................................................................................. 23
BYTEFLIGHT – FORMÁT RÁMCE ............................................................................................................. 24
FLEXRAY – ZAPOJENÍ BOD-BOD ........................................................................................................... 25
FLEXRAY – PASIVNÍ SBċRNICE ............................................................................................................ 25
FLEXRAY – ZAPOJENÍ DO HVċZDY ....................................................................................................... 25
FLEXRAY – DVOUKANÁLOVÉ ZAPOJENÍ DO HVċZDY .............................................................................. 26
FLEXRAY – JEDNOKANÁLOVÉ HYBRIDNÍ ZAPOJENÍ ................................................................................ 26
FLEXRAY – KOMUNIKAýNÍ CYKLUS ...................................................................................................... 27
FLEXRAY – DYNAMICKÝ SLOT ............................................................................................................. 28
FLEXRAY – FORMÁT DATOVÉHO RÁMCE ............................................................................................... 29
FLEXRAY – KOREKCE RYCHLOSTI A OFFSETU ýASOVÉ ZÁKLADNY ......................................................... 31
FLEXRAY – START SÍTċ ........................................................................................................................ 32
BLOKOVÉ SCHÉMA MFR4300 .............................................................................................................. 34
STRUKTURA PHYSICAL MESSAGE BUFFERS ............................................................................................. 36
STRUKTURA DAT Z POLI FRAME HEADER............................................................................................... 36
FIFO BUFFER – ZPRACOVÁNÍ PěÍCHOZÍCH ZPRÁV .................................................................................. 38
STRUKTURA DVOJITÉHO VYSÍLACÍHO INDIVIDUAL MESSAGE BUFFERU.................................................... 40
POC STAVY A PěECHODY MEZI NIMI ..................................................................................................... 41
ZAPOJENÍ KRYSTALU 40MHZ ............................................................................................................... 44
MAPA EXTERNÍ PAMċTI MIKROPROCESORU STR710 ............................................................................. 46
KOLIZE A PěÍJEM WUS ........................................................................................................................ 49
VYSVċTLENÍ K PARAMETRģM PDELAYCOMPENSATION A PDECODINGCORRENCTION ................................... 50
DETAILNÍ POHLED NA STARTUP PROCEDURU ......................................................................................... 61
PěEDPOKLÁDANÉ VYUŽITÍ SÍTċ FLEXRAY V AUTOMOBILU .................................................................... 62
SCHÉMA SÍTċ ....................................................................................................................................... 63
VYUŽITÍ KOMUNIKAýNÍHO CYKLU ........................................................................................................ 64
- 10 -
Úvod
1
Úvod
V prvních kapitolách se diplomová práce snaží þtenáĜi pĜiblížit problematiku pĜenosu
informace v bezpeþnostnČ kritických aplikacích reálného þasu. Tyto aplikace kladou velký dĤraz
na zabezpeþení pĜenosu zprávy – neporušenou zprávu je nutné pĜenést s pĜedem známým
maximálním zpoždČním. ýtenáĜe seznamuje s komunikaþními protokoly TTCAN (TimeTriggered Controller Area Network), TTP/C (Time Triggered protocol class C), Byteflight a
FlexRay které byly navrženy pĜedevším pro aplikace v automobilové technice. Dalšími
protokoly navrženými pro bezpeþnostnČ kritické aplikace reálného þasu jsou napĜíklad
SAFEbus, vyvinutý firmou Honeywell pro použití v letecké technice nebo SPIDER, vyvinutý
americkou NASA pro využití v kosmonautice.
V další kapitole je podrobnČ popsán hardware použitý pro stavbu demonstraþní mČĜicí
sítČ s komunikaþním Ĝadiþem FlexRay MFR4300 od firmy Freescale. NejvČtší prostor je
vyhrazen právČ pro popis Ĝadiþe FlexRay. V kapitole jsou probrány všechny vlastnosti
implementované v knihovnČ. Je zmínČno nČkolik rad, které poslouží pĜi vlastním návrhu mČĜicí
stanice.
Nedílnou souþástí mČĜicí stanice tvoĜí její firmware, který je v práci také popsán. Velkou
vČtšinu tvoĜí detailní popis zmínČné knihovny pro práci s Ĝadiþem FlexRay. Cílem kapitoly
vČnované této knihovnČ je maximální využití vlastností knihovny pĜi psaní vlastního firmware.
V kapitole vČnované již samotné demonstraþní mČĜicí síti jsou rozebrána mČĜení, která
provádČjí jednotlivé stanice. Jednotlivá dílþí jednoduchá mČĜení a další vstupy tvoĜí zdroj
informací, které jsou pak podle dĤležitosti pĜenášeny po sbČrnici. Práce se snaží pĜedevším
demonstrovat pĜednosti protokolu FlexRay, kterými jsou napĜíklad dvoukanálový pĜenos
a statické a dynamické rozdČlení þasových úsekĤ.
- 11 -
Systémy x-by-wire
2
Systémy x-by-wire
Termín x-by-wire byl pĜevzat z oboru letectví, kde se jím oznaþuje systém Ĝízení
letadla – fly-by-wire. V automobilové technice se setkáváme napĜíklad s výrazy brake-by-wire
a steer-by-wire. Termíny oznaþují systémy, kde je mechanická þást, pĜenášející informaci (napĜ.
o natoþení volantu), nahrazena elektrickou. Toto nahrazení umožĖuje návrat ke koncepci
podvozku oddČleného od karoserie. Tato koncepce byla používána v automobilovém odvČtví na
poþátku 19. století (obr. 1) a zahrnuje v sobČ nČkolik výhod. V podvozku (oznaþovaném
platform þi skateboard) je uloženo témČĜ
vše, co potĜebuje automobil k jízdČ:
motorová skupina (motor, pĜevodovka,
rozvodovka), kola s Ĝízením a brzdami,
nádrže na palivo, baterie. Poloha všech
ovládacích prvkĤ se pĜenáší pomocí
servomechanismĤ, jejichž spolehlivost
musí být srovnatelná se zaĜízeními
v letecké þi kosmické technice a lze ji
zvýšit
napĜíklad
použitím
dvou
Obr. 1: Schematické znázornČní podvozku1
nezávislých zdrojĤ. Je dĤležité si uvČdomit, že požadavek vysoké spolehlivosti je kladen i na
pĜenos dat mezi jednotlivými jednotkami. Pro tyto úþely bylo vyvinuto nČkolik komunikaþních
protokolĤ, které musí splĖovat velké množství bezpeþnostních požadavkĤ (napĜ. garantovaná
latence zpráv, dojde-li k poruše jedné stanice, nesmí dojít k pĜerušení veškeré komunikace aj.).
Všechny popisované protokoly navrhnuté pro x-by-wire používají pro pĜístup na sbČrnici
TDMA, nebo FTDMA metody (viz následující kapitola), které zajišĢují vyhrazený pĜístup na
komunikaþní médium.
Využitím technologie x-by-wire je možné plné nasazení moderních systémĤ pro Ĝízení
vozidla. PĜíkladem mohou být ADASs (Advanced Assistance Systems) – pokroþilé (integrované)
asistenþní systémy. Tyto systémy nepĜebírají nad vozidlem plnou kontrolu, ale pouze pomáhají
Ĝidiþi pĜi Ĝízení vozidla a lze je rozdČlit do následujících skupin:
x Systémy pro sledování a Ĝízení dopravní situace – tvoĜí nejrozšíĜenČjší skupinu.
PĜíkladem je ACC (Adaptive Cruise Control) – adaptivní tempomat. Jeho úkolem
je identifikace (ne)pohyblivé pĜekážky na silnici. Propojením ACC s dalšími
1
Vysoký P., Vysoký O.: Trendy v Ĝízení automobilových systémĤ. Automatizace, 2006, roþ. 49, þ. 4, s. 252-255.
- 12 -
Systémy x-by-wire
Ĝídicími jednotkami lze vytvoĜit systém pro udržování konstantní vzdálenosti od
jiného auta pĜi popojíždČní v kolonČ. Dalším ukázkovým systémem je LDWS
(Lane Departure Warning System), který upozorní Ĝidiþe pĜi opuštČní
vymezeného jízdního pruhu.
x Systémy pro sledování a Ĝízení stavu vozidla – pĜíkladem je brzdný systém
oznaþovaný jako ABS.
x Systémy pro sledování stavu Ĝidiþe – na základČ snížené rychlosti pohybu oþí
nebo motoriky svalĤ lze usuzovat, že je Ĝidiþ unaven þi pod vlivem omamných
látek.
x Systémy pro komunikaci s Ĝidiþem
x Systémy pro Ĝízení subsystémĤ vozidla
V souþasnosti již existuje nČkolik projektĤ zabývajících se nahrazením Ĝidiþe zcela
automatickým zaĜízením, bohužel vzhledem k platné legislativČ je zatím není možné realizovat.
2.1 Princip TDMA/FTDMA
Základní princip TDMA2 (Time Division Multiple Access) je patrný z obr.2 a obr. 3.
Kapacita pĜenosového kanálu je
rozdČlena do þasových úsekĤ –
oken, ve kterých má stanice ke
sbČrnici
garantován
pĜístup.
Logikou protokolu TDMA je
zajištČno, že se žádná jiná stanice
v tomto þase nebude pokoušet
vysílat. Podmínkou pro správnou
þinnost
je
pĜesná
þasová
Obr.2: Princip TDMA
synchronizace všech komunikaþních stanic, odvozená napĜíklad od pĜijetí referenþní
synchronizaþní zprávy REF, periodicky vysílané Ĝídící stanicí v každém komunikaþním cyklu.
Délka þasových oken t1,t2,…tn v jednotlivých cyklech mĤže být fixní (TDMA), nebo promČnná
(FTDMA - Flexible Time Division Mutliple Access), což navíc vyžaduje dodateþnou režii, která
je nutná pro identifikaci aktuálního zdroje dat na výstupu þasovČ multiplexovaného kanálu,
ale umožĖuje zvýšení jeho kapacity.
2
Kocourek P., Novák J.: PĜenos Informace. ýVUT, Praha 2004.
- 13 -
Systémy x-by-wire
Time Server
t REF
Time
Server
Node 1
t1
t2
Node 2
Node 3
t3
tn
Node n
t REZ
REF
Node 1
tREF
t1
t2
REF
N1
Node 2
N1
N2
Node 3
N2
N3
Node n
BUS
……
Nn
REF
N1
N2
N3
----
Nn
Reserved
REF
N1
Obr. 3: Komunikaþní cyklus na sbČrnici využívající TDMA
- 14 -
N2
TTCAN
3
TTCAN
TTCAN3 (Time-Triggered Controller Area Network) je standardizován normou ISO
11898-4. Používá se u systémĤ x-by-wire 1. generace s mechanickou nebo hydraulickou zálohou.
Obecná CAN2 komunikace je koncipována jako multimaster a vysílání rámce mĤže být
aktivováno kteroukoli stanicí v libovolný þasový okamžik – priorita pĜístupu ke sbČrnici je dána
identifikátorem zprávy – jedná se tedy o nedeterministický pĜístup. Použitá pĜístupová metoda
se oznaþuje jako CSMA/BA – CSMA s bitovou arbitráží, Carrier Sense Multiple Access with
Bitwise Arbitration. Systémy x-by-wire vyžadují pĜesnou synchronizaci aplikaþních algoritmĤ
komunikujících uzlĤ s pevnČ definovanými þasovými okamžiky vysílání jednotlivých zpráv –
globální systémový þas.
Cílem þasového spouštČní pĜi vysílání komunikaþních zpráv je odstranČní þasové
prodlevy pĜi souþasném požadavku více stanic na vysílání a zavedení determinismu na sbČrnici.
TTCAN je založen na þasovČ spouštČné periodické komunikaci, která je taktována referenþní
zprávou (reference message) od Ĝídicí stanice (time master). TTCAN tedy rozšiĜuje pĤvodní
protokol o možnost TDMA pĜístupu ke sdílenému komunikaþnímu médiu a ponechává
vyhrazenou þást pro pĤvodní nedeterministický pĜístup.
3.1 Fyzická vrstva
Definice fyzické vrstvy je stejná jako u protokolu CAN2. Je kladen požadavek
na existenci dominantní a recesivní úrovnČ, které odpovídají logickým úrovním log 1 a log 0.
Základní topologií sítČ je zapojení sbČrnicové, které ale dnes již nemusí být pro nČkteré
aplikace dostaþující. Za použití HUBĤ lze dosáhnout topologie aktivní hvČzda nebo hybridní
topologie hvČzda-sbČrnice.
3.2 Linková Vrstva
3.2.1 Komunikaþní cyklus
Komunikaþní cyklus je tvoĜen základním cyklem (basic cycle), který se stále nezmČnČn
opakuje. Pro složitČjší vysílací vzorec je možné využít tzv. systémové matice, ve které je
definováno nČkolik po sobČ jdoucích základních cyklĤ, které mohou být od sebe navzájem
odlišné.
3
Fuehrer T.: Time Triggered Communication on CAN [online],
http://www.can-cia.org/fileadmin/cia/pdfs/technology/fuehrer.pdf.
- 15 -
TTCAN
3.2.1.1 Basic cycle
Základní cyklus (basic cycle) je þasový interval ohraniþený dvČma po sobČ jdoucími
referenþními zprávami (reference message). Je složen z nČkolika þasových oken rozdílné délky a
poskytuje potĜebný prostor pro vysílání zpráv. Cyklus je znázornČn na obr. 4.
Obr. 4: TTCAN – Basic cycle3
Reference message je jednoznaþnČ urþena svým identifikátorem. Rozlišujeme 2 typy
referenþní zprávy:
x extension level 1 – délka 1 byte, obsahuje pouze základní Ĝídicí informace
x extension level 2 – délka 4 byte, obsahuje navíc pĜídavné Ĝídicí informace, tj.
informace o globálním systémovém þase aktuální Ĝídicí stanice (time master)
Exclusive window – pĜenos periodických zpráv (TDMA pĜístup), þasové intervaly
pĜidČlované jednotlivým stanicím, ve kterých mají tyto stanice ke sbČrnici výhradní pĜístup.
Vysílací schéma a rozvržení pĜístupových intervalĤ (þasový offset od referenþní zprávy) pro
jednotlivé stanice jsou pevnČ stanoveny pĜi návrhu komunikaþní struktury. Automatické
opakování vysílání zprávy není povoleno.
Arbitrating window – V tomto intervalu je povolena klasická komunikace na principech
CAN arbitráže (CSMA/BA). Pokud se nČkteré stanici v tomto intervalu nepodaĜí odvysílat
zprávu – napĜíklad z dĤvodu její nižší priority – není povoleno její opČtovné vyslání. RovnČž
není povoleno zahájení vysílání v tomto intervalu, pokud je zĜejmé, že by daná stanice nestihla
odvysílat zprávu celou – nutno dodržet základní cyklus.
Free window – rezervní þasový interval sloužící jednak jako bezpeþnostní rezerva
a jednak jako rezerva pro flexibilní zmČny komunikaþní struktury pĜi pĜípadném rozšiĜování sítČ
3.2.1.2 Systémová matice
Aplikaþní algoritmy v komunikaþních uzlech distribuovaného Ĝídícího systému v praxi
obsahují mnoho Ĝídících smyþek a úloh s rozdílnými délkami period. Všechny tyto procesy
- 16 -
TTCAN
vyžadují speciální vysílací vzory pro pĜenos vlastních dat. Základní cyklus nedisponuje
dostateþnou flexibilitou pro splnČní tČchto uvedených požadavkĤ. Specifikace umožĖuje použít
více základních cyklĤ za úþelem vytvoĜení systémové komunikaþní matice – TTCAN System
Matrix.
Obr. 5: TTCAN - systémová matice3
Systémová matice TTCAN je striktnČ sloupcovČ orientovaná (stejné délky odpovídajících
si þasových oken). V pĜípadČ navazujících arbitrážních oken mohou být sloupce ignorovány
a odvysílány zprávy pĜesahující rozhraní dvou arbitrážních oken. Podmínkou zĤstává dostateþný
þas pro odvysílání zprávy do zaþátku navazujícího exkluzivního okna.
V intervalu základního cyklu TTCAN je þinnost komunikujících uzlĤ odvozena
od prĤbČhu þasu – tzv. þas cyklu TTCAN, který je pokaždé restartován pĜi pĜíjmu referenþní
zprávy. Nezbytné propojení mezi þasem cyklu a systémovou maticí TTCAN je realizováno
prostĜednictvím tzv. þasových znaþek (time marks), které jednoznaþnČ specifikují zaþátky
jednotlivých exkluzivních a arbitrážních oken (TxTriggers – pro vysílání, RxTriggers –
pro kontrolu okamžiku pĜíjmu). ýasová znaþka navíc obsahuje poĜadí základního cyklu
v systémové matici, kdy má být zpráva odeslána/pĜijata – base mark – a poþet základních cyklĤ
mezi dvČma následujícími vysíláními/pĜíjmy – repeat count.
- 17 -
TTCAN
3.2.2 ýasování
Základním pĜedpokladem pro správnou þinnost þasovČ spouštČných operací protokolu
TTCAN je pĜesnČ definovaný þas v rámci základního cyklu. Je odstupĖovaný v násobcích
diskrétních þasových kvant NTU (Network Time Unit). Podle typu referenþní zprávy je NTU
vyjádĜena v násobcích bitových intervalĤ komunikace CAN – level 1, nebo v absolutním þase –
level 2. NTU je nezávislá na kmitoþtu oscilátoru hodin lokálního komunikaþního kontroléru
a je odvozena vydČlením tohoto kmitoþtu lokálnČ závislým dČlícím pomČrem – TUR (Time Unit
Ratio).
ěídící uzel TTCAN (time master) vysílá ostatním stanicím v referenþní zprávČ (frame
synchronization pulse – level 2) svĤj aktuální þasový stav, považovaný za platný globální þas.
Po pĜíjmu referenþní zprávy si každý pĜijímací uzel urþí svĤj lokální þasový offset, tedy rozdíl
mezi pĜijatým globálním þasem (master global time) a lokálním þasem (local time).
global time = local time + local offset
Z dĤvodĤ možných drobných odchylek a kolísání hodinových kmitoþtĤ jednotlivých
komunikaþních ĜadiþĤ musí být zajištČna shoda mezi „rychlostí“ lokálního a globálního þasu
a stanoven odpovídající korekþní mechanismus. Za tímto úþelem je spojitČ modifikována pĜedem
daná hodnota lokálního TUR. Kontrolér lokálního uzlu periodicky mČĜí vždy mezi dvČma
referenþními zprávami, jednak poþet taktĤ oscilátoru lokálních hodin a jednak þasové rozdíly
sousedních hodnot globálního þasu pĜijatých od Ĝídící stanice. PomČr tČchto hodnot tvoĜí aktuální
TUR. PĜi daném korekþním mechanismu by se globální þas dvou rozdílných uzlĤ nemČl lišit více
než o 1 NTU (Network Time Unit)..
3.2.3
Synchronizace na událost
Pro nČkteré aplikace je cyklická obsluha základního cyklu pomocí periodické referenþní zprávy
nevýhodná. TTCAN umožĖuje synchronizaci základního cyklu na událost vyvolanou aplikací,
bČžící v komunikaþním uzlu Ĝídící stanice – event driven basic cycle.
Chce-li aplikace v Ĝídící stanici pĜerušit periodický chod TTCAN základního cyklu a je-li to
povoleno konfigurací uzlu, signalizuje Ĝídící stanice v následující referenþní zprávČ, že na konci
daného cyklu bude následovat mezera – gap, která nebude ostatními stanicemi interpretována
jako chybový stav. Následující vyvolání základního TTCAN cyklu je oþekáváno od aplikaþní
události. PĜeje-li si aplikace zpČtnČ restartovat pĤvodní stav, vyšle referenþní zprávu,
synchronizovanou na událost.
- 18 -
TTP/C
4
TTP/C
TTP/C4 (Time Triggered Protocol/class C) je souþástí Time Triggered Architecture
(TTA) vyvíjenou konsorciem TTA Group. TTA je pĜedevším urþena pro letecký prĤmysl, jak
napovídá pĜítomnost
firem Honeywell nebo
Airbus. TTP/C je urþen pro
použití
v automobilovém prĤmyslu k real-time Ĝízení – tedy pro systémy x-by-wire. Protokol je navržen
až pro teoretickou pĜenosovou rychlost 25 Mbit/s.
4.1 Fyzická vrstva
TTP/C specifikace nedefinuje pĜesnou fyzickou vrstvu, ale pouze specifikuje požadavky
které musí tato vrstva splĖovat:
x Fyzická vrstva musí mít dva nezávislé kanály (protokol lze provozovat s použitím
jednoho kanálu, ale pĜipravujeme se o Ĝadu jeho výhod – pĜedevším zabezpeþení).
x Podpora broadcastu.
x Musí být známo maximální zpoždČní.
4.1.1 Topologie sítČ
SíĢ mĤže obsahovat až 64 stanic. Možné zapojení sítČ je hvČzda (s použitím aktivního
þlenu), sbČrnice a jakákoliv jejich kombinace (opČt s použitím aktivního þlenu). Souþástí
aktivního þlenu mĤže být centrální bus guardian pro každý kanál.
Obr. 6: TTP/C – Komunikaþní cyklus
4
TTTech: Time-Triggered Protocol TTP/C High-Level Specification Document Protocol Version
1.1 [online], Specification edition 1.4.3, 2003-11-19, http://www.tttech.com
- 19 -
TTP/C
Propojení jednotlivých stanic je dvoukanálové, což zajišĢuje vyšší zabezpeþení
pĜenášených dat. Pokud není toto zabezpeþení potĜeba, lze na každém kanále pĜenášet jiná data a
tím zvýšit datovou propustnost sítČ.
4.2 Linková vrstva
4.2.1 Komunikaþní cyklus
Komunikaþní cyklus (cluster cycle) se skládá z jednotlivých TDMA úsekĤ, které jsou
rozdČleny do stejných þasových oken (node slot). TDMA úseky se liší pouze v obsahu a délce
vysílaných rámcĤ. Každá stanice mĤže mít bČhem TDMA úseku pĜidČlen pouze jeden node slot.
Protokol podporuje tzv. multiplexed node – sdílení node slotu více stanicemi. V praxi
to znamená, že je možné, aby se pĜiĜazení stanice danému slotu bČhem odlišných TDMA úsekĤ
mČnilo. PĜíklad komunikaþního cyklu je na obr. 6.
Na obr. 7 je znázornČno rozdČlení node slotu. Node slot neodpovídá pĜesnČ rozdČlení
do TMDA slotĤ, ale je posunut o fázi PSP (Pre-Send Phase). TDMA slot zaþíná þasem action
time, kdy Ĝadiþ zaþíná odesílat na sbČrnici rámec – Transmission Phase (TP). Po zbytek TDMA
slotu je fáze Inter-Frame Gap
(IFG), která slouží pro zpracování
vysílaného
rámce
ostatními stanicemi, vykonání
protokolových služeb (jako je
þasová synchronizace aj.) –
fáze Post Receive Phase (PRP)
a pro pĜípravu na další slot –
Obr. 7: TTP/C - RozdČlení þasového slotu4
fáze PSP. V prĤbČhu idle Ĝadiþ pouze vyþkává na pĜíchod PSP fáze.
4.2.2 Formát rámce
Na sbČrnici se vyskytují dva typy rámcĤ:
x I-frame (startovní rámec) – slouží pro start sítČ a musí obsahovat následující
informace:
o Globální þas odeslání
o ýíslo slotu (musí být umístČno do prvního TDMA úseku)
o Identifikátor typu rámce – identifikující rámec jako coldstart
o CRC
- 20 -
TTP/C
x N–frame (normální rámec) – se skládá z následujících þástí:
o Aplikaþní data
o ExplicitnČ vyjádĜený C-state (kolekce stavových promČnných popisující
stav Ĝadiþe). Pokud C-state explicitnČ vyjádĜený není, je zakódován
v CRC. Stanice v normálním módu by mČly mít stejný C-state. Pokud Cstate nesouhlasí, rámec není pĜijat. PĜi startu sítČ musí být C-state
vyjádĜen explicitnČ.
o PĜidaná data identifikují rámec – napĜ. typ rámce
o Žádost o zmČnu stavu
o CRC
4.2.3 Start sítČ
Pro start sítČ je potĜeba stanice, která má povoleno startovat síĢ (pak se jedná o coldstart
node). V síti mĤže být stanic tohoto typu více. Aby se pĜedešlo pĜi startu sítČ kolizím
zpĤsobeným rozsáhlostí sítČ, kdy dvČ coldstart stanice zaþnou vysílat ve stejný þas a þást stanic
by se synchronizovala s první coldstart stanicí a druhá þást s druhou, používá se mechanizmus
zvaný Big bang. Dále má každá startovní stanice pĜiĜazen jedineþný startup timeout IJistartup. Jde
o þasové urþení vysílání od zaþátku komunikaþního cyklu a jeho hodnota je dána rovnicí (4-1),
­°0
IJistartup = ® i slot
°̄ ¦ j 1W j 1
jestliže i
0
jestliže i ! 0
(4-1)
kde i udává þíslo slotu pĜiĜazeného dané stanici a IJjslot je délka daného slotu. PĜed vysláním
synchronizaþního rámce stanice odposlouchává dČní na sbČrnici po dobu IJilisten, která je dána
rovnicí (4-2), kde IJTDMA je délka TDMA úseku.
IJilisten = 2 IJTDMA + IJistartup
(4-2)
Princip mechanismu Big bang schematicky znázorĖuje obr. 8, kde stanice A a E jsou
nastaveny jako coldstart. Jakýkoliv první startovní rámec je ignorován. Pokud by rámec
ignorován nebyl, stanice B se synchronizuje podle stanice A a stanice D akceptuje rámec od
stanice E. Jediná stanice C, která se nachází pĜibližnČ uprostĜed sítČ, zaznamenala kolizi a
provádí znovu odposlech na sbČrnici.
- 21 -
TTP/C
Obr. 8: TTP/C – Start sítČ4
4.2.4 Synchronizace stanic
Pro správnou synchronizaci stanic je zapotĜebí 4 stanic, které vysílají v prĤbČhu jednoho
TDMA úseku. TTP/C protocol používá k synchronizaci stanic FTA (Fault-Tolerant Average)
algoritmus. Každá stanice mČĜí odchylku skuteþného pĜíchodu rámce od oþekávaného.
Do pamČti jsou uloženy odchylky pĜíchodu 4 rámcĤ vyslaných bČhem jednoho TDMA úseku.
Procesem starajícím se o synchronizaci stanic je vyĜazena maximální a minimální hodnota
odchylky. Výsledná hodnota korekce je spoþtena jako prĤmČr zbývajících dvou hodnot.
Specifikace protokolu umožĖuje využití externí synchronizace pro stanice.
- 22 -
Byteflight
5
Byteflight
Standard Byteflight5 je vyvíjen spoleþnČ spoleþnostmi Motorola, ELMOS, Infineon, Tyco
EC a BMW AG. Jedná se o vysoce výkonnou datovou sbČrnici pro bezpeþnostní aplikace
s pĜenosovou rychlostí 10 Mbit/s.
5.1 Linková vrstva
5.1.1 Komunikaþní cyklus
Protokol je založen na principu FTDMA. ýasová okna pĜiĜazená jednotlivým stanicím
mají tedy promČnlivou délku. Komunikaþní cyklus je na obr. 9. Pro synchronizaci stanic
pĜipojených na sbČrnici slouží synchronizaþní pulz, který je vysílán stanicí SYNC master (mĤže
to být jakákoliv stanice v síti) na zaþátku každého komunikaþního cyklu. Aby pĜi poruše této
stanice
nedošlo
k selhání
sítČ,
lze
nadefinovat
zastupující
SYNC
master
stanici.
Po synchronizaþním pulzu následují þasové sloty pro vysílání jednotlivých stanic. Aby
nedocházelo ke kolizím, je každé stanici pĜiĜazeno þíslo þasového stolu, ve kterém mĤže daná
stanice vysílat. Stanice obsahuje þítaþ þasových slotĤ a pokud je aktuální hodnota þítaþe rovna
þíslu þasového slotu pĜiĜazeného dané stanici, mĤže stanice zaþít s vysíláním. Pokud stanice
nemá data k odeslání nebo pokud þasovému slotu není pĜiĜazena žádná stanice, jsou þítaþe slotĤ
inkrementovány o jedna po uplynutí doby twait. Velikost þasových oken je tedy upravována
na základČ požadavkĤ na vysílání jednotlivých stanic. PĜíklad rozdČlení þasových oken v jednom
cyklu je ukázán na Obr. 10.
Obr. 9: Byteflight – Komunikaþní cyklus5
Obr. 10: Byteflight – pĜíklad komunikaþního cyklu
5
Berwanger J., Keller M., Griessbach R.: byteflight - A New Protocol for Safety Critical Applications, FISITA
World Automotive Congress [online], Soul, Korea, 2000-05, http://www.fisita.com
- 23 -
Byteflight
Délka dat v jednom datovém rámci mĤže být 0-12 bajtĤ. Pro pĜenos dĤležitých zpráv,
které je nutné odesílat þasto, nebo dokonce v každém komunikaþním cyklu, lze využít nejnižší
þíslo þasového slotu. Pokud stanice nemĤže již odeslat data v daném cyklu, bude pokus opakovat
v cyklu následujícím.
5.1.2 Formát datového rámce
Formát datového rámce je ukázán na Obr. 11. Po odeslání startovací sekvence,
obsahující šest po sobČ jdoucích nulových bitĤ, následuje þíslo datového rámce a dále délka
datového segmentu v bajtech v rozmezí 0-12. Každý bajt zaþíná start bitem a je ukonþen jedním
stopbitem. CRC používané pro zabezpeþení rámce je 16 bitové.
Obr. 11: Byteflight – formát rámce5
- 24 -
FlexRay
6
FlexRay
Do protokolu FlexRay6 se vkládají nejvČtší nadČje v souvislosti se systémem x-by-wire
využitelným v automobilové technice. Protokol vznikl spojením standardĤ byteflight a TTP/C.
V této þásti budou zopakovány jen základní vlastnosti protokolu (blíže popsáno v [8]),
stejnČ jako je uvedeno výše u ostatních uvádČných protokolĤ. V dalších kapitolách bude více
pĜiblíženo nastavení jednotlivých parametrĤ dĤležitých pro funkþnost sítČ.
6.1 Fyzická vrstva
Norma fyzické vrstvy [7]7, 8 nedefinuje pĜesný typ kabelĤ používaných pro spojení uzlĤ
do sítČ, ale pouze jejich parametry. PĜi dodržení definovaných parametrĤ lze použít i kabely
nestínČné.
Protokol definuje následující þtyĜi stavy:
x BUS_IDLE – stav zapnuté sbČrnice, bez dat
x DATA_0 – logická 1
Obr. 12: FlexRay
– zapojení bod-bod6
x DATA_1 – logická 0
x IDLE_LP – stav vypnuté sbČrnice
Na sbČrnici není definována žádná recesivní nebo
dominantní úroveĖ, jako napĜíklad u CANu, protože ke kolizi
mezi jednotlivými stanicemi mĤže dojít pouze pĜi startu sítČ.
Obr. 13: FlexRay
– pasivní sbČrnice6
6.1.1 Topologie sítČ
Možnosti propojení jednotlivých uzlĤ jsou opravdu
veliké. Mezi základní zapojení patĜí propojení bod-bod, pasivní
sbČrnice, hvČzda. Tyto možnosti navíc rozšiĜují dva nezávislé
kanály a využití opakovaþĤ (Active star). PĜi stavbČ sítČ nás
Obr. 14: FlexRay
standard omezuje zachováním základních parametrĤ. V prvé
– zapojení do hvČzdy6
ĜadČ se jedná o maximální zpoždČní signálu mezi dvČmi libovolnými stanicemi i pĜi použití
6
FlexRay Consortium: FlexRay Communications System Protocol Specification [online], version 2.1 rev. A, 200512-22, http://www.FlexRay.com
7
FlexRay Consortium: FlexRay Communications System Electrical Physical Layer Specification Errata sheet
[online], version 2.1 rev. A, 2006-03-29, http://www.FlexRay.com
8
FlexRay Consortiu:, FlexRay Communications System Electrical Physical Layer Application Notes [online],
version 2.1 rev. B, 2006-11, http://www.FlexRay.com
- 25 -
FlexRay
opakovaþĤ, které je 2,5 μs. Dalším parametrem je maximální délka spojení mezi libovolnými
prvky (uzel, opakovaþ) na sbČrnici, které þiní 24 m.
Stejnou logickou topologii mĤžeme vytvoĜit dvoukanálovým zapojením do sbČrnice nebo
hvČzdy. Druhý kanál mĤže v bezpeþnostnČ kritických aplikacích tvoĜit záložní kanál a tím
zvyšovat bezpeþnost sítČ nebo jej lze použít pro zvýšení pĜenosového pásma. PĜíklad
dvoukanálového zapojení do hvČzdy je na obr. 15.
Základní zapojení je možno mezi sebou samozĜejmČ kombinovat využitím opakovaþĤ –
v tzv. hybridní topologii (obr. 16). O hybridní topologii mluvíme také tehdy, pokud použijeme
napĜ. sbČrnicové zapojení pro kanál A a pro kanál B zvolíme zapojení do hvČzdy.
Obr. 15: FlexRay – dvoukanálové zapojení do hvČzdy [7]
Obr. 16: FlexRay – jednokanálové hybridní zapojení [7]
- 26 -
FlexRay
6.2 Linková vrstva
6.2.1 Komunikaþní cyklus
Standard FlexRay využívá k pĜístupu na sbČrnici dva druhy pĜístupových metod – TDMA
a FTDMA. TDMA je použit pro vysílání prioritních zpráv se zaruþenou latencí. Tato þást
se v komunikaþním cyklu nazývá statický segment. Pro zprávy s nižší prioritou je využit
dynamický segment s FTDMA pĜístupem, kde není garantováno odeslání zprávy v každém
komunikaþním cyklu. Jednotlivé komunikaþní cykly (obr. 17) se stále opakují a zároveĖ jsou
þíslovány od 0 do 64.
Intervaly static slot a minislot jsou celistvými násobky þasových elementĤ – macrotick,
což je nejmenší þasový element globálního sbČrnicového þasu. Je na nČm postavena celková
synchronizace sbČrnice, protože pĜedstavuje základní þasové kvantum na sbČrnici.
Macrotick je celistvým násobkem þasových elementĤ microtick, které jsou pro jednotlivé
komunikaþní stanice obecnČ rĤzné a vyjadĜují obecnČ rĤznou taktovací frekvenci jednotlivých
komunikaþních uzlĤ.
Symbolové okno je volitelné a slouží k pĜenosu tzv. symbolu – alarmové, diagnostické
nebo Ĝídicí informace, generované komunikaþním Ĝadiþem na základČ požadavku aplikaþního
procesoru. PĜenos symbolu v tomto intervalu umožĖuje pĜímou interakci s fyzickou vrstvou,
neboĢ mĤže být detekován nejen komunikaþním Ĝadiþem, ale i vlastním transceiverem a tím
pádem vlastnČ pĜedstavuje redundantní komunikaþní cestu uvnitĜ uzlu.
Obr. 17: FlexRay – komunikaþní cyklus6
Statický segment je rozdČlen na stejnČ velká þasová okna (2 až 1023oken), která mohou
být pĜidČlena jednotlivým stanicím. Toto rozdČlení mĤže být pro každý kanál jiné. Pokud je
- 27 -
FlexRay
v uzlu více souþasnČ bČžících úloh, ze kterých je tĜeba odesílat data, je možné uzlu
pĜidČlit více statických slotĤ nebo použít tzv. cycle multiplexing, což znamená pĜidČlení daného
statického slotu v daném þísle cyklu.
Obr. 18: FlexRay – dynamický slot6
Dynamický segment mĤže být rozdČlen do tolika dynamických þasových slotĤ,
aby celkový poþet statických a dynamických slotĤ nepĜesáhl 2047. Dynamický slot má na rozdíl
od statického variabilní délku, a to podle toho, jak velkým rámcem je obsazen. Skládá se pak
z poþtu minislotĤ (0 až 7986), kterými je dynamický segment v þasové ose pevnČ rozþlenČn.
Dalším rozdílem oproti statickému segmentu je možnost posunu zaþátku dynamických slotĤ
na jednotlivých kanálech A a B se stejným þíslem. Na kanálu A mĤže být vysílán rámec stanice
1, zatímco na kanálu B je ve shodný þas vysílán rámec stanice 2. Každý z kanálĤ má tedy
nezávislé poþítadlo þísla aktuálního dynamického slotu (ve statickém segmentu je jedno shodné
poþítadlo pro oba kanály – jedné stanici v pĜíslušném þase náleží pĜístup na oba kanály).
Pro pĜenos v symbolovém oknČ jsou definovány dva typy stavových symbolĤ:
x Status Normal Symbol
o CAS (Collision Avoidance Symbol) je využíván stanicemi typu coldstart
pĜi startování sítČ
o MTS (Media Access Test Symbol) MTS mĤže být využíván všemi
stanicemi pĜi regulérním bČhu clusteru. MTS a CAS se od sebe
kódováním nijak neliší, jde jen o terminologii. O který ze symbolĤ
pĜesnČ
jde,
pĜijímaþe
rozlišují
podle
interního
stavu
svého
komunikaþního kontroléru (protocol status). Pokud stanice MTS vysílá,
þiní tak v symbolovém oknČ každého komunikaþního cyklu na obou
kanálech A i B.
- 28 -
FlexRay
x Status Alarm Symbol
o WUS (Wake Up Symbol) slouží k probuzení stanic pĜed vlastním startem
sítČ.
Network Idle Time (NIT) je poslední ukonþující þástí každého komunikaþního cyklu.
Slouží jako fáze cyklu, pĜi které je poþítána a aplikována korekce lokální þasové základny. Její
délka je promČnná v závislosti na níže popsaných provádČných korekcích. PĜi provedené korekci
se klidový stav buć zkrátí nebo prodlouží o urþitý poþet mikrotikĤ.
6.2.2 Formát rámce
Na sbČrnici existuje kromČ symbolĤ jeden rámec, který se skládá ze tĜí þástí (obr. 19):
header segment, payload segment a trailer segment. Rámec je na sbČrnici vysílán v NZR
kódování a pĜed samotným rámcem je startovací sekvence skládající se z logických nul.
Obr. 19: FlexRay – formát datového rámce6
Popis datového rámce:
x Rezervovaný bit – pro budoucí rozšíĜení standardu, nastaven na log 0.
x Indikátor preambule datového segmentu – aktivní v log 1
o Ve statickém segmentu indikuje pĜítomnost network management vektoru
na zaþátku pĜenášených dat.
o V dynamickém segmentu indikuje pĜítomnost ID zprávy na poþátku
datového segmentu.
x Indikátor synchronizaþního rámce – rámec má být použit k synchronizaci
þasových základen stanic v síti, které jeho ID akceptují. Synchronizaþní rámec
mĤže být vysílán pouze ve statickém segmentu a to na obou kanálech souþasnČ.
- 29 -
FlexRay
x Indikátor startovacího rámce – rámec má být použit k rozbČhnutí sítČ. Nastaven
mĤže být pouze spolu s indikátorem synchronizaþního rámce. Po rozbČhnutí sítČ
zĤstává tento bit u rámce stále nastaven a nemá již žádnou funkci.
x ID rámce obsahuje þíslo slotu, ve kterém je rámec vysílán. Nabývá hodnot od 1
do 2047.
x Délka dat udává velikost datového segmentu v rozsahu 0-127. (jednotka 2 bajty)
x Hlaviþkové CRC slouží k pĜípadné detekci chybného obsahu dat a je poþítáno
z nemČnící se þásti hlaviþky každého rámce. Standard udává, že tČchto 11 bitĤ
CRC si musí Ĝídicí procesor spoþítat sám a vložit spolu s dalšími nastavovacími
údaji rámce do registrĤ komunikaþního Ĝadiþe.
x ýíslo cyklu – slouží k identifikaci cyklu, v nČmž je rámec posílán.
x Data0-DataN – obsahují pĜenášená data.
x CRC – 24 bitĤ CRC poþítaných Ĝadiþem k zabezpeþení pĜenášených dat.
6.2.3 Typy stanic
Na sbČrnici FlexRay jsou definovány tĜi typy stanic:
x Normal node – jakákoliv stanice v síti, bez dalších funkcí.
x Coldstart node – stanice je navíc urþena pro startování neaktivní sítČ
a k synchronizaci sítČ, která již bČží. Vysílá v pĜidČleném statickém slotu na obou
kanálech A i B rámec (prázdný nebo s daty) s pĜíznakem startup&sync
(synchronizaþní rámec). Pro start neaktivní sítČ je tĜeba dvou stanic tohoto typu.
x Sync node – stanice slouží navíc k synchronizaci sítČ. Vysílá v pĜidČleném
statickém slotu na obou kanálech A i B rámec (prázdný nebo s daty) s aktivním
indikátorem synchronizaþního rámce.
6.2.4 Synchronizace stanic
V distribuovaných systémech má každá stanice vlastní zdroj hodinového signálu.
Z dĤvodu napČĢové þi teplotní fluktuace, nepĜesností zdrojĤ hodinového signálu atd. je potĜebné
stanice synchronizovat, aby nedošlo na sbČrnici ke kolizi (napĜ. rámec by pĜesáhl do dalšího
slotu, pĜidČleného jiné stanici). Proto je tĜeba, aby na každé stanici probíhalo mČĜení odchylky
(v lokální jednotce mikrotik) mezi oþekávaným a skuteþným pĜíchodem synchronizaþního
rámce. MČĜení odchylky je provádČno za použití algoritmu FTM (Fault-Tolerant Midpoint)
- 30 -
FlexRay
Podle poþtu namČĜených hodnot odpovídajících poþtu došlých synchronizaþních rámcĤ
ve statickém segmentu komunikaþního cyklu se urþí parametr k podle tab. 1. NamČĜené odchylky
jsou poté uspoĜádány podle velikosti, z tČchto hodnot se vyškrtne k minimálních a maximálních
hodnot. Ze zbylých hodnot se vybere maximální a minimální
hodnota a urþí se jejich prĤmČr, který je následnČ považován za
Poþet
hodnot
Hodnota
parametru k
odchylku od globální þasové základny (v lokální jednotce
1-2
0
mikrotik) a mĤže podle nČj být provedena korekce. Každá stanice
3-7
1
provádí podle zmČĜené odchylky jak korekci rychlosti, tak
>7
2
korekci offsetu. Situaci zachycuje obr. 20.
Tab. 1: Stanovení parametru k.
Obr. 20: FlexRay – korekce rychlosti a offsetu þasové základny6
Korekce offsetu na základČ tohoto þísla je ale provádČna jen v každém lichém cyklu tak,
že je prodloužen nebo zkrácen klidový stav na konci daného cyklu. Korekce rychlosti
je poþítána v každém lichém cyklu z rozdílĤ koneþných odchylek v sudém a lichém cyklu, ale
provádí se ve všech cyklech.
6.2.5 Start sítČ
PĜed samotným startem sítČ je potĜeba vzbudit jednotlivé stanice sítČ pomocí WUS. Po
detekci symbolu mĤže Ĝadiþ vzbudit zbytek stanice, pokud je ve standby režimu. Stanice
nastavená jako coldstart zaþíná monitorovat komunikaci na sbČrnici po dobu jednoho
komunikaþního cyklu. Nezaznamená-li na sbČrnici žádný pĜenos, zapoþne inicializaþní fází jako
leading coldstart node (druhá coldstart stanice se stává podĜízenou) vysláním CAS a poté
StartUp rámcĤ. V prĤbČhu stále monitoruje stav sítČ z dĤvodu možné kolize dvou coldstart uzlĤ
a to po dobu minimálnČ 4 komunikaþních cyklĤ. Jestliže se nČkde v komunikaþním cyklu mimo
- 31 -
FlexRay
slot, ve kterém leading coldstart uzel vysílá startovní rámec, vyskytne jakákoliv komunikace,
tak uzel tímto bezprostĜednČ rozpozná, že jiný coldstart uzel zaþal s vysláním CAS ve stejný þas
a stanice pĜejde opČt do stavu odposlechu sítČ. Je nutné softwarovČ ošetĜit, aby se stanice
nepokoušely vysílat opČt ve stejný þas, jinak by se síĢ nepodaĜilo nastartovat.
Pokud ke kolizi nedojde, slouží první dva leaderem vyslané rámce k inicializaci þasového
schématu. Odpovídá-li toto schéma podĜízenému coldstart uzlu, pĜejde podĜízený coldstart uzel
do stavu synchronizace s leaderem a pĜijme od leadera další dva startovní rámce. PodĜízená
stanice tak provede synchronizaci své þasové základny dle základny leadera. V následujících
cyklech se již podĜízený coldstart uzel pĜidává ke komunikaci a vysílá své synchronizaþní
rámce. Tímto leader zjistí úspČšný start sítČ. Pokud by podĜízený coldstart node nezapoþal
s vysíláním, pĜejde leader opČt do stavu odposlechu sbČrnice a start sítČ probíhá znovu.
Další stanice pĜed svojí integrací do sítČ synchronizují svou þasovou základnu podle
vysílaných synchronizaþních rámcĤ a poté zapoþnou s vlastním vysíláním. Start sítČ tĜí stanic
ilustruje pĜíklad na obr. 21. PodrobnČjší vývojový diagram StartUp procesu zachycuje obr. 32.
Obr. 21: FlexRay – start sítČ6
- 32 -
Hardware mČĜicí stanice
7
Hardware mČĜicí stanice
MČĜicí stanice se skládá ze dvou þástí. První þást tvoĜí základní deska osazená
mikrokontrolerem Ĝady STR7109,10 a dále základním zapojením pro využití nČkterých jeho
periferií jako je CAN, USB, UART. Pro rozhraní CAN je použit budiþ sbČrnice PCA82C250T
od firmy PHILIPS. Poslední dĤležitou souþástí jsou dva rozšiĜovací konektory pro desku
s FlexRay Ĝadiþem. Jako Ĝadiþ FlexRay byl zvolen v dobČ návrhu nejnovČjší Ĝadiþ MFR430011,
jenž implementuje protokol ve verzi 2.1. ěadiþ je dnes již možné nahradit novým Ĝadiþem
MFR431012, ve kterém jsou opraveny známé chyby Ĝadiþe MFR4300. Deska s FlexRay Ĝadiþem
obsahuje mimo MFR4300 také dva budiþe sbČrnice TJA108013.
7.1 Mikrokontrolér STR710
Základní vlastnosti použitého mikroþipu jsou následující:
o Jádro ARM7TDMI 32-bit RISC CPU, 45 MIPS pĜi 50 MHz
o PamČĢ
o až 256 Kbytes Flash pamČĢ pro program
o 16 Kbytes Flash pamČĢ pro data
o až to 64 Kbytes RAM
o možnost pĜipojení až 4 externích pamČtí (EMI)
o PĜerušení
o Fast Interrupt Handling (FIQ)
o 32 IRQ vektorĤ pĜerušení se 16 stupni priorit pĜerušení
o 48 I/O portĤ
9
STMicroelectronics, STR71x: ARM7TDMI™ 32-BIT MCU WITH FLASH, USB, CAN 5 TIMERS, ADC, 10
COMMUNICATIONS INTERFACES [online], rev. 7, 2005-10, http://www.st.com/mcu/devicedocs-STR710RZ.html
10
STMicroelectronics, STR71x Microcontroller Reference Manual [online], rev. 7, 2005-11,
http://www.st.com/mcu/devicedocs-STR710RZ.html
11
Freescale Semiconductor, MFR4300 datasheet [online], rev.1, 2006-04,
http://www.freescale.com/files/peripherals_coprocessors/doc/data_sheet/MFR4300.pdf
12
Freescale Semiconductor, MFR4310 and MFR4300 Differences [online], rev.0, 2007-05,
http://www.freescale.com/files/abstract/corporate/newsletter_archives/NL_05-29-07.htm
13
Philips Semiconductors, TJA1080: FlexRay transceiver [online], rev.1, 2006-07-20,
http://www.alldatasheet.net/datasheet-pdf/pdf/164398/PHILIPS/TJA1080.html
- 33 -
Hardware mČĜicí stanice
o 5 timerĤ s funkcemi watchdog timer, input captures, output compares, PWM,
þítaþ pulzĤ
o 10 komunikaþních rozhraní (I2C, UART, Smart Card ISO7816-3, BSPI, USB
v2.0 Full Speed (12 Mbit/s), HDLC)
o 4 kanálový 12 bit A/D pĜevodník se vzorkovací frekvencí až 1 kHz
(vstup 0-2,5 V)
7.2 ěadiþ MFR4300
7.2.1 Popis a základní vlastnosti Ĝadiþe MFR4300
ěadiþ obsahuje FlexRay modul, starající se o komunikaci na sbČrnici, volitelné
asynchronní (AMI) nebo synchronní (HCS12) rozhraní pro komunikaci s mikropoþítaþem
a napČĢový regulátor. Blokové schéma Ĝadiþe MFR4300 je znázorĖuje obr. 22.
Základní vlastnosti Ĝadiþe:
o Jedno nebo dvoukanálový pĜenos dat
s rychlostí až 10 Mbit/s
o 128 konfigurovatelných message bufferĤ
s velikostí bufferu od 0 až 254 bajtĤ
a filtrováním podle frame ID, kanálu a þísla
cyklu.
o Dva
nezávislé
datové
segmenty
pro
individual message buffer s nastavitelnou
velikostí datového segmentu
o Individual message buffery
mohou
být
konfigurovány jako pĜíchozí message buffer,
vysílací
jednoduchý
message
buffer,
vysílací dvojitý message buffer (spojení
Obr. 22: Blokové schéma MFR430011
dvou jednoduchých)
o Bezpeþná konfigurovatelnost message bufferĤ za bČhu komunikace.
o
DvČ nezávislé FIFO (pro každý kanál jedna), s pĜíjmem až 256 zpráv, s globálnČ
nastavitelným filtrováním podle kanálu, frame ID, message ID
o Nezávislé sledování stavĤ dalších þtyĜ message bufferĤ
- 34 -
Hardware mČĜicí stanice
o MČĜení odchylky pĜi þasové synchronizaci a možnost uložení odchylek do pamČti
Ĝadiþe.
o Maskovatelné pĜerušení s výstupem na jeden port
o Jeden absolutní þasovaþ
o Jeden þasovaþ nastavitelný jako absolutní nebo relativní
o HardwarovČ nastavitelný výstup hodin – vypnuto, 4, 10, 40 MHz
7.2.2
RozdČlení pamČti Ĝadiþe MF 4300
PamČĢ Ĝadiþe je rozdČlena na þást vyhrazenou pro registry a dále pro data FlexRay
modulu. PĜehled rozdČlení pamČti je ukazuje tab. 2. Detailní popis jednotlivých registrĤ lze
nalézt v lit. [13].
Adresa
0x0000–0x000E
0x0010–0x0012
0x0014–0x0026
0x0028–0x003E
0x0040–0x0044
0x0046–0x004A
0x004C–0x0058
0x005A–0x0062
0x0064–0x0066
0x0068–0x007E
0x0080–0x0082
0x0084
0x0086–0x008A
0x008C–0x008E
0x0090–0x009A
0x009C–0x009E
0x00A0–0x00DE
0x00E0–0x00E2
0x00E4–0x00EE
0x00F0–0x00FE
0x0100–0x04FE
0x0500–0x07FE
0x0800–0x1FFE
Popis
Configuration and Control Registers
Reserved
Interrupt and Error Handling Registers
Protocol Status Registers
Sync Frame Counter and Table Registers
Sync Frame Filter Registers
Network Management Vector Registers
Timer Configuration Registers
Slot Status Configuration Registers
Slot Status and Slot Status Counter Registers
MTS Generation Registers
Shadow Buffer Configuration Register
Receive FIFO — Configuration
Receive FIFO — Status
Receive FIFO — Filter
Dynamic Segment Status Registers
Protocol Configuration Registers
Clock and Reset Generation Registers
Reserved
Part ID, ASIC Version Number, and Interface Pin Drive Strength and
Pullup/pulldown Control and Enable Registers
Message Buffers Configuration, Control, Status (Message Buffer 0–127)
Reserved
FlexRay Memory (FRM)
Tab. 2: RozdČlení pamČti Ĝadiþe MFR4300
- 35 -
Poþet
bajtĤ
16
4
20
24
6
6
14
10
4
24
4
2
6
4
12
4
64
4
12
16
1024
768
6144
Hardware mČĜicí stanice
Obr. 23: Struktura physical message buffers11
7.2.3 Koncept message bufferĤ
Všechny zprávy pĜijímané, nebo urþené pro pĜenos na FlexRay sbČrnici jsou uloženy
v datové struktuĜe nazývané physical message buffers, která se nalézá ve FRM. Strukturu zprávy
ukazuje Obr. 23.
Hlaviþka zprávy (Message buffer header field) se skládá z pole Frame header, které
obsahuje hlaviþku pĜijatého vysílaného rámce. Struktura této hlaviþky je na obr. 24, popis
jednotlivých polí v tab. 3. Další souþástí hlaviþky zprávy je pole offsetu dat v pamČti (data field
offset) a pole slot status, obsahující informace
Název
Popis
PPI
Payload Preamble Indicator – v datech
je obsažen network managment vector
(statický segment), messageID pro segment
dynamický
NUF
Null Frame Indicator– indikátor nulového
rámce
SYF
o pĜijatém rámci – napĜ. zda-li se jedná o null
frame, nebo nastala-li chyba. PĜesný obsah
záleží na typu message bufferĤ.
Pole Frame data obsahuje data obsažené ve
Sync Frame Indicator– synchronizaþní
vysílaném/pĜijatém rámci. Adresa zaþátku dat
rámec, pĜi
automaticky
(SADR_MBDF) je urþena následující rovnicí:
vysílání
je
doplĖován
SUF
Startup Frame Indicator – startovní rámec,
pĜi vysílání je doplĖován automaticky
FID
Frame ID – þíslo slotu, ve kterém má být
rámec odeslán, byl pĜijmut
CYCCNT
Cycle Count – þíslo cyklu, ve kterém má
být rámec odeslán, byl pĜijmut
SADR_MBDF = [Data Offset] + 0x800
Typy message bufferĤ:
x Individual Message Buffer
PLDLEN
Payload Length in 16-Bit Units – poþet dat
x PĜíchozí Shadow Buffer
HDCRC
Header CRC – CRC nutno dopoþítat
x PĜíchozí FIFO Buffer
v datové þásti rámce
v aplikaci !!
Tab. 3: Popis prvkĤ v poli Frame header
Obr. 24: Struktura dat z poli Frame header11
- 36 -
(7-3)
Hardware mČĜicí stanice
- 37 -
Hardware mČĜicí stanice
7.2.3.1 Individual Message Buffer
Nastavení každého bufferu probíhá pĜes pĜíslušné registry MBCCSRn, MBCCFRn,
MBIDXRn, MBFIDRn. Buffery mohou být rozdČleny až do dvou segmentĤ, pro nČž platí
následující pravidla:
x Všechny buffery pĜiĜazené do stejného segmentu musí mít stejnou velikost pamČti
urþenou pro data (Data Frame)
x Minimální délka pamČti urþená pro data bufferu pĜiĜazeného k prvnímu nebo
druhému segmentu je urþena v registru MBDSR.
Každému individual message bufferu lze nastavit pouze jedno slot ID, ve kterém má být
rámec odeslán/pĜijímán. Je ale možné nastavit filtr, ve kterém cyklu (0-64) k má tomu dojít.
Obr. 25: FIFO buffer – zpracování pĜíchozích zpráv11
- 38 -
Hardware mČĜicí stanice
7.2.3.2 PĜíchozí FIFO
Hlaviþky bufferĤ tohoto typu tvoĜí kontinuální þást pamČti. V registrech je nastaven
ukazatel na první hlaviþku (registr RFSIR), poþet a velikost používaných bufferĤ (registr
RFDSR). Souþástí nastavení FIFO bufferĤ tvoĜí nastavení globálních filtrĤ pro akceptování/odmítání rámcĤ.
Princip využití tČchto filtrĤ vyplývá z vývojového diagramu pro zpracování pĜíchozích
zpráv (obr. 25). Po pĜíjmu rámce jsou prohledány individual message buffery, zda-li není
danému slotu a cyklu nČkterý pĜiĜazen. Rámec nesoucí data prochází dále filtry
akceptování/odmítání rámcĤ. Není-li FIFO pamČĢ plná, je do pamČti rámec pĜidán, v opaþném
pĜípadČ je generováno pĜerušení a rámec je ignorován.
7.2.3.3 PĜíchozí Shadow buffer
PĜíchozí shadow buffery jsou vyžadovány procesem pĜíjmu rámcĤ do individual message
bufferu. FlexRay modul obsahuje celkem þtyĜi tyto buffery – jeden pro každý kanál a jeden
pro každý segment. Velikost bufferu musí být stejná jako velikost individual message bufferu
ve tomtéž segmentu.
7.2.4 Odesílání rámcĤ
Jak bylo zmínČno v základních vlastnostech Ĝadiþe MFR4300, lze k odesílání využít dvou
typĤ vysílacích bufferĤ. Proces vedoucí k odesílání rámcĤ je pro jednotlivé typy bufferĤ mírnČ
odlišný.
7.2.4.1 Jednoduchý individual message buffer
Proces vysílání rámcĤ využívá v tomto pĜípadČ pouze jeden message buffer. Pokud chce
aplikace odesílat data, je nutné získat výhradní pĜístup k bufferu prostĜednictvím bitĤ EDS,
LCKS v Ĝídicím registru daného bufferu MBCCSRn, aby byla zaruþena konzistence
pĜenášených dat a nedošlo k chybČ.
Data, nacházející se v poli Frame header, lze zapsat pouze v prĤbČhu konfigurace daného
bufferu. PĜi odesílání jednotlivých rámcĤ tato data nelze mČnit, vyjma pole PLDLEN (toto
pravidlo platí i pro dvojitý individual message buffer).
Po zapsání dat k pĜenesení do pole Frame data potvrdí aplikace v Ĝídicím registru bufferu
správnost dat (bit CMT) a opČt uvolní pĜístup k bufferu. FlexRay modul pak þeká, než mĤže
na sbČrnici odeslat pĜíslušný rámec (právČ probíhající slot je pĜiĜazen danému bufferu). PĜed
samotným odesláním dat je pĜístup k bufferu umožnČn pouze FlexRay modulu. Po pĜenesení dat
se nastaví pĜíslušné flagy v Ĝídicím registru (MBCCSRn.DVAL) a pĜístup k bufferu se opČt
- 39 -
Hardware mČĜicí stanice
uvolní pro aplikaci. Má-li buffer nastaven mód pĜenosu jako event transmission mode, bude
rámec pĜenesen pouze jednou – bit CMT bude modulem negován. V módu state transmission bit
CMT negován nebude a modul bude stejný rámec v každém dalším cyklu pĜenášet znovu. Tuto
vlastnost lze využít, potĜebujeme-li znát v každém cyklu poslední známou hodnotu dané veliþiny
(napĜ. natoþení volantu).
7.2.4.2 Dvojitý individual message buffer
S porovnání s jednoduchým bufferem mĤže aplikace pĜipravovat nová data k pĜenesení
již v dobČ, kdy bČží pĜenos dat pĜedchozích. Toto schéma mĤže být chápáno jako vysílací FIFO
o hloubce 2.
Dvojitý buffer implementuje kombinaci dvou message bufferĤ, která pak tvoĜí dvČ strany
dvojitého individual message bufferu. První, která se nazývá potvrzovací strana (commit side),
je pĜístupná aplikaci pro pĜípravu dat k odeslání. Druhá strana, nazývaná vysílací (transmit side),
je používána FlexRay modulem k pĜenosu dat na sbČrnici. Strukturu dvojitého bufferu a datový
tok pĜi odesílání dat znázorĖuje obr. 26. Buffery 2n a 2n+1, které jsou použity pro dvojitý buffer,
musí být konfigurovány se stejnými hodnotami kromČ ukazatele na start hlaviþky v pamČti
modulu.
Obr. 26: Struktura dvojitého vysílacího individual message bufferu11
PĜi požadavku aplikace na pĜenos dat jsou data nakopírována do pole Frame data bufferu
oznaþeného za commit side a zároveĖ je aktivován bit CMT v Ĝídicím registru náležícím danému
bufferu. Další pĜenos dat záleží na konfiguraci potvrzování pĜenosu zpráv, které mĤže být
nastaveno jako streaming commit mode nebo immediate commit mode.
PĜi nastavení streaming commit mode je zaruþeno, že zpráva bude vyslána na sbČrnici
alespoĖ jedenkrát. Dokud není zpráva odeslána na sbČrnici, nedojde k dalšímu internímu pĜenosu
dat mezi buffery.
Nastavením zpĤsobu potvrzování na immediate commit mode dochází k pĜenosu zpráv
mezi buffery (commit side -> transmit side), pokud jsou splnČny následující podmínky:
x Aplikace nemá výhradní pĜístup k bufferu commit side a v Ĝídicím registru tohoto
bufferu je nastaven bit CMT
- 40 -
Hardware mČĜicí stanice
x Transmit side není ve stavu pĜenosu dat – interní pĜenos nebo pĜenos dat
na sbČrnici
Z uvedených podmínek vyplývá, že dokud modul þeká na pĜiĜazení slotu pro odeslání, mĤže
aplikace nahrát nová data do bufferu a zadat požadavek k pĜenosu nových dat, þímž jsou data
þekající na odeslání na vysílací stranČ pĜepsána. Tímto nastavením dosáhneme odesílání vždy
nejaktuálnČjších dat, která jsou k dispozici.
7.2.5 Protocol Operation Control
FlexRay modul v Ĝadiþi má dva operaþní módy – normal a disable. Mód disable je
výchozí mód po resetu a Ĝadiþ není nijak zapojen do komunikace na sbČrnici. Teprve po pĜepnutí
modulu do normal módu je možné zaþít s komunikací. Specifikace protokolu FlexRay definuje
tzv. Protocol Operation Control (POC) stavy, v nichž se mĤže modul nacházet v dĤsledku
požadavku od Ĝídicí jednotky nebo pĜi splnČní vnitĜních podmínek.
Obr. 27: POC stavy a pĜechody mezi nimi11
Výchozím stavem po pĜechodu z disable do normal módu je default config. Stav config
je urþen pro konfiguraci parametrĤ protokolu – nastavení globálních a lokální parametrĤ sítČ,
message bufferĤ aj. Pro ukonþení konfigurace slouží stav config complete (ekvivalentem
je název ready). Coldstart uzel dále pĜechází do stavu wakeup pro vzbuzení sítČ.
Po vyslání/detekci symbolu pĜechází zpČt do stavu ready. Startování sítČ coldstart uzlem probíhá
ve stavu startup (viz kapitola 6.2.5). PĜi úspČšném startu sítČ (coldstart uzel) nebo po úspČšné
- 41 -
Hardware mČĜicí stanice
integraci do bČžící sítČ (bČžný uzel),
pĜechází Ĝadiþ do stavu normal active,
kdy se plnČ úþastní komunikace na
POC stav
Popis
Default config
Výchozí stav po pĜechodu modulu z disable
do normal módu
sbČrnici – lze odesílat i pĜijímat rámce.
Pokud dochází k chybám,
napĜíklad
v synchronizaci uzlu s ostatními úþastníky komunikace, pĜechází uzel po
Config
Konfigurace parametrĤ protokolu FlexRay
Ready, config
Modul je pĜipraven pro zapoþetí vzbuzení sítČ,
complete
start sítČ, pĜípadnČ integrace do již rozbČhnuté
sítČ
pĜedem urþeném poþtu chyb do stavu
Wakeup
Zapoþetí wakeup fáze
slouchává dČní na sbČrnici. Dojde-li
Startup
Zapoþetí startu/integrace do sítČ
k opČtovné synchronizaci, mĤže se uzel
Normal active
Modul se úþastní komunikace na sbČrnici.
opČt do komunikace zapojit. Pokraþuje-li
Normal
Modul pouze odposlouchává dČní na sbČrnici,
chybovost i v tomto stavu nebo dojde-li
passive
sám se komunikace neúþastní
v prĤbČhu komunikace k závažné chybČ,
Halt
Modul se neúþastní komunikace – nejþastČji
normal passive, v nČmž pouze odpo-
pĜechází FlexRay modul do stavu halt
v dĤsledku vnitĜní chyby
a je nutná nová integrace uzlu do sítČ.
Tab. 4: PĜehled POC stavĤ
PĜehled POC stavĤ v Tab. 4. Stavový digram s pĜechody ukazuje obr. 27.
7.3 TJA1080
PĜehled vlastností budiþe sbČrnice FlexRay:
o Rychlost až 10 Mbit/s
o Napájení 14 V nebo 42 V
o Velmi nízké EM emise, podpora nestínČných vodiþĤ sbČrnice
o Diferenciální pĜijímaþ s vysokým potlaþením souhlasného rušení pro odolnost
pĜijímaþe proti elektromagnetickému rušení
o HadwarovČ nastavitelné použití jako stanice clusteru nebo jako aktivní hvČzda
o Vstup pro bus guardian
o Režim spánku, vzbuditelný pĜes vstup þi WUS po sbČrnici
o Detekce chyby (pin ERR) pĜi zkratu na fyzické vrstvČ, pĜehĜátí Ĝadiþe nebo
napájení mimo toleranci, vyþtení druhu chyby z registru.
- 42 -
Hardware mČĜicí stanice
Propojení základní desky s deskou osazenou FlexRay Ĝadiþem
7.4
Návrh plošného spoje nebyl souþástí diplomové práce, protože v dobČ zadání byli již obČ
desky navrženy. Schémata desek s jejich propojením jsou dostupné v pĜíloze na CD.
ěadiþ FlexRay podporuje jak synchronní, tak i asynchronní pamČĢové rozhraní.
Pro pĜipojení
k mikropoþítaþi
Mikropoþítaþ ST710
ěadiþ MFR4300
Popis
P2.15
A1
Adresová sbČrnice
A1-A8
A2-A9
v tab. 5. ěadiþ MFR4300 používá
P2.9-P2.11
A10-12
16 bitovou architekturu – je tedy
D0-D15
D0-D15
Datová sbČrnice
k dispozici
notCS2, notWE,
notCE, notWE,
ěídící signály
Adresovacích vodiþĤ je pĜi velikosti
notRD
notRD
pamČti 6 KB tĜeba 12. PĜi návrhu
P2.8
notINT
Zdroj pĜerušení
P2.12
notRESET
Reset Ĝadiþe
STR710
je
možné
asynchronní
jednotlivých
použít
pĜístup.
signálĤ
16
jen
Propojení
je
popsáno
datových
vodiþĤ.
vznikla chyba v pĜipojení adresové
sbČrnice
pĜipojením
bitu
A0
mikropoþítaþe na bit A1 Ĝadiþe.
Tab. 5: Propojení signálu
mezi mikropoþítaþem a Ĝadiþem FlexRay
Mikropoþítaþ STR710 však neumí správnČ þíst ani zapisovat na lichou adresu pĜi 16 bitovém
pĜístupu k externí pamČti. PĜi þtení z liché adresy je nižší bajt považován za vyšší (je na sudé
adrese) a naopak. PĜi zápisu na lichou adresu je zapsáno pouze spodních 8 bitĤ a horních 8 bitĤ
je vynulováno. ěadiþ MFR4300 umí za použití signálu BSEL0 a BSEL1 zapisovat data po 8
bitech. Odesílat data umí však pouze 16 bitovČ. Jelikož signály BSEL0 a BSEL1 nejsou
pĜivedeny k mikropoþítaþi, byl problém vyĜešen nahrazením A0 mikropoþítaþe za rezervní port
P1.15 a adresace je Ĝešena softwarovČ.
- 43 -
Hardware mČĜicí stanice
7.5 Chyby hardwaru
PĜi oživování hardware bylo zjištČno nČkolik vČtších þi menších nedostatkĤ
v hardwarovém návrhu. KromČ výše zmínČného zapojení adresové sbČrnice, tedy posunutí
adresovacích vodiþĤ a použití pinĤ P2.9-P2.11 místo vodiþĤ adresovacích, byl problém
se zapojení oscilátoru pro Ĝadiþ FlexRay. Dostupný 40 MHz krystal kmitá na tĜetí harmonické
frekvenci, ale v navrhovaném zapojení se rozkmitá
na první
harmonické,
z þehož
vyplývá
tĜetinová
frekvence 13,3 MHz. Úpravou zapojení podle obr. 28
vybudíme oscilátor již na správné tĜetí harmonické
frekvenci. Další možností, jak vyĜešit tento problém, je
použít naprogramovaný oscilátor. Z dĤvodu nedostatku
místa na desce bylo zvoleno Ĝešení za použití oscilátoru.
Pro správnou funkþnost budiþĤ bylo zapotĜebí
pĜivést kromČ napájení +5 V na VIO a Vcc, také napájení
Obr. 28: Zapojení krystalu 40MHz
v rozmezí +6,5 – +60 V na Vbat. Pokud není napájení
na Vbat pĜivedeno, je aktivní signál ERR. Napájení lze
pĜivést z externího zdroje nebo pĜímo z napájení desky s mikropoþítaþem. V pĜípadČ napájení
zaĜízení z USB portu nejsou budiþe funkþní, jelikož maximální napájení dodávané z USB je
pouze 5 V.
Je známo nČkolik chyb Ĝadiþe MFR430014. Závažnou chybou je chyba pĜi resetu15
zaĜízení. Chyba je ošetĜena softwarovČ – je opakovanČ aktivován signál reset, dokud zaĜízení
nenabČhne správnČ.
14
Freescale
Semiconductor,
PFR4300MAE40,
Mask
0M92D
[online],
rev.2007-03-05,
http://www.freescale.com/files/peripherals_coprocessors/doc/errata/MSEPFR4300MAE40_0M92D.htm
15
Paterson David [ed], Freescale Semiconductor, MFR4300 External Reset [online], rev.1, 2006-08,
http://www.freescale.com/files/abstract/corporate/newsletter_archives/NL_05-29-07.htm
- 44 -
Knihovna pro Ĝadiþ MFR4300
8
Knihovna pro Ĝadiþ MFR4300
Zdrojovými podklady pro psaní firmware byla v prvé ĜadČ knihovna, která je souþástí
vývojového kitu FlexRay od firmy Freescale a dále firmware, který je souþástí pĜedcházející
diplomové práce [8] zabývající se protokolem FlexRay.
Popis souborĤ vytvoĜené knihovny pro Ĝadiþ MFR4300 je v tab. 6
Název souboru
Popis
FRtypes.h
FRregs.h
FRmap.h
FRmap.c
FRlib.h
FRint.h, FRint.c
FRcore.h, FRcore.c
FRconfig.h
FRconfig.c
Definice knihovnou datových používaných typĤ
Definice bitĤ v registrech
Definice adres registrĤ používaných Ĝadiþem
Funkce pro pĜístup do registrĤ
Hlaviþkový soubor knihovny
Definice a zdrojový kód funkcí používaných pro pĜerušení
Jádro knihovny
Soubor sloužící pro nastavení knihovny, výbČru základní konfigurace stanice
Definice použitých základních konfigurací stanice
Tab. 6: Popis souborĤ knihovny pro práci s FlexRay Ĝadiþem
8.1 Jmenná konvence
Knihovna dodržuje následující níže zmínČnou jmennou konvenci pro lepší orientaci
ve zdrojovém kódu.
Všechny názvy funkcí, datových typĤ, globálních promČnných, názvĤ registrĤ a jejich
masek zaþínají prefixem FR_. Víceslovné názvy u promČnných nebo funkcí zaþínají velkými
písmeny (napĜ. FR_SetRegister). PromČnné zaþínají na rozdíl od funkcí vždy malým
písmenem. Jedná-li se o globální promČnnou, zaþíná její název písmenem g (gFr_HWCfg_00).
Vlastní datové typy definovaných struktur a výþtových typĤ jsou s malými písmeny s výjimkou
prvního, víceslovné názvy jsou oddČleny podtržítkem. Název struktury navíc konþí slovem
TypeDef
(Fr_protocol_config_TypeDef),
výþet
pak
slovem
type
(Fr_single_channel_mode_type). Konstanty jsou psány velkými písmeny, slova
oddČlena podtržítkem.
- 45 -
Knihovna pro Ĝadiþ MFR4300
8.2 Datové typy
V knihovnČ je definováno nČkolik vlastních datových typĤ vycházejících ze základních.
Definice knihovnou používaných typĤ:
typedef unsigned char
boolean
typedef signed char
sint8
typedef unsigned char
uint8
typedef signed short int
sint16
typedef unsigned short int
uint16
typedef signed long int
sint32
typedef unsigned long int
uint32
typedef uint8
Fr_return_type
8.3 PĜístup do pamČti Ĝadiþe MFR4300
Mikroprocesor STR710 obsahuje adresový
prostor pro namapování þtyĜ pamČĢových blokĤ
o velikosti 16 MB. Pro výbČr jednotlivých blokĤ
slouží signály CS[0-3]. Jak bylo zmínČno v kapitole
7.4, je k výbČru periferie (Ĝadiþe MRF4300) použit
signál CS1 a je tedy namapována do prostoru
0 × 6200 0000 až 0 × 62FF FFFF (obr. 29). PamČĢ
Ĝadiþe má menší velikost a tak dochází k jejímu
zrcadlení. PĜi adresaci jsou použity pouze adresovací
Obr. 29: Mapa externí pamČti
vodiþe A1-A8 a pro pĜístup ke zbytku pamČti Ĝadiþe
mikroprocesoru STR71010
je nutné použít porty P2.9-P2.11 a P2.15.
Z þasových diagramĤ [12][13] pro þtení/zápis vyplývá nutnost vkládat zhruba 4 þekací cykly.
Funkce sloužící pro þtení/zápis do registrĤ definované v souboru FRmap.h jsou:
void FR_SetRegVal(uint16 regAdress, regVal) a
uint16 FR_GetRegVal(uint16 regAdress),
kde hodnota regAdress urþuje adresu registru a regVal je jeho hodnota.
- 46 -
Knihovna pro Ĝadiþ MFR4300
8.4 Základní konfigurace modulu
V základní konfiguraci modulu je nastavován režim, ve kterém má modul bČžet
(jednokanálový, dvoukanálový), má-li modul používat k þasové synchronizaci všechny nebo jen
nČkteré stanice vyhovující definovanému filtru. K základnímu nastavení rovnČž patĜí nastavení
datových segmentĤ urþených pro individual message buffery. Konfiguraþní promČnná
definovaná pro základní nastavení je typu Fr_HW_config_TypeDef (je popsán v tab. 7).
Datový typ
Název prvku struktury
Popis
boolean
synchronizationFil-
Povolení filtru synchronizaþních rámcĤ
teringEnable
uint16
acceptaceFilterValue
Nastavení filtru pro synchronizaþní rámce
uint16
acceptanceFilterMask
uint16
rejectionFilterValue
Hodnoty
mají
význam
synchronizaþní filtr povolen.
uint8
MBSegment1DataSize
Velikost dat v 1. datovém segmentu
uint8
MBSegment2DataSize
Velikost dat v 2. datovém segmentu
uint8
lastMBSeg1
ýíslo posledního bufferu, který spadá do
1.datového segmentu
uint8
lastMBUtil
ýíslo posledního bufferu, který spadá do
2.datového segmentu.
pouze
je-li
Jsou-li lastMBSeg1 = lastMBUtil, není druhý
segment využit
uint16
totalMBNumber
Celkový poþet využitých bufferĤ zahrnující
FIFO – slouží pro správné rozvrhnutí pamČti
Ĝadiþe.
uint16
syncFrameTableOffset
Datový offset pro synchronizaþní tabulku – jeli 0, nebude tabulka do pamČti ukládána.
Režim ve kterém má modul pracovat (využití
jednoho, nebo obou kanálĤ) – na výbČr jsou
hodnoty
FR_CHANNEL_MODE_DUAL,
FR_CHANNEL_MODE_SINGLE.
Tab. 7: Popis struktury Fr_HW_config_TypeDef
Fr_channel_mode_type
channelMode
- 47 -
Knihovna pro Ĝadiþ MFR4300
8.5 Parametry protokolu FlexRay
Pro správnou funkci protokolu FlexRay je dĤležité správnČ nastavit jak globální
parametry (tab. 8), tak parametry urþené jednotlivým stanicím (tab. 9). PromČnná typu
Fr_protocol_config_TypeDef obsahuje všechny parametry uvedené v následujících
tabulkách (tab.8 a tab. 9).
Název parametru
gColdStartAttempts
gListenNoise
gMacroPerCycle
gMaxWithoutClockCorrectionFatal
Popis parametru
Poþet pokusĤ o start sítČ coldStart nodem
SpoleþnČ s pdTimeOut urþuje délku
odposlechu sítČ pĜed fází wakeup a startup
Poþet makrotikĤ za celý komunikaþní cyklus
Urþuje maximální poþet cyklĤ, bez
synchronizace, než Ĝadiþ pĜestane vysílat
gMaxWithoutCorrectionPassive
Urþuje maximální poþet cyklĤ, bez
synchronizace, než Ĝadiþ pĜestane vysílat
gNetworkManagmentVectorLength
gNumberOfMinislots
gNumberOfStaticSlots
gOffsetCorrectionStart
Délka Network Management vector v clusteru
gPayloadLengthStatic
gSyncNodeMax
gdActionPointOffset
Poþet minislotĤ v dynamickém segmentu
Poþet slotĤ ve statickém segmentu
Zaþátek þasu vyhrazeného pro korekci
þasování bČhČm NIT fáze, urþené jako poþet
makrotikĤ od zaþátku cyklu
Délka dat v rámci vyslaného ve statickém
segmentu
Maximální poþet stanic používaných k
synchnonizaci
Offset zaþátku vysílání ve statickém segmentu
a symbol window
Max. akceptovatelná délka CAS symbolu
Délka Idle fáze v prĤbČhu dynamického slotu
Offset zaþátku vysílání v minislotu
Délka minislotu
Délka statického slotu
Délka symbolového okna
Délka startovací sekvence
gdCASRxLowMax
gdDynamicSlotIdlePhase
gdMiniSlotActionPointOffset
gdMinislot
gdStaticSlot
gdSymbolWindow
gdTSSTransmitter
gdWakeUpSymbolRxIdle
Viz obr. 30
gdWakeUpSymbolRxLow
gdWakeUpSymbolRxWindow
gdWakeUpSymbolTxIdle
gdWakeUpSymbolTxLow
Tab. 8: Globální parametry sítČ FlexRay
- 48 -
jednotka
[-]
[-]
hodnota
10
2
MT
Poþet
párĤ
sud/lich
Poþet
párĤ
sud/lich
cyklu
byte
5000
14
[-]
[-]
MT
22
60
4920
10
2
2-byte
16
[-]
5
MT
3
gdBit
minislot
MT
MT
MT
MT
gdBit
gdBit
gdBit
gdBit
gdBit
gdBit
83
0
3
40
50
13
11
59
50
301
90
30
Knihovna pro Ĝadiþ MFR4300
Obr. 30: Kolize a pĜíjem WUS6
Název parametru
pAllowHaltDueToClock
pAllowPassiveToActive
pClusterDriftDamping
pDecodingCorrection
pDelayCompensationChA
pDelayCompensationChB
pExternOffsetCorrection
pExternRateCorrection
pChannels
pKeySlotHeaderCrc
pKeySlotId
pKeySlotUsedForStartup
pKeySlotUsedForSync
pLatestTx
Popis parametru
jednotka
Flag urþující, zda má stanice v dĤsledky
chyby pĜi þasové synchronizaci pĜejít do stavu
HALT nebo NORMAL PASSIVE.
Poþet po sobČ jsoucích úspČšných þasových
synchronizací pro pĜechod ze stavu NORMAL
PASSIVE do NORMAL ACTIVE. Pokud je
nastaveno 0, k pĜechodu nedojde.
Rozmezí rychlosti korekce
Boolean
Viz obr. 31.
Maximálni zpoždČni mezi pĜíjmem a vysláním
na kanálu A
Maximálni zpoždČni mezi pĜíjmem a vysláním
na kanálu B
Korekce pĜidaná externČ mikropoþítaþem
Korekce pĜidaná externČ mikropoþítaþem
Kanál použitý Ĝadiþem pro komunikaci
Hlaviþkové CRC slotu pKeySlotId
ýíslo slotu použitý pro pĜenos
synchnizaþního, startovního rámce nebo tzv.
single slot mode (stanice vysílá pouze v tomto
slotu)
Má-li být slot pKeySlotId užit pro pĜenos
startovního rámce
Má-li být slot pKeySlotId užit pro pĜenos
synchronizaþního rámce
ýíslo posledního minislotu, jenž mĤže být
- 49 -
Nastavená
hodnota
false
Poþet párĤ
sudého a
lichého
cyklu
ȝT
ȝT
ȝT
20
ȝT
1
ȝT
ȝT
[A, B,
A&B]
[-]
[-]
0
0
A&B
Boolean
1
Boolean
1
[-]
21
1
56
1
242
1
Knihovna pro Ĝadiþ MFR4300
dynamickému slotu
Poþet MT mezi hranicí statického slotu a
druhého þasového referenþního bodu na
kanálu A
pMacroInitialOffsetB
Poþet MT mezi hranicí statického slotu a
druhého þasového referenþního bodu na
kanálu B
pMicroInitialOffsetA
Poþet ȝT mezi hranicí statického slotu a
druhého þasového referenþního bodu na
kanálu A
pMicroInitialOffsetB
Poþet ȝT mezi hranicí statického slotu a
druhého þasového referenþního bodu na
kanálu B
pMicroPerCycle
Poþet mikrotikĤ za celý komunikaþní cyklus
pMicroPerMacroNom
Poþet mikrotikĤ za jeden makrotik
pOffsetCorrectionOut
Velikost pĜípustného þasového offsetu
pPayloadLengthDynMax
Maximální délka dat obsažená v rámci bČhem
dynamického segmentu
pRateCorrectionOut
Velikost pĜípustné korekce rychlosti vysílání
pSingleSlotEnabled
Flag oznaþující, zda-li má stanice po
úspČšném startu sítČ pĜejít do sigle slot mode
(vysílání pouze ve slotu pKeySlotId)
pWakeupChannel
Kanál, který má být použit pro odeslání WUS
pWakeupPattern
Poþet opakování WUS posílaných pĜi buzení
sítČ
pdAcceptedStartupRange
Povolený rozšíĜený rozsah namČĜené odchylky
pro startovní rámce v prĤbČhu startu sítČ
pdListenTimeout
Spolu s gListenTimeout urþuje
maximální dobu odposlechu na sbČrnici pĜed
fází startup a wakeup
pdMaxDrift
Maximální posun þasové základny mezi
dvČma stanicemi bez synchronizace za jeden
komunikaþní cyklus
Tab. 9: Lokální parametry stanice v síti FlexRay
pMacroInitialOffsetA
MT
5
MT
5
ȝT
23
ȝT
23
ȝT
ȝT
ȝT
[-]
200000
40
1201
8
ȝT
Boolean
600
0
[A, B]
[-]
A
16
ȝT
300
ȝT
401202
ȝT
601
Obr. 31: VysvČtlení k parametrĤm pDelayCompensation a pDecodingCorrenction6
- 50 -
Knihovna pro Ĝadiþ MFR4300
8.6 Konfigurace a práce s message buffery
Tato kapitola popisuje nastavení všech typĤ message bufferĤ, které obsahuje FlexRay
modul, a popis funkcí pro práci s nimi.
Konfigurace message bufferĤ je provádČna pomocí pĜeddefinovaných struktur, které jsou
rĤzné pro jednotlivé typy message bufferĤ. Struktury jsou definovány v souboru FRcore.h
a deklarace jednotlivých promČnných jednotlivých typĤ struktur se nalézá v souboru
FRconfig.c. Výþtový typ, který je obsažen ve všech typech message bufferĤ, je
Fr_channel_type, který definuje pĜiĜazení message bufferu danému komunikaþnímu
kanálu. PĜehled hodnot ukazuje následující tabulka tab. 10.
Hodnoty
Popis
FR_CHANNEL_A
Komunikaþní kanál A
FR_CHANNEL_B
Komunikaþní kanál B
FR_CHANNEL_AB
Komunikaþní kanály A, B
FR_NO_CHANNEL
Komunikaþní kanál není pĜiĜazen
Tab. 10: PĜehled hodnot výþtového typu Fr_channel_type
Seznam používaných bufferĤ je v poli typu Fr_buffer_config_TypeDef (tab.
11). Prvek pole obsahuje konfiguraci pro jeden typ bufferu (tedy informaci o jaký typ se jedná,
viz tab. 12), ukazatel na jeho konfiguraþní strukturu a þíslo message bufferu, který má být takto
nakonfigurován. Pokud se jedná o pĜíchozí nebo vysílací buffer, lze dále nastavit ukazatel na
uživatelem definovanou funkci, která se spustí v pĜípadČ pĜerušení od daného message bufferu.
Popisy konfiguraþních struktur pro jednotlivé typy bufferĤ jsou v následujících kapitolách.
- 51 -
Knihovna pro Ĝadiþ MFR4300
Datový typ
Název prvku struktury
Popis
Fr_buffer_type
bufferType
Typ konfigurovaného bufferu
bufferConfig
Ukazatel na konfiguraþní strukturu bufferu.
uint16
bufferIndex
ýíslo
bufferu,
který chceme
konfigurovat.
PĜi konfiguraci FIFO má význam startovního bufferu.
Void
(*functionName)
(uint8
bufferIndex)
MB_isr_function()
Ukazatel na funkci, která má být volána pĜi pĜerušení
od daného bufferu. Funkce musí mít jeden parametr
typu uint8, ve kterém jí bude pĜedáno þíslo bufferu,
který pĜerušení vyvolal.
Const
const
void
*
Prvek má význam pouze
FR_TRANSMIT_BUFFER,
FR_RECEIVE_BUFFER
Tab. 11: Popis struktury Fr_buffer_config_TypeDef
pro
buffery
typu
Nastavení pĜi použití pČti message bufferĤ ilustruje následující pĜíklad:
Fr_buffer_config_TypeDef
// Buffer type
{FR_RECEIVE_BUFFER,
{FR_TRANSMIT_BUFFER,
{FR_TRANSMIT_BUFFER,
{FR_RECEIVE_FIFO,
{FR_RECEIVE_SHADOW,
Fr_buffer_cfg_00[] ={
Config structure ptr
MB index interrupt function
&Fr_rx_buffer_slot_01_cfg, 0, &UpdateServoPosition},
&Fr_tx_buffer_slot_03_cfg, 1,
NULL},
&Fr_tx_buffer_slot_05_cfg, 2,
NULL},
&Fr_FIFOA_cfg,
19,
NULL},
&Fr_rx_shadow_cfg,
5,
NULL},
};
Buffer þíslo 0 je definován jako pĜíchozí message buffer, podrobnou konfiguraci
obsahuje promČnná Fr_rx_buffer_slot_01_cfg. Pokud bude generováno pĜerušení od
tohoto bufferu, bude volána funkce UpdateServoPosition(0). PodobnČ je to s vysílacími
buffery 1 a 2, u nichž ovšem není nastavena žádná funkce volaná pĜi pĜerušení. PĜíchozí FIFO
bude zaþínat bufferem þíslo 19. Jako jediný
Hodnoty
FR_TRANSMIT_BUFFER
Popis
Vysílací buffer
FR_RECEIVE_BUFFER
PĜíchozí buffer
FR_RECEIVE_FIFO
PĜíchozí shadow buffer
FR_RECEIVE_SHADOW
PĜíchozí FIFO
pĜíchozí shadow buffer je konfigurován
buffer þíslo 5. Je nutné zajistit, aby všem
pĜíchozím a vysílacím message bufferĤm byl
pĜiĜazen stejný kanál jako pro shadow buffer
a aby s ním zároveĖ ležely ve stejném
Tab. 12: PĜehled hodnot
datovém segmentu.
výþtového typu Fr_buffer_type
- 52 -
Knihovna pro Ĝadiþ MFR4300
Typ
parametru
Název a typ parametru
Vstupní
Popis parametru
Fr_buffer_config_TypeDef
Ukazatel na pole obsahující konfiguraþní
*buffersConfiguration
hodnoty pro jednotlivé buffery
Fr_HW_config_TypeDef
Ukazatel na konfiguraþní strukturu modulu
*HW_configuration
FlexRay
Fr_protocol_config_TypeDef
Ukazatel na strukturu s nastavením parametrĤ
*protocolConfiguration
protokolu FlexRay
Tab. 13: Popis parametrĤ funkce Fr_buffers_init
8.6.1 PĜíchozí message buffer
Pro
konfiguraci
pĜíchozího
message
bufferu
slouží
struktura
Fr_receive_buffer_config_TypeDef, popsaná v tab. 14. Zda se jedná o pĜíjem rámce
ve statickém
nebo
dynamickém
segmentu
lze
poznat
z hodnoty
frameID.
Je-li
frameID < gNumberOfStaticSlots, jedná se o buffer pĜiĜazený statickému segmentu,
v opaþném pĜípadČ bude do bufferu pĜijímán rámec ze segmentu dynamického. Maximální
hodnota
frameID
by nemČla
pĜekroþit
hodnotu
gNumberOfStaticSlots
+
gNumberOfMinislots.
Datový typ
Název prvku struktury
Popis
uint16
frameID
ýíslo slotu
Fr_channel_type
channel
Kanál pĜiĜazený danému bufferu
boolean
cycleCounterFilterEnable
Povolení používání filtrování zpráv podle þísla
cyklu
uint8
cycleCounterFilterValue
Maska filtru
boolean
MBInterruptEnable
Povolit pĜerušení pĜi pĜíjmu rámce
Tab. 14: Popis struktury Fr_receive_buffer_config_TypeDef
Následující pĜíklad ilustruje konfiguraci pĜíchozího message bufferu, do kterého budou
pĜijímány rámce ze tĜetího slotu každého cyklu, a to z obou kanálĤ:
Fr_receive_buffer_config_TypeDef Fr_rx_buffer_slot_01_cfg = {
3,
// þíslo slotu
FR_CHANNEL_AB,
// bude pĜijmut první validní rámec vyskytující se
na kanálu A nebo B
FALSE,
// Není použito filtrování podle þísel cyklu
0,
0,
TRUE};
// Povolit pĜerušení pĜi pĜíchodu rámce
Dojde-li k pĜíjmu rámce (vyvolání pĜerušení), je možné vyþíst pĜíchozí data
pomocí
funkce
FR_ReceiveData.
Návratová
- 53 -
hodnota
funkce
výþtového
typu
Knihovna pro Ĝadiþ MFR4300
Fr_rx_MB_status_type urþuje, zda došlo k úspČšnému pĜíjmu rámce a zda jsou tedy
platné výstupní parametry. PĜehled parametrĤ funkce je obsažen v tab. 15. tab. 16 uvádí výþet
hodnot, kterých mĤže nabývat návratový kód funkce.
Typ
parametru
Vstupní
Výstupní
Návratová
hodnota
Typ a název parametru
uint16 Fr_bufferID
uint16 *Fr_data
uint8 *Fr_dataLen
uint16 *Fr_slotStatus
Fr_rx_MB_status_type
Popis parametru
ýíslo bufferu, který má být vyþten
Ukazatel na pĜijatá data – musí být alokována
dostateþná velikost pro data
Délka skuteþnČ pĜijatých dat
Slot status
Stav bufferu
Tab. 15: Popis parametrĤ funkce FR_ReceiveData
Hodnoty
Popis
Zpráva byla pĜijata v poĜádku
Nebyl pĜijat validní rámec – podrobnČjší informace
je možná vyþíst z parametru Fr_slotStatus
FR_RXMB_NULL_FRAME_RECEIVED
Byl pĜijat rámec bez dat (Null Frame)
FR_RXMB_NO_ACCESS
Aplikaci se nepodaĜilo získat výhradní pĜístup
k message bufferu – je zamknut FlexRay modulem
Tab. 16: PĜehled hodnot výþtového typu Fr_rx_MB_status_type
FR_RXMB_RECEIVED
FR_RXMB_NOT_RECEIVED
- 54 -
Knihovna pro Ĝadiþ MFR4300
8.6.2 PĜíchozí shadow message buffer
PĜíchozí shadow message buffery musí být povoleny, chceme-li používat pĜíchozí buffery
v daných segmentech na kanálu A nebo B. Po konfiguraci jsou buffery výhradnČ
pod kontrolou FlexRay modulu. Výþtový typ, udávající, o který se jedná buffer,
je Fr_receive_shadow_buffer_type,
který
mĤže
nabývat
hodnot
zobrazených
v tab. 17.
Datová struktura sloužící pro konfiguraci pĜíchozího shadow message bufferu, se nazývá
Fr_receive_buf-fer_config_TypeDef a je popsána v tab. 18
Hodnoty
Popis
FR_RSBIR_A1
Shadow buffer pro segment 1 a kanál A
FR_RSBIR_A2
Shadow buffer pro segment 2 a kanál A
FR_RSBIR_B1
Shadow buffer pro segment 1 a kanál B
FR_RSBIR_B2
Shadow buffer pro segment 2 a kanál B
Tab. 17: PĜehled hodnot výþtového typu
Fr_receive_shadow_buffer_type
Datový typ
Název prvku struktury
Popis
boolean
enable
Povolení používání bufferu
Fr_receive_shadow_buffer_type
bufferType
Typ shadow bufferu
Tab. 18: Popis struktury Fr_receive_buffer_config_TypeDef
8.6.3 PĜíchozí FIFO
Konfigurace FIFO bufferu má dvČ þásti. Nastavení tĜí sad filtrĤ a základních vlastností,
jako je velikost používaných bufferĤ a jejich poþet. PoĜadí aplikace jednotlivých filtrĤ
je popsáno v kapitole 7.2.3.2.
Druhy nastavitelných filtrĤ:
x Filtr akceptovatelných message ID – hodnota spolu s maskou filtru urþuje, které
zprávy mohou být do FIFO bufferĤ zaĜazeny
x Filtr odmítaných rámcĤ – hodnota spolu s maskou filtru urþuje, které zprávy
nemohou být do FIFO bufferĤ zaĜazeny
x Až 4 rozsahové filtry (akceptování/odmítnutí) – pokud bude rámec vyhovovat
rozmezí daného filtru, mĤže být akceptován nebo odmítnut – záleží
na konfiguraci.
- 55 -
Knihovna pro Ĝadiþ MFR4300
Pro rozsahové filtry je definována struktura popsaná v tab. 19. Oba zbývající typy filtrĤ
spolu s nastavením velikosti jednotlivých bufferĤ a jejich poþtem jsou konfigurovány promČnnou
typu Fr_FIFO_config_TypeDef, jejíž struktura je popsána v tab. 20.
Datový typ
Název prvku struktury
Popis
boolean
filterEnable
Povolení používání daného filtru
Fr_FIFO_range_fil-
filterMode
Typ filtru – pro odmítnutí, akceptování.
Jedná se o výþtový typ s hodnotami:
ter_mode_type
FR_ACCEPTANCE, FR_REJECTION
uint16
uint16
Rozsah daného filtru. Filtr pĤsobí na rámce
splĖují-li podmínku
filterUpperInterval
filterLowerInterval < FID <
filterUpperInterval
Tab. 19: Popis struktury Fr_FIFO_range_filters_TypeDef
filterLowerInterval
Datový typ
Název prvku struktury
Popis
Fr_channel_type
channel
Kanál, pro který je FIFO nastavováno
uint8
depth
Typ filtru – pro odmítnutí,
akceptování. Jedná se o výþtový typ
s hodnotami:
FR_ACCEPTANCE, FR_REJECTION
uint8
entrySize
Rozsah daného filtru. Filtr pĤsobí na
rámce v rozsahu
filterLowerInterval < FID
< filterUpperInterval
uint16
messageIDAcceptanceFilterValue
Nastavení filtru pro pĜijmutí rámcĤ
uint16
messageIDAcceptanceFilterMask
uint16
frameIDRejectionFilterValue
uint16
frameIDRejectionFilterMask
Fr_FIFO_range_filters_TypeDef
rangeFiltersConfig[4]
boolean
Nastavení filtru pro odmítnutí rámcĤ
Až þtyĜi rozsahové filtry
interruptEnable
Povolení pĜerušení
Tab. 20: Popis struktury Fr_FIFO_config_TypeDef
- 56 -
Knihovna pro Ĝadiþ MFR4300
8.6.4 Vysílací buffery
Jak bylo uvedeno v kapitole 7.2.4, existují dva typy vysílacích bufferĤ. Pro oba typy se
ke konfiguraci používá stejný datový typ Fr_transmit_buffer_config_TypeDef,
popsaný v tab. 22.
Následující pĜíklad ilustruje nastavení konfigurace pro jednoduchý vysílací buffer, který
je odesílán každý lichý cyklus (vždy s posledními známými daty):
Fr_transmit_buffer_config_TypeDef Fr_tx_buffer_slot_10_cfg = {
10,
// þíslo pĜiĜazeného slotu
16,
// poþet dat v datovém segmentu
FR_SINGLE_TRANSMIT_BUFFER,
// typ vysílacího bufferu
FR_STATE_TRANSMISSION_MODE, // data jsou pĜenášena neustále
FR_IMMEDIATE_COMMIT_MODE,
// pro jednodychý buffer nemá hodnota význam
FR_CHANNEL_AB,
// pĜiĜazený kenál pro vysílání
FALSE,
// data neobsahují network managment vector
TRUE,
// použití filtrování cyklu
0x0001,
// hodnota filtru
0x0001,
// maska filtru
TRUE,
// povolit pĜerušení pĜi odeslání dat
FALSE
// pro jednodychý buffer nemá hodnota význam
};
Funkce pro odesílání dat se jmenuje FR_TransmitData, popis vstupních/výstupních
parametrĤ je uveden v tab. 21.
Typ
parametru
Vstupní
Výstupní
Návratová
hodnota
Typ a název parametru
uint16 Fr_bufferID
const uint16
*Fr_data
uint8 *Fr_dataLen
Popis parametru
ýíslo bufferu, který má být použit k odeslání dat
Ukazatel na odesílaná data
Délka odesílaných dat
Fr_tx_MB_status_type
FR_TXMB_UPDATED – data byla do bufferu
uložena.
FR_TXMB_NO_ACCESS – aplikace nemá pĜístup
k message bufferu
Tab. 21: Popis parametrĤ funkce FR_TransmitData
- 57 -
Knihovna pro Ĝadiþ MFR4300
Datový typ
Název prvku struktury
Popis
uint16
frameID
ýíslo slotu, ve kterém má být rámec
odeslán
uint8
payloadLength
Délka datového segmentu.
Fr_transmit_MB_type
MBBuffering
Typ odchozího bufferu – jednoduchý,
dvojitý. Možné hodnoty:
FR_SINGLE_TRANSMIT_BUFFER
FR_DOUBLE_TRANSMIT_BUFFER
Fr_transmission_type
mode
ZpĤsob odesílání rámcĤ. Možné
hodnoty:
FR_EVENT_TRANSMISSION_MODE
FR_STATE_TRANSMISSION_MODE
Fr_transmission_
commit_type
ZpĤsob potvrzování odesílaných
rámcĤ. Význam pouze pro dvojitý
vysílací buffer. Možné hodnoty:
commitMode
FR_STREAMING_COMMIT_MODE,
FR_IMMEDIATE_COMMIT_MODE
Fr_channel_type
channel
Kanál, na kterém mají být data vysílána
boolean
payloadPreamble
TRUE – data v rámci obsahují
messageID (dynamický segment), nebo
network managment vector (statický
segment)
boolean
cycleCounterFilterEnable
Povolení filtrování cyklĤ pro vysílaní.
uint8
cycleCounterFilterValue
Rámec bude vyslán pouze pokud þíslo
uint8
cycleCounterFilterMask
cyklu vyhovuje podmínkám
maska/hodnota
boolean
MBInterruptEnable
boolean
Povolení pĜerušení od vysílacího
bufferu
Je-li povoleno pĜerušení a jedná-li se o
dvojitý buffer, má hodnota význam
toho, na jaké stranČ bude pĜerušení
povoleno. (TRUE – transmit side,
FALSE – commit side)
Tab. 22: Popis struktury Fr_transmit_buffer_config_TypeDef
MBInterruptTransmitSideEn
able
- 58 -
Knihovna pro Ĝadiþ MFR4300
POC pĜíkazy
8.6.5
Hodnoty
Pro požadavky na pĜechod mezi
POC stavy (viz kapitola 7.2.5) slouží
Ĝídicí jednotce FlexRay Ĝadiþe POC
pĜíkazy definované normou. PĜehled
dostupných
pĜíkazĤ
definovaných
normou ukazuje tab. 23. Pro zpracování
jednotlivých
pĜíkazĤ
slouží
funkce
FR_SetPOCCMD, kde vstupním parametrem je požadovaný pĜíkaz (prefix
FR_POCR_POCCMD_ + pĜíkaz). Návratová
hodnota
typu
boolean
nás
informuje, zda-li se povedlo pĜíkaz
zpracovat þi nikoliv. PĜíklad použití
Popis
Aktivuje schopnost uzlu zaþít se
startem sítČ
ALL_SLOTS
PĜechod z jednokanálového
vysílání na dvoukanálové
CONFIG
PĜechod ze stavu DEFAULT
CONFIG do stavu CONFIG
FREEZE
Okamžité zastavení þinnosti
FlexRay modulu a pĜechod do
stavu HALT
READY,
PĜechod ze stavu CONFIG do stavu
CONFIG_COMPLETE
READY
RUN
PĜíkaz inicializující startovací
proceduru (start sítČ, inicializace do
sítČ)
DEFAULT_CONFIG
PĜechod ze stavu HALT do stavu
DEFAULT CONFIG
HALT
Zastavení FlexRay modulu na
konci vysílacího cyklu
WAKEUP
PĜíkaz pro zahájení procedury
vzbuzení sítČ
RESET
RESET FlexRay modulu
Tab. 23: PĜehled POC pĜíkazĤ
ALLOW_COLDSTART
funkce pro pĜechod modulu do stavu CONFIG:
FR_SetPOCCMD
(FR_POCR_POCCMD_CONFIG).
Naopak
pro
zjišĢování
aktuálního POC stavu FlexRay modulu
slouží funkce FR_GetPOCState, jejíž
návratový
výþtový
Fr_POC_state_type,
typ
(Tab.
24),
informuje o aktuálním stavu FlexRay
modulu.
Pokud byla stanice použita pĜi
vzbuzení sítČ, lze výsledek WAKEUP
procedury
získat
voláním
funkce
Hodnoty
Popis
FR_POCSTATE_CONFIG
FR_POCSTATE_DEFAULT_CONFIG
FR_POCSTATE_HALT
Indikace stavu CONFIG
Indikace stavu
DEFAULT_CONFIG
Indikace stavu HALT, nebo
indikace aktivního bitu
FREEZE, aktivovaného
z dĤvodu interní chyby
FR_POCSTATE_NORIndikace stavu
MAL_ACTIVE
NORMAL_ACTIVE
FR_POCSTATE_NORIndikace stavu
MAL_PASSIVE
NORMAL_PASSIVE
FR_POCSTATE_READY
Indikace stavu READY
FR_POCSTATE_STARTUP Indikace stavu STARTUP
FR_POCSTATE_WAKEUP
Indikace stavu WAKEUP
Tab. 24: PĜehled hodnot
výþtového typu Fr_POC_state_type
FR_GetWakeupState().
- 59 -
Knihovna pro Ĝadiþ MFR4300
Návratovou hodnotou funkce je výþtový typ Fr_wakeup_state_type (tab. 25).
Hodnoty
Popis
FR_WAKEUPSTATE_UNDEFINED
Procedura WAKEUP nebyla volána od posledního
pĜechodu do stavu DEFAULT_CONFIG
FR_WAKEUPSTATE_RECEIVED_HEADER
V prĤbČhu fáze odposlechu na sbČrnici byla pĜijata
neporušená hlaviþka rámce
FR_WAKEUPSTATE_RECEIVED_WUP
V prĤbČhu fáze odposlechu na sbČrnici byl pĜijat
validní WUS
FR_WAKEUPSTATE_COLLISION_HEADER
V prĤbČhu fáze vysílání WUS je detekován rámec
s validní hlaviþkou
FR_WAKEUPSTATE_COLLISION_WUP
V prĤbČhu fáze vysílání WUS je detekován validní
WUS
FR_WAKEUPSTATE_COLLISION_UNKNOWN
V prĤbČhu fáze vysílání WUS je detekován
rámec/WUS, ale z dĤvodu kolize nedojde k jeho
pĜíjmu (rámec nemá platné CRC aj.)
FR_WAKEUPSTATE_TRANSMITTED
WUS byl úspČšnČ vyslán na sbČrnici
Tab. 25: PĜehled hodnot výþtového Fr_wakeup_state_type
Základní POC stav STARTUP je rozdČlen na nČkolik dílþím stavĤ, jimiž modul prochází
v prĤbČhu startu sítČ nebo inicializace do již bČžící sítČ. Detailní pohled na startup proceduru
je ukázán na vývojovém diagramu na obr. 32. Jednotlivé fáze jsou obsaženy ve výþtovém typu
Fr_startup_state_type (tab. 26). Funkce FR_GetStartupState() vrací aktuální
stav, ve kterém se modul nachází, popĜípadČ poslední stav, ve kterém se nacházel v prĤbČhu
startup procedury. Návratová hodnota funkce je typu Fr_startup_state_type.
Hodnoty výþtového typu
Popis
Vyslání CAS a sledování následujících þtyĜ cyklĤ,
zda se o start nepokouší další stanice
FR_COLDSTART_LISTEN
Odposlech na sbČrnici pĜed zapoþetím vysílání
FR_INTEGRATION_CONSISTENCY_CHECK
Synchronizace þasové základny stanice na základČ
pĜijatých synchronizaþních rámcĤ
FR_INTEGRATIONI_LISTEN
Odposlech na sbČrnici pĜed zapoþetím vysílání
FR_INITIALIZE_SCHEDULE
PĜijetí prvního synchronizaþního rámce
FR_COLDSTART_CONSISTENCY_CHECK
Synchronizace leader coldstart uzlu s podĜízeným
coldstart uzlem
FR_INTEGRATION_COLDSTART_CHECK
Synchronizace podĜízeného coldstart uzlu s leader
coldstart uzlem
FR_COLDSTART_GAP
leader coldstart uzlu pĜestává s vysíláním vlastního
startup rámce
FR_COLDSTART_JOIN
Integrace podĜízeného coldstart uzlu do sítČ
Tab. 26: PĜehled hodnot výþtového Fr_startup_state_type
FR_COLDSTART_COLLISION_RESOLUTION
- 60 -
Knihovna pro Ĝadiþ MFR4300
Obr. 32: Detailní pohled na startup proceduru6
- 61 -
MČĜicí síĢ
9
MČĜicí síĢ
SíĢ by mČla simulovat nČkteré dĤležité þásti Ĝídicích jednotek v automobilu, jako je Ĝízení
smČru jízdy, rychlosti, brzdČní, Ĝazení a zároveĖ nČkterou ménČ dĤležitou elektroniku, jako jsou
rĤzná þidla. S nasazením sítČ FlexRay v automobilu se poþítá jako se sítí páteĜní, propojující již
existující jednotlivé podsítČ. ZároveĖ by mČla být využívána pro systémy Ĝízení a bezpeþnosti
vozidla. Plánované využití sítČ je vidČt na obr. 33. Demonstraþní síĢ bude simulovat Ĝízení
vozidla a zároveĖ snímat stav nČkolika dalších parametrĤ nedĤležitých pro Ĝízení, které mohou
demonstrovat informace z rozhraní mezi sítČmi MOST -> FlexRay, LIN -> FlexRay.
Obr. 33: PĜedpokládané využití sítČ FlexRay v automobilu
9.1 Schéma sítČ
Demonstraþní síĢ se sestává ze tĜí mČĜicích stanic zapojených vzájemnČ do sbČrnice
za použití obou pĜenosových kanálĤ, volantu s pedály pro PlayStation, servomotoru HS-311,
zdroje napČtí a proudu vytvoĜeného jako pĜevodník U/I (obr. 34). Jednotlivým stanicím
je pĜiĜazeno více úloh z dĤvodu demonstrace nČkterých vlastností sbČrnice FlexRay. Úloha
jednotlivých stanic v síti je následující:
x NODE A – ColdStart uzel
o MČĜení natoþení volantu (demonstrace steer-by-wire), mČĜení napČtí,
pĜíjem dat ze sériové linky
x NODE C – ColdStart uzel
o MČĜení intenzity sešlápnutí jednotlivých pedálĤ (brake-by-wire), sledování
digitálního vstupu
- 62 -
MČĜicí síĢ
x NODE B – Normal uzel
o MČĜení proudu, snímání stavu Ĝadící páky, Ĝízení natoþení servomotoru
podle informace o natoþení volantu, komunikace s poþítaþem
Obr. 34: Schéma sítČ
9.2 RozdČlení komunikaþního cyklu
Jak bylo Ĝeþeno v kapitole 6.2.1, mohou být data periodicky zasílána v každém cyklu.
Této vlastnosti bude využito pro pĜenos dat, u kterých potĜebujeme zaruþenou latenci doruþení,
jako je natoþení volantu a sešlápnutí jednotlivých pedálĤ. Informace o stavu sešlápnutí pedálu 1
bude vysílána na kanálu A, informace z pedálu 2 na kanálu B. Pro ukázku cycle multiplexing
na kanálu A bude využit jeden slot pro zasílání stavu Ĝadící páky (liché cykly) zároveĖ
s informací o namČĜeném proudu (sudé cykly).
V dynamickém segmentu jsou obsazeny dva dynamické sloty pro vysílání ménČ
dĤležitých informací, v reálném systému to mohou být napĜíklad data z CD pĜehrávaþe nebo
navigaþního systému, z digitálního vstupu a UARTu. Pokud budou vysílána data pĜijatá
z UARTu, nebude v daném cyklu na kanálu B vyslána informace o stavu digitálního vstupu.
Tímto bude demonstrováno vytížení sbČrnice v dynamickém segmentu (pouze na kanálu B).
V každém segmentu je ponechána þást slotĤ neobsazených pro budoucí snadné rozšíĜení
sítČ. Pro demonstraci ponecháme symbolovému oknu nenulovou délku. Celkové rozdČlení
komunikaþního cyklu je na obr. 35.
- 63 -
MČĜicí síĢ
Obr. 35: Využití komunikaþního cyklu
9.3 MČĜení vybraných veliþin
Použité herní pĜíslušenství pro Playstation, volant s pedály a Ĝadicí pákou, v sobČ
obsahuje vlastní Ĝídicí jednotku. Pro komunikaci s touto jednotkou je možné využít sériového
pĜenosu. V dĤsledku nedostateþné dokumentace a pĜenosové rychlosti byl zvolen jiný pĜístup
k mČĜeným údajĤm – ty jsou snímány pĜímo z výstupĤ jednotlivých senzorĤ. PĜi nastavení
herního pĜíslušenství do režimu digital, což je výchozí nastavení po zapnutí, jsou výstupem
všech senzorĤ pulzy, jejichž šíĜka odpovídá mČĜené veliþinČ – jedná se tedy o pulznČ šíĜkovou
modulaci (PWM). Použitý mikroprocesor umožĖuje mČĜení šíĜky pulzu v jednom z režimĤ
þasovaþĤ – PWM input mode. V tomto režimu þasovaþ bČží neustále, je nulován pĜíchodem
nábČžné hrany nebo pĜeteþením. PĜerušení mĤže být vyvoláno pĜíchodem sestupné þi nábČžné
hrany nebo pĜi pĜeteþení þasovaþe. V registrech jsou uchovávány þasy posledního pĜíchodu
sestupné a další nábČžné hrany. Minimální rozlišitelná þasová jednotka a zároveĖ maximální
chyba vzniklá mČĜením šíĜky pulzu pĜi vstupní frekvenci þasovaþĤ 48 MHz je pĜibližnČ 21 ns.
V mikroprocesoru použitý þtyĜkanálový 12 bitový A/ý pĜevodník má rozsah 0-2,5 V
a lze jím tedy mČĜit s rozlišením 610,35 μV. PĜevodník mĤže pracovat na maximální frekvenci
2,1 MHz a doba pĜevodu trvá 512 tikĤ pro jeden kanál. PĜevodník lze nastavit do dvou režimĤ:
x v režimu Round-Robin jsou postupnČ ovzorkovány všechny 4 kanály.
Po dokonþení posledního pĜevodu jsou výsledky dostupné v registrech
x v režimu Single-Channel je vzorkován pouze jeden vybraný kanál, ale výsledek
je k dispozici za stejnou dobu jako v pĜedchozím pĜípadČ.
- 64 -
MČĜicí síĢ
Maximální vzorkovací frekvence pro oba režimy je 1 kHz. (2,1/(512 · 4)).
Pro þtyĜnásobné zvýšení vzorkovací frekvence, má-li být mČĜen pouze jeden vstup, lze zapojit
jako vstup všech 4 kanálĤ požadovaný signál a nastavit A/ý pĜevodník do režimu Round-Robin.
Pro dosažení co nejlepších výsledkĤ je A/ý pĜevodník nastaven do režimu Round-Robin
a na vstupu jsou následující signály:
Kanál 1: reference 0 V
Kanál 2: reference 2,5 V
Kanál 3 a 4: mČĜený stejnosmČrný signál v rozsahu 0 - 2,5 V
Referenþní signál 0 V a 2,5 V slouží ke kalibraci A/ý pĜevodníku. Výsledná hodnota
je prĤmČrována ze dvou namČĜených hodnot.
MČĜení proudu probíhá pĜes pĜevodník I/U za opČtovného použití A/ý pĜevodníku
se stejným nastavením, které je popsáno výše.
Firmware stanice využívá pro konfiguraci a práci s procesorem a s vČtšinou jeho periférií
knihovny16 od firmy STMicroelectronics.
9.4 Propojení stanice s poþítaþem
Pro komunikaci mezi stanicí a Ĝídicím poþítaþem je využito sériové rozhraní USB.
Na stranČ
stanice
je
použita
knihovna17
od
firmy
STMicroelectronics.
V zaĜízení
je nakonfigurováno 5 endpointĤ typu control, bulk, interrupt. Endpoint typu control zajišĢuje
správnou identifikaci zaĜízení po pĜipojení k USB sbČrnici. Enpointy typu bulk jsou v zaĜízení
využity pro pĜenos Ĝídicích informací -> napĜ. žádost od PC o zaslání obsahu registrĤ. Data
pĜijatá stanicí pĜes FlexRay jsou pĜeposílána na USB endpointem typu interrupt. Formát dat
v jednotlivých paketech je popsán ve zdrojovém kódu v konfiguraþní þásti knihovny pro USB.
Na stranČ PC je využit obecný ovladaþ. Ovladaþi jsou pouze pĜedány informace
k identifikaci zaĜízení (VID – Vendor ID, PID – Produkt ID). Ovladaþ obsahuje funkce pro
asynchronní a synchronní þtení a zápis.
16
STMicroelectronics, UM0097 User manual: STR71x firmware library [online], rev. 1, 2007-01-16,
http://www.st.com/mcu/familiesdocs-86.html
17
STMicroelectronics, UM0290 User manual: STR7/STR9 USB developer kit [online], rev. 1, 2007-01-16,
http://www.st.com/mcu/familiesdocs-86.html
- 65 -
MČĜicí síĢ
9.5 Firmware mČĜících stanic
Jednotlivé stanice obsahují velmi podobný firmware. Liší se pouze v nČkolika
konfiguraþních hodnotách, které jsou pĜednastaveny pro konkrétní stanici, pro níž je firmware
urþen, pomocí definice v souboru FRconfig.h - #define NODE_x, kde x mĤže nabývat
hodnot A, B, C.
Vývojový diagram hlavního programu je uveden v pĜíloze A. Program zaþíná konfigurací
zdroje hodinového signálu pro procesor a jednotlivé periferie. Dalším krokem je nastavení
pĜístupu k FlexRay Ĝadiþi MFR4300. Dle konfigurace je v následujícím kroku nastaveno USB
rozhraní. V tomto kroku jsou inicializovány datové struktury, nastaveny zdroje pĜerušení
od USB, nastaveno rozdČlení pamČti pro buffery zpráv jednotlivých endpointĤ a další. Program
nyní vchází do nekoneþné smyþky zaþínající inicializací Ĝadiþe FlexRay, která bude vysvČtlena
v následujícím odstavci. Po konfiguraci se stanice pokusí o vzbuzení sítČ, v pĜípadČ, že síĢ není
v provozu, vysláním WakeUp symbolu. Program dále þeká, než FlexRay modul opČt pĜejde
do stavu READY. Poté se funkcí FR_Start(), obsahující pouze vyslání pĜíkazu RUN FlexRay
modulu, pokusí o start sítČ, þi integraci do sítČ. NepodaĜí-li se stanici pĜejít do stavu
NORMAL_ACTIVE, vrátí se program na zaþátek nekoneþné smyþky a pokusí se opČt o nový start
sítČ, je-li opakování startu povoleno. V pĜípadČ úspČšného startu sítČ þi integrace do již sítČ
bČžící, je povoleno odesílání rámcĤ na sbČrnici nastavením promČnné gFR_enableSendData
na hodnotu TRUE. NáslednČ jsou inicializována všechna nastavená mČĜení (mČĜení, která nemá
daná stanice provádČt, jsou pĜeskoþena). Ve smyþce je kontrolováno, zda se stanice nachází stále
ve stavu NORMAL_ACTIVE. Nachází-li se v jiném stavu, dochází k rekonfiguraci stanice a
jejímu opČtovnému spuštČní.
Funkce Flexray_Init() sloužící pro nastavení parametrĤ FlexRay modulu je
popsána vývojovým diagramem v pĜíloze B. Funkce pĜedpokládá existenci tĜí globálních
promČnných
definované
jako
Fr_HW_config_TypeDef,
gFr_HWCfg_00,
Fr_buffer_config_TypeDef gFr_BufferCfg_00[] a Fr_protocol_config_
TypeDef gFr_LowLevelCfgSet_00, jejichž struktura je popsána v kapitole 8. Funkce
nejdĜíve provede reset Ĝadiþe a zkontroluje správnost jeho nabČhnutí testováním obsahu
nemČnného registru. V pĜípadČ chyby provede opČtovný reset. NáslednČ je modul zapnut
nastavením bitu ENABLE v registru MCR a poslán do stavu CONFIG. Po povolení pĜerušení od
Ĝadiþe je nastavena velikost jednotlivých datových segmentĤ (segment 1 a 2) pro individual
message buffery. Dále jsou nastaveny všechny globální a lokální parametry protokolu
nadefinované v promČnné gFr_LowLevelCfgSet_00. PĜedposledním krokem je uložení
- 66 -
MČĜicí síĢ
konfigurace message bufferĤ a jejich aktivování. NáslednČ je modul poslán do stavu
CONFIG_COMPLETE, þímž je konfigurace ukonþena.
- 67 -
Popis software pro PC
10 Popis software pro PC
Pro prostĜedí Windows byl napsán jednoduchý program pro prezentaci namČĜených
hodnot a sledování registrĤ Ĝadiþe MFR4300 pĜipojené stanice, z jejichž obsahu lze vyþíst,
v jakém stavu se Ĝadiþ nachází. Program umožĖuje logování pĜenášených dat s dodateþnou
informací o þísle cyklu, ve kterém byla data pĜenesena, s následným uložením dat do textového
souboru. Z dĤvodu nedostatku mČĜicích stanic pĜenáší jedna ze stanic (stanice pĜipojená k PC)
data, která jsou namČĜena pĜímo danou stanicí a nejsou tedy pĜijata pĜes sbČrnici FlexRay. K PC
lze pĜipojit libovolnou mČĜicí stanici.
- 68 -
ZávČr
11 ZávČr
V diplomové práci byl vytvoĜen hardware a software pro mČĜicí síĢ. Daná síĢ je však
tvoĜena pouze tĜemi stanicemi z dĤvodu omezené dostupnosti FlexRay ĜadiþĤ MFR4300.
PĜedpokládá se, že další Ĝadiþe budou dostupné na zaþátku roku 2008.
Sestavená mČĜicí síĢ pĜedvádí vlastnosti nového protokolu navrženého pro aplikace
x-by-wire, užívané v automobilové technice, jako napĜíklad dvoukanálový pĜenos, rozdČlení
komunikaþního cyklu na statickou þást pro pĜenos prioritních zpráv a volitelnou dynamickou
þást, kde mají rámce rĤznou velikost.
SíĢ mČĜí nČkolik parametrĤ: natoþení volantu, stav Ĝadicí páky, sešlápnutí pedálĤ, stav
digitálního vstupu, proud a napČtí. Pro ukázku je také implementováno rozhraní UART, které
tvoĜí další zdroj dat pĜenášených v komunikaþním cyklu na sbČrnici. V komunikaþním cyklu
je znázornČn pĜenos redundantních zpráv (pĜenos stejné zprávy na obou kanálech souþasnČ),
sdílení pĜidČleného slotu více stanicemi (cycle multiplexing). V dynamické þásti je ukázáno,
že není garantováno doruþení zprávy v daném komunikaþním cyklu.
VytvoĜená síĢ mĤže v budoucnu sloužit jako vhodná výuková pomĤcka pro ukázku
standardu FlexRay. Dále je možné síĢ použít pro testování odolnosti daného protokolu na chyby
v komunikaci zaĜazením zdroje rušení mezi jednu stanici a okolní síĢ. Je však nutné dbát na
dodržení maximálního zpoždČní mezi jednotlivými uzly sítČ, které je dáno normou.
- 69 -
Seznam literatury a použitých materiálĤ
12 Seznam literatury a použitých materiálĤ
[1]
Vysoký P., Vysoký O.: Trendy v Ĝízení automobilových systémĤ. Automatizace 2006,
roþ.49, þ.4, s 252-255.
[2]
Kocourek P., Novák J.: PĜenos Informace.Vydavatelství ýVUT, Praha 2004.
[3]
Fuehrer T.: Time Triggered Communication on CAN. [online]
http://www.can-cia.org/fileadmin/cia/pdfs/technology/fuehrer.pdf.
[4]
TTTech: Time-Triggered Protocol TTP/C High-Level Specification Dokument Protocol.
Version 1.1 [online], Specification edition 1.4.3, 2003-11-19, http://www.tttech.com.
[5]
Berwanger J., Keller M., Griessbach R.: Byteflight - A New Protocol for Safety Critical
Applications. FISITA World Automotive Congress [online], Soul, Korea, 2000-05,
http://www.fisita.com.
[6]
FlexRay Consortium: FlexRay Communications System Protocol Specification. [online]
Version 2.1 rev. A, 2005-12-22, http://www.FlexRay.com.
[7]
FlexRay Consortium: FlexRay Communications System Electrical Physical Layer
Specification Errata sheet. [online] Version 2.1 rev. A, 2006-03-29,
http://www.FlexRay.com.
[8]
Pokorný V.: Metody mČĜení vybraných parametrĤ komunikaþního standardu FlexRay a
jejich implementace. 2007. [DP, dep in: ýVUT-FEL Katedra mČĜení]
[9]
FlexRay Consortium: FlexRay Communications System Electrical Physical Layer
Application Notes. [online] Version 2.1 rev. B, 2006-11, http://www.FlexRay.com.
[10]
FlexRay Consortium: FlexRay Communications System Electrical Physical Layer
Specification. [online] Version 2.1 rev. B, 2006-11, http://www.FlexRay.com.
[11]
STMicroelectronics:, STR71x: ARM7TDMI™ 32-bit MCU with flash, USB, CAN 5
timers, ADC, 10 communications interfaces. [online] Rev. 7, 2005-10,
http://www.st.com/mcu/devicedocs-STR710RZ.html.
[12]
STMicroelectronics: STR71x Microcontroller Reference Manual. [online] Rev. 7, 200511, http://www.st.com/mcu/devicedocs-STR710RZ.html.
[13]
Freescale Semiconductor: MFR4300 datasheet. [online] Rev.1, 2006-04,
http://www.freescale.com/files/peripherals_coprocessors/doc/data_sheet/MFR4300.pdf.
[14]
Freescale Semiconductor: MFR4310 and MFR4300 Differences. [online] Rev.0, 2007-05,
http://www.freescale.com/files/abstract/corporate/newsletter_archives/NL_05-29-07.htm.
[15]
Philips Semiconductors: TJA1080: FlexRay transceiver. [online] Rev.1, 2006-07-20,
http://www.alldatasheet.net/datasheet-pdf/pdf/164398/PHILIPS/TJA1080.html.
[16]
Freescale Semiconductor: PFR4300MAE40, Mask 0M92D. [online] Rev.2007-03-05,
http://www.freescale.com/files/peripherals_coprocessors/doc/errata/MSEPFR4300MAE4
0_0M92D.htm.
[17]
Paterson D. [ed]: MFR4300 External Reset. [online] Rev.1, 2006-08,
http://www.freescale.com/files/abstract/corporate/newsletter_archives/NL_05-29-07.htm.
[18]
STMicroelectronics: UM0097 User manual: STR71x firmware library. [online] Rev. 1,
2007-01-16, http://www.st.com/mcu/familiesdocs-86.html.
[19]
STMicroelectronics, UM0290 User manual: STR7/STR9 USB developer kit. [online] Rev.
1, 2007-01-16, http://www.st.com/mcu/familiesdocs-86.html.
- 70 -
PĜíloha A – Vývojový diagram hlavního programu
PĜíloha A – Vývojový diagram hlavního programu
- 71 -
PĜíloha B – Vývojový diagram funkce FR_Init
PĜíloha B – Vývojový diagram funkce FR_Init
PĜedpoklad existence globálních configuraþních promČných:
gFr_HWCgf_00 typu Fr_HW_config_TypeDef
gFr_BufferCgf_00 typu Fr_bufffer_config_TypeDef
gFr_LowLevelCgfSet_00 typu Fr_protocol_config_TypeDef
FR_Reset()
Zapnutí Flexray Modulu
(bit EN v MCR registru)
PĜechod do stavu CONFIG
FR_SetPOCCMD(FR_POCR_POCCMD_CONFIG)
FR_EnabledInterrupts()
Nastavení datového segmentu
z konfiguraþních hodnot v gFr_HWCgf_00
(registry MBSSUTR a MBDSR)
FR_SetProtocolConfiguration()
FR_BuffersInit()
FR_SetPOCCMD
(FR_POCR_POCCMD_CONFIG_COMPLETE)
- 72 -
Ukonþení konfigurace
PĜíloha C – Struktura pĜiloženého CD
PĜíloha C – Struktura pĜiloženého CD
../DiplomovaPrace
Obsahuje text diplomové práce ve formátu PDF.
../firmware
AdresáĜ obsahuje zdrojové a zkompilované soubory psaného firmware v jazyce C.
Použité vývojové prostĜedí – IAR Embedded Workbench IDE
../literatura
Obsahuje zdrojové soubory použité online literatury, zmínČné v kapitole 12 a
nČkteré další týkající se dané problematiky.
AdresáĜ
je dále þlenČn
na podadresáĜe:
../literatura/FlexRay – materiály týkající se protokolu Flexray
../literatura/TTP-C – materiály týkající se protokolu TTP/C
../literatura/Byteflight – materiály týkající se protokolu Byteflight
../literatura/TTCAN – materiály týkající se protokolu TTCAN
../literatura/Srov – materiály srovnávající výše zmínČné protokoly
../literatura/Datasheet – katalogové listy nČkterých použitých souþástek
../literatura/firmware – dokumentace k použitým knihovnám
../PC
obsahuje zdrojový a zkompilovaný kód programu pod windows XP. Použité
vývojové prostĜedí – Borland Studio 2006
../plosSpoj
obsahuje schéma a návrhy plošných spojĤ použitého hardware.
- 73 -

Podobné dokumenty

Digitální dosvitové osciloskopy DPO

Digitální dosvitové osciloskopy DPO kanál končí hrotem sondy s novým provedením, které zahrnuje oddělené uzemnění pro zjednodušené připojení ke zkoušenému zařízení. Tato zcela nová sonda zjednodušuje proces připojení k testovanému za...

Více

BMW na pařížském autosalonu 2008. 1. V Bodech.

BMW na pařížském autosalonu 2008. 1. V Bodech. a unikátnímu systému Dynamic Driving Control. Nové BMW řady 7 je prvním sedanem BMW, který používá přední nápravu tvořenou dvojitými příčnými rameny. Závěsy kol jsou hliníkové a vyznačují se schopn...

Více

Otevřít PDF

Otevřít PDF Více informací získáte v oddlení ND a píslušenství na tel.: 241 007 222, na e-mailu: [email protected] nebo na www.bmwbychl.cz

Více