Jste zde

LIN - Local Interconnect Network

LIN je jednoduchou jednovodičovou sběrnicí na bázi klasického sériové asynchronní komunikace UART/RS-232 , vhodnou pro přímou komunikace a přenos dat mezi řídící jednotkou (PC), inteligentním smart senzorem a aktuátorem (například v podobě krokového motoru). Sériový přenos dat umožňuje implementaci na libovolné mikrokontroléru nebo PC. Následující článek popisuje základní parametry a vlastnosti této stále relativně nové sběrnice.

LIN (Local Interconnect Network) je otevřený komunikační protokol primárně určený k propojování lokálních sítí v dopravních prostředcích (automobily, nákladní auta atd.), ale s možností využití v libovolných, pro tuto sběrnici se hodících, aplikacích například v průmyslu. Specifikace zahrnuje jak definici protokolu a fyzickou vrstvu, tak i rozhraní pro vývojové nástroje a aplikační software. LIN umožňuje cenově efektivní propojení a sériovou komunikaci inteligentních (smart) senzorů a aktuátorů v embedded real-time systémech, kde není požadována velká přenosová rychlost, univerzálnost a robustnost složitějších sběrnic, například CAN. Komunikace je založena na SCI (UART) formátu dat, single-master/multi-slaves dialogu, jednovodičové sběrnici (nejčastěji 12V) a časovou synchronizací bez stabilizované časové základny. LIN tedy poskytuje standardní low-cost síť pro komunikaci senzorů, ale cenou například 2krát až 3krát nižší v porovnání s CAN. V případě porovnání s CAN, by LIN by měla být spíše komplement ke CAN a ne ji plně nahradit. To je dáno odlišnými vlastnostmi obou sběrnic.

LIN protokol byl širší veřejnosti prezentován v roce 2000 konsorciem sedmi automobilových partnerů (Audi, BMW, DaimlerChrysler, Volvo, Volkwagen, Motorola a VCT), kteří začali na něm pracovat v roce 1998.

ZÁKLADNÍ CHARAKTERISTIKA

Jak již bylo zmíněno výše, LIN je vhodná pro propojení a komunikaci smart senzorů a aktuátorů v embedded real-time systémech s rozdílnou aplikační doménou jako jsou například průmysl, automobilové systémy apod. Hlavním důvodem využití této sběrnice je hlavně nízká cena a díky využívanému UART formátu dat i možnost jednoduché implementace na libovolném mikrokontroléru.

Charakteristické rysy standardní konfigurace lze shrnout do následujících bodů:

  • Sériový přenos dat využívající formát UART/RS-232
  • Jednovodičová sběrnice
  • Komunikace typu master-slave
  • Propojení až 17 jednotek (1x master, 16x slave)
  • Rychlost komunikace 2400 až 19200 bit/s
  • časová synchronizace bez stabilizované časové základny

Struktura sběrnice

Konfigurace LIN sítě je složená z jedné jednotky master a jedné či několik jednotek slave. Ve standardu LIN 2000 je jich doporučeno použít max. 16. Master vždy iniciuje celý provoz na síti a proto zde není nutné se zabývat otázkou přístupu na síť.

Fyzická vrstva

LIN síť je implementována prostřednictvím pouze 1 vodiče (1-wire network), což velmi snižuje náklady na realizace, naopak však znamená vyšší hodnotu EME (Electromagnetic Emission) v porovnání se skrouceným párem (twisted pair), jak je tomu například u CAN. Z tohoto důvodu musí být zajištěná malá rychlost přeběhu a tím i menší rychlost přenosu. Pro LIN se běžně používá hodnot 2400, 9600 a 19200 bit/s.


 

Sběrnice v podobě jednoho vodiče je napájena přes rezistor z kladného pólu zdroje VBAT, jak je ilustrováno v schéma v obrázku 2. Na sběrnici je napojen budič/přijímač (transceiver) dle standardu ISO 9141. Na sběrnici tedy mohou nastat dvě komplementární logické hodnoty: dominantní logická 0 reprezentována hodnotou napětí blízké GND a logickou 1, která je reprezentována hodnotou napětí blízké VBAT. Sběrnice je zakončena pull-up rezistorem 1k W v master uzlu a rezistorem 30k Ω ve slave uzlu. Dioda v sérii s rezistorem je požadována k prevenci napájení přes sběrnici v případě problému s napájecím zdrojem.

Obr. 1. LIN Fyzická vrstva a definice napěťových hladin

ParametrTypická hodnota
komunikační rychlost2400, 9600, 19200 b/s
napěťová úroveň13,5V (VBAT automobilu)
rychlost přeběhu2V/Ωs
zakončovací rezistor 1kΩ/30kΩ (master/slave)
zakončovací kapacita220pF/2.2 nF (master/slave)
kapacita sběrnice100 .. 150 pF/m

Tab. 1. Přehled typických parametrů

Linková vrstva

LIN protokol je vystavěn na UART (Universal Asynchronous Reciever Trasmiter) protokolu, tzn., že zprávy jsou kódovány po bajtech. Jedinou hlavní odlišností je tzv. synchronizační pauza (SYNC - synchronization break).

Obr. 2. Formát UART protokolu

LIN tedy požaduje centrální master jednotku, která komunikuje s mnoha slave jednotkami. Master se svou pevnou časovou základnu poskytuje datovým signálům přesnou synchronizaci se slave jednotkami a koordinuje přenos na sběrnici. Oba protokoly tedy poskytují komunikaci master-slave iniciovaný masterem. Komunikace probíhá prostřednictvím rámec LIN zprávy ( LIN Message Frame ).

Tento rámec zprávy sítě LIN (LIN Message Frame) se skládá ze dvou menších rámců :

  • Header frame = Command frame - vysílán jednotkou master
  • Response frame = Data frame - vysílán jednotkou master nebo slave

Poznámka: V anglické literatuře se objevují oba názvy.

Obr.2. Master - Slave komunikace - LIN Message Frame

Oba menší rámce jsou oddělené tzv. mezirámcovou mezerou (interframe gap - IG), někdy označována jako inter-frame- response time. Tento mezera má variabilní délku a lze ji popsat jako čas uplynutý od příjmu žádosti (request) slavem od masteru po vyslání odpovědi.

Header frame (Command frame)

Header frame, resp. Command frame má vždy konstantní pevnou délku a je rozdělen na 3 části (dle Tab. 1.):

  • SYNC-break - synchronizační pauza
  • SYNC-field - synchronizační pole
  • ID - identifikátor

1B - synchronizační pauza1B - synchronizační pole1B - identifikátor


6-bit adresové pole2-bit paritní pole

Tab. 2. LIN Command frame = Frame header

Synchronizační pauza (Synchronization break)

SYNC-break v první části LIN zprávy je složen z minimálně 13 bitů nul. Tato pauza je určena k tomu, aby slaves jednotky spolehlivě detekovaly zprávy vyslané na sběrnici. Podle poslední specifikace 2002 je slave jednotkám dovoleno mít vlastní hodinovou frekvenci (baud rate) rozdílnou až o 15 % od masteru. Z toho důvodu je nutné použít minimálně 10 bitů nul, aby byla slave jednotkou detekována pauza.

Když je SYNC-break přijata, LIN softwarová rutina ve slave jednotce musí zkontrolovat, zda všechny následně přijaté bity jsou nuly, aby bylo zajištěno, že pauza byla detekována. Pro master jednotku, který může být implementována na mikrokontroléru s UART, může být problém vytvořit pomocí UART sled 13 bitů nul. Jednou cestou, jak toho dosáhnout, je při generování pauzy snížit baud rate UART vysílače masteru a tak čas potřebný na vyslání 9 bitů v UART je ve slave jednotkách interpretováno jako 13 bitů nul ve správné baud rate.

Synchronizační pole (Synchronization field)

Master inicializuje přenos vysláním header framu, podle které jsou jednotky slave schopny synchronizovat svoje hodiny vždy předtím, než je přijatá nová zpráva. To umožňuje neimplementaci drahého a citlivého rezonátoru nebo oscilátoru v každém slave uzlu a pouze jeden přesný rezonátor je vyžadován pro master jako časová reference. Synchronizace slave jednotek je tedy dána odměřením času od první sestupné hrany (start bit) k páté sestupné hraně (tj 7.bit) synchronizačního bajtu (SYNC-byte) a vydělenou 8, aby byla zjištěna baud rate masteru.

Identifikační pole (Identifier field)

Poslední část zprávy hlavičky je ID-pole. Toto pole označuje následně vysílaný datový rámec (data frame) a je chráněno dvoubitovou paritou. V tomto poli jsou dva bity určené ke specifikaci délky datového rámce (2, 4 nebo 8 bajtů). V nejnovější verzi však je definována i hodnota 0bajtů. Slave uzel je v síti adresován ID-polem. Uzly však nemají přiřazeny fyzické adresy jako je například MAC adresa. Místo toho je předdefinovaný seznam platných ID v paměti. Pak tedy může mít ID rozdílný význam pro různé uzly v síti (jednotky).

Data frame (Response frame)

Datový rámec (data frame), resp. rámec odpovědi (response frame ) je složen z 0 až 8 bajtů. Délka tedy může být různá dle hardwarové a softwarové implementaci každého uzlu. Na je kontrolní součet, který je počítán z vysílaných dat.

0 až 8 B - variabilní délka datového pole 1B - check byte

Tab. 3. LIN Data frame = Response frame

Celý formát zprávy komunikace lze tedy souhrně vyjádřit následujícím obrázku 3.

Obr. 3. Celková podrobná reprezentace zprávy

Možné směry komunikace

Master -> Slave

To popisuje následující obrázek 4. Master vyšle oba rámce, tedy příkazový i datový rámec (Command and Data frame, resp. header and response frame), jedné či více jednotkám slave (multicast, broadcast).

Obr. 4. Směr komunikace master->slave

Slave -> Master

To popisuje následující obrázek 5. Tento směr komunikace nastane v případě, že master vyžaduje odpověï od určité slave jednotky.

Obr. 5. Směr komunikace slave -> master

Slave -> Slave

To popisuje následující obrázek 6. Zde jedna jednotka slave vysílá odpověï další jedné či více slave jednotkám. Tato situace může nastat, když není nutné zpracování dat jednotkou master, tzn. například přímý přenos dat od smart senzoru k aktuátorům.

Obr. 6. Směr komunikace slave -> slave

Sleep command

LIN specifikace podporuje operaci zvanou sleep (spánek). Tu je vhodná v případě, že na sběrnici dochází jen ke sporadické komunikaci a tedy v dlouhých pasážích bez komunikace není nutná plná funkce. Pauze master však může aktivovat sleep mód prostřednictvím řídícího rámce (command frame) s ID = 0x3C s prvním data bajtem rovným 0x00 vyslaného všem jednotkám (broadcast). Slave jednotky se po tomto příkazu přepnou do nízkopříkonového (low-power) módu až do doby příchodu budícího (wakeup) signálu vyslaného na sběrnici nebo samotnou jednotkou slave.

LIN - praktická realizace

Transreceivers

LIN transceivery jsou dnes konstruovány jako fyzický interface mezi mikrokontrolérem a LIN sběrnicí.

Protože LIN protokol využívá jednovodičové fyzické sběrnice, transceiver potřebuje řízení emitovaného množství elektromagnetického rušení. To je uděláno řízením rychlosti přeběhu (slew-rate) signálů vysílaných na sběrnici. Transceivery obvykle podporují standby/sleep mód z důvodu primárního určení pro napájení z baterie. Probudit lze pomocí sběrnice (příkaz sleep) nebo signál wake z mikrokontroléru.

Obr. 7. LIN transceiver Motorola MC33399

Mikrokontroléry

Jak již bylo zmíněno dříve, LIN využívá UART protokol pro vysílání a příjem dat na sběrnici. To je výhodné pro implementaci LIN na libovolném mikrokontroleru buï s využítím integrované hardwarové UART periferie nebo softwarové emulaci UART. Nutným modulem pro implementaci LIN je časovač (timer).

Na trhu se však již objevují mikrokontroléry obsahující integrovaný LIN transceiver (například mikrokontroléry firmy Microchip PIC16C432, PIC16C433) nebo mají rozšířené UART rozhraní pro implementaci LIN (například mikrokontroléry Motorola 68HC908EY16).

Porovnání s CAN

I když porovnávání není úplně namístě, je vhodné porovnat tyto dva standardy, protože se často využívají ve společné kombinaci. Zatímco LIN je primárně určena k tzv. low-end aplikacím, kde jsou vyžadovány nízké náklady na realizaci, CAN se využívá díky své robustnosti, výkonosti a univerzálnosti, které nejsou od LIN očekávány.

Oblasti a příklady použití

Již dle úvodu tohoto článku lze odhadnout, že hlavním odvětvím využívajícím LIN je automobilový průmysl. Na následujícím obrázku je příklad využití LIN pro ovládání zařízení v interiéru vozu Seat. Zatímco CAN v autě zajišťuje rychlý a spolehlivý přenos dat pro důležitá zařízení (například jednotky ABS - AntiBlock System), LIN se využívá pro méně důležité jednotky nevyžadující rychlý přenos dat (například informace o hladině oleje, teplotě motoru, řízení el. otevírání oken, klimatizace apod.).

ZÁVěR

S vývojem kompaktních levných mikrokontrolérů, které obsahují oscilátor na chipu, a rozšířením technologií MEMS, vznikají i sběrnice s cílem levné komunikace mezi inteligentními (smart) senzory a různými aktuátory. Výhodou je, že LIN standard nepožaduje plnou implementaci celého protokolu. Implementace je volná a záleží jen na tom, jaké funkce jsou požadovány. Obecná budoucnost takových to jednoduchým komunikačních protokolů na princip sériového přenosu, jako je LIN, je jistě pozitivní, z důvodu další robotizace spotřebních zařízení i průmyslu.


Odkazy :

[1] Anders Rylander & Erik Wallin : LIN – Local Interconnect Network – for use as sub-bus in Volvo trucks, Göteborg 2003.
[2] H. Kopetz, W. Elmenreich, C. Mack: A Comparison of LIN and TTP/A. Wien 4/2000.
[3] Dr.-Ing. J. Will Specks, Antal Rajnák : LIN - Protocol, Development Tools, and Software Interfaces for Local Interconnect Networks in Vehicles. Baden-baden 10/2000

    Antonín Vojáček
    vojaceka1 @seznam.cz
Hodnocení článku: