Magistrala CAN (Controller Area Network) to szeroko stosowany protokół komunikacji szeregowej, szczególnie odpowiedni dla sektorów motoryzacji i automatyki przemysłowej. Typy komunikatów na magistrali CAN można ogólnie podzielić na następujące kategorie, przy czym każdy typ ma swój specyficzny cel i format.
I. Ramka danych
Ramka danych to najbardziej podstawowy typ komunikatu w magistrali CAN i służy do przesyłania danych pomiędzy węzłami. Ramka danych składa się z wielu segmentów, w tym początku ramki, pola arbitrażowego, pola sterującego, pola danych, pola CRC, pola ACK i końca ramki.
1. Początek ramki (SOF)
- Definicja: Segment wskazujący początek ramki danych, składający się z pojedynczego aktywnego bitu (logiczne 0).
- Funkcja: Gdy magistrala jest bezczynna, węzeł nadawczy wysyła początek ramki; inne węzły odbiorcze synchronizują się z tym bitem początku ramki.
2. Pole arbitrażowe
- Definicja: Segment wskazujący priorytet ramki. W zależności od długości kodu identyfikacyjnego pola arbitrażowego, ramki dzieli się na ramki standardowe (CAN 2.0A) i ramki rozszerzone (CAN 2.0B).
- Treść: Pole arbitrażowe ramki w-formacie standardowym składa się z 11-bitowego identyfikatora (ID) i bitu żądania zdalnej transmisji (RTR); pole arbitrażowe ramki o rozszerzonym formacie składa się z 29-bitowego identyfikatora i bitu RTR.
- Funkcja: Służy do określenia typu przesyłanej ramki (ramka danych lub ramka zdalnego sterowania) i formatu ramki (ramka standardowa lub ramka rozszerzona), a także ustalenia priorytetu ramki.
3. Pole kontrolne
- Definicja: Pole określające liczbę bajtów danych i zarezerwowanych bitów.
- Zawartość: Zawiera kod długości danych (DLC) i dwa zarezerwowane bity (r0, r1). DLC wskazuje liczbę bajtów w polu danych, która może wynosić od 0 do 8 bajtów.
- Funkcja: Informuje węzeł odbiorczy o długości pola danych, aby dane mogły zostać odebrane prawidłowo.
4. Pole danych
- Definicja: Treść danych; Można przesyłać od 0 do 8 bajtów danych.
- Cel: Przesyłanie aktualnych informacji o danych.
5. Pole CRC (Pole cyklicznej kontroli nadmiarowej)
- Definicja: Pole służące do sprawdzania błędów transmisji w ramce, składające się z sekwencji CRC i ogranicznika CRC.
- Funkcja: Zapewnia integralność i dokładność danych poprzez weryfikację CRC.
6. Pole ACK (Pole potwierdzenia)
- Definicja: Segment wskazujący potwierdzenie pomyślnego odbioru, składający się ze szczeliny ACK i ogranicznika ACK.
- Funkcja: Gdy odbiornik prawidłowo odbierze prawidłową wiadomość, wysyła bit dodatni do nadajnika w szczelinie ACK w celu potwierdzenia odbioru.
7. Koniec ramki (EOF)
- Definicja: Segment wskazujący koniec ramki danych, składający się z 7 bitów ujemnych.
- Funkcja: Sygnalizuje koniec ramki danych.
II. Zdalna ramka
Zdalna ramka służy do żądania transmisji ramki danych o tym samym identyfikatorze. Kiedy węzeł odbiorczy potrzebuje pewnych danych, ale ich nie posiada, wysyła zdalną ramkę z żądaniem, aby węzeł nadawczy wysłał odpowiednią ramkę danych. Struktura zdalnej ramki jest podobna do ramki danych, ale segment danych jest pusty, a bit RTR jest ustawiony na 1.
III. Ramka błędu
Ramka błędu składa się z dwóch pól: flagi błędu i ogranicznika błędu. Kiedy węzeł odbiorczy wykryje błąd w komunikacie na magistrali, automatycznie przesyła „aktywną flagę błędu”; inne węzły po wykryciu aktywnej flagi błędu wysyłają „flagę potwierdzenia błędu”. Transmisja ramki błędu przerywa bieżącą komunikację magistrali do czasu usunięcia błędu.
IV. Rama przeciążeniowa
Ramka przeciążenia składa się z flagi przeciążenia i separatora przeciążenia. Ramka przeciążenia jest transmitowana, gdy węzeł odbiorczy wymaga nadmiernego czasu na przetworzenie bieżących danych przed odebraniem kolejnej ramki lub gdy w polu przestrzeni międzyramkowej zostanie wykryty poziom dominujący. Transmisja ramki przeciążeniowej opóźnia transmisję kolejnych ramek, aby zapewnić, że komunikacja na magistrali nie zostanie przerwana z powodu przeciążenia.
V. Inne typy wiadomości
Oprócz czterech podstawowych typów komunikatów wymienionych powyżej, protokół magistrali CAN definiuje kilka innych specjalnych typów komunikatów, takich jak typy komunikatów Interframe Space i N_PCI (np. pojedyncza ramka, ramka początkowa, ramka ciągła, ramka kontroli przepływu itp.). Te typy komunikatów są używane w określonych scenariuszach komunikacji w celu spełnienia różnych wymagań komunikacyjnych.
Streszczenie
Typy komunikatów na magistrali CAN obejmują typy podstawowe, takie jak ramki danych, ramki zdalnego sterowania, ramki błędów i ramki przeciążenia, a także typy specjalne, takie jak typy komunikatów Interframe Space i N_PCI. Każdy typ komunikatu ma swoją specyficzną strukturę i cel, tworząc wspólnie podstawę komunikacji magistrali CAN. W zastosowaniach praktycznych wybór odpowiedniego typu komunikatu do transmisji danych w oparciu o określone wymagania komunikacyjne zapewnia niezawodną i efektywną komunikację.




