Interfejs CAN - podstawy. cz. 3

Interfejs CAN - podstawy. cz. 3
Pobierz PDF Download icon

Elektronizacja naszego otoczenia wymusza powstawanie coraz to nowych metod komunikacji pomiędzy urządzeniami je tworzącymi. Interfejs CAN był odpowiedzią na wymogi systemów elektronicznych stosowanych w różnego rodzaju pojazdach, w tym także samochodach. Dziś nie ma pojazdu bez CAN-a, w ten interfejs są wyposażane nawet ciągniki rolnicze. Powoli nadchodzi era nowego, szybszego od CAN interfejsu FlexRay, ale CAN jeszcze długo będzie "żył" w różnorodnych aplikacjach.

W interfejsie CAN zastosowano szereg mechanizmów odpowiedzialnych za wykrywanie błędów. Są to:

  1. Sprawdzanie wartości bitów wysyłanych na magistralę
    Każdy węzeł monitoruje magistralę CAN w celu odbierania wiadomości nadanych przez inne węzły, jak również w celu wykrywania kolizji podczas nadawania przez siebie wiadomości. Mechanizm ten może posłużyć również do sprawdzania poprawności kodowania wysyłanej wiadomości. Gdy węzeł wystawia na magistrali bit dominujący, a odczytuje bit recesywny (lub odwrotnie - wystawia bit recesywny, a odczytuje dominujący), generowany jest błąd.
  2. Sprawdzanie poprawności formatu wiadomości
    Każda ramka ma określony format, co oznacza, że wewnątrz niej muszą występować określone w specyfikacji pola. Wartość niektórych pól również jest z góry ustalona. Jeśli format ramki będzie niezgodny ze specyfikacją, wygenerowany zostanie błąd.
  3. Suma kontrolna (CRC)
    Węzeł przed wysłaniem wiadomości oblicza dla niej sumę kontrolną, której wartość umieszczana jest w dedykowanym polu ramki. Węzeł odbierają ponownie oblicza sumę kontrolną i sprawdza czy jej wartość zgadza się z wartością odczytaną z pola CRC wiadomości. Jeśli wartości są różne, generowany jest błąd.
  4. Potwierdzenie otrzymania wiadomości
    Węzeł wysyłający wiadomość może oczekiwać na potwierdzenie otrzymania wiadomości od co najmniej jednego węzła, który wiadomość odebrał. Jeśli odpowiedź nie nadejdzie, wygenerowany zostanie błąd.
  5. Błąd wielokrotności tej samej wartości bitu
    Jeśli w ramce wykryte zostanie występowanie więcej niż pięciu kolejnych bitów o tej same wartości, wygenerowany zostanie błąd.

CAN - warstwa aplikacji

Brak zdefiniowanej warstwy siódmej stwarza możliwość jej implementacji zgodnie z indywidualnymi zapotrzebowaniami i konkretnymi zastosowaniami danej sieci. Istnieje obecnie wiele gotowych protokołów wykorzystujących warstwę aplikacyjną standardu CAN. Główne z nich wymieniono w tabeli 2. Znajdują one zastosowanie w różnorodnych dziedzinach przemysłu.

Metody budowy węzłów CAN

Tab. 2. Protokoły warstwy 7 oparte na standardzie CAN

Na przestrzeni lat wykształciły się trzy różne koncepcje budowy autonomicznego węzła transmisyjnego sieci CAN. Każda koncepcja wymaga zastosowania co najmniej trzech podstawowych modułów funkcjonalnych: układu mikrokontrolera, kontrolera CAN i transceivera (układu nadawczo-odbiorczego) CAN. Jednocześnie każda z tych koncepcji różni się liczbą wymaganych układów scalonych. Poniżej przedstawiono podstawową konstrukcję węzła CAN według każdej z koncepcji:

  • Koncepcja nr 1 (trzy układy scalone): mikrokontroler z zewnętrznym kontrolerem CAN i zewnętrznym transceiverem CAN,
  • Koncepcja nr 2 (dwa układy scalone): mikrokontroler z wbudowanym kontrolerem CAN i zewnętrznym transceiverem CAN,
  • Koncepcja nr 3 (jeden układ scalony): mikrokontroler z wbudowanym kontrolerem CAN i wbudowanym transceiverem CAN.

Graficzne przedstawienie tych koncepcji zilustrowano na rysunku 9. W ramach każdego schematu pokazano wzajemne relacje pomiędzy wewnętrznymi modułami funkcjonalnymi węzła, jak również relacje pomiędzy węzłem i jego otoczeniem. Wewnątrz węzła znajdują się wymienione wcześniej elementy (mikrokontroler, kontroler CAN i transceiver CAN), natomiast w odniesieniu do środowiska zewnętrznego węzeł CAN powinien posiadać funkcjonalność komunikowania się w standardzie CAN i zarazem komunikowania się z zewnętrznymi układami/urządzeniami peryferyjnymi np. czujnikami, układami pamięci, obwodami sterowania, modułami wykonawczymi itp.

Chronologicznie najnowszą z metod budowy węzłów CAN przedstawia koncepcja nr 3. Firma NXP Semiconductors, wychodząc naprzeciw oczekiwaniom odnośnie coraz większej miniaturyzacji układów scalonych, coraz większej integracji bloków funkcjonalnych w układach scalonych, a jednocześnie coraz mniejszemu zużyciu prądu, opracowała mikrokontrolery, które oprócz klasycznych zasobów spotykanych w większości współczesnych mikrokontrolerów, posiadają zintegrowany zarówno kontroler CAN i transceiver CAN. Są to jedyne obecne na rynku układy o takiej funkcjonalności. Opracowana rodzina mikrokontrolerów firmy NXP to układy noszące nazwę LPC11C22/24. Są to mikrokontrolery bazujące na rdzeniu ARM Cortex-M0, który może pracować z częstotliwością taktowania do 50 MHz włącznie. Układ został wyposażony w pamięć (Flash do 32 kB, SRAM do 8 kB), peryferia cyfrowe (liczniki, linie I/O, Watchdog, moduł zarządzania energią, blok zegarowy), peryferia analogowe (przetwornik A/C) oraz interfejsy komunikacyjne SPI, I²C, UART i CAN (wspomniany kontroler i transceiver). Dodatkowo mikrokontrolery są wyposażone w pamięć ROM, w której przechowywane są sterowniki dla warstwy 7 CAN - protokołu CANopen. Dzięki takiej konstrukcji układów LPC11C22/24, podstawowy węzeł CAN może składać się z zaledwie jednego układu scalonego, którym jest przedstawiony mikrokontroler.

Rysunek 9. Trzy różne koncepcje budowy węzła CAN

Starszą, jednak najpowszechniej spotykaną obecnie metodę budowy węzłów CAN przedstawia koncepcja nr 2. Według niej węzeł CAN jest zbudowany z dwóch układów scalonych: mikrokontrolera posiadającego zintegrowany kontroler CAN i zewnętrznego transceivera CAN. Ze względu na popularność tego rozwiązania, na rynku obecnych jest wiele mikrokontrolerów z wbudowanym kontrolerem CAN, jak również transceiverów CAN. Do pierwszej grupy można zaliczyć między innymi mikrokontrolery tak popularnych firm jak Atmel (AT90CAN, AT32UC3C, SAM7X/XC), Microchip (PIC18, PIC24, PIC32, dsPIC30, dsPIC33), Freescale (Coldfire, Kinetis), Infineon (XMC4000) i wiele innych. Transceivery CAN to również popularne układy, które produkowane są między innymi przez firmy Microchip (MCP2551), NXP (TJA1040), Texas Instruments (SN65HVD230), Maxim (MAX3058).

Najstarszą metodą budowy węzłów CAN jest koncepcja nr 1. Przewiduje ona wykorzystanie trzech układów scalonych: mikrokontrolera, kontrolera CAN oraz transceivera CAN. Stosowany w tym wariancie mikrokontroler nie musi spełniać żadnych specjalnych kryteriów. Może być to układ każdego producenta, o dowolnej architekturze, wydajności, zasobach wewnętrznych i innych parametrach użytkowych. Taka dowolność jest możliwa, gdyż komunikacja między mikrokontrolerem a kontrolerem CAN zachodzi przy wykorzystaniu linii ogólnego przeznaczenia (interfejs równoległy) lub interfejsu szeregowego (np. SPI), który jeśli nie jest obecny fizycznie w mikrokontrolerze, może zostać w łatwy sposób zaimplementowany programowo. Jeśli chodzi o kontroler CAN, to do najchętniej wykorzystywanych przez projektantów systemów należą SJA1000 firmy NXP oraz MCP2515 firmy Microchip. Trzeci wymagany układ, a więc transceiver CAN, to układ o takiej samej konstrukcji jak w poprzednim scenariuszu (koncepcja nr 2), więc w tym wariancie może zostać z powodzeniem zastosowany jeden z wcześniej wymienionych układów.

Podsumowanie

W ramach podsumowania warto wymienić największe zalety technologii CAN. Są to:

  • łatwości implementacji - zdefiniowane przez CAN warstwy nr 1 i 2 modelu OSI/ ISO są zaimplementowane w układach scalonych odpowiedzialnych za realizację transmisji zgodnej z tym standardem. Deweloper oprogramowania musi napisać tylko API (Application Programming Interface) umożliwiające konfigurację parametrów pracy (filtry, maski, prędkość transmisji), wysyłanie wiadomości i odbieranie wiadomości,
  • niski koszt realizacji - zbudowanie węzła CAN możliwe jest już za pomocą jednego, dwóch lub trzech układów scalonych (w zależności od przyjętej koncepcji budowy węzła CAN), natomiast medium transmisyjnym może być dowolny kabel dwużyłowy zakończony z każdej strony rezystorem terminującym 120 Ohm,
  • niezawodność - transmisję CAN cechuje:
    • odporność na zakłócenia uzyskana dzięki reprezentowaniu bitów wiadomości za pomocą sygnału różnicowego,
    • wysoka wykrywalność błędów dzięki stosowaniu licznych mechanizmów detekcji błędów.
  • duży zasięg transmisji - do 10 km.
  • wysoka prędkość transmisji (do 1 Mbit/s) pozwalająca na komunikację w czasie zbliżonym do rzeczywistego.
  • elastyczność stosowania - model komunikacji multi-master pozwala wykorzystywać CAN do realizacji różnorodnych aplikacji o charakterze przemysłowym, w tym np. systemów sieciowych z rozproszonym sterowaniem.
  • szeroki wybór układów elektronicznych CAN (mikrokontrolerów, kontrolerów CAN, transceiverów CAN).

Szymon Panecki

Literatura
[1] http://goo.gl/prRUV3
[2] An Overview of Controller Area Network (CAN) Technology, Machine Bus Corporation, 2003
[3] Introduction to the Controller Area Network (CAN), Texas Instruments, 2008
[4] http://goo.gl/bXyIrA

Artykuł ukazał się w
Elektronika Praktyczna
luty 2014
DO POBRANIA
Pobierz PDF Download icon
Zobacz też
Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik wrzesień 2020

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio październik 2020

Świat Radio

Magazyn użytkowników eteru

Automatyka Podzespoły Aplikacje wrzesień 2020

Automatyka Podzespoły Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna wrzesień 2020

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Praktyczny Kurs Elektroniki 2018

Praktyczny Kurs Elektroniki

24 pasjonujące projekty elektroniczne

Elektronika dla Wszystkich wrzesień 2020

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów