Magistrala CAN - Politechnika Gdańska
Transkrypt
Magistrala CAN - Politechnika Gdańska
Politechnika Gdańska Wydział Elektroniki, Telekomunikacji i Informatyki Katedra Systemów Geoinformatycznych Aplikacje Systemów Wbudowanych Magistrala CAN (Contorller Area Network) Krzysztof Bikonis Gdańsk, 2016 Magistrala CAN Na początku lat dziewięćdziesiątych międzynarodowy przemysł samochodowy stanął przed dwoma problemami dotyczącymi rozwoju samochodów: • jak poprawić komfort pojazdów (elektrycznie podnoszone szyby, regulacja siedzeń i lusterek, podgrzewanych siedzeń, elektronicznego sterowania klimatyzacją, wyposażenia audio, systemy nawigacyjne) • jak poprawić bezpieczeństwo pojazdów (centralne zamki, systemy antykradzieżowe, ABS, jak również ekonomicznego i przyjaznego dla środowiska sterowania pracą silnika) 2 Magistrala CAN • Obu problemom stawiono czoło poprzez intensywną elektronizację komunikacji wewnątrz pojazdu zawierającego wiele urządzeń • Oszacowano, że do roku 2005 pojazdy będą zawierać do 100 mikrokontrolerów i wszystkie powinny mieć możliwość komunikowania się ze sobą • Rosnąca liczba różnych typów wiązek kabli (600) oraz ich długości (2000 m) spowodowała, że przemysł motoryzacyjny zaczął rozglądać się za nowymi sposobami komunikacji • Nowy sposób komunikacji znaleziono w przemyśle komputerowym 3 Magistrala CAN Miał on zapewniać: • Przenoszenie danych z małą i dużą szybkością w zakresie od 5 kb kb/s /s do 1 Mb/s • Bezbłędne przenoszenie danych • Optymalne przenoszenie mikrostrumieni danych (do 8 bajtów na komunikat) • Łatwość utrzymania • Niskie koszty w masowej produkcji • Prostą konstrukcję magistrali (media i topologia magistrali) dla łatwej integracji w pojeździe 4 Magistrala CAN • Opracowano wiele magistral niekompatybilnych ze sobą • Przyjęły się następujące: - CAN w wersjach o małej i dużej prędkości - VAN - J1850CP - J1850DLC • Z czasem system CAN stał się światowym liderem na polu magistrali dla pojazdów 5 Magistrala CAN Magistralę CAN stosuje się: • • • • • • Przemysł samochodowy Przemyśle przetwórczym Budownictwie Sterowaniu windami Systemach automatyzacji laboratoriów Systemach czujnikowoczujnikowo-wykonawczych 6 Magistrala CAN CAN jest szeregowym, asynchronicznym systemem komunikacyjnym łączącym czujniki i elementy wykonawcze elektronicznych stacji sterujących w samochodach i służy do przesyłania danych cyfrowych. Jest to system asynchroniczny, ponieważ każda stacja (węzeł) jest synchronizowana przez wiadomość z innej stacji. Innymi czynnikami są czas trwania bitu, struktura wiadomości oraz potwierdzenie odbioru. 7 Magistrala CAN Standaryzacja magistrali • Podstawą jest siedmiowarstwowy model odniesienia OSI/ISO • W przypadku magistrali CAN warstwy 1, 2, 7 (fizyczna, łącza danych, aplikacji) są wyspecyfikowane szczegółowo, natomiast warstwy 3 .. 6 (sieciowa, transportowa, sesji, prezentacji) są puste 8 Magistrala CAN Charakterystyka warstwy fizycznej • Zawiera specyfikację topologii sieciowej magistrali CAN i dołączania elementów (stacji) do medium magistrali • CAN wykorzystuje tzw. topologie magistrali • Wszystkie elementy są połączone z pojedynczą skrętką pary przewodów ekranowaną, lub nie • Na końcach znajdują się odpowiednie impedancje zakończenia magistrali 9 Magistrala CAN Charakterystyka warstwy fizycznej • Układ nadawania/odbioru sieci CAN jest połączony z medium magistrali poprzez dwa doprowadzenia (CANH, CANL) • Do rzeczywistego przesyłania danych stosuje się różnicowe sygnały napięciowe (ze względu na wymagane zabezpieczenia przed błędami) • Różnica napięcia pomiędzy obydwiema liniami magistrali jest skwantowana 10 Magistrala CAN Charakterystyka warstwy fizycznej • Użytkownicy nie muszą sami zajmować się konstrukcją łącza nadawania/odbioru (dostępne są gotowe układy scalone) • Są one zoptymalizowane pod względem: - zakłóceń elektromagnetycznych - zajmowanej powierzchni płytki drukowanej - przeciążeń termicznych (w przypadku zwarcia) - wyjściowego standardu poziomów sygnałów • Wszystkim co jest niezbędne dla zestawienia łącza CAN, to dołączenie go do linii magistrali 11 Magistrala CAN Charakterystyka warstwy fizycznej • Gdy stacja nie jest bezpośrednio podłączona do magistrali CAN, to długość linii doprowadzeniowej nie powinna przekraczać 2 metry dla szybkości przesyłania danych 250 kb/s i 30 cm dla większych • Całkowita długość linii doprowadzających nie powinna przekraczać 30 metrów 12 Magistrala CAN Wymiana informacji między stacjami sieci 13 Magistrala CAN Wymiana informacji między stacjami sieci może odbywać się dwoma sposobami: • Przez odwołanie się do określonej stacji (zorientowanie na stację) • Przez podanie określonej wiadomości (zorientowanie na wiadomość) 14 Magistrala CAN Adresowanie stacji • Nadawca adresuje odbiornik podając adres odbiornika (np. stacja 25 przesyła wiadomość do stacji 37) • W ten sposób ustalane jest rzeczywiste połączenie między nadajnikiem, a odbiornikiem • Nadawany pakiet danych zawiera adres odbiornika i nadajnika, a pozostałe stacje ignorują taki pakiet • Odbiornik potwierdza odbiór, a w przypadku braku potwierdzenia nadajnik powtarza wiadomość 15 Magistrala CAN Wymiana określona wiadomością • Nadajnik dodaje do wiadomości niepowtarzalny identyfikator i wysyła ją przez magistralę (np. stacja A przesyła wyniki pomiaru napięcia z indentyfikatorem 978) • Adresy nadajnika i odbiornika nie są dołączane • Taka wiadomość może być przeznaczona do kilku odbiorników (Pobieraj z magistrali to co jest ci potrzebne) Przepływ wiadomości • Realizowany jest przez nadawanie w warunkach kontrolowanej rywalizacji opatrzonych odpowiednim priorytetem wiadomości lub ramek 16 Magistrala CAN Dominujące i recesywne stany magistrali lub bitów • Transmisja danych odbywa się przez bity dominujące i recesywne (ustępujące i dominowane) • Stan recesywny magistrali, to taki stan który może być nadpisywany przez stan dominujący magistrali • Wartość logiczna 0 reprezentuje stan dominujący, a wartość logiczna 1 stan recesywny 17 Magistrala CAN Pakiety danych • Do wymiany danych przez magistralę, w sieci używane są cztery rodzaje pakietów danych nazywanych ramkami: - ramka danych - ramka zdalnego wywołania - ramka sygnalizacji błędu - ramka przepełnienia 18 Magistrala CAN Ramka danych • SOF – bit startowy, zawsze jest bitem dominującym (0) • Pole arbitrażu (decyzyjne) – zawiera dane określające dostęp do magistrali • Identyfikator – zawiera identyfikator transmitowanych ramek (2048 = 2032 dostępnych + 16 zarezerwowanych dla specjalnych funkcji) 19 Magistrala CAN Ramka danych • Pojedynczy sterownik może przetworzyć 2032 różnych wiadomości (wartość zmierzona, pozycje przełączników, funkcje sygnalizacyjne, itp.) • Format ramki rozszerzonej (CAN20B) ma identyfikator 29 bitowy 20 Magistrala CAN Ramka danych • Bit zdalnego żądania transmisji – jest zwykle dominujący (0), umożliwia stacji zaadresowanie i wysłanie wiadomości do innej określonej stacji • Bit rozszerzenia identyfikatora IDE – czy transmitowana ramka w standardowym formacie (11 bitowy identyfikator), czy rozszerzonym (29 bitowy identyfikator) 21 Magistrala CAN Ramka danych • R0 – rezerwowy dla ewentualnego rozszerzenia systemu • DLC – ile bajtów danych jest kolejno transmitowanych w polu danych (w pojedynczej ramce danych może być transmitowanych nie więcej niż 8 bajtów danych) • Pole danych 22 Magistrala CAN Ramka danych • Pole CRC – suma kontrolna wyliczana na podstawie wysyłanych danych • Pole potwierdzenia • Przerwa ACK – transmitowane w postaci recesywnej przez nadajnik i dominującej przez odbiornik (można sprawdzić, czy przynajmniej jedna stacja odebrała wiadomość) 23 Magistrala CAN Ramka danych • Bit ogranicznika ACK • Pole zakończenia ramki EOF – składa się z siedmiu recesywnych bitów • Przed następną ramką danych stacje odbierające potrzebują krótkiej przerwy na przetworzenie lub zapamiętanie odebranych danych 24 Magistrala CAN Unikanie konfliktów • Wszystkie stacje są podłączone do jednej magistrali CAN, dlatego: - co stanie się, gdy kilka stacji zechce wysłać wiadomość w tym samym czasie? - jak podjąć decyzje, która stacja może rozpocząć nadawanie, a która stacja musi poczekać ze swoją transmisją? • W celu unikania konfliktów stosuje się specjalną procedurę dostępu do magistrali, w której ważną rolę odgrywają bity dominujące i recesywne w polu arbitrażowym 25 Magistrala CAN Unikanie konfliktów • Każda warstwa „słyszy” swoje własne przesłane dane na magistralę • Wysyła bit na magistralę, odbiera go z powrotem i porównuje z własnym • Jeżeli te dwa bity są identyczne to transmisja jest dozwolona 26 Magistrala CAN Unikanie konfliktów • Stacja 1: identyfikator 367, Stacja 2: identyfikator 232, Stacja 3: identyfikator 239 27 Magistrala CAN Ramka zdalnego żądania transmisji • Spełnia jedną z ważniejszych funkcji w sieci • Służy do obchodzenia normalnego cyklu transmisji danych (np. czujnik temperatury dostarcza pomiar co 5 minut) • Dzięki niej stacja może zażądać danych bezpośrednio od innej stacji • Przesyłana ramka danych jest w takim przypadku zmodyfikowana 28 Magistrala CAN Ramka zdalnego żądania transmisji • Identyfikator stacji, do której jest wysyłane żądanie jest podawany w polu identyfikatora • Liczba użytecznych bajtów zawartych w wywołanej wiadomości (tutaj 3) jest podawana w polu DLC • Bit zdalnego żądania transmisji, który jest bitem dominującym (0), jest transmitowany recesywnie (1) • Nie ma pola danych (DLC jest bezpośrednio przed CRC) Stacja, która rozpozna w wiadomości swój identyfikator, natychmiast przesyła ramki z żądanymi danymi. 29 Magistrala CAN Detekcja błędów i ich korekcja • Magistrala CAN charakteryzuje się zdolnościami wykrywania wielu błędów podczas transmisji danych i odpowiedniego reagowania na nie • Dla transmisji danych z szybkością 500 kb/s, na każde 0.7 s przypada 1 błędny bit spowodowany zakłóceniami zewnętrznymi • Wbudowany sposób zabezpieczenia przed błędami gwarantuje, że przez 1000 lat pracy tylko jeden błąd nie będzie wykryty 30 Magistrala CAN Wykrywanie błędów transmisji • Detekcja błędnego bitu - po arbitrażu jest tylko jedna stacja wysyłająca wiadomości - każda stacja odbiera zwrotnie swoją własną transmisję - jeżeli zostanie odebrany inny od własnego bit, to jest oczywiste, że na magistrali wystąpił błąd - W przypadku wykrycia błędu stacja przełącza się na procedurę jego korekcji 31 Magistrala CAN Wykrywanie błędów transmisji • Wykrywanie błędnych bitów dodatkowych - specyfikacja określa, że jeżeli w ramce danych jest transmitowanych kolejno więcej niż pięć bitów o tej samej wartości, to każda grupa pięciu bitów jest poprzedzana przez bit komplementarny - ten wprowadzony bit, który nie zawiera żadnej informacji, nazywany jest bitem dodatkowym - po zakończeniu są usuwane ze strumienia danych - dlatego jeżeli odbiornik wykryje w ramce więcej niż pięć kolejnych bitów o tej samej wartości, oznacza to błąd podczas transmisji danych i uruchamiana jest procedura poprawiania błędów 32 Magistrala CAN Detekcja błędu CRC • Proces polega na oszacowaniu sumy kontrolnej CRC w odbiorniku • Gdy sumy kontrolne odebrana i obliczona różni się, to uruchamiana jest procedura korekcji błędów 33 Magistrala CAN Detekcja błędów potwierdzenia • Bit ACK wysyłany jest jako bit recesywny • Wszystkie stacje które poprawnie odebrały poprzednią ramkę nadpisują go bitem dominującym • Oznacza to, że przynajmniej jedna stacja odebrała dane poprawnie • Brak nadpisania ACK bitem dominującym oznacza, że żadna stacja nie odebrała poprawnie wiadomości • Wywoływana jest procedura korekcji błędów 34 Magistrala CAN Detekcja błędu formatu • W ramce jest kilka pól, które muszą zawsze mieć ustaloną zawartość (są zawsze bity recesywne) - w polu ogranicznika CRC - w polu ogranicznika potwierdzenia - w polu EOF • Jeżeli w tych polach zostanie wykryty bit dominujący, to taki stan może być tylko spowodowany przez błąd transmisji danych • Wywoływana jest procedura korekcji błędu 35 Magistrala CAN Korekcja błędów • W przypadku błędu transmisji danych: - ramki, w których został stwierdzony błąd są natychmiast odrzucane i nie przetwarzane - jeśli stacja systemu wykryje błąd, to wysyła natychmiast ramkę informującą o błędzie, która składa się z sześciu dominujących bitów i ogranicznika ramki błędu zawierającego osiem bitów recesywnych - jest to naruszenie przyjętej zasady – więcej niż 5 takich samych bitów - wszystkie pozostałe stacje wykrywają ten stan i uznają ramkę jako błędną i odrzucają ją 36 Magistrala CAN Korekcja błędów • W przypadku błędu transmisji danych: - one także wysyłają ramkę sygnalizującą o błędzie - stacja, która wykryła błąd, celowo uszkadza całą transmitowaną ramkę, tak że wszystkie stacje dołączone do magistrali odbierają jako błędną - oznacza to, że o błędzie lokalnym w jednej stacji, są natychmiast powiadamiane inne stacje (głównym założeniem sieci CAN jest, żeby wszystkie stacje odbierały poprawne dane, które będą przetwarzane, lub błędne, które będą odrzucane) - pierwotna stacja nadająca po stwierdzeniu błędu poprawia wiadomość i natychmiast wysyła ją ponownie 37 Magistrala CAN Dla przypomnienia • Są w nim bity dominujące (0) i recesywne (1) • 11 11--bitowy dla CAN20A i 2929-bitowy dla CAN20B identyfikator • 15 15--bitowa suma kontrolna CRC • 1-bitowy ogranicznik • 7-bitowe pole EOF • 6-bitowa ramka błędu • … • Nic nie kojarzy się bezpośrednio ze strukturą danych mikrokontrolera 88- lub 1616-bitowego 38 Magistrala CAN Jak zaprogramować mikrokontroler zgodnie z protokołem sieci? 39 Magistrala CAN Jak zaprogramować mikrokontroler zgodnie z protokołem sieci? • Istnieje wiele gotowych elementów składowych i modułów dostarczanych przez producentów układów scalonych dla systemu CAN, co spowodowało, że stał się on tak popularny, w tak krótkim czasie 40 Magistrala CAN Jedynym zadaniem mikrokontrolera jest: • wpisanie bajtów danych (0 .. 8), które mają zostać wysłane do układu scalonego protokołu CAN • wypełnienie pola identyfikatora i pola DLC • odpowiednie ustawienie bitu RTR 41 Magistrala CAN • Pozostałe elementy procesu przetwarzania wykonywane są przez układ scalony sterownika CAN • Dane są wprowadzane do magistrali CAN za pośrednictwem układu scalonego transceivera • Mikrokontroler otrzyma potwierdzenie pomyślnego wysłania danych, lub komunikat o błędzie 42 Magistrala CAN • Podobnie dzieje się przy odbiorze danych • Sterownik CAN, za pośrednictwem transcivera CAN, otrzymuje ramki CAN z magistrali • Sprawdza sumę kontrolną, usuwa zbędne pola i do mikrokontrolera wysyła otrzymane dane, albo komunikat o błędzie 43 Magistrala CAN Filtrowanie akceptacyjne • Każda stacja przyłączona do magistrali nie musi przetwarzać 2048 różnych identyfikatorów ramek • Selekcja identyfikatorów nazywana jest filtracją akceptacyjną • Można tak zaprogramować sterownik CAN, żeby sprawdzał wszystkie otrzymywane ramki, ale do mikrokontrolera wysyłał ramki o kreślonym identyfikatorze • Do filtrowania akceptacyjnego można użyć się dwóch układów scalonych BasiCAN i FullCAN 44 Magistrala CAN Oprogramowanie interfejsu • Oprogramowanie operacyjne - wprowadza cały system w ruch - zapewnia jego działanie - testuje interfejs wraz z mikrokontrolerem • Oprogramowanie aplikacyjne - rejestracja pomiarów - sterowanie wyświetlaczem - transmisja daty i czasu -… 45 Magistrala CAN Zgodność pomiędzy 20A i 20B • Sterowniki z możliwym 20A – mogą przetwarzać tylko ramki standardowe (po odebraniu ramki rozszerzonej generują komunikat o błędzie) • Sterowniki z możliwym 20A i biernymi cechami 20B – przetwarzają tylko ramki standardowe, jednak akceptują ramki rozszerzone (przeprowadzają próbę błędu i odpowiadają bitem ACK, albo ramką błędu) • Sterowniki z możliwym 20B – przetwarzają, przechowują i przepuszczają ramki standardowe i rozszerzone 46 Magistrala CAN Dla potrzeb przemysłu motoryzacyjnego wyróżnia się cztery klasy magistrali: • Klasa A – szybkość transmisji do 10 kb/s, używana do łączenia urządzeń takich jak: światła, kierunkowskazy, siłowniki siedzeń i lusterek, centralny zamek • Klasa B – szybkość transmisji ok. 40 kb/s używana do łączenia urządzeń takich jak sterowniki klimatyzacji • Klasa C – szybkość transmisji 250250-1000 kb/s używana do transmisji sygnałów w czasie rzeczywistym pomiędzy podzespołami mechanicznymi, a ich sterownikami (sterowanie silnikiem, skrzynią biegów, układy ABS, ESP, ACC) • Klasa D – szybkość przesyłu 1.01.0-10 Mb/s wykorzystywana do transmisji multimedialnych 47 Magistrala CAN Przykład zastosowania magistrali CAN klasy C 48 Magistrala CAN Przykład zaimplementowanej sieci CAN 49