Ramka danych CAN i mechanizmy zapewniające niezawodność
Magistrala CAN
Formaty ramki danych CAN
Klasyczny protokół CAN obsługuje dwa formaty ramki danych CAN. Zasadniczo różnią się one tylko długością identyfikatora CAN. Classical Base Frame Format (CBFF)" obsługuje długość 11 bitów dla identyfikatora CAN, a "Classical Extended Frame Format (CEFF)" obsługuje długość 29 bitów dla identyfikatora CAN.
• Format ramki podstawowej (CAN2.0A)
• Ramka danych CAN rozpoczyna się od bitu "Start Of Frame" (SOF).
Za pomocą tego bitu wszystkie połączone węzły w sieci są synchronizowane na czas trwania jednej transmisji ramki danych CAN
• "Pole arbitrażu", dostarcza identyfikator ramki CAN
• "pole kontrolne" zawiera bit "Identifier Extension (IDE)" (dominujący “0”) umożliwia definicję formatu ramki podstawowej CAN (w odróżnieniu do formatu rozszerzonego), oraz "Data Length Code (DLC)" wskazują wielkość kolejnego "pola danych"
• "polu danych" znajdują się dane aplikacji, które mogą zawierać się w przedziale od zera do maksymalnie ośmiu bajtów danych
• "Cyclic Redundant Check (CRC)" pole zawierające sumę kontrolną
• "Acknowledge (ACK)" gdy ramka danych została przesłana poprawnie, aż do tego momentu, wszystkie węzły odbiorcze potwierdzają poprawność poprzez przesłanie dominującego bitu ACK.
• "End Of Frame (EOF)", koniec ramki - 7 kolejnych bitów recesywnych; Kolejne ramki oddziela pole przerwy które zawiera minimum 3 bity recesywne
• Format ramki rozszerzonej (CAN2.0B) Różnica między formatem ramki rozszerzonej a formatem ramki podstawowej polega na długości stosowanego identyfikatora CAN. 29-bitowy identyfikator składa się z 11-bitowego identyfikatora ("identyfikator bazowy") i 18-bitowego rozszerzenia ("rozszerzenie identyfikatora"). Rozróżnienie pomiędzy formatem ramki podstawowej a formatem ramki rozszerzonej odbywa się za pomocą bitu IDE. W przypadku formatu ramki rozszerzonej (29-bitowy CAN ID) bit IDE jest przekazywany recesywnie; w przypadku formatu ramki podstawowej (11-bitowy CAN ID) dominująco. Format ramki rozszerzonej ma pewne kompromisy. Czas opóźnienia w sieci jest dłuższy, ramki danych w formacie rozszerzonym wymagają większej szerokości pasma (około 20%), a wydajność wykrywania błędów jest niższa (ponieważ wybrany wielomian dla 15-bitowego CRC jest zoptymalizowany dla długości ramki do 112 bitów).
Od 2003 r. wszystkie implementacje klasycznej sieci CAN muszą być zdolne do obsługi obu formatów ramek sieci CAN. Starsze implementacje mogą albo akceptować tylko format ramki podstawowej, albo tolerować tylko format ramki rozszerzonej... (cały artykuł do przeczytania na csi.pl)