Protokół LIN – wsparcie systemu CAN

21 kwietnia 2023, 13:00

Choć protokół LIN jest jednym z najprostszych w branży motoryzacyjnej, to jego użyteczność jest nie do przecenienia. Nie jest oczywiście szybki, nie obsługuje wielowątkowości, ale jest za to tani, dlatego może być z powodzeniem wykorzystany do prostych zastosowań. Ten artykuł poświęcamy właśnie rozwojowi tego protokołu.

Protokół LIN
fot. pexels.com

Czym jest protokół LIN?

LIN ( Local Interconnect Network ) to szeregowa magistrala komunikacyjna, która może współpracować z protokołem CAN dzięki tzw. bramkom danych (ang. GateWays ). Jej fizyczny rozmiar ograniczony jest do 40 metrów i wykorzystuje pojedynczy przewód, co przekłada się na mniejszą szybkość niż w przypadku konkurencyjnych systemów (19,2 kB/s). W miarę upływu czasu systemy sterowania elektroniką samochodową stawały się coraz bardziej złożone. Samo w sobie nie byłoby to problemem, ponieważ protokół CAN rozwiązał kwestię komunikacji pomiędzy wszystkimi podsystemami. Jednak coraz większe zróżnicowanie funkcji wymagało zróżnicowanego sprzętu, co windowało koszty realizacji sieci CAN. Dlatego też pojawiła się potrzeba stworzenia taniej sieci szeregowej, która eliminowałaby problem dostępu do magistrali CAN dla każdego komponentu. Kilku producentów samochodów zdało sobie z tego sprawę w tym samym czasie, ale początkowo projektowali swoje sieci według własnych pomysłów. Efektem tej oddzielnej pracy były problemy z kompatybilnością. Dopiero pod koniec lat 90. powstało konsorcjum złożone pięciu samochodowych gigantów (BMW, Volkswagen Group, Audi, Volvo Cars, Mercedes-Benz), które dzięki technologii dostarczonej przez Volcano Automotive Group i Motorolę rozpoczęło prace nad wspólnym, znormalizowanym protokołem, który raz na zawsze położyłby kres problemom z kompatybilnością. Pierwsza w pełni funkcjonalna wersja nowej specyfikacji LIN (LIN w wersji 1.3) ukazała się w listopadzie 2002 r., a po niej wprowadzono – w 2003 r. – aktualnie obowiązującą wersję 2.0, która rozszerzyła możliwości, zapewniając jednocześnie dodatkowe usługi diagnostyczne. Rozwój konsorcjum ukierunkowany był przede wszystkim na ochronę przed kradzieżą, elektronikę reflektorów, kontrolę temperatury w samochodzie i blokadę drzwi.

Jak działa system LIN?

Choć LIN jest najprostszym ze stosowanych obecnie protokołów, należy on do sieci sterowanych czasowo, podobnie jak znacznie bardziej skomplikowany FlexRay. Istotną różnicą jest jednak to, że sieć szeregowa LIN może składać się z maksymalnie 16 węzłów – 15 to slave’y, a master stanowi osobny węzeł. Są one identyfikowane numerami od 0 do 15, przy czym master zawsze oznaczony jest zerem. Komunikacja jest dwukierunkowa, ale zawsze inicjuje ją master, a na każdy komunikat może odpowiedzieć wyłącznie jeden slave. Wyjątkiem jest przypadek, gdy master sam odpowiada na wysłany przez siebie komunikat – w tym przypadku pełni również rolę slave. Sama synchronizacja następuje automatycznie podczas wymiany komunikatów. Filozofia tej konstrukcji pokazuje, dlaczego nie można uniknąć zastosowania LIN nawet dzisiaj. Zarówno master, jak i slave są zazwyczaj mikrokontrolerami, ale mogą być też częścią w specjalnych układach sprzętowych lub ASIC. W tym ostatnim przypadku, wykonanie systemu jest jeszcze tańsze, energooszczędne i zajmuje mniej miejsca. Głównym zamysłem systemu LIN jest ekonomiczność: oszczędne czujniki i mała sieć. Nie stanowi to problemu nawet w bardzo zaawansowanych samochodach, ponieważ sieci LIN mogą być podłączone do CAN jako podsieci. Dzięki tej elastyczności i ekonomiczności protokół LIN jest do dziś niezastąpiony.

Komunikat LIN jest tak prosty jak sam protokół:

  • Pauza synchronizacyjna
  • Synchronizacja
  • Identyfikacja
  • (Interwał odpowiedzi)
  • Pole danych (od 1 do n)
  • Pole kontrolne

Wiadomości te zawarte są w jednej ramce komunikatu od pauzy synchronizacyjnej do pola kontrolnego. Istnieją różne rodzaje ramek, które omawiamy poniżej.

Ramka bezwarunkowa: Jest to tzw. ramka identyfikacyjna zawierająca znaki. Identyfikator mieści się w zakresie od 0 do 59 (0x00 do 0x3b). Normalnie, jeśli w komunikacji nie stwierdzono błędu, ramka ta jest odbierana przez wszystkich odbiorców.

Ramka wywołana zdarzeniem: Może być również rozumiana jako ramka przyspieszająca. Stosuje się ją przede wszystkim w celu uzyskania szybszej odpowiedzi w sieci. LIN jest siecią szeregową, więc przepustowość magistrali jest ograniczona. Kiedy master chce nawiązać komunikację ze slave’m, z którego rzadko korzysta, używa tej ramki, ponieważ zabiera ona stosunkowo mało pasma, a więc nie przeszkadza w częstszej, bardziej ogólnej komunikacji.

Do tego dochodzi fakt, że slave niekoniecznie odpowiada na ten komunikat. Dzieje się tak dlatego, że master otrzymuje odpowiedź na wiadomość z taką ramką tylko wtedy, gdy pierwszy bajt danych nie odpowiada chronionemu identyfikatorowi przypisanemu do ramki wywołanej przez zdarzenie. Slave odpowiada tylko wtedy, jeżeli ta wartość danych uległa zmianie. Żaden ze slave’ów może nie odpowiedzieć na tę ramkę – w takim przypadku reszta ramki jest cicha, a nagłówek ignorowany. Może się również zdarzyć, że na wiadomość odpowie nie jeden, ale kilka slave’ów jednocześnie. Wtedy zadaniem mastera jest rozwiązanie powstałego konfliktu: przed ponownym zażądaniem wiadomości od slave’a pobiera wszystkie takie ramki.

Ramka sporadyczna: W tym przypadku kolizja, o jakiej wspominaliśmy wcześniej, nie może wystąpić. Dzieje się tak dlatego, że master nadaje tę ramkę tylko wtedy, gdy jest ona potrzebna. A dzieje się to wtedy, gdy wiadomo, że sygnał dostarczony w ramce został zaktualizowany. Element emitujący ramkę zawsze dostarcza odpowiedź do nagłówka.

Ramka diagnostyczna: Nazwa ramki mówi sama za siebie. Stanowi ona komunikat sterujący, co oznacza, że zawsze znajdziemy w nim dane diagnostyczne lub konfiguracyjne. Długość komunikatu wynosi zawsze osiem bajtów danych, a identyfikator to albo 60 (0x3C), tzw. master request frame ( ramka żądania od mastera ) albo 61 (0x3D), tzw. slave request frame ( ramka żądania od slave’a ).

Po wygenerowaniu nagłówka wiadomości master czeka na odpowiedź z modułu diagnostycznego, czy powinien wysłać ramkę, czy też magistrala może milczeć. Oczywiście slave’y również posiadają taki moduł diagnostyczny i oczekują odpowiedzi od mastera, wynikającej z dostarczonych przez niego informacji.

Ramka zdefiniowana przez użytkownika: Nazwa ramki jest również wymowna. Może ona przenosić dowolne informacje, które dla nich zdefiniujemy. Ich identyfikator to zawsze 62 (0x3E). Jej nagłówek jest zawsze transmitowany podczas przetwarzania przypisanego jej slotu, czyli pauzy pomiędzy ramkami.

Ramka zarezerwowana: Nie wolno ich używać w linii LIN 2.0. Ich identyfikator to 63 (0x3F).

Urządzenia wymagane do działania LIN

Jak wspomniano wcześniej, sieć LIN jest celowo zaprojektowana tak, aby umożliwić zastosowanie bardzo tanich węzłów sprzętowych. Oznacza to, że jest ona opłacalna, prosta w obsłudze dzięki jednoprzewodowej konstrukcji i zgodności z ISO 9141, ale nadaje się również do specyficznych zadań. Dzisiejsze topologie sieci samochodowych wykorzystują mikrokontrolery z UART ( universal asynchronous transceiver ) lub dedykowany sprzęt LIN. Dane LIN, które generowane są w sieci, przechodzą kompilację w oprogramowaniu. Zadanie to realizuje mikrokontroler, który łączy się z siecią LIN za pomocą przekaźnika LIN. Praca jako węzeł LIN to tylko część możliwości. Sprzęt LIN może działać jako pusty węzeł LIN bez żadnych funkcji. We wcześniejszej części artykułu mówiliśmy, że chociaż LIN jest tanią siecią, to jest ona taktowana czasowo. Rozwiązanie to jest bardziej typowe dla drogich sieci, ponieważ synchronizacja wewnętrznych zegarów zazwyczaj wymaga drogiego sprzętu. Ponieważ węzły slave’ów w sieci LIN i tak muszą być jak najtańsze, producenci starają się zmniejszyć koszt wewnętrznego zegara, stosując do generowania sygnału oscylatory RC zamiast oscylatorów kryształowych (kwarcowych lub ceramicznych). Aby zapewnić stabilność szybkości przesyłania danych, w obrębie ramki LIN wykorzystywane jest pole SYNC w nagłówku.

Zalety sieci LIN

  • Łatwa obsługa
  • Dostępne części, które są tanie w porównaniu do innych sieci
  • Koszt całej sieci jest znacznie niższy niż CAN i inne magistrale komunikacyjne
  • Znacznie niższe wymagania sprzętowe
  • Bardziej niezawodne pojazdy
  • Rozbudowa sieci jest łatwa do realizacji i może być skalowana niemal bez ograniczeń
  • Brak opłaty za licencję na protokół.

Chociaż LIN jest niezwykle łatwy w użyciu, nie może samodzielnie zastąpić całej magistrali CAN. Jednak magistrala LIN jest dobrą alternatywą tam, gdzie istotne są niskie koszty, a prędkość/szerokość pasma nie jest istotna. Zazwyczaj stosuje się je w podsystemach, które nie są krytyczne dla wydajności lub bezpieczeństwa pojazdu.

Komentarze

Komentarz musi być dłuższy niż 5 znaków!

Proszę zaakceptuj regulamin!

Brak komentarzy!