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

Podobne dokumenty