Járműkommunikáció
A LIN története és alapvetései
A LIN-buszt azért fejlesztették ki, mert a CAN kommunikáció kiépítése bizonyos alkatrészek esetében nem kifizetődő, ugyanis nem használják ki a CAN nyújtotta nagy sávszélességet és adatbiztonságot. Ilyen kis számítási teljesítményű alkatrész lehet egy elektromos ablakemelő vagy egy ülésállítás. A LIN-funkció kis költséggel implementálható a vezérlőkbe, csak egy szabványos, univerzális soros aszinkron adó/vevő egységre (UART) van szükség a legegyszerűbb 8 bit-es mikrokontroller mellé. A LIN-hálózat költsége fele a CAN-nek.
A mai modern hálózatok minden rendszerhez az igényekhez tartozó költséghatékony megoldást alkalmazzák, ezért a LIN-hálózatokat a periféria-rendszerekbe építik be, az erőátvitelben a CAN-kommunikáció a gyakori, a nagy sávszélességű rendszerekben, például az aktív felfüggesztésekben a Flexray-hálózat terjedt el.
A LIN-rendszerekben a CAN-nel ellentétben egy master (mester) és egy vagy több slave (szolga) vezérlő van jelen, tehát egy hierarchikus hálózatként működik. A szolga vezérlők előállítási költségének csökkentése érdekében nem szükséges pontos órajelűnek lenniük, cserébe viszont az üzenetküldés során a mestervezérlőnek kell küldenie olyan jeleket, melyek alapján a szolgák szinkronizálni tudják magukat a mesterhez.
Egy mesterhez maximum 15 szolga kapcsolható, az adatátviteli sebesség kicsi, 1-20 kbit/s közötti. Szintén költségcsökkentő, hogy a kommunikációhoz csak 1 vezetékre van szükség.
A LIN-üzenetek felépítése
Az üzenetek felépítése az alábbi ábrán látható.
Az üzenet fejlécében foglal helyet egy elválasztó mező, egy szinkronizációs mező és a védett azonosító. A válasz tartományban található a küldeni kívánt adat és az üzenet végén található az ellenőrző összeg, mellyel következtetni lehet a beolvasott üzenet tartalmának helyességére és ki lehet zárni az adatvesztés és a hibás értelmezést. Minden üzenetrészre érvénye, hogy UART üzenetek formájában továbbítódik, kivéve az elválasztó mező, mely szándékosan megsérti az UART protokollt, így jelezve, hogy üzenetküldés indul a hálózaton. A protokoll megsértése azt jelenti, hogy a mester 13-26 domináns, majd 1-14 recesszív bitet küld. Azért kell ezt a műveletet végrehajtani, mert a LIN hálózatban olyan szolgák is lehetnek, melyeknek az órajelük 14%-kal eltér az ideálistól, és nekik is szükséges detektálni az üzenetküldés kezdetét. Azért vannak ilyen eltérések, mert a pontatlan órajel megengedése nagymértékben csökkenti az előállítási költséget.
Szintén az órajel-eltérések miatt van szükség a szinkronizációra, hogy a szolgák felvegyék a mester vezérlő órajeléhez tartozó bitidőket. A 8 bites mezőt felváltva 1-esek és 0-k töltik ki, így a szolgák a lefutó éleket figyelve tudják meghatározni a bitidőt.
Az azonosító részben egy 6 bites azonosító és 2 paritás bit található. A paritás bitek az azonosítóból számíthatók ki, ezért szokás védett azonosítónak nevezni ezt a mezőt (PID – protected ID).
Az eddigi mezőt minden esetben a mester küldi (hiszen csak ő tud szinkronizálni, a többiek hozzá igazodnak). A válasz szakaszt küldheti a mester vagy valamely szolga vezérlő is. Az adatmező 1-8 UART üzenetből állhat, tehát a LIN esetében maximum 8 byte adat lehet egy üzenetben. Az adatokat a hozzájuk tartozó ellenőrzőösszeg követi. A LIN1.x és a 60-63-as azonosítóval rendelkező LIN2.x üzenettípusok és a 0-59-es LIN2.x üzenetek checksum-számítási módja eltér egymástól, de mindegyik számítás feladata, hogy a vezérlők megbizonyosodjanak az üzenet tartalmának helyességéről.