Interfejsy CAN i LIN – zastosowania, część 2 · 2019-10-23 · troli poprawności...

1

Transcript of Interfejsy CAN i LIN – zastosowania, część 2 · 2019-10-23 · troli poprawności...

Page 1: Interfejsy CAN i LIN – zastosowania, część 2 · 2019-10-23 · troli poprawności przesyłanych danych. W pole to wpisywa-ny jest najmłodszy bajt wyni-ku zanegowanej sumy wszyst-kich

Elektronika Praktyczna 4/200558

S P R Z Ę T

Interfejsy CAN i LIN – zastosowania, część 2Obsługa błędów

W protokole CAN pod poję-ciem błędu rozumie się jedno z poniższych zdarzeń:

• niezgodność danych – nadawca wykrył różnicę pomiędzy dany-mi nadawanymi a obecnymi na magistrali (po fazie arbitrażu);

• błąd potwierdzenia – ramka nie została potwierdzona;

• błąd synchronizacji – więcej niż pięć jednakowych bitów zostało odebranych;

• błąd CRC – odebrane CRC nie zgadza się z wyliczonym;

• błąd formatu – jedno z ustalo-nych pól ramki (CRC, ACK, EOF) nie ma oczekiwanego formatu.Błąd może zostać zgłoszony po-

przez wysłanie ramki błędu przez dowolne urządzenie podłączone do magistrali. Po zgłoszeniu błędu ram-ka powinna zostać retransmitowana o ile wcześniej nie zostanie rozpo-częta transmisja innej ramki. Każde urządzenie podłączone do magistrali wyposażone jest w dwa liczniki:

• licznik błędów odbioru (TEC) – zwiększany przy wykryciu błędu przy nadawaniu ramki, zmniejszany przy poprawnym zakończeniu transmisji ramki;

• licznik błędów nadawania (REC) – zwiększany przy wykryciu błędu przy odbiorze ramki, zmniejszany przy poprawnym odbiorze ramki.W związku z tymi licznikami

urządzenie może znajdować się w jednym z trzech stanów detekcji błędów (rys. 3):

• kiedy oba liczniki zawierają war-tości pomiędzy 0 a 127, urzą-dzenie znajduje się w stanie Er-ror Active. W stanie tym może nadawać i odbierać informacje z

W drugiej części artykułu omawiamy kolejne zagadnienia teoretyczne związane z działaniem urządzeń wykorzystujących

magistrale komunikacyjne CANbus oraz LIN, przedstawiamy także proste przykłady ich aplikacji.

magistrali i sygnalizować wystą-pienia błędu na magistrali.

• w przypadku osiągnięcia przez jeden lub oba liczniki wartości pomiędzy 128 a 255, urządze-nie znajduje się w stanie Error Passive. W tym stanie urządze-nie może nadawać i odbierać informacje z magistrali ale nie może sygnalizować wystąpienia błędu na magistrali.

• kiedy jeden z liczników osią-gnie wartość powyżej 255 (nastą-pi przepełnienie licznika) urzą-dzenie przechodzi do stanu Bus off. W tym stanie urządzenie jest

odłączone od magistra-li. Może ono przejść do stanu Error Active jeśli poprawnie wykryje 128 bloków po 11 bitów R.

Wskazówki praktyczneTypowy współcze-

sny samochód średniej i wyższej klasy może za-wierać dwie niezależne magistrale CAN przesy-

łające dane z różnymi prędkościami:• CAN low-speed – pracuje z

prędkością mniejszą niż 125 kb/s i wykorzystywany jest do ob-sługi elementów nie wymagają-cych szybkiej komunikacji (ta-kich jak sterowanie siedzeniami, oknami, lusterkami itp.). Urzą-dzenia dołączone do tej magi-strali obsługują tryb oszczędno-ści energii (sleep mode), pozwa-lający oszczędne wykorzystywa-nie akumulatora przed urucho-mieniem zapłonu.

• CAN high speed – pracujący z prędkością do 1 Mb/s jest wyko-rzystywany do aplikacji wyma-gających obsługi w czasie rze-czywistym, takie jak zarządzanie silnikiem, systemem hamulco-wym, systemem kierowniczym.Na rys. 4 przedstawiono przy-

kłady wykorzystania magistrali CAN w instalacji drzwi samocho-du średniej i wyższej klasy (wy-posażonych w centralny zamek, dodatkowe oświetlenie, sterowanie lusterkami zewnętrznymi).Rys. 3.

Rys. 4.

Page 2: Interfejsy CAN i LIN – zastosowania, część 2 · 2019-10-23 · troli poprawności przesyłanych danych. W pole to wpisywa-ny jest najmłodszy bajt wyni-ku zanegowanej sumy wszyst-kich

Elektronika Praktyczna 4/200560

S P R Z Ę T

Przedstawiony w przykładach 8-bitowy mikrokontroler ST72561 firmy STMicroelectronics wypo-sażono w sprzętowe mechanizmy obsługi magistrali CAN w wersji 2.0B active (tzw. beCAN). Do ob-sługi magistrali w procesorze do-stępne są:

• bufory sprzętowe używane do przechowywania danych nada-wanych i odbieranych (rodzaj kolejki FIFO);

• filtry określające grupy akcepto-walnych pakietów;

• układ nadawczy z programo-walną szybkością transmisji (do 1 Mb/s);

• dedykowane przerwanie do po-trzeb magistrali CAN;

• tryby pracy z oszczędnością energii.Odbiór i nadawanie danych z

użyciem wspomnianego proceso-ra realizowane jest automatycznie po odpowiednim skonfigurowa-niu procesora (zwłaszcza określe-niu miejsca położenia buforów do przechowywania danych). W bar-dziej zaawansowanych systemach można posłużyć się procesorem z rdzeniem 16-bitowym z wbudowa-nymi mechanizmami obsługi ma-gistrali CAN (np. ST92F150xx czy ST10F269x firmy STM). Do sprzę-żenia linii magistrali CAN z linia-mi kontrolera można zastosować:

• układ L9669 - nadajnik/odbior-nik magistrali CAN;

• układ L4969 – regulator napię-cia z układem nadajnika/odbior-nika magistrali CAN (w wer-sji low-speed) z wbudowanym układem watchdog.

Do sterowania elementów wy-konawczych można wykorzystać:

• układ L9950 – sterownik serwo-mechanizmów lusterek zewnętrz-nych, siłowników centralnego zamka i oświetlenia drzwi.

• układ L9951 – sterownik si-łowników centralnego zamka i oświetlenia drzwi.

Protokół LIN (Local Interconnect Network)

Protokół LIN stanowi tańszą al-ternatywę protoko-łu CAN. Wyma-ga użycia pojedyn-czego przewodu do transmisji da-nych za co płaci się niższymi pręd-kościami transmisji (do 20 kb/s). Magi-strala LIN wykorzy-stywana jest jako podsieć w e lek-tronicznych syste-mach sterowania.

Podstawowe pa-rametry protokołu:

• magistrala sze-r egowa a syn -chroniczna jed-noprzewodowa;

• dane transmito-wane w kodzie NRZ (Non Re-turn to Zero). Poziomy logicz-n e p o d o b n i e jak w CAN na-zywane są tu dominant (0) i recessive (1). W

dalszej części niniejszego opra-cowania stosowane będą ozna-czenia skrótowe (odp. D i R);

• podłączenia do magistrali typu iloczyn na drucie (wired-AND) co powoduje, że spoczynko-wym stanem magistrali jest stan R, natomiast w celu zmia-ny stanu magistrali na D wy-starczy zmiana stanu na linii w jednym z podłączonych do niej urządzeń;

• każde urządzenie podłączone do magistrali dosynchronizowu-je się do ciągu synchronizują-cego wysyłanego w nagłówku ramki wysyłanej przez urządze-nie inicjujące transmisję;

• architektura typu Master-Sla-ve. Do magistrali jest dołączo-ne jedno urządzenie nadrzęd-ne (Master), mogące inicjować transmisję oraz wiele urządzeń podrzędnych (Slave) mogących odbierać i wysyłać dane na żą-danie urządzenia nadrzędnego.

• transmisje na magistrali są prze-syłane w postaci ramek. Każ-da ramka składa się z nagłów-ka (zawierającego ciągi synchro-nizujące, identyfikator wiadomo-ści) wysyłanego zawsze przez urządzenie nadrzędne oraz z właściwych danych zakończo-nych sumą kontrolną wysyła-

Rys. 5.

Rys. 6.

Rys. 7.

Page 3: Interfejsy CAN i LIN – zastosowania, część 2 · 2019-10-23 · troli poprawności przesyłanych danych. W pole to wpisywa-ny jest najmłodszy bajt wyni-ku zanegowanej sumy wszyst-kich

Elektronika Praktyczna 4/200562

S P R Z Ę T

Na rys. 8 przedstawiono sposób przebiegu transmisji na magistrali. W protokole nie zdefiniowano me-chanizmu potwierdzenia transmisji ani zgłaszania błędów na magistrali.

W celu osiągnięcia bardzo ni-skiego poboru mocy, jest możliwe „uśpienie” urządzeń dołączonych do magistrali. W tym celu mo-duł Master wysyła ramkę „usypia-jącą”. W stanie uśpienia na magi-strali utrzymywany jest stan wy-soki. W celu obudzenia magistrali dowolny moduł może przesłać sy-gnał budzący (chwilowe wymusze-nie na magistrali LIN stanu D).

Wskazówki praktyczneProstota protokołu umożliwia

wykorzystanie do jego realizacji ogólnie dostępnych układów. Naj-prostszym i najtańszym sposobem zrealizowania modułu jest użycie układu transceivera magistrali LIN (np. L9638 firmy STM) do sprzę-żenia poziomów magistrali LIN 0, +12 V z poziomami cyfrowymi w połączeniu z 8-bitowym mikrokon-trolerem wyposażonym w sprzęto-wą obsługę magistrali szeregowej (UART, SCI, LINSCI) oraz elemen-tami sterującymi w postaci ukła-dów półmostków i mniej lub bar-dziej specjalizowanych sterowni-ków elementów wykonawczych.

Największy problem stanowi im-plementacja protokołu w mikropro-cesorach ogólnego przeznaczenia z wykorzystaniem standardowych sze-regowych interfejsów asynchronicz-nych. Większość elementów proto-kołu (związanych z synchronizacją, detekcją i analizą nagłówka obsłu-

Rys. 8.

Rys. 9.

nych przez urządzenie nadrzęd-ne lub przez urządzenie pod-rzędne na żądanie nadrzędnego.

• bezpośrednia komunikacja po-między modułami Slave nie jest możliwa.

• komunikacja na magistrali po-dobnie jak w protokole CAN zorientowana jest obiektowo. Każda ramka zawiera identy-fikator określający przesyła-ne dane. Każde urządzenie ma określoną grupę akceptowal-nych identyfikatorów i pobie-ra tylko te, które są do niego przeznaczone.

• zaimplementowane mechanizmy sum kontrolnych i kontroli pa-rzystości gwarantują bezpie-czeństwo i detekcję błędów.Na rys. 5 przedstawiono spo-

sób dołączenia magistrali LIN do systemu z CANbusem.

W protokole LIN obsługiwany jest jeden format ramki. Składa się ona z dwóch części:

• nagłówka – wysyłanego tylko przez Mastera. Część ta zawiera dane synchronizujące, identyfi-kator przesyłanej wiadomości.

• danych – wysyłanego przez Mastera lub inny moduł na żą-danie (podane w nagłówku bie-żącej ramki).Opis budowy ramki w protoko-

le LIM przedstawiono na rys. 6. Na rys. 7 przedstawiono budowę i rolę poszczególnych pól ramki:

• Sygnał BREAK – wykorzysty-wany do sygnalizacji rozpoczęcia transmisji nowej ramki.

• Pole synchronizacji – wykorzy-stywane jest do zsynchronizo-wania wszystkich urządzeń pod-łączonych do magistrali LIN.

• Pole identyfikatora – zawie-ra długość danych, identyfika-tor oraz własną sumę kontrol-ną. Możliwe jest określenie do 64 identyfikatorów.

• Pole sumy kontrolnej służy kon-troli poprawności przesyłanych danych. W pole to wpisywa-

ny jest najmłodszy bajt wyni-ku zanegowanej sumy wszyst-kich bajtów danych.

Przebieg transmisjiKażdą transmisję można po-

dzielić na dwie fazy:• Fazę inicjacji transmisji, pod-

czas której urządzenie nad-rzędne (Master) wysyła nagłó-wek wiadomości zawierający dane do synchronizacji wszyst-kich modułów podłączonych do magistrali oraz identyfikator określający grupę wiadomość. W tej fazie każdy z modułów Slave podłączonych do magi-strali dosynchronizowuje się do przesyłanej ramki. Następ-nie każdy Slave analizuje prze-syłany identyfikator i sprawdza czy należy on do grupy akcep-towalnych przez dany moduł.

• Fazę transmisji danych, podczas której:- Master przesyła dane/polece-

nia wraz z sumą kontrolną do modułu/modułów Slave;

- Slave przesyła do Mastera żą-dane dane wraz z sumą kon-trolną.

Page 4: Interfejsy CAN i LIN – zastosowania, część 2 · 2019-10-23 · troli poprawności przesyłanych danych. W pole to wpisywa-ny jest najmłodszy bajt wyni-ku zanegowanej sumy wszyst-kich

63Elektronika Praktyczna 4/2005

S P R Z Ę T

gą trybu oszczędzania energii) musi zostać zrealizowana programowo. Alternatywą dla tego rozwiązania może być wykorzystanie mikrokon-trolera z wbudowanym rozszerzo-nym interfejsem szeregowym. Przy-kładem takiego mikrokontrolera jest 8-mio bitowy ST72561 firmy STM. Układ ten posiada rozszerzony sze-regowy interfejs asynchroniczny LINSCI posiadający sprzętowe me-chanizmy wspomagające współpracę z magistralą LIN. Dodatkowo układ ten posiada wbudowane sprzęto-we mechanizmy obsługi magistrali CAN co czyni go dobrym kandy-datem na moduł Mastera magistrali LIN stanowiącego pomost pomiędzy magistralą CAN i LIN.

Na rys. 9 przedstawiono porów-nanie rozwiązania modułu składowe-go magistrali LIN bazującego na wy-korzystaniu standardowego szeregowe-go interfejsu asynchronicznego i mo-dułu rozwiązanego przy wykorzysta-niu interfejsu rozszerzonego LINSCI.

Rozwiązanie klasyczne:• Obsługa protokołu (analiza na-

główka wiadomości, synchroni-zacja, obsługa trybów oszczędno-ści energii) w większości musi być realizowana programowo.

• Ograniczenie długości sygna-łu BREAK do 11 bitów – brak

Rys. 10.

możliwości realizacji modułu Master dla magistrali LIN (wy-magającego możliwość generacji 13-to bitowego sygnału BREAK).Rozwiązanie bazujące na LIN-

SCI (np. mikrokontroler ST72561, ST7MCxx)

• Możliwość generacji sygnału BREAK o długości 11 lub 13 bitów, co umożliwia wykorzy-stanie modułu w roli Mastera magistrali LIN.

• Automatyczny odbiór i analiza nagłówka.

• Automatyczna synchronizacja do pola synchronizacji w na-główku wiadomości.

• Obsługa procedur wchodzenia i wychodzenia do/z trybów oszczę-dzania. energii (możliwość wy-budzania modułu po wykryciu opadającego zbocza na lini Rx).

CAN i LIN w praktyceWe współczesnych instalacjach

samochodowych średniej i wyższej klasy najczęściej spotyka się roz-wiązanie łączące interfejs CAN jako główną magistralę sterującą bezpo-średnio elementy wymagające ob-sługi w czasie rzeczywistym i pod-sieci bazujące na standardzie LIN.

Na rys. 10 przedstawiono przy-kład kompleksowego rozwiązania sterowania elementami wykonaw-czymi drzwi samochodowych wyko-rzystującego magistrale CAN i LIN.

Na podstawie materiałów firmy STM opracował:Artur Iwanicki, STM

Dodatkowe informacje......są dostępne na stronach:http://www.stmcu.com orazhttp://www.lin-subbus.org.