CAN-bus czyli wymiana informacji i diagnoza po szynie danych
CAN-bus czyli wymiana informacji po szynie danych w Mercedesie klasy "S"
Magistrala CAN jest tak skonstruowana, że w jednej chwili nadawać może tylko jedno
urządzenie. Jeśli zdarzy się sytuacja, że wiele nadajników chce wysyłać dane,
wszystkie milkną i jako pierwsze rozpoczynają transmisję te urządzenia, które mają
najwyższy priorytet. W Mercedesie klasy S przez samochód przebiegają dwie, a w
CL nawet trzy sprzężone ze sobą szyny danych. Dane ważne dla bezpieczeństwa
jazdy, na przykład z układów sterowania napędem, przepływają szyną o większej
przepustowości niż sygnały dotyczące na przykład klimatyzacji. W Mercedesie klasy
S magistrala przenosi (w zależności od wyposażenia auta) do 650 sygnałów
s
terujących około 150 funkcjami 50 urządzeń elektronicznych. Informacje te mogą
być wykorzystywane przez wiele układów do najróżniejszych zadań: np. przez
klimatyzację do sterowania dmuchawą, radio w celu dopasowania siły głosu, deskę
rozdzielczą do pokazywania prędkości czy przez komputer pokładowy i system
nawigacji do znalezienia optymalnej trasy. Auta Mercedesa klasy S i CL, obok
tradycyjnych kabli miedzianych, zawierają światłowody. Przez szynę o nazwie D2B
może przepływać ponad 5,6 miliona bitów na sekundę, czyli około 60 razy więcej niż
tradycyjną CAN. Dzięki temu, że magistrala D2B może przenosić także sygnały
audio, system nagłaśniający, urządzenie głośno mówiące oraz system nawigacji
mogą korzystać z tych samych głośników. Mimo iż ciągle przybywa w samochodach
nowych układów elektronicznych, dzięki cyfrowemu układowi CAN zmniejszyło się
okablowanie samochodu. W poprzedniku klasy S było 3,2 km kabli ważących 56 kg,
dziś znajduje się tam tylko 2,2 km przewodów o masie 39 kg. W Volvo już od roku
1999 ko
munikacja wszystkich urządzeń odbywa się w technice CAN -bus. Chociaż
przełącznik świateł steruje siedmioma różnymi funkcjami, dochodzą do niego tylko
trzy przewody: plus, masa i sygnał danych. Takim kablem połączone są wszystkie
urządzenia wykonawcze. Dzięki technice CAN-bus jednym przewodem mogą być
przenoszone jednocześnie w obu kierunkach dwa sygnały lub więcej. Przepływają
dane -
np. sterujące silnikiem lub skrzynią biegów - z szybkością 250 kbit/s oraz do
modułów mających mniej istotne zadania, jak sterowanie klimatyzacją lub światłem
wewnątrz samochodu - te informacje transmitowane są z prędkością 125 kbit/s.Jeśli
na przykład włączone mają być tylne światła przeciwmgielne, przełącznik świateł
przekazuje przez szynę danych odpowiedni cyfrowy sygnał do wszystkich modułów.
Układy, do których nie jest on adresowany, ignorują te informacje. Są one odbierane
prze REM (Rear Electronic Module) umieszczony w bagażniku. Układ pobudza
przekaźnik, który z kolei włącza lampy przeciwmgielne. To jednak nie koniec -
j
ednocześnie REM kontroluje ich działanie. Jeśli wszystko jest w porządku,
odpowiednia informacja przepływa przez szynę danych i na tablicy rozdzielczej
zapala się lampka OK. Dzięki technice CAN-bus oraz elastycznie działającym
modułom, sygnał wysłany do układu REM może naprzykład spowodować włączenie
tylnego światła przeciwmgielnego, gdy przepali się żarówka znajdująca się w świetle
hamowania.Komunikacja wszystkich pokładowych urządzeń sterujących odbywa się
poprzez CAN (Controller Area Network). Nazwa ta o
bejmuje zarówno magistralę, jak
i protokół określający sposób przesyłania danych. CAN działa na zasadzie
rozsiewczej (broadcasting), co oznacza, że informacje są wysyłane przez jedno
urządzenie, a pozostałe mogą je odbierać. Ponieważ wszystkie przesyłane pakiety
danych zawierają identyfikator adresata, każdy z odbiorników "wie", czy są one
przeznaczone dla niego.
Ogólne informacje
Podstawowe własności magistrali CAN to:
-
Duża odporność na zewnętrzne zakłócenia elektromagnetyczne, dzięki
zastosowaniu różnicowej techniki transmisji bitów. Ponadto każda ramka CAN
opatrzona jest sumą kontrolną CRC-15. Według matematycznych obliczeń jeden
przekłamany bit może zostać nie wykryty raz na 1000 lat ciągłej pracy magistrali
(prawdopodobieństwo niewykrycia wynosi 10^-11).
-
Transmisja na magistrali odbywa się metodą „broadcastową” w konfiguracji multi-
master.
-
Dostęp do medium transmisyjnego realizowany jest poprzez mechanizm CSMA/CA
(Carrier Sense Multiple Access with Collision Avoidance). Zapewnia on transmisję
w
iadomości z uwzględnieniem jej priorytetu. W odróżnieniu od magistrali
Ethernetowej, wspomniany mechanizm zapobiega utracie informacji w przypadku
kolizji na magistrali.
-
Dane na magistrali mogą być transmitowane z prędkością do 1Mbps na odległość
max. 40
metrów. Wraz ze wzrostem odległości prędkość maleje. Należy pamiętać, że
rzeczywista efektywność (prędkość) przesyłanych danych po uwzględnieniu
nagłówka i danych nadmiarowych wynosi ~50% (także przy identyfikatorze 29-
bitowym).
Szybkość transmisji
kbps
D
ługość magistrali
m
1000
40
500
100
200
200
100
660
50
10000
5
100000
-
Standard CAN definiuje kilka typów ramek. Ramka danych może zawierać do 8
bajtów danych. Mechanizm wykrywania i obsługi błędów korzysta z ramek błędów
(error frames). Istniej
e możliwość użycia ramek zdalnych (RTR – Remote
Transmission Request frames), oraz ramek przeładowania (overload frames).
-
Elastyczność systemu – dołączenie kolejnych węzłów bez konieczności zmian
hardwerowych i softwerowych.
-
CAN jest to magistralą asynchroniczną i szeregową.
Warstwa fizyczna
Standard CAN jest zdefiniowany w dwóch warstwach modelu odniesienia, co daje
pełną elastyczność w stosunku do pozostałych warstw. Jako medium transmisyjne
podstawą jest medium miedziane (skrętka ekranowana lub nieekranowana). Rzadkie
są przypadki stosowania światłowodu, natomiast prowadzone są obecnie badania
nad użyciem fal radiowych.
Warstwa fizyczna definiuje:
-
poziomy sygnałów występujących na magistrali. Stan dominujący, odzwierciedla
niski poziom logiczny, natomiast stan recesywny, odzwierciedla wysoki poziom
logiczny.
-
impedancję falową magistrali. zależności bitowe, z których wynika prędkość
transmisji.
-
kodowanie za pomocą metody NRZ (Non-return-to-Zero).
-
synchronizację na magistrali, którą zapewnia metoda „bit stuffing”, polegająca na
dostawieniu bitu stanu przeciwnego po serii 5 bitów tego samego stanu.
Istnieje kilka norm definiujących parametry magistrali przy różnych prędkościach
transmisji. Standardy te różnią się poziomami napięć a także wartością impedancji
terminującej na końcu magistrali. Wynika stąd maksymalna liczba węzłów jaką
można podpiąć do magistrali
Najbardziej znane normy to:
1.ISO11898 dla magistral o szybkiej transmisji danych (do 1Mb/s).
-
szybkość transmisji 125kpbs – 1Mbps
- o
d 2 do 30 węzłów na sieć
-
maksymalna długość magistrali to 40 m
- terminatory 120ohm jako elementy dopasowania impedancyjnego
-
przewód dwużyłowy ekranowany
- zasilanie 5V
-
zakres napięć sygnału od -2 do +7V
-
minimalny prąd wyjściowy nadajnika większy od 25mA
2.ISO11519 dla magistral o wolnej transmisji danych (do 125kb/s).
-
szybkość transmisji do 125kbps
-
od 2 do 20 węzłów w sieci
-
szybkość przesyłanych danych zależy od obciążenia magistrali przez pojemność
wprowadzaną przez węzły
-
pojedyńczy terminator na końcu linii
-
prąd wyjściowy większy niż 1mA
-
napięcie zasilania 5V
-
zakres napięć od -2V do + 7V
Czas trwania każdego z bitów jest ściśle zdefiniowany przez cztery segmenty.
Koncepcję tą przedstawia poniższy rysunek:
Poszczególne elementy to:
tq
– time quantum – jest to najmniejszy niepodzielny odcinek czasu służący do
obliczenia zależności pozostałych segmentów (segmenty składają się z całkowitej
wielokrotności liczby tq). Wartość tq zależy od częstotliwości taktowania danego
węzła.
Segment synchronizacji
– jest to segment znajdujący się w pierwszej fazie trwania
bitu. Służy do synchronizacji węzłów znajdujących się w sieci. W chwili trwania
segmentu synchronizacji następuje zmiana wartości bitu. Czas trwania tego
fragmentu zawsze wynosi 1 tq.
Segment propagacji
– segment ten jest używany do kompensacji opóźnień przez
przewody transmisyjne oraz kontrolery obsługujące. Segment ten jest
programowalny od 1 do 8 tq.
Segment pierwszego bufora fazy
– jest wykorzystywany do kompensacji błędów
fazow
ych zboczy sygnałów. Wartość tego pola może być ustawiana w zakresie od 1
do tq. Wartość tego pola może być wydłużona w momencie resynchronizacji. Po tym
fragmencie bitu następuje próbkowanie wartości bitu (jednokrotne lub trzykrotne).
Segment drugiego bufora fazy
– jest również wykorzystywany do kompensacji
błędów fazowych zboczy sygnałów. Wartość tego pola również może być ustawiana
w zakresie od 1 do tq. W trakcie resynchronizacji długość tego pola może być
automatycznie skrócona. Przed tym segmentem bitu następuje próbkowanie wartości
bitu (jednokrotne lub trzykrotne).
Chwila próbkowania magistrali jest parametrem wpływającym na wrażliwość węzła.
Zmniejszenie wpływu zmian częstotliwości taktującej uzyskujemy poprzez
wyprzedzające próbkowanie, natomiast opóźnione próbkowanie obniża wrażliwość
węzłów na opóźnienia wynikające z toru transmisyjnego.
Warstwa łącza danych
Warstwa łącza danych definiuje strukturę ramki, oraz mechanizm dostępu do
medium. W przypadku identyfikatora 11-bitowego standardu CAN2.0B struktura
ramki przedstawia się następująco:
Poszczególne elementy to :
- SOF (Start of Frame) bit
– dominujący bit oznaczający początek ramki
- ID (Identificator)
– pole to reprezentuje 11-bitowy identyfikator ramki
- RTR bit
– Jeżeli jest w stanie recesywnym, to mamy do czynienia z ramką zdalną
(brak pola danych), w przeciwnym wypadku mamy do czynienia z ze zwykłą ramką
danych
- IDE (Identificator Extension)
– Bit który pozwala rozróżnić czy mamy do czynienia
identyfikatorem podstawowym ramki, czy tez z rozszerzonym. Dla identyfikatora 11-
bitowego, bit ten znajduje się w stanie dominującym.
- r0
– Bit zarezerwowany. Jest akceptowalny w dowolnym stanie recesywnym lub
dominującym.
- DLC (Data Length Code)
– 3 bitowe pole informujące jaka ilość bajtów jest
przesyłana w aktualnej ramce
- Data field
– Pole danych. Może zawierać od 0 do 8 bajtów danych.
- CRC (Cyclic Redundancy Check) field
– 15-bitowe pole sumy kontrolnej. Suma
kontrolna liczona jest na podstawie wszystkich bitów poprzedzających pole sumy
kontrolnej. Pole sumy kontrolnej kończy ogranicznik (CRC-D - delimiter), znajdujący
się zawsze w stanie recesywnym. Warto zapamiętać fakt, że suma kontrolna liczona
jest na podstawie strumienia bez „bitów dostawionych”.
- ACK (Acknowledge)
– 2-bitowe pole potwierdzenia (ACK slot, ACK-D - delimiter).
Służy do potwierdzenia przez węzeł odbierający poprawności transmisji.
- EOF (End of Frame)
– 7-bitowe pole końca ramki. Jest to ciąg bitów znajdujących
się w stanie recesywnym.
- INT (Interval)
– 3-bitowa przerwa międzyramkowa, zawsze znajdując się w stanie
recesywnym
Po każdej przesłanej ramce musi wystąpić co najmniej 3-bitowa przerwa
międzyramkowa.
W przypadku ramki z identyfikatorem 29-
bitowym (poniżej), bit IDE ustawiony jest w
stan recesywny, co sygnalizu
je, że kolejne 18-bitów stanowi składową część
identyfikatora 29-
bitowego. Występuje tutaj dodatkowe pole SSR (Substitute Remote
Request bit).
Jak łatwo policzyć, używając identyfikatora 11-bitowego możemy zaadresować 2048
węzłów. Ponieważ specyfikacja mówi, że siedem najstarszych bitów nie może
znajdować się jednocześnie w stanie recesywnym , dlatego też efektywna liczba
identyfikatorów możliwych do użycia wynosi 2032 (2048–2^4).
Dla identyfikatora 29-
bitowego liczba ta rośnie do około 536 milionów. Tak duża
liczba węzłów z kolei nie jest możliwa do podłączenia z przyczyn fizycznych, gdyż
każdy dodatkowy węzeł wprowadza pojemność i dodatkowo obciąża magistralę
powodując zniekształcenia przebiegów na niej występujących. Dlatego praktyczna
liczba węzłów nie powinna przekraczać 32 urządzeń (przy maksymalnej prędkości).
Jak już wcześniej wspomniano dostęp do medium jest realizowany poprzez proces
arbitrażu bitowego. Każdy węzeł „nasłuchuje” tego co dzieje się na magistrali w danej
chwili, przez co wie kiedy m
edium jest wolne a kiedy zajęte. Gdy zachodzi potrzeba
transmisji dany węzeł w przypadku braku aktywności na magistrali, zaczyna
transmitować dane, blokując dostęp innym węzłom, które naturalnie przełączają się
w tryb odbioru. Często jednak występują zdarzenia gdy dwa lub więcej węzłów chce
jednocześnie rozpocząć transmisję danych. W takim przypadku stosowana jest tzw.
logika iloczynu na rezystorze (wired and).
Sprzętowo realizowana jest ona poprzez zwykły tranzystor bipolarny pracujący w
układzie otwartego kolektora. Jak wiadomo taki układ tranzystora pozwala wymusić
na wyjściu stan niski, który odpowiada stanowi dominującemu w standardzie CAN. A
więc gdy dany węzeł „wystawi na magistralę” stan recesywny a wykryje stan
dominujący, przegrywa proces arbitrażu, przechodząc w stan odbioru. Omawiany
przypadek został przedstawiony na rysunku poniżej:
Analizując przykładową realizację takiego mechanizmu, można dojść do wniosku, że
największy priorytet ma ramka o najmniejszej wartości w polu identyfikatora.
Ni
edopuszczalne jest zatem wysłanie ramki o takim samym identyfikatorze z dwóch
różnych węzłów, gdyż może to doprowadzić do nieprzewidywalnych skutków.
Natomiast dozwolone jest przesyłanie ramek w formie podstawowej i rozszerzonej na
tej samej magistrali, co
w niektórych przypadkach może zwiększyć efektywność
transmisji.
Warstwa aplikacyjna
Standard CAN posiada bogatą rodzinę standardów w warstwie aplikacyjnej i
użytkownika. Są to :
CANopen
– Oparty na standardzie grupy CiA (CAN in Automation – standard DS
301). Bardzo popularny protokół, używany w systemach wbudowanych. Pozwala
stworzyć w pełni dynamiczną sieć urządzeń. Jest zorientowany na obiektowe
przesyłanie danych. Posiada mechanizmy takie jak PDO (Proccess Data Object),
SDO (Service Data Object), NMT (Network Management), SYNC (Synchronization
Object), EMG (Emergency Object).
CAN Areospace
– standard wprowadzony przez NASA (National Aeronautic & Space
Administration). Używany do systemu kontrolno-nawigacyjnego.
CAN Kindom - specyfikacja warstwy aplik
acji stworzona przez szwedzka firmę
Kvaser AB. Zaakceptowana przez organizację CiA, oraz dostępna bez opłat. Daje on
projektantom swobodę w tworzeniu własnego systemu, otwierając możliwość do
projektowania systemu modułowego.
Device Net
– szeroko stosowany w aplikacjach automatyki przemysłowej Jest to
otwarty standard sieciowy warstwy aplikacyjnej stworzony przez firmę Rocwell/Allen-
Bardley. Rozwiązanie jest zaakceptowane przez CiA.
SDS - (Smart Distributed System)
– specyfikacja stworzona przez firmę Honeywell,
zajmującą się systemami sterującymi oraz kontrolno-pomiarowymi. Specyfikacja jest
ogólnie dostępna bez dodatkowych opłat i zatwierdzona przez organizację CiA.
SafetyBus
– standard opracowany przez grupę Safety Network International e.V.
Stosowany w p
rzemyśle transportowym, i automatyce przemysłowej
SAE -
standard zdefiniowany przez grupę Society of Automotive Engineers.
Stosowany jest jako system komunikacji urządzeń kontrolnych, pomiarowych w
samochodach osobowych (J1850) i ciężarowych (J1939) (USA)
Zastosowanie
Magistrala CAN jest powszechnie stosowana w różnych dziedzinach. W przemyśle
motoryzacyjnym na bazie magistrali CAN realizuje się cyfrowa magistralę pojazdów.
Jest ona głównym medium zbiorczym dla sensorów, układów wykonawczych, jak i
element
ów dodatkowych.Stosowana technika priorytetów standardu CAN pozwala na
rozgraniczenie sterowania z jednej strony elementów nadzwyczaj ważnych, takich jak
poduszki powietrzne, z drugiej strony kwestii błahych takich jak transmisja danych
między sprzętem dodatkowym A więc na "CANie" spoczywa bardzo duża
odpowiedzialność.