CAN FD
CAN FD (Controller Area Network Flexible Data-Rate) jest protokołem transmisji danych używanym do transmisji danych z czujników i informacji sterujących w 2-przewodowych połączeniach między różnymi częściami oprzyrządowania elektronicznego i systemu sterowania. Protokół ten jest stosowany w nowoczesnych pojazdach o wysokich osiągach. CAN FD jest rozszerzeniem oryginalnego magistrali CAN , który został określony w normie ISO 11898-1. Podstawowy pomysł przetaktowania części ramki i przewymiarowania ładunku sięga 1999 roku. Opracowany w 2011 roku i wydany w 2012 roku przez firmę Bosch , CAN FD został opracowany, aby sprostać potrzebie zwiększenia szybkości przesyłania danych do 5 razy szybciej i z większe rozmiary ramek/komunikatów do użytku w nowoczesnych samochodowych elektronicznych jednostkach sterujących (ECU). Podobnie jak w klasycznym CAN, protokół CAN FD ma na celu niezawodne przesyłanie i odbieranie danych z czujników, poleceń sterujących oraz wykrywanie błędów danych między elektronicznymi urządzeniami czujnikowymi, sterownikami i mikrokontrolerami . Chociaż CAN FD został pierwotnie zaprojektowany do użytku w wysokowydajnych jednostkach ECU pojazdów, wszechobecność klasycznej sieci CAN w różnych branżach doprowadzi do włączenia tego ulepszonego protokołu transmisji danych również do wielu innych zastosowań, takich jak systemy elektroniczne używane w robotyka, obrona, automatyka przemysłowa, pojazdy podwodne, sprzęt medyczny, awionika, czujniki odwiertów itp.
CAN FD kontra klasyczny CAN
Podstawową różnicą między klasyczną siecią CAN (Controller Area Network) a CAN FD są elastyczne dane (FD). Korzystając z CAN FD, elektroniczne jednostki sterujące (ECU) mogą dynamicznie przełączać się między różnymi szybkościami transmisji danych oraz dłuższymi lub krótszymi komunikatami. Większa prędkość transmisji danych i większa pojemność danych zapewniają szereg korzyści operacyjnych systemu w porównaniu z klasyczną siecią CAN. Polecenia wydawane przez wykonujące oprogramowanie ECU znacznie szybciej docierają do kontrolera wyjściowego. CAN FD jest zwykle używany w wysokowydajnych ECU nowoczesnych pojazdów. Nowoczesny pojazd może mieć ponad 70 ECU, które wykorzystują CAN FD do wymiany informacji przez magistralę CAN, gdy silnik pracuje lub gdy pojazd jest w ruchu.
W CAN FD możliwe jest użycie 11-bitowego identyfikatora (FDBF FD base frame Format) lub 29-bitowego identyfikatora (FEFF FD rozszerzony format ramki). Rozmiar ładunku komunikatu został zwiększony do 64 bajtów danych w każdej ramce/komunikacie CAN, w porównaniu do zaledwie 8 bajtów w klasycznej ramce CAN. Ramka to wiadomość przesyłana jako sekwencja binarnego wzorca bitowego. W CAN FD szybkość transmisji danych (tj. liczba bitów przesyłanych na sekundę) jest zwiększana od 5 do 8 razy szybciej niż w klasycznej sieci CAN (od 5 do 8 Mbit/s tylko dla ładunku danych, szybkość transmisji arbitrażu jest nadal ograniczona do maks. 1Mbit/s dla kompatybilności). Szybkość transmisji danych zależy od topologii sieci magistrali i zastosowanych nadajników-odbiorników . Specyfikacja protokołu CAN FD zawiera również kilka innych ulepszeń, takich jak lepsze wykrywanie błędów w odebranym komunikacie CAN oraz elastyczność oprogramowania wykonawczego w zakresie dynamicznego wybierania (z listy) i przełączania na szybszy lub wolniejszy transfer danych w razie potrzeby. Na magistrali CAN FD niektóre czujniki mogą działać z mniejszą szybkością transmisji danych, podczas gdy inne z większą szybkością transmisji danych. Magistrala CAN to wspólna para przewodów, do których podłączone są czujniki elektroniczne, jednostki sterujące i ECU. Magistrala CAN służy do okresowej lub na żądanie wymiany informacji pomiędzy jednostkami operacyjnymi. Stan elektryczny i konfiguracja magistrali CAN, tj. całkowita liczba podłączonych urządzeń, długość przewodów magistrali CAN i inne czynniki elektromagnetyczne określają najszybszą możliwą szybkość przesyłania danych na tej magistrali CAN. Protokół CAN (a co za tym idzie CAN FD) posiada doskonały mechanizm rozwiązywania kolizji, który zależy od czasu propagacji sygnału i konfiguracji sieci (pierścień, magistrala lub gwiazda) oraz, w mniejszym stopniu, od liczby jednostek na autobus. Dlatego fizycznie długa sieć może ograniczać szybkość transmisji danych poniżej teoretycznego maksimum.
Obciążenie magistrali CAN-FD, które zostało opracowane na podstawie równania „De Andrade” opartego na równaniu Tindela.
β = τ/ω (1) (β = obciążenie magistrali), (τ = czas wolnych bitów plus szybszych bitów), ω (czas pomiaru w sekundach). τ = Ts + Tf (2)
Protokół CAN-FD definiuje pięć różnych mechanizmów wykrywania błędów: Dwa z nich działają na poziomie bitowym, a trzy pozostałe na poziomie komunikatu. Oni są:
- (1) Monitorowanie bitów, - (2) Wypychanie bitów, - (3) Sprawdzanie ramek, - (4) Sprawdzanie potwierdzeń i - (5) Cykliczna kontrola redundancji. Istnieją dwie opcje CRC, które należy oznaczyć jako długość CRC 17 (Data Length 0-16 bajtów) lub długość CRC 21 bitów (Data Length 17-64) bajtów.
Ts = ([(SOF+ID+r1+IDE+EDL+r0+BRS/2+CRCdel/2)* 1,2]+ACK+DEL+EOF+IFS)/t_x (3)
Tf = ([(D〗_f+BRS/2+ESI+DLC+CRCdel/2)*1,2]+〖CRC〗_17+5)/t_y (4)
gdzie SOF (początek ramki) + ID (identyfikator) + r1 (zarezerwowany bit 1) + IDE + EDL (rozszerzona długość danych) + r0 (zarezerwowany bit 0) + BRS/2 (przełącznik szybkości transmisji bitów) + CRCdel/2 (CRC ogranicznik)= 17 bitów; 1,2 jest współczynnikiem upychania bitów w najgorszym przypadku, co oznacza, że obliczenia należy zwiększyć o 20%. Uważa się, że BRS i CRCdel są podzielone przez 2, ponieważ znajdują się dokładnie w przesunięciu zmiany szybkości transmisji bitów. ACK (potwierdzenie) + DEL (ogranicznik) + EOF (koniec ramki) + IFS (odstęp międzyramkowy) = 12 bitów bez upychania bitów. Rozmiar danych CAN-FD może wynosić 0, 8, 12, 16, 20, 24, 32, 48, 64 bajtów. t_X to szerokość pasma transmisji dla nagłówka wiadomości (do 1 Mbit/s).
- Dla danych < 16 bajtów
β = ( (SOF+ID+r1+IDE+EDL+r0+BRS/2+CRCdel/2 * 1,2)+ACK+DEL+EOF+IFS)/t_x + (〖[(D 〗_f+BRS/2+ESI+DLC+CRCdel/2)*1,2]+〖CRC〗_17+5)/t_y)/ω (5) Dla danych >= 16 bajtów β = ((SOF+
- ID
+ r1+IDE+EDL+r0+BRS/2+CRCdel/2 * 1,2)+ACK+DEL+EOF+IFS)/t_x + (〖[(D〗_f+BRS/2+ESI+DLC+CRCdel/ 2 )*1,2]+〖CRC〗_21+6)/t_y )/ω (6)
CAN FD zmniejszyło również liczbę niewykrytych błędów dzięki zwiększeniu wydajności algorytmu CRC . Ponadto CAN FD jest kompatybilny z istniejącymi sieciami CAN 2.0, dzięki czemu nowy protokół może działać w tej samej sieci co klasyczny CAN. Szybkość transmisji CAN FD może wynosić do 8 MBit/s z odpowiednim transceiverem CAN SIC (Signal Improvement Capability), a więc do 8 razy szybciej niż klasyczna CAN z fazą danych 1 MBit/s.
Ze względu na wyższą prędkość komunikacji, ograniczenia CAN FD są bardziej rygorystyczne pod względem pojemności pasożytniczej linii. Dlatego budżet „pojemnościowy” wszystkich komponentów na linii został zmniejszony w porównaniu ze zwykłą magistralą CAN . To jest powód, dla którego półprzewodników wypuścili nowe komponenty zatwierdzone przez producentów samochodów. Ta aprobata odzwierciedla potrzebę interoperacyjności między wszystkimi systemami CAN FD. Rzeczywiście, wybrane komponenty zabezpieczające przed wyładowaniami elektrostatycznymi są kompatybilne ze wszystkimi nadajnikami-odbiornikami (CAN lub CAN FD) i są zgodne z normą ISO7637-3.
Pomimo wyższego napięcia postojowego (37 V), urządzenia do zastosowań w ciężarówkach muszą również spełniać wymagania dotyczące niskiej pojemności (3,5 pF).
Nagłówki CAN i CAN FD TP
7 .. 4 (bajt 0) | 3 .. 0 (bajt 0) | 15 .. 8 (bajt 1) | 23..16 (bajt 2) | (bajt 3) | (bajt 4) | (bajt 5) | (bajt 6) | .... | |
---|---|---|---|---|---|---|---|---|---|
Pojedyncza ramka (SF) | 0 | rozmiar (0..7) | Dane | ||||||
0 | rozmiar (0..62) | Dane | |||||||
Pierwsza klatka (FF) | 1 | rozmiar (8..4095) | Dane | ||||||
0 | 00 | rozmiar (4 bajty ~ 4 GB) | Dane | ||||||
Kolejna klatka (CF) | 2 | indeks (0..15) | Dane | ||||||
Rama kontroli przepływu (FC) | 3 | Flaga FC (0,1,2) | Rozmiar bloku | Św | Nie używany |
Powyższa tabela wyjaśnia protokół transmisji zdefiniowany dla CAN + CANFD, oparty na normie ISO 15765-2 (ISO-TP).
W szczególności dla CANFD,
- jeśli pierwszy bajt SF=0, to drugi bajt określa rozmiar danych.
- jeśli pierwsze 2 bajty FF=0x10 00, to kolejne 4 bajty określają rozmiar danych w kolejności starszych bajtów. To praktycznie umożliwia wysłanie ~4GB (ok.) danych w CAN FD.
Transceiver CAN
CAN FD może używać Transceivera dla klasycznego CAN i CAN FD. Dodatkowo dostępne są nowe transceivery CAN SiC (Signal Improvement Capability) z szybkością transmisji danych od 5 do 8 MBit/s.
CAN FD w akcji
W 2017 roku przewidywano, że CAN FD będzie używany w większości pojazdów do lat 2019–2020.
Zwolennicy CAN FD
Niektóre firmy stojące za nowym standardem to STMicroelectronics , Infineon , NXP , Texas Instruments , Kvaser, Daimler i GM .
CAN FD tworzy podstawową warstwę łącza danych w niektórych protokołach wyższych warstw, takich jak CANopen jako CANopen FD i J1939 , i jest obsługiwana przez różne firmy ze stosami protokołów.
CAN XL
CAN XL to trzecia wersja warstwy łącza danych CAN po klasycznym CAN i CAN FD. CAN FD jest kompatybilny z CAN XL.
Linki zewnętrzne
- Porównanie CAN FD z klasycznym CAN
- CAN FD: od teorii do praktyki
- Ochrona magistrali CAN: Chroń to, co chroni Ciebie
- Linux i ISO 15765-2 z CAN FD — szczegółowe informacje o tym, jak długość danych (ładunku użytecznego) różni się między CAN i CANFD
- Linux i ISO 15765-2 z CAN FD 15. międzynarodowa konferencja CAN 2015
- Objaśnienie CAN FD