logo

Protokół CAN (Controller Area Network).

CAN oznacza Sieć obszarowa kontrolera protokół. Jest to protokół opracowany przez Roberta Boscha około 1986 roku. Protokół CAN to standard zaprojektowany, aby umożliwić mikrokontrolerowi i innym urządzeniom komunikację między sobą bez konieczności stosowania komputera-hosta. Cechą, która czyni protokół CAN wyjątkowym wśród innych protokołów komunikacyjnych, jest typ magistrali rozgłoszeniowej. W tym przypadku rozgłaszanie oznacza, że ​​informacja jest przesyłana do wszystkich węzłów. Węzłem może być czujnik, mikrokontroler lub brama umożliwiająca komputerowi komunikację w sieci za pośrednictwem kabla USB lub portu Ethernet. CAN jest protokołem opartym na komunikatach, co oznacza, że ​​komunikat przenosi identyfikator komunikatu i na podstawie identyfikatora ustalany jest priorytet. Nie ma potrzeby identyfikacji węzła w sieci CAN, dlatego wstawienie go lub usunięcie z sieci staje się bardzo proste. Jest to szeregowy, półdupleksowy i asynchroniczny protokół komunikacyjny. CAN to dwuprzewodowy protokół komunikacyjny, ponieważ sieć CAN jest połączona za pomocą dwuprzewodowej magistrali. Przewody są skrętką o impedancji charakterystycznej 120 Ω, podłączonej na każdym końcu. Początkowo był przeznaczony głównie do komunikacji w pojazdach, ale obecnie jest używany w wielu innych kontekstach. Podobnie jak UDS i KWP 2000, MOŻE być również używany do diagnostyki pokładowej.

Dlaczego MOŻNA?

Potrzeba scentralizowanego standardowego protokołu komunikacyjnego pojawiła się ze względu na wzrost liczby urządzeń elektronicznych. Na przykład w nowoczesnym pojeździe może być więcej niż 7 TCU dla różnych podsystemów, takich jak deska rozdzielcza, sterowanie skrzynią biegów, jednostka sterująca silnika i wiele innych. Gdyby wszystkie węzły były połączone jeden do jednego, prędkość komunikacji byłaby bardzo wysoka, ale złożoność i koszt przewodów byłyby bardzo wysokie. W powyższym przykładzie pojedyncza deska rozdzielcza wymaga 8 złączy, więc aby rozwiązać ten problem, wprowadzono CAN jako scentralizowane rozwiązanie wymagające dwóch przewodów, tj. CAN wysoki i CAN niski. Rozwiązanie wykorzystujące protokół CAN jest dość wydajne ze względu na priorytetyzację wiadomości i elastyczne, ponieważ węzeł można dodawać lub usuwać bez wpływu na sieć.

Zastosowania protokołu CAN

Początkowo protokół CAN został zaprojektowany w celu rozwiązania problemu komunikacji występującego w pojazdach. Ale później, ze względu na oferowane funkcje, jest używany w różnych innych dziedzinach. Poniżej przedstawiono zastosowania protokołu CAN:

  • Motoryzacja (samochody osobowe, ciężarowe, autobusy)
  • Sprzęt elektroniczny dla lotnictwa i nawigacji
  • Automatyka przemysłowa i sterowanie mechaniczne
  • Winda i schody ruchome
  • Automatyka budynków
  • Instrumenty i sprzęt medyczny
  • Morskie, medyczne, przemysłowe, medyczne

Architektura warstwowa CAN

Jak wiemy, że Model OSI dzieli system komunikacyjny na 7 różnych warstw. Jednak warstwowa architektura CAN składa się z dwóch warstw, tj.

Rozumiemy obie warstwy.

  • Warstwa łącza danych: ta warstwa jest odpowiedzialna za przesyłanie danych między węzłami. Umożliwia nawiązanie i zakończenie połączenia. Odpowiada także za wykrywanie i korygowanie błędów, które mogą wystąpić w warstwie fizycznej. Warstwa łącza danych jest podzielona na dwie podwarstwy:
      PROCHOWIEC:MAC oznacza kontrolę dostępu do multimediów. Definiuje sposób, w jaki urządzenia w sieci uzyskują dostęp do medium. Zapewnia enkapsulację i dekapsulację danych, wykrywanie błędów i sygnalizację.
  • Spółka z ograniczoną odpowiedzialnością:LLC oznacza kontrolę łącza logicznego. Odpowiada za filtrowanie akceptacji ramek, powiadamianie o przeciążeniach i zarządzanie odzyskiwaniem.
  • Warstwa fizyczna: Warstwa fizyczna odpowiedzialna jest za transmisję surowych danych. Definiuje specyfikacje parametrów, takich jak poziom napięcia, taktowanie, szybkość transmisji danych i złącze.

Specyfikacje CAN definiują protokół CAN i warstwę fizyczną CAN, które są zdefiniowane w standardzie CAN ISO 11898. ISO 11898 składa się z trzech części:

  • ISO 11898-1: Ta część zawiera specyfikację warstwy łącza danych i fizycznego łącza sygnałowego.
  • ISO 11898-2: Ta część podlega warstwie fizycznej CAN dla szybkiej sieci CAN. Szybka magistrala CAN umożliwia przesyłanie danych z szybkością do 1 Mb/s w układzie napędowym i obszarze ładowania pojazdu.
  • ISO 11898-3: Ta część jest również objęta warstwą fizyczną CAN dla magistrali CAN o niskiej prędkości. Umożliwia transmisję danych z szybkością do 125 kbps, a magistralę CAN o niskiej prędkości stosuje się tam, gdzie prędkość komunikacji nie jest czynnikiem krytycznym.

CiA DS-102: Pełna forma CiA to CAN in Automation, która definiuje specyfikacje złącza CAN.

Jeśli chodzi o wdrożenie, kontroler CAN i transceiver CAN są zaimplementowane w oprogramowaniu za pomocą aplikacji, systemu operacyjnego i funkcji zarządzania siecią.

MOŻE kadrowanie

Rozumiemy strukturę ramki CAN.

Protokół CAN
    SOF:SOF oznacza początek ramki, co oznacza, że ​​nowa ramka została wprowadzona do sieci. Jest 1-bitowy.Identyfikator:Standardowy format danych zdefiniowany w specyfikacji CAN 2.0 A wykorzystuje 11-bitowy identyfikator komunikatu do arbitrażu. Zasadniczo ten identyfikator komunikatu ustawia priorytet ramki danych.RTR:RTR oznacza Remote Transmission Request, który określa typ ramki, niezależnie od tego, czy jest to ramka danych, czy ramka zdalna. Jest 1-bitowy.Pole kontrolne:Posiada funkcje zdefiniowane przez użytkownika.
      IŚĆ:Bit IDE w polu kontrolnym oznacza rozszerzenie identyfikatora. Dominujący bit IDE definiuje 11-bitowy standardowy identyfikator, natomiast recesywny bit IDE definiuje 29-bitowy rozszerzony identyfikator.DLC:DLC oznacza kod długości danych, który definiuje długość danych w polu danych. Jest 4-bitowy.Pole danych:Pole danych może zawierać do 8 bajtów.
    Pole CRC:Ramka danych zawiera także 15-bitowe cykliczne pole kontroli redundancji, które służy do wykrywania uszkodzeń, jeśli wystąpią one w czasie transmisji. Nadawca obliczy CRC przed wysłaniem ramki danych, a odbiorca również obliczy CRC, a następnie porówna obliczoną sumę CRC z sumą CRC otrzymaną od nadawcy. Jeśli CRC nie pasuje, odbiornik wygeneruje błąd.Pole ACK:To jest potwierdzenie odbiorcy. W innych protokołach po odebraniu wszystkich pakietów wysyłany jest oddzielny pakiet potwierdzenia, natomiast w przypadku protokołu CAN nie jest wysyłany żaden oddzielny pakiet potwierdzenia.EOF:EOF oznacza koniec ramki. Zawiera 7 kolejnych bitów recesywnych znanych jako koniec ramki.

Teraz zobaczymy, jak dane są przesyłane przez sieć CAN.

Protokół CAN

Sieć CAN składa się z wielu węzłów CAN. W powyższym przypadku rozważyliśmy trzy węzły CAN i nazwaliśmy je węzłem A, węzłem B i węzłem C. Węzeł CAN składa się z trzech elementów podanych poniżej:

  • Gospodarz
    Host to mikrokontroler lub mikroprocesor, na którym uruchamiana jest aplikacja wykonująca określone zadanie. Host decyduje, co oznacza odebrana wiadomość i jaką wiadomość powinien wysłać jako następną.
  • Kontroler CAN
    Kontroler CAN realizuje funkcje komunikacyjne opisane protokołem CAN. Uruchamia także transmisję lub odbiór komunikatów CAN.
  • Transceiver CAN
    Transceiver CAN jest odpowiedzialny za transmisję lub odbiór danych na magistrali CAN. Konwertuje sygnał danych na strumień danych zebranych z magistrali CAN zrozumiały dla kontrolera CAN.

Na powyższym schemacie do przesyłania lub odbierania danych używana jest nieekranowana skrętka dwużyłowa. Jest ona również nazywana magistralą CAN, a magistrala CAN składa się z dwóch linii, tj. dolnej linii CAN i wysokiej linii CAN, znanych również odpowiednio jako CANH i CANL. Transmisja odbywa się dzięki napięciu różnicowemu przyłożonemu do tych linii. CAN wykorzystuje skrętkę dwużyłową i napięcie różnicowe ze względu na swoje otoczenie. Na przykład w samochodzie, silniku, układzie zapłonowym i wielu innych urządzeniach może powodować utratę i uszkodzenie danych z powodu hałasu. Skręcenie dwóch linii zmniejsza również pole magnetyczne. Magistrala jest zakończona na każdym końcu rezystancją 120 Ω.

Charakterystyka CAN

Protokół CAN

Za pomocą napięcia różnicowego określimy, w jaki sposób wartości 0 i 1 są przesyłane przez magistralę CAN. Powyższy rysunek to wykres napięcia pokazujący poziom napięcia CAN low i CAN high. W terminologii CAN mówi się, że logika 1 jest recesywna, podczas gdy logika 0 jest dominująca. Gdy do linii CAN high i low CAN zostaną przyłożone napięcie 2,5 V, wówczas rzeczywiste napięcie różnicowe wyniesie zero V. Zero napięcia na magistrali CAN jest odczytywane przez transceiver CAN jako recesywne lub logiczne 1. Zero napięcia na magistrali CAN to idealny stan magistrali. Kiedy górna linia CAN zostanie podciągnięta do 3,5 V, a dolna linia CAN zostanie obniżona do 1,5 V, wówczas rzeczywiste napięcie różnicowe magistrali wyniesie 2 wolty. Jest on traktowany przez transceiver CAN jako bit dominujący lub logiczne 0. Jeśli stan magistrali zostanie osiągnięty do dominującego lub logicznego 0, wówczas przejście do stanu recesywnego przez jakikolwiek inny węzeł stanie się niemożliwe.

Kluczowe punkty wyciągnięte z charakterystyki CAN

  • Logika 1 jest stanem recesywnym. Aby przesłać 1 na magistralę CAN, zarówno CAN high, jak i CAN low powinny być podawane z napięciem 2,5 V.
  • Logiczne 0 jest stanem dominującym. Aby przesłać wartość 0 na magistralę CAN, należy zastosować CAN high przy napięciu 3,5 V, a CAN low przy napięciu 1,5 V.
  • Idealny stan autobusu jest recesywny.
  • Jeśli węzeł osiągnie stan dominujący, nie może powrócić do stanu recesywnego przez żaden inny węzeł.

Logika magistrali CAN

Protokół CAN
Protokół CAN

Z powyższego scenariusza dowiadujemy się, że stan dominujący zastępuje stan recesywny. Kiedy węzeł wysyła jednocześnie bit dominujący i recesywny, magistrala pozostaje dominująca. Poziom recesywny występuje tylko wtedy, gdy wszystkie węzły wysyłają bit recesywny. Taka logika jest znana jako logika AND i fizycznie jest zaimplementowana jako obwód otwartego kolektora.

Zasada komunikacji CAN

Jak wiemy, wiadomość wysyłana jest w oparciu o priorytet ustawiony w polu arbitrażowym. Dla ramki standardowej identyfikator komunikatu wynosi 11 bitów, natomiast dla ramki rozszerzonej identyfikator komunikatu wynosi 29 bitów. Umożliwia projektantowi systemu zaprojektowanie identyfikatora komunikatu już na etapie projektowania. Im mniejszy identyfikator wiadomości, tym wyższy będzie priorytet wiadomości.

Przyjrzyjmy się, jak działa arbitraż, korzystając ze schematu blokowego.

Protokół CAN (Controller Area Network).

Nadawca chce wysłać wiadomość i czeka, aż magistrala CAN stanie się bezczynna. Jeśli magistrala CAN jest bezczynna, nadawca wysyła SOF lub bit dominujący w celu uzyskania dostępu do magistrali. Następnie wysyła bit identyfikatora komunikatu w najbardziej znaczącym bicie. Jeśli węzeł wykryje bit dominujący na magistrali podczas transmisji bitu recesywnego, oznacza to, że węzeł utracił arbitraż i przestaje przesyłać dalsze bity. Nadawca zaczeka i wyśle ​​wiadomość ponownie, gdy autobus będzie wolny.

Przykład arbitrażu CAN

Protokół CAN

Jeśli weźmiemy pod uwagę trzy węzły, tj. węzeł 1, węzeł 2 i węzeł 3, identyfikatory komunikatów tych węzłów to odpowiednio 0x7F3, 0x6B3 i 0x6D9.

Protokół CAN

Transmisję wszystkich trzech węzłów z najbardziej znaczącym bitem pokazano na powyższym schemacie.

jedenaścietbit: Ponieważ wszystkie trzy bity węzłów są recesywne, bit szyny również pozostanie recesywny.

b plus drzewo

10tbit: Wszystkie węzły mają 10-ty bit jako recesywny, więc magistrala również pozostanie recesywna.

9tbit: Węzeł 1 ma bit recesywny, podczas gdy inne węzły mają bit dominujący, więc magistrala również pozostanie dominująca. W tym przypadku węzeł 1 utracił arbitraż, więc przestaje wysyłać bity.

8tbit: Zarówno węzeł 2, jak i węzeł 3 wysyłają bit recesywny, więc stan magistrali pozostanie recesywny.

7tbit: Węzeł 2 wysyła bit dominujący, podczas gdy węzeł 3 wysłał bit recesywny, tak że stan magistrali pozostanie dominujący. W tym przypadku węzeł 3 przegrał arbitraż, więc przestaje wysyłać komunikat, podczas gdy węzeł 2 wygrał arbitraż, co oznacza, że ​​będzie nadal wstrzymywał magistralę do czasu odebrania komunikatu.