background image

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. 
 

background image

 
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 

1000 

40 

500 

100 

200 

200 

100 

660 

50 

10000 

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: 

background image

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: 
 

background image

 

 
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 

background image

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 

background image

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). 

background image

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: 
 

background image

 

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. 

background image

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ść.