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
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...
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...
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