Interfejsy CAN i LIN – zastosowania, część 2 · 2019-10-23 · troli poprawności...
Transcript of Interfejsy CAN i LIN – zastosowania, część 2 · 2019-10-23 · troli poprawności...
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.
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.
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ą.
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.