Magistrala CAN cz.3.pdf

(165 KB) Pobierz
32030359 UNPDF
Magistrala CAN, część 3
Zdecentralizowana wymiana danych
Dwie pierwsze czÍúci tego
artyku³u dotyczy³y historii,
normalizacji, podstawowej
struktury i†protoko³u
transmisji danych Sieci
Obszaru Sterownika.
W†niniejszej, trzeciej czÍúci,
po³oøono nacisk na aspekty
praktyczne.
Detekcja b³ÍdÛw
i†ich korekcja
Jedn¹ z†najbardziej
rzucaj¹cych siÍ w†oczy
cech magistrali CAM jest
jej nadzwyczajna zdol-
noúÊ wykrywania wielu
b³ÍdÛw podczas transmi-
sji danych i†odpowie-
dniego reagowania na
nie. Ma ona odstÍp Ham-
minga (nazywany takøe
odstÍpem sygna³owym)
rÛwny 6. OdstÍp sygna-
³owy miÍdzy dwoma s³o-
wami dwÛjkowymi o†tej
samej d³ugoúci jest li-
czb¹ bitÛw na odpowia-
daj¹cych sobie pozycjach, ktÛre
maj¹ rÛøne wartoúci. Na przyk³ad
odstÍp sygna³owy miÍdzy s³owa-
mi dwÛjkowymi 11011010
i†10000110 wynosi 4, poniewaø
bity: 3-ci, 4-ty, 5-ty i†7-my (licz¹c
od prawej) rÛøni¹ siÍ wartoúciami.
Magistral¹ CAN dane mog¹ byÊ
transmitowane z†szybkoúci¹ 500
kbitÛw/s. Na kaøde 0,7 s przypada
jeden b³Ídny bit spowodowany
zewnÍtrznymi zak³Ûceniami. SieÊ
moøe pracowaÊ osiem godzin
dziennie przez 365 dni w†roku.
Wbudowany sposÛb zabezpiecze-
nia przed b³Ídami gwarantuje, øe
przez 1000 lat pracy tylko jeden
b³¹d nie bÍdzie wykryty. B³Ídy
mog¹ wystÍpowaÊ i†oczywiúcie
wystÍpuj¹, ale skoro s¹ rozpozna-
wane, to moøna je skorygowaÊ.
Tylko nierozpoznane b³Ídy mog¹
powodowaÊ, øe fa³szywe wyniki
pomiarÛw bÍd¹ przetwarzane.
Tab. 3. Porównanie parametrów
systemów CAN 20A (format ramki
standardowej) i CAN 20B (format ramki
rozszerzonej)
Parametr ................................... CAN2.0A CAN2.0B
Maksymalna liczba
identyfikatorów ..............................211 229
Liczba stacji (węzłów) ..................... 32 32
Szybkość transmisji [kbit/s] ........5..125 5..1000
Liczba bajtów w ramce ................. 0 − 8 0 − 8
Maksymalna długość
ramki ........................................ 117 bitów 13 bitów
Maksymalny zasięg
sieci ..........................................patrz tekst patrz tekst
jest tylko jedna stacja, ktÛra wy-
sy³a wiadomoúÊ do magistrali i†od-
biera zwrotnie inny, rÛøni¹cy siÍ
od wys³anego bit (stan magistrali),
to jest oczywiste, øe na magistrali
wyst¹pi³ b³¹d. W†takiej sytuacji
stacja prze³¹cza siÍ na procedurÍ
korekcji b³Ídu. (patrz dalej).
Wykrywanie b³Ídnych bitÛw do-
datkowych
W†specyfikacja CAN okreúla
wyraünie, øe gdy w†ramce danych
jest transmitowanych kolejno wiÍ-
cej niø piÍÊ bitÛw o†tej samej
wartoúci (na przyk³ad siedem razy
wartoúÊ zero w†jakimú polu), to
kaøda grupa piÍciu bitÛw jest
poprzedzana przez bit komple-
mentarny (tutaj oczywiúcie 1).
Ten wprowadzony bit, ktÛry oczy-
wiúcie nie zawiera w†ogÛle øadnej
informacji, jest nazywany bitem
dodatkowym. Po zakoÒczeniu od-
bioru, te bity s¹ usuwane ze
strumienia danych, tak øe tylko
pierwotna wiadomoúÊ jest prze-
twarzana.
Dodatkowe bity mog¹ byÊ z†³at-
woúci¹ uøyte do kontroli b³ÍdÛw.
Jeøeli odbiornik wykryje w†ramce
wiÍcej niø piÍÊ kolejnych bitÛw
o†tej samej wartoúci (lecz nie
w†polu EOF), to jest oczywiste, øe
to nie jest poprawny odczyt, i†øe
Artyku³ publikujemy na pod-
stawie umowy z wydawc¹ mie-
siÍcznika "Elektor Electronics".
Wykrywanie b³ÍdÛw
transmisji
W†CAN zastosowano rÛwno-
czeúnie kilka sposobÛw wykrywa-
nia b³ÍdÛw.
Editorial items appearing on
pages 13..16 are the copyright
property of (C) Segment B.V., the
Netherlands, 1998 which reserves
all rights.
Detekcja b³Ídnego bitu
Kaøda stacja zawsze odbiera
zwrotnie swoj¹ w³asn¹ transmisjÍ.
Dlatego, jeøeli po fazie arbitraøu
Elektronika Praktyczna 3/2000
13
32030359.012.png 32030359.013.png 32030359.014.png 32030359.015.png 32030359.001.png 32030359.002.png
wyst¹pi³ b³¹d podczas transmisji
danych (wyst¹pi³ dodatkowy bit
lub zosta³ ìodwrÛconyî jeden lub
wiÍcej bitÛw). Wtedy odbiornik
zawiesza dzia³anie i†uruchamia
procedurÍ poprawiania b³ÍdÛw
(zobacz dalej).
Szyna
danych
Dane
u¿ytkownika
TxD
CAN H
RxD
Transceiver
CAN
CAN L
Szyna
steruj¹ca
Detekcja b³Ídu CRC
Proces ten polega, jak juø
wspomniano, na oszacowaniu su-
my kontrolnej CRC w†odbiorniku.
Gdy sumy kontrolne: odebrana
i†obliczona rÛøni¹ siÍ, to odbior-
nik zmienia swoje dzia³anie uru-
chamiaj¹c procedurÍ korekcji b³Í-
dÛw (zobacz dalej).
Ramki
CAN
Rys. 9 Schemat blokowy trójstopniowej Sieci Obszaru Sterownika (CAN).
Po pierwsze, ramki w†ktÛrych
zosta³ stwierdzony jakiú b³¹d s¹
natychmiast odrzucane przez od-
powiedni¹ stacjÍ i†nie przetwa-
rzane. Po drugie, jeøeli ktÛraú ze
stacji systemu wykryje jakiú b³¹d,
to wysy³a natychmiast ramkÍ in-
formuj¹c¹ o†b³Ídzie, ktÛra sk³ada
siÍ z†szeúciu dominuj¹cych bitÛw
(sygnalizacja b³Ídu) i†ograniczni-
ka ramki b³Ídu zawieraj¹cego
osiem bitÛw recesywnych. Wsku-
tek tego wszystkie bity recesywne
na magistrali s¹ nadpisywane, tak
øe wystÍpuje na niej tylko szeúÊ
dominuj¹cych bitÛw. Jest to jed-
nak naruszenie przyjÍtej zasady,
øe nie wiÍcej niø piÍÊ kolejnych
bitÛw moøe mieÊ t¹ sam¹ war-
toúÊ.
Wszystkie pozosta³e stacje do-
³¹czone do magistrali wykrywaj¹
ten stan i†uznaj¹ dopiero co ode-
bran¹ ramkÍ jako b³Ídn¹ (wadli-
w¹), odrzucaj¹ j¹ i†takøe wysy³aj¹
ramkÍ sygnalizuj¹c¹ o†b³Ídzie. Ina-
czej mÛwi¹c, stacja ktÛra wykry³a
b³¹d celowo ìuszkadzaî ca³¹ trans-
mitowan¹ ramkÍ, tak øe wszystkie
stacje do³¹czone do magistrali
odbieraj¹ j¹ jako b³Ídn¹. To oz-
nacza, øe o†jakimú b³Ídzie lokal-
nym w†jednej stacji s¹ natych-
miast poinformowane wszystkie
pozosta³e stacje. G³Ûwnym za³oøe-
niem sieci jest, øeby wszystkie
stacje odbiera³y poprawne dane,
ktÛre mog¹ byÊ dalej przetwarza-
ne lub øeby wszystkie stacje od-
biera³y b³Ídne dane, ktÛre bÍd¹
odrzucane. Pierwotna stacja nada-
j¹ca stwierdza oczywiúcie, øe ram-
ka ktÛr¹ wys³a³a jest z†b³Ídem,
poprawia t¹ wiadomoúÊ i†natych-
miast wysy³a ponownie.
wiedni¹ szybkoúci¹ lub jest sta-
cj¹, ktÛra odbiera tylko b³Ídne
dane? Taka stacja mog³aby stale
wysy³aÊ ramkÍ sygnalizuj¹ca
b³¹d i†tym samym zablokowaÊ
ca³¹ sieÊ. CAN jest odpowie-
dnio zabezpieczony przed ta-
kim zdarzeniem, ale brak miej-
sca nie pozwala na opisanie
tego w†tym artykule.
Detekcja b³Ídu potwierdzenia
W†opisie formatu ramki (patrz
rys. 6) wspomniano o†bicie ACK
(bit przerwy na potwierdzenie),
ktÛry jest wysy³any przez stacjÍ
jako bit recesywny. Wszystkie
stacje, ktÛre poprawnie odebra³y
poprzedni¹ ramkÍ nadpisuj¹
(ìprzykrywaj¹î) ten bit bitem do-
minuj¹cym. Stacja nadaj¹ca wy-
krywa to i†îwieî, øe przynajmniej
jedna stacja odebra³a jej dane
poprawnie.
Jeøeli stacja nadaj¹ca stwier-
dzi, øe jej bit w†przerwie na
potwierdzenie (ACK slot) nie zo-
sta³ nadpisany, to ìwieî, øe øadna
stacja nie odebra³a jej wiadomoúci
poprawnie. W†takim razie, zawie-
sza swoje dotychczasowe dzia³a-
nie i†wywo³uje procedurÍ korekcji
b³ÍdÛw (zobacz dalej).
Podsumowanie
Parametry dwÛch wersji syste-
mu CAN, tj. CAN 20A (format
ramki standardowej) i†CAN 20B
(format ramki rozszerzonej) porÛ-
wnano w† tablicy 3 .
Chociaø CAN jest efektywnym
i†bardzo niezawodnym systemem
do przesy³ania danych, to Czytel-
nik i†potencjalny uøytkownik sy-
stemu moøe zapytaÊ jak moøna
praktycznie zastosowaÊ ten sy-
stem? S¹ w†nim bity dominuj¹ce
i†recesywne, 11-bitowy identyfika-
tor, 15-bitowa suma kontrolna
CRC, 1-bitowy ogranicznik, 7-
bitowe pole EOF, 6-bitowa ramka
b³Ídu i†wiele innych ìdziwnoúciî.
Øadna z†nich nie kojarzy siÍ
bezpoúrednio ze struktur¹ danych
mikrokontrolera 8- lub 16-
bitowego.
Jak wiÍc jest moøliwe zapro-
gramowanie mikrokontrolera zgo-
dnie z†protokÛ³em sieci? Jeøeli
o†to chodzi, to przysz³y konstruk-
tor nie powinien siÍ tym mar-
twiÊ. Dla tej sieci jest bowiem
dostÍpnych mnÛstwo gotowych,
niedrogich elementÛw sk³ado-
wych, modu³Ûw. S¹ one dostar-
czane przez producentÛw uk³a-
dÛw scalonych dla systemu CAN,
co spowodowa³o, øe ta sieÊ sta³a
siÍ tak popularna, w†tak krÛtkim
czasie.
Typowe interfejsy CAN sk³a-
daj¹ siÍ g³Ûwnie, jak to widaÊ
na schemacie blokowym ( rys.
Detekcja b³Ídu formatu
W†tym procesie wykorzystywa-
ny jest fakt, øe w†ramce jest kilka
pÛl, ktÛre musz¹ zawsze mieÊ
ustalon¹ zawartoúÊ: w†polu ogra-
nicznika CRC (bit koÒca CRC),
w†polu ogranicznika potwierdze-
nia i†w†polu EOF s¹ zawsze bity
recesywne. Jeøeli w†tych polach
zostanie wykryty bit dominuj¹cy,
to taki stan moøe byÊ tylko
spowodowany przez b³¹d transmi-
sji danych. WÛwczas stacja nada-
j¹ca uruchamia takøe procedurÍ
korekcji b³Ídu.
Korekcja b³ÍdÛw
Procedura korekcji b³ÍdÛw
w†wypadku b³Ídu transmisji da-
nych jest realizowana w†dwÛch
wariantach.
B³¹d wewn¹trz stacji
Co siÍ stanie, gdy stacja
sama stwierdzi, øe jest uszko-
dzona, wysy³a dane z†nieodpo-
14
Elektronika Praktyczna 3/2000
32030359.003.png 32030359.004.png 32030359.005.png
9 ), z†trzech chipÛw. Jedynym
zadaniem mikrosterownika jest
wpisywanie bajtÛw danych
(0..8), ktÛre maj¹ zostaÊ wys³ane
do uk³adu scalonego protoko³u
CAN, wype³nianie pola identy-
fikatora i†pola DLC oraz odpo-
wiednie ustawienie bitu RTR.
Pozosta³e elementy procesu
przetwarzania:
- obliczanie sumy kontrolnej CRC,
- dodawanie pozosta³ych pÛl,
- ³¹czenie siÍ z†magistral¹,
- transmisja danych,
- wykrywanie i†usuwanie b³ÍdÛw
s¹ wykonywane przez uk³ad sca-
lony sterownika CAN.
Dane s¹ wprowadzane do ma-
gistrali za poúrednictwem uk³adu
scalonego transceivera CAN, ktÛry
jest bezpoúrednio po³¹czony z†ma-
gistral¹. Mikrosterownik otrzymu-
je wtedy potwierdzenie pomyúlne-
go wys³ania danych, albo komu-
nikat o†b³Ídzie, poczym podejmu-
je odpowiednie dzia³anie.
Mniej wiÍcej to samo dzieje siÍ
przy odbiorze danych. Sterownik
CAN, za poúrednictwem uk³adu
scalonego transceivera CAN, otrzy-
muje ramki CAN z†magistrali, po-
nownie sprawdza sumÍ kontroln¹,
usuwa z†ramek wszystkie zbÍdne
pola i†do mikrosterownika przesy-
³a otrzymane dane, albo komuni-
kat o†b³Ídzie.
Czytelnik z†pewnoúci¹ juø za-
uwaøy³, øe wymagania sprzÍtowe
i†programowe interfejsu magist-
rali CAN nie s¹ wielkie. Mik-
rosterowniki, zawieraj¹ce sterow-
nik CAN, s¹ juø dostÍpne na
rynku. Umoøliwiaj¹ one skon-
struowanie dwustopniowego in-
terfejsu CAN.
Przed przyst¹pieniem do omÛ-
wienia konstrukcji interfejsu
przedstawionych jeszcze zostanie
kilka dodatkowych informacji.
700..707. WybÛr pojedynczego
identyfikatora jest wtedy moøli-
wy tylko po przeprowadzeniu
dalszej selekcji z†uøyciem mik-
rosterownika. Przeznaczone dla
danej stacji ramki zdalne rÛw-
nieø przechodz¹ przez filtr przed
dotarciem do mikrosterownika.
Tylko wtedy moøe on wygene-
rowaÊ w†odpowiedzi w³aúciwe
dane i†skierowaÊ je do sterow-
nika CAN.
Filtrowanie akceptacyjne
Z†czÍúci 2 wiadomo, øe CAN
dzia³aj¹ca w†standardowym for-
macie ramek (CAN20A) jest w†sta-
nie przetwarzaÊ do 2048 rÛønych
identyfikatorÛw. Oczywiúcie nie
jest niezbÍdne, aby kaøda ze stacji
przy³¹czonych do magistrali otrzy-
mywa³a wszystkie ramki danych.
Na przyk³ad moøe byÊ tak, øe dla
stacji K istotne s¹ tylko ramki
z†identyfikatorami 129, 1345
i†1999, a†2045 pozosta³ych nie
øadnego znaczenia. Bardzo poø¹-
dane staje siÍ wiÍc wprowadzenie
takiej selekcji identyfikatorÛw, aby
do mikrosterownika nie dociera³y
ramki zbyteczne. Selekcja ta na-
zywa siÍ filtracj¹ akceptacyjn¹.
Umoøliwia ona takie zaprogramo-
wanie sterownika CAN, øeby
sprawdza³ wszystkie otrzymywane
ramki (wraz z†korekcj¹ b³ÍdÛw),
ale do mikrosterownika wysy³a³
tylko ramki o†okreúlonych identy-
fikatorach. Bez koniecznoúci do-
konywania przez mikrosterownik
zbytecznych porÛwnaÒ przetwa-
rzanie staje siÍ szybsze. Do fil-
trowania akceptacyjnego moøna
uøyÊ dwÛch rÛønych uk³adÛw
scalonych.
Uk³ad FullCAN
Uk³ad ten umoøliwia dok³adne
zaprogramowanie i†selekcjÍ pojedyn-
czego identyfikatora. Innymi s³owy,
uk³ad moøe zostaÊ przystosowany
do akceptowania jednej lub okreú-
lonej liczby ramek, na przyk³ad
tylko ramki z†identyfikatorem 798.
Jednak uk³ad ten nie bÍdzie prze-
puszcza³ duøej liczby ramek o†rÛø-
nych identyfikatorach, poniewaø
program sterownika jest ustalony.
Jeøeli wiÍc ma byÊ odbierane
wiele ramek o†rÛønych identyfika-
torach, lepiej wybraÊ chip Basi-
CAN. Trzeba jednak pamiÍtaÊ, øe
wtedy znaczna czÍúÊ procesu se-
lekcji z†koniecznoúci przejmie
mikrosterownik, ktÛrego moc prze-
twarzania bÍdzie musia³a byÊ
zwiÍkszona.
Zalet¹ uk³adu FullCAN jest
moøliwoúÊ programowania przez
mikrosterownik w†uk³adzie scalo-
nym sterownika CAN odpowiedzi
na zdaln¹ ramkÍ. Gdy taki uk³ad
otrzymuje dozwolon¹ zdaln¹ ram-
kÍ dla odnoúnej stacji, moøe wy-
s³aÊ w†odpowiedzi ramkÍ danych
bez interwencji mikrosterownika.
Wraz z†nieuniknionym rozwo-
jem technologii rÛønice pomiÍdzy
uk³adami BasicCAN i†FullCAN sta-
j¹ siÍ coraz mniej wyraüne. Chipy
FullCAN staj¹ siÍ takøe coraz
sprawniejsze, mog¹c wybieraÊ co-
raz wiÍksze liczby identyfikatorÛw
i†przechowywaÊ coraz wiÍcej rejes-
trÛw danych. Najnowsze uk³ady
sterownikÛw CAN mog¹ za pomo-
c¹ programu prze³¹czaÊ siÍ pomiÍ-
dzy dwoma trybami dzia³ania.
Uk³ad BasiCAN
Uk³ad ten zawiera prosty filtr
o†szerokoúci oúmiu bitÛw, po-
zwalaj¹cy na jedynie zgrubn¹
selekcjÍ wstÍpn¹. Polega ona na
tylko grupowym przepuszczaniu
identyfikatorÛw, na przyk³ad
Tab. 4. Podstawowe parametry scalonego interfejsu SJA1000.
Układ scalony sterownika SJA1000 (Philips Semiconductors)
CAN
Interfejs mikrosterownika Może zostać dostosowany do mikrosterowników Intel i z nim zgodnych
lub do mikrosterowników Motorola i z nim zgodnych.
Tryb działania 1 Rozmieszczeniem wyprowadzeń, sprzętowo i programowo zgodny
z PCA82C200, CAN20A i bierny CAN20B. Standardowy format ramek.
Szybkość transmisji danych do 1Mb/s. Filtr akceptacyjny BasicCAN.
Tryb działania 2 Standardowy i rozszerzony format ramek. Szybkość transmisji danych do
1 Mb/s. Możliwość CAN 20B. Rozszerzony filtr akceptacyjny o własnoś−
ciach BasicCAN.
Układ scalony transceivera Szybki CAN, zgodny z ISO/DIS11898. Szybkość transmisji do 1 Mb/s. Za−
bezpieczenie wewnętrzne przed zakłóceniami wytwarzanymi przez pojazdy
silnikowe. Zabezpieczenie wewnętrzne przed zwarciami i przegrzaniem.
Nie zasilone węzły (stacje) nie oddziaływują na magistralę. Pozwala kon−
struować CAN o liczbie węzłów do 110.
ZgodnoúÊ pomiÍdzy
20A i†20B
Jak juø wiadomo z†dyskusji
o†formatach ramek, istnieje Format
Standardowy z†11-bitowymi iden-
tyfikatorami i† Format Rozszerzony
Elektronika Praktyczna 3/2000
15
32030359.006.png 32030359.007.png 32030359.008.png
z†29-bitowymi identyfikatorami.
Dlatego przy wyborze sterownika
CAN, gdy w†magistrali s¹ uøywane
oba formaty (co jest zupe³nie
moøliwe i†dopuszczalne), naleøy
zachowaÊ duø¹ ostroønoúÊ.
Sterowniki z moøliwym 20A
i biernymi cechami 20B
Uk³ady te akceptuj¹ ramki roz-
szerzone z†29-bitowymi identyfi-
katorami, przeprowadzaj¹ prÛbÍ
b³Ídu i†odpowiadaj¹ bitem ACK
(potwierdzenia) albo ramk¹ b³Í-
du.
£¹cznoúÊ nie zostaje zak³Ûco-
na, ale rozszerzone ramki danych
nie s¹ ani zapisywane ani prze-
puszczane, poniewaø uk³ady te s¹
przewidziane jedynie do przetwa-
rzania ramek formatu standardo-
wego. Niemniej w†pe³ni nadaj¹
siÍ do uøytku w†systemach hyb-
rydowych.
Sterowniki z†moøliwym 20B
Te sterowniki przetwarzaj¹,
przechowuj¹ i†przepuszczaj¹ ram-
ki zarÛwno formatu standardowe-
go jak i†rozszerzonego.
Przy podejmowaniu decyzji
o†zakupie sterownika CAN, czy
mikrosterownika zawieraj¹cego
sterownik CAN, napotyka siÍ na
tak duøy ich wybÛr, øe op³aca siÍ
przejrzeÊ przedtem internetowe
witryny najbardziej znanych pro-
ducentÛw tych uk³adÛw, Hitachi,
Intel, Motorola, NSC, Philips, SGS,
Siemens, Temic i†Texas Instru-
ments.
EE
Sterowniki z moøliwym 20A
Te sterowniki mog¹ przetwa-
rzaÊ tylko ramki standardowe,
a†po odebraniu ramki rozszerzonej
generuj¹ komunikat o†b³Ídzie. Mo-
øe to ca³kowicie wstrzymaÊ dzia-
³anie systemu, wiÍc sterowniki
tego rodzaju mog¹ byÊ uøywane
tylko systemach z†ramkami wy-
³¹cznie standardowymi.
16
Elektronika Praktyczna 3/2000
32030359.009.png 32030359.010.png 32030359.011.png
Zgłoś jeśli naruszono regulamin