Magistrale danych: LIN | MOTOFAKTOR

Magistrale danych: LIN

Historia stworzenia magistrali LIN zaczyna się w 1999 roku kiedy to konsorcjum firm z branży motoryzacyjnej oraz elektronicznej (BMW, VW, Audi, Volvo, Mercedes-Benz, Volcano Automotive oraz Motorola) przygotowała dokumentację wersji 1.0.

Historia stworzenia magistrali LIN zaczyna się w 1999 roku kiedy to konsorcjum firm z branży motoryzacyjnej oraz elektronicznej (BMW, VW, Audi, Volvo, Mercedes-Benz, Volcano Automotive oraz Motorola) przygotowała dokumentację wersji 1.0. W 2001 Mercedes zaczyna stosować ta magistralę w seryjnie produkowanych pojazdach. W 2003 i 2010 ukazały się następne wersje: 2.0 oraz 2.2A – zdobyły one popularność i są szeroko stosowane obecnie.

Sam skrót LIN pochodzi od Local Interconnect Network co można przetłumaczyć jako: lokalna sieć połączeń. Bardziej opisowo wygląda to tak, że pewne grupy podzespołów są ze sobą skomunikowane. Nad taką grupą czuwa układ nadzorczy – master. I dopiero taki master najczęściej staje się pośrednikiem (bramą – gateway) do/z magistrali CAN.

Magistrala LIN powstała jako podsystem sieci nadrzędnej CAN. Wyznacznikiem powstania nowej magistrali był głównie koszt. Coraz większa liczba czujników i elementów wykonawczych nie wszędzie była bezpośrednio związana z bezpieczeństwem i szybkością działania. Potrzebny był rodzaj komunikacji prostej a zarazem taniej w powielaniu. Znana już magistrala CAN miała duże wymagania sprzętowe, do tego potrzebowała 2 linii sygnałowych. Co istotne z widzenia elektroniki – CAN jako szybka komunikacja potrzebuję dobrego wzorca czasu – rezonatora kwarcowego. A ten element wykonany tak aby działał niezawodnie w samochodzie jest kosztowny (a był jeszcze bardziej w latach 2000). Przyjęto więc zasadę, że trzeba trzymać się blisko części sprzętowej dostępnych już rozwiązań i wykorzystać transmisję znaną z początków mikroprocesorów. Tak też LIN nawiązuje do transmisji szeregowej znanej jako UART. Dodatkowym plusem LIN jest brak licencji związany z implementacją. Podsumowanie różnic między CAN a LIN przy porównaniu kluczowych parametrów wygląda następująco:

Tabela - porównanie LIN-CAN
Ilustracja 1. Porównanie magistral CAN oraz LIN pod względem cech wyróżniających. Źródło: DeltaTech Electronics

 

Dlatego tam gdzie nie trzeba szybko zbierać danych wprowadzono LIN. Magistrala ta najczęściej stosowana jest w:

  • zamkach drzwi i podnoszeniu/opuszczaniu szyb
  • klimatyzacji/ogrzewaniu i oświetleniu wewnętrznym
  • sterowaniu lusterkami i wycieraczkami
  • ustawieniem i podgrzewaniem siedzeń
  • kontrolowaniu pracą wentylatora na chłodnicy
  • regulowaniu obciążenia alternatora i monitorowania akumulatora (tzw. inteligentna klema)

Ciekawym przykładem testowania magistrali LIN jest ustawienie parametrów nietypowego nastawnika jakim jest nowoczesny alternator. Można tego dokonać testerem alternatorów ALTALYZER  z oferty DeltaTech Electronics.

Napięcie na linii LIN

Magistrala LIN korzysta z jednego przewodu do przesyłania sygnału. Odniesieniem rozpoznawania napięć jako sygnału jest potencjał masy oraz napięcie zasilania (akumulatora). Aby zapewnić rozróżnianie napięć odpowiadających logicznemu „1” lub „0” układ odbierający dane ma progi wykrywające „1” jako napięcie >60%, a „0” jako napięcie <40%. Ze strony układu nadawczego progi są wyższe – nadając „1” napięcie musi być >80%, a „0” poniżej 20%. Pamiętać należy, że te wielkości są zależne od aktualnego napięcia zasilania. Tak skonstruowane zakresy napięć zapewniają margines 20% zakresu napięcia.

Stan logicznej „1” nazywany jest jako recesywny i dla napięcia akumulatora 12,5V przyjmuje zakres od 7,5 do 12,5V. Odpowiednio logicznemu „0” odpowiada zakres 0 – 5V i ten stan nosi nazwę dominującego. Cała komunikacja odbywa się na zasadzie master – slave. Czyli master zarządza komunikacją i odpytuje slave. Ta cecha pozwala na zachowanie gwarantowanych opóźnień. Dodatkowo wiadomo kto i kiedy może nadawać. Dlatego nie jest potrzebny arbitraż i wykrywanie kolizji danych.

Automatyczne dostosowanie prędkości

Wspomniana wcześniej cecha odporności LIN na zależności czasowe sprawiła, że ramka danych powinna zawierać informację synchronizującą szybkość transmisji. Ponadto wspieranie usypiania i wybudzania sprawiło, że pakiet danych można podzielić na dwie części.

Pierwsza to informacja o początku transmisji oraz uzgadniająca prędkość. Zawiera ona blok sygnału logicznego „0” przez czas trwania co najmniej 14 bitów. Następnie przez czas 8 bitów jest wysyłany naprzemiennie sygnał „0” i „1” będący polem synchronizacji. Układ odbiornika mierząc czas pomiędzy zmianami stanów określa jaka jest dokładnie prędkość transmisji. Drugą częścią pakietu jest pole identyfikatora. Umożliwia ono wysłanie 64 wartości, swego rodzaju komend do układu podrzędnego. Ostatnie dwa bity są sumą kontrolną identyfikatora. W zależności od identyfikatora układ podrzędny odpowiada stosowną ilością danych:

ilość bajtów odsyłanych przez slave
Ilustracja 2. Ilość bajtów odsyłanych przez slave z zależności od identyfikatora. Źródło: DeltaTech Electronics

 

Po odesłaniu odpowiedzi (2, 4 lub 8) bajtów danych następuje ostatni bajt będący sumą kontrolną odpowiedzi (w wersji 1.x, a w wersji 2.x dodatkowo również pola identyfikatora).

Ramka i jej struktura

Poniżej przedstawiony jest wykres napięć na magistrali LIN podczas transmisji ramki z identyfikatorem [7] (0x07) oraz odpowiedzią slave’a w postaci 2 bajtów [18, 55] (0x12, 0x37).

Przykładowa ramka danych
Ilustracja 3. Przykładowa ramka danych wraz z odpowiedzią od slave. Źródło: DeltaTech Electronics

Z lewej strony przedstawione są kolorowym cieniowaniem zakresy napięć na linii w zakresie 0 – 40% oraz 60 – 100% odpowiadające interpretacji stanów logicznych. Kreskowaniem oznaczono obszar który jest błędny i nie może być zinterpretowany. Przykład dotyczy prędkości transmisji 9600 bitów na sekundę (baud). W tym przypadku transmisja jednego bitu trwa 104μs. Początek ramki to 13 bitów sygnału ‘BREAK’ oraz 1 bit ‘DELIMITER’ oznaczający koniec pola ‘BREAK’. Następnie nadawany jest sygnał ‘SYNC’ potrzebny do synchronizacji prędkości transmisji (autobaud). Po nim następuje wysłanie pola ‘ID’. W tym momencie master kończy wysyłanie danych i slave zaczyna odpowiadać zgodnie z polem ‘ID’. W tym przypadku odsyła 2 bajty danych ‘DATA1’ i ‘DATA2’. Ramka kończy się sumą kontrolną ‘CHECKSUM’ która umożliwia sprawdzenie poprawności przesyłu informacji. Pionowe strzałki oznaczają jak interpretowany jest sygnał – ‘1’ czy ‘0’. Dodatkowo opisane są pojedyncze bity informujące o rozpoczęciu bajtu i jego zakończeniu. Nad wykresem opisano od kogo dane są wysyłane – master czy slave.

Podsumowanie

Istnienie od ponad ćwierćwiecza magistrali LIN pokazuje, że rozwiązania proste w implementacji nie poddają się tak łatwo upływowi czasu. Mało tego, wraz z rosnącymi ilościami czujników i nastawników będzie rosła ilość węzłów LIN. Prognozy pokazują, że ilość wyposażenia obsługiwanego przez LIN będzie proporcjonalnie rosła do ilości urządzeń z CAN.

 

Chcesz być na bieżąco z informacjami? Obserwuj nas w wiadomościach Google:

belka Wiadomości Google