1
UNIVERZITET CRNE GORE
ELEKTROTEHNIČKI FAKULTET PODGORICA
CAN BUS PROTOKOL
SERIJSKE KOMUNIKACIJE
Specijalistički rad
Mentor: Kandidat:
Prof. Dr Radovan Stojanović Milo Janković 33/16
Podgorica, septembar 2017. Godine
2
Univerzitet Crne Gore
Elektrotehnički fakultet Podgorica
Akademske specijalističke studije na smjeru Elektronika
Broj ______
Podgorica, __________ 2017. godine
Kandidat: Milo Janković
Broj indeksa: 33/16
Naziv rada:
CAN bus protokol serijske komunikacije
Datum izdavanja rada: Datum predaje rada:
____________________ __________________
Mentor: Kandidat:
____________________ __________________
Prof. Dr Radovan Stojanović Milo Janković
3
1. Uvod
CAN tehnologija je upoznata 1986. kao jednostavna i prilagodljiva, i kao takva našla je primjenu
u svim oblastima gdje mikroprocesori treba da komuniciraju između sebe. Ona se koristi kod
primjena gdje je prednost distribuirana kontrola i gdje će bus (sabirnica) sistem smanjiti
pretjerano ožičenje. Najveću upotrebu ima u automobilskoj industriji. CAN tehnologija se
pokazala kao superiorna u odnosu na bilo koji drugi bus sistem u pogledu cijene, sposobnosti
rada u realnom vremenu, detekcije grešaka i sposobnosti ograničenja istih.
CAN je serijska mrežna tehnologija koja je prvenstveno dizajnirana za automobilsku industriju
od strane Bosch-a, posebno za Evropske automobile, ali je takođe postala popularna i u
industrijskoj automatizaciji. CAN bus se primarno koristi u ugrađenim sistemima i omogućava
brzu komunikaciju između mikrokontrolera pri zahtjevima u realnom vremenu.
CAN je dvožična, polu dupleks (može da prima i šalje podatke istovremeno), sistemska mreža sa
velikom brzinom, koja je daleko superiornija, u pogledu funkcionalnosti i pouzdanosti, od
konvencionalnih serijskih tehnologija kao što je RS232. Dizajnirana je za zahtjeve u realnom
vremenu, i dostiže brzine prenosa podataka do 1 Mbit/sek.
Mnogi veliki proizvođači poluprovodnika kao što su Motorola, Filips, Intel i ostali, prodaju CAN
čipove, i sama činjenica da su milioni njih iskorišteni u automobilima garantuje niske cijene
čipova i dostupnost. Dosta proizvođača koji integrišu UART sa dizajnom njihovog
mikroprocesora, u cilju podržavanja serijske komunikacije za RS 232/485, danas teže ka tome da
integrišu CAN.
Upotreba CAN-a u većini Evropskih automobila dovela je do dostupnosti CAN čipova još od
1987.
CAN mreže se mogu koristiti kao ugrađeni sistem za komunikaciju mikrokontrolera i kao
otvoreni sistem za komunikaciju pametnih uređaja. Neki korisnici, npr. u polju medicinskog
inženjeringa, odlučili su se za CAN zato što moraju da ispune posebno stroge bezbjednosne
zahtjeve.
Upotreba CAN-a je univerzalna, za svemirsku indrustiju i avijaciju, medicinu, sve do primjene u
domaćinstvu kao što su mašine za pranje, sušenje i čak aparata za kafu.
Najveća prednost ovog sistema leži u smanjenju i održavanju velikog ožičenja i u pojačanim
performansama multiprocesorskog sistema.
2. Primjena i karakteristike
2.1 Primjena
Glavne primjene CAN-a su u poljima:
Putničkih vozila
Kamiona i autobusa
4
Terenskih vozila
Putničkih i teretnih vozova
Pomorske elektronike
Vazdusne elektronike
Fabričke automatizacije
Industrijske kontrole mašina
Građevinske automatizacije
Liftova i pokretnih stepenica
Medicinske opreme i uređaja
Mnoge druge…
Jedno od najbitnih tržista za CAN jeste medicinska oprema i uređaji, počevši od komponenti za
operacijske stolove kao što su svijetla i stolovi, kamere, rendgen, mašine za ultrazvuk, sve do
veće opreme kao što je CT (kompjuterizovana tomografija) skener. Sve veće kompanije za
medicinsku opremu preferiraju CAN kompatibilnost od njihovih dostavljača.
Jedan od najzahtjevnijih zadatka automatizacije u pogledu brzine i preciznosti jeste kontrola
pokreta. Veza između kontrolnog procesora sa intregrisanim kontrolerom pokreta i motorom sa
integrisanim enkoderom zahtijeva pretjerano ožičenje. Situacija postaje još gora ako se zahtijeva
korišćenje više osa pokreta. Ne samo što broj žica prelazi hiljade, nego takođe postaje sve teže
dodati još kontrolera pokreta. Još jedan pogoršavajući faktor jeste da će svaki performans PC-ja
biti ograničen (u nekom trenutku) kada je u pitanju vrijeme reakcije koje je potrebno da služi
svakom kontroleru pokreta.
Slika 2.1.1 Jednostavna CAN mreža
Rješenje ovog problema jeste u korišćenju distribuirane kontrole kao sto je pokazano na primjeru
na slici 2.1. Svaka komponenta, digitalni i analogni I/0, i svaka osa pokreta je opremljena sa
svojim kontrolerom. Mrežna veza između svih komponenti i glavnog kontrolera je postignuta
5
preko CAN-a, odnosno u ovom slučaju tačnije preko CANopen-a. CANopen je protokol na
višem nivou, tj. dodatni softver preko CAN fizičkog i sloja podatkovne veze.
Ovaj dizajn omogućava lakoću dodavanja skoro neograničenog broja komponenti bez gubitka
performansi. Broj žica između komponenti je sveden na dva, što ne samo da smanjuje troškove
samog ožičenja, nego smanjuje i vremenski zahtjevno održavanje kao i servis prilikom
pokretanja mašine ili u slučaju kvarova.
Servisiranje svake od komponenti u mreži je poboljšano zbog činjenice da inženjer treba samo da
priključi servisnu jedinicu (npr. laptop) negdje u mrežu da bi komunicirao sa bilo kojom
jedinicom. Ovo se može uraditi sa jednim servisnim softver paketom, s obzirom da svi čvorovi u
mreži komuniciraju istim jezikom. Nema potrebe za posebnim servisnim programom za svaku
od jedinica.
2.2 Glavne karakteristike
Sve što ima veze sa CAN-om je bazirano na maksimalnoj pouzdanosti sa maksimalnim
performansom u vidu. Ipak je CAN dizajniran za automobile, definitivno zahtjevno okruženje za
mikroprocesore, ne samo u pogledu potrebne električne robusnosti, nego i zbog potrebe za
velikom brzinom serijskog komunikacionog sistema.
Mnoge kompanije u medicinskom polju su izabrale CAN zbog prilično strogih bezbjednosnih
zahtjeva, i sa sličnim problemima su suočeni proizvođaci ostale opreme koja zahtijeva veliku
bezbjednost, uključujuci robote, liftove i sisteme za transportaciju.
Svojstva CAN-a se mogu sažeti kao:
Multi-master pristup bus-u baziran na prioritetu
Arbitraža na osnovu konkurentnosti(istovremenosti)
Multicast prenos poruka preko filtriranjaprijema poruka
Zahtjev udaljenih podataka
Fleksibilnost konfiguracije
Dosljednost podataka kroz čitav sistem
Detekcija i signaliziranje grešaka
Automatska retransmisija poruka koje su izgubile na arbitraži
Automatska retransmisija poruka koje su uništene greškama
Razlikovanje između privremenih grešaka i trajnih propasti (neuspjeha) čvorova
Autonomna deaktivacija defektnih čvorova
2.3 Multi-master pristup bus-u
U cilju osiguranja veze između čvorova, i time obezbjeđujući maksimalnu brzinu kombinovanu
sa maksimalnom pouzdanošću, CAN ne ograničava sebe na popularnu konfiguraciju mreže
klijent/master. U tipičnoj CAN mreži svi čvorovi imaju jednaka prava. Svaki čvor koji prenosi
udaljeni ili frejm podataka će biti master bus tokom tok prenosa.
6
Stvarni pristup bus-u se odvija kroz nedestruktivnu arbitražu po bitima, koja zauzvrat
omogućava veoma efektivno izbjegavanje sudara poruka u slučaju da više čvorova pokuša da
pristupi bus-u u isto vrijeme.
Mogući konflikt pristupa bus-u se rešava preko arbitraže na osnovu konkurentnosti koristeći
indentifikator poruka. Process CAN arbitraže se blagovremeno osigurava da informacije neće
biti izgubljene. Predajnik sa frejmom najvećeg prioriteta (najniži ID poruke) će dobiti pristup
bus-u.
Frejmovi koji su izgubili arbitražu i oni koji su prekinuti stanjem grešaka će biti ponovno poslati
automatski čim bus bude u idle stanju(neaktivan).
3. Prednosti korišćenja CAN-a
Distribuirana kontrola, tj. korišćenje multiprocesorskog sistema, rezultira povećanim
performansama a ogromno snižene cijene mikrokontrolerskih čipova učinile su korišćenje
višestrukih procesora u jednom sistemu pristupačnim. Druge prednosti su povećana pouzdanost i
poboljšan servis i održavanje. Još jedna od prednosti primjene CAN tehnologije se ogleda tokom
dugotrajnog i stoga veoma skupog procesa razvoja hardvera i softvera. Fizički i sloj podatkovne
veze su već implementirani u silikonu, ili u formi samostalnog CAN kontrolera ili integrisanog u
multifunkcionalnom jezgru mikrokontrolera.
3.1 Firmver
Na slici 3.1.1 je prikazan referentni model koji specificira 7 nivoa počevši od fizičke konekcije
sve do same upotrebe korisnika. Standardna CAN implementacija preskače vezu između sloja
podatkovne veze i sloja primjene da bi se sačuvali vrijedni memorijski resursi minimiziranjem
opštih troškova, a time dobijajući na povećanju performansi kao što je i potrebno kod ugrađenih
riješenja sa ograničenim sredstvima.
Slika 3.1.1 Referentni model
7
Slojevi od trećeg do šestog, tj. oni iznad sloja podatkovne veze, zahtijevaju dodatne softvere, koji
su obezbijeđeni u protokolima viših slojeva kao što su CANopen, DeviceNet i J1939.
Sloj primjene je sloj koji interaguje sa operativnim sistemom ili upotrebom CAN uređaja.
Sloj podatkovne veze povezuje same podatke sa protokolom u pogledu slanja, primanja i
potvrde podataka. Ovaj sloj predstavlja razmjenu podataka uključujući detekciju greške i
oporavljanje od nje, ograničavanje neispravnosti, potvrdu prenosa, itd.
Fizički sloj predstavlja sami hardver, odnosno fizičku konekciju između čvorova u mreži i
karakteristika električnog signala kao što su nivoi napona i tajming.
S obzirom da su dva najniža sloja, fizički i sloj podatkovne veze, već implementirani u silikon,
smanjen je i proces razvoja softvera koncentrisanjem samo na kodiranje softvera za primjenu
tehnologije.
3.2 Protokoli višeg nivoa
Iako ekstremno efektivan u automobilima i manjim primjenama, CAN nije pogodan za
automatizaciju mašina, jer je komunikacija između uređaja ograničena na samo 8 bajta. Kao
posljedica toga, dizajnirani su protokoli viših slojeva kao što su CANopen za automatizaciju
mašina, DeviceNet za fabričku automatizaciju i J1939 za vozila. Oni služe radi podržavanja
poruka neograničenih dužina i da bi omogućili master/slave konfiguraciju.
4. Arhitektura frejma poruka
U jeziku CAN standarda, sve poruke se vode kao frejmovi, kao sto su frejmovi podataka,
udaljeni frejmovi, frejmovi grešaka itd. Informacije poslate CAN bus-u moraju biti kompatibilne
za definisane formate frejmova različitih ali ograničenih dužina.
Svaki čvor povezan na mrežu može da prenosi novi frejm čim bus postane neaktivan(idle).
Dosljednost frejma mora biti simultano prihvaćena od strane svih čvorova u CAN mreži. CAN
obezbjedjuje četiri različita tipa frejmova poruka:
Frejm podataka – šalje podatke
Prenos podataka od jednog čvora ka drugom ili više drugih prijemnih cvorova.
Udaljeni frejm – zahtijeva podatke
Svaki čvor može da zahtijeva podatke od drugog izvornog čvora. Udaljeni frejm je zbog
toga praćen frejmom podataka koji sadrži tražene podatke.
Frejm grešaka – izvještava o stanju grešaka
Svaki pripadnik bus-a, otpremnik ili prijemnik, moye da signalizira stanje greške u bilo
kom trenutku tokom prenosa udaljenog ili frejma podataka.
Frejm preopterećenja – izvještava o preopterećenju čvora
Čvor može da zahtijeva kašnjenje između dva frejma podataka ili dva udaljena frejma,
što znači da preopterećenje može da se dogodi samo kod prenosa između frejmova
podataka ili udaljenih frejmova.
Distanca između uzastopnih frejmova je najmanje trajanje 3 bita.
8
Jedanaestobitni identifikator (standardni format) omogućava ukupno 211
(=2048) različitih poruka.
Identifitkator od 29 bita (prošireni format) omogućava ukupno 229
(= 546+ miliona) poruka.
I frejm podataka i udaljeni frejm su veoma slični. U suštini, udaljeni frejm je frejm podataka bez
polja podataka. Frejmovi grešaka i preopterećenja imaju drugačiji format.
4.1 Dominantni i recesivni (nivo koji se povlači) nivo bus-a
Prije detalja o svakom bitu CAN frejma lakše je prvo pogledati fizički sloj, da bi razumjeli
prirodu, npr. SOF (Start Of Frame – početak frejma) bita, RTR (Remote Transmission Request –
zahtjev za udaljenim prenosom) bita i, kasnije, arbitražu bus-a.
SOF bit signalizira početak frejma poruke. RTR bit odvaja podatke od udaljenog frejma.
Razumijevanje dominantnog i nivoa koji odstupa na CAN bus-u čini lakšim razumijevanje
diferenciranja između frejma podataka i udaljenog frejma.
Fizički CAN bus koristi diferencijani napon između dvije žice, CAN-H i CAN-L. CAN kontroler
sa TTL izlazom koristi dodatni transiver da obezbijedi standardni CAN nivo.
Dominantni nivo (TTL = 0V) uvijek prelazi preko recesivnog (TTL = 5V), koji je bitan posebno
kod arbitraže bus-a.
Slika 4.1.1 Izlazi čvorova i nivo CAN bus-a
Kao što je pokazano na slici 4.1.1 CAN bus nivo će biti dominantan u slučaju da bilo koji broj
čvorova u mreži daju na izlazu dominantni nivo. CAN bus nivo će biti recesivan samo kada svi
čvorovi daju taj nivo na izlazu.Evivalentni primjer iz osnova elektronike će objasniti vezu
između izlaza čvorova i rezultantnog bus nivoa. (slika 4.1.2)
9
Slika 4.1.2
Ovaj primjer koristi tri čvora u CAN mreži, u ovom slučaju reprezentovana sa tri tranzistora u
konfiguraciji sa otvorenim kolektorom. Nivo bus-a će biti nizak (dominantan) u slučaju da bilo
koji broj tranzistora u mreži na izlazu daju dominantan nivo. Nivo bus-a će jedino biti na
visokom nivou (recesivan) kada svi tranzistori u mreži daju na izlazu taj nivo.
Čvor
A B C Bus
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 0
1 0 0 0
1 0 1 0
1 1 0 0
1 1 1 1
Tabela 4.1.1
10
Slika 4.1.3 Primjer nivoa bus-a
Slika 4.1.3pokazuje prelaz iz neaktivnog (idle) CAN bus-a do SOF (početak frejma), što
označava incijalizaciju novog prenosa poruke. Na slici je pokazan izlazni signal CAN čvora u
poređenju sa nivoom bus-a. Kada je bus u idle-u, tj. nijedan čvor ne pokušava prenos, bus će
ostati na recesivnom nivou.
Kada jedan ili više čvorova pokušaju da započnu prenos oni će dati na izlazu SOF bit prema bus-
u. Aktivni SOF bit je po definiciji na dominantnom nivou; dakle aktivni SOF bit će postaviti bus
na dominanti nivo. Mehanizam arbitraže bus-a odlučuje koji od čvorova će dobiti pristup bus-u
od onih čvorova koji to zahtijevaju pristup.
Primjer na slici 4.1.3 pokazuje prenos frejma podataka, koji ukazuje dominantni RTR. Recesivni
RTR bit naznačava prisustvo udaljenog frejma, frejma koji zahtijeva podatke od drugog čvora.
Teoretski, frejm podataka na slici bi mogao biti odgovor udaljenom frejmu. Udaljeni frejm i
zahtijevani frejm podataka koriste isti identifikator poruke. RTR bit, kao i identifikator poruke, je
dio polja arbitraže.
Dominantni RTR bit, koji ukazuje na frejm podataka, će izmijeniti recesivni RTR bit. Kao
rezultat, u slučaju da udaljeni i frejm podatak sa istim identifikatorom poruke pokušaju da
pristupe bus-u, frejm podataka će imati veći prioritet od udaljenog frejma koji zahtijeva podatke.
4.2 Udaljeni i frejm podataka
Sljedeće se odnosi na udaljene i frejmove podataka i kako se oni razlikuju jedni od drugih. Oba
frejma su veoma slična, tj. u osnovi udaljeni frejm je frejm podataka samo bez polja podataka.
Po definiciji udaljeni ili frejm podataka ima sljedeće komponente:
SOF – označava početak udaljenih i frejmova podataka
Polje arbitraže – uključuje identifikator poruka i RTR bit, koji ističu udaljene i frejmove
podataka
Kontrolno polje – koristi se da odredi veličinu podataka i dužinu identifikatora poruke
11
Polje podataka – tiče se samih podataka (važi samo za frejmove podataka)
CRC polje – kontrolna suma
ACK polje – potvrda provjere kontrolne sume
EOF – označava kraj udaljenih i frejmova podataka
IFS – međufrejmni prostor
4.3 Frejm podataka
Frejm podataka emituje poruku CAN bus-u, ili zbog promjene nekog događaja (kao npr. ulaznog
signala) ili kao odgovor na zahtjev za porukom. Frejm podataka, koji ima jedinstveni
identifikator poruke, može biti prihvaćen od strane bilo kojeg broja čvorova u mreži shodno
potrebama neke individualne primjene, ali može biti poslat samo od jednog čvora povezanog sa
podacima poruke.
Slika 4.2.1 Detaljna arhitektura frejma podataka
Između SOF bita i kraja indentifikatora poruke, oba frejma, i udaljeni i frejm podataka su
potpuno identični. Frejm podataka je detektovan niskim (dominantnim) RTR bitom. Svaki od
prijemnih čvorova u CAN mreži, kada detektuje niski RTR bit, će sada znati da je primljena
poruka frejm podataka. Zapravo, RTR bit je dio artbitražnog dijela frejma poruke.
4.4 Udaljeni frejm
Udaljeni frejm šalje zahtjev za prenosom poruke od nekog drugog čvora. Zahtijevani frejm
podataka, koji ima jedinstveni identifikator poruke, može biti prihvaćen od strane bilo kojeg
broja čvorova u mreži shodno potrebama neke individualne primjene, ali može biti poslat od
strane samo jednog čvora povezanog sa zahtijevanom porukom.
Udaljeni frejm je detektovan viskoim (recesivnim) RTR bitom. Svaki od prijemnih čvorova u
CAN mreži, kada detektuje visoki RTR bit, će sada znati da je primljena poruka udaljeni frejm.
12
Slika 4.4.1 Udaljeni frejm
Na slici je prikazan kompletan udaljeni frejm.
Čitav frejm kao što je prikazan na slici 4.2.1 ima dužinu između 47 i 111 bita, zavisno od dužine
polja podataka, koja može biti od 0 do 8 bita.
Sljedeće komponente udaljenog ili frejma podataka se smatraju statičnim poljima, jer je nivo
njihovih podataka statičan (recesivan):
CRC delimiter
ACK delimiter
Polje End Of Frame (završetka frejma)
Polje prekida – ove komponente se takođe koriste da bi se provjerila dosljednost
udaljenog ili frejma podataka.
4.5 Format frejma poruke
Individualni elementi frejma su:
SOF (1 bit)
Dominantni SOF bit reprezentuje početak udaljenog ili frejma podataka i, sa bilo kojim
posljedicama, takođe započinje sekvencu arbitraže (arbitražno polje ide odmah nakon SOF bita).
CAN čvor, prije pokušaja pristupa bus-u, mora sačekati dok on ne pređe u neaktivno stanje. Bus
u idle stanju je detektovan sekvencom od 11 recesivnih bita, tj. sekvencom ACK delimiter bita u
polju potvrde (acknowledgement field) (1 bit), EOF polja (7 bita) i polja prekida (3 bita).
Polje arbitraže (12 ili 32 bita)
Ovo polje se sastoji od dvije komponente:
11 ili 29- bitni indentifikator poruke, gdje je prvi bit MSB (most significant bit)
RTR ukazuje na prenos ili frejma podataka (RTR = 0) ili frejma koji je zahtijevao
udaljeni frejm (RTR = 1).
Nizak identifikator poruke predstavlja visok prioritet poruke. Frejm podataka ima veći prioritet
od udaljenog frejma.
13
Slika 4.5.1 Polje arbitraže sa 11-bitnim identifikatorom
Ukupna dužina polja arbitraže je 12 bita kada se koristi identifikator od 11 bita.
Slika 4.5.2 Polje arbitraže sa 29-bitnim identifikatorom
Ukupna dužina polja arbitraže je 32 bita kada se koristi identifikator od 29 bita.
IDE (Ekstenzija identifikatora) pripada kontrolnom polju u standardnom formatu, a u
produženom pripada polju arbitraže.
Kontrolno polje
4 LSB bita kontrolnog polja specificiraju dužinu bloka podataka (DLC – kod dužine podataka), a
MSB bit (IDE) ukazuje na standardni 11-bitni format ili produženi od 29 bita.
Slika 4.5.3 Kontrolno polje
14
IDE bit je postao aktivan kada je pušten CAN 2.0B standard (ekstenzija identifikatora sa 11 na
29 bita). Prethodni CAN standard CAN 2.0A je koristio bite r0 i r1 (umjesto IDE-a), i oba bita su
uvijek bila poslata kao dominantni (nula), što ukazuje, prema CAN 2.0B standard, na 11-bitni
identifikator po default-u.
Kod dužine podataka (DLC) je obično postavljen na vrijednost između 0 i 8 ukazujući time na
polje podataka dužine između 0 i 8 bajta. Vrijednost veća od 8 je dozvoljena za neke specifične
svrhe.
Polje podataka
Maksimalno 8 bajta, prvi bit je MSB.
CRC polje (16 bita)
CRC (ciklično provjeravanje obnavljanja) polje se sastoji od CRC sekvence i CRC delimiter bita.
Slika 4.5.4 CRC polje
CRC segment od 15 bita sadrži sekvencu provjere frejma koja se prostire od SOF-a, preko polja
arbitraže, kontrolnog polja i polja podataka. Bitovi za popunjavanje nijesu uključeni. CRC
delimiter bit, koji prati odmah CRC segment, omogućava vrijeme za procesiranje CRC-a.
ACK polje (2 bita)
Ovo polje se sastoji od jednobitnog slota provjere i od ACK delimiter bita (koji je uvijek
recesivan), i služi za potvrdu uspješne provjere CRC-a.
Slika 4.5.5 Polje potvrde
15
Tokom ACK slota, čvorovi koji šalju poruku prelaze u prijemno stanje šaljući recesivni signal
bus-u. U isto vrijeme svi ostali čvorovi u mreži završavaju provjeru individualnog CRC-a
(kontrolna suma) i daju na izlazu dominantni signal ukoliko je provjera bila uspješna.
Čvor koji šalje poruku nadzire bus i očekuje dominantni nivo tokom ACK slota. Ovo će biti u
slučaju ako bilo koji od prijemnih čvorova daje na izlazu dominantni nivo.
Slika 4.5.6 Funkcija potvrde
U slučaju da svi čvorovi u mreži ustanove grešku kontrolne sume, odnosno da čvor koji šalje
poruku naiđe na recesivni nivo u ACK slotu, jasno je da je taj čvor izračunao pogrešnu kontrolnu
sumu. Ako bilo koji od prijemnih čvorova detektuje greški kontrolne sume objaviće frejm greške
bus-u, tj. odmah nakon završenog polja potvrde. Na ovaj način moguće je odrediti da li je sama
greška u radu baš kod tog naročitog prijemnog čvora.
Moguće je i da ACK slot ostane dominantan, dok je u isto vrijeme greška prijavljena od samo
jednog prijemnog čvora, što znači da će ovaj čvor poslati frejm greške. Na taj način je greška
lokalna kod tog naročitog čvora.
ACK delimiter bit je uvijek recesivan. Ovo je potrebno radi razlikovanja uspješne potvrde od
događajućeg frejma greške. Frejm greške počinje sa najmanje šest dominantnih bita, što znači da
će prvi bit frejma greške izmijeniti ACK delimiter bit.
EOF polje (7 recesivnih bita)
Svaki udaljeni ili frejm podataka se završava sekvencom od 7 recesivnih bita, ukoliko ne dođe do
frejma preopterećenja.Kombinacijom EOF polja i prethodnog recesivnog ACK delimiter bita
svaki frejm poruke (udaljeni ili podataka) će biti završen sa 8 recesivnih bita sa dodatnih
(ukoliko ne dođe do frejma preopterećenja) 3 recesivna bita polja prekida.
Međufrejmni prostor (3 recesivna bita)
16
Međufrejmni proctor označava minimalni prostor između frejma bilo kog tipa i narednog
udaljenog ili frejma podataka. Tokom ovog prostora (prekida) nijedan čvor ne može da započne
slanje udaljenog ili frejma podataka. Samo je dozvoljeno signaliziranje stanja preopterećenja.
Ovog prostora nema između frejma greške i frejma preopterećenja. Međufrejmni prostor se ne
mora smatrati dijelom udaljenog ili frejma podataka, ali, u CAN mreži koja dobro funkcioniše će
uvijek pratiti neki od ta dva frejma.
Slika 4.5.7 EOF (završetak frejma) polje i IFS (međufrejmni prostor)
4.6 Frejm greške
Frejm greške inicira prekid neispravnog udaljenog ili frejma podataka. Ovo se zapravo postiže
namjernim kršenjem CAN standarda. Za svrhe sinhronizovanja vremenske osnove svih čvorova
u mreži, CAN standard dozvoljava samo 5 uzastopnih bita frejma poruke istog polariteta između
SOF bita i (uključujući) CRC polja; svaki tok bita istog polariteta duži od 5 bita, dominatnih ili
recesivnih, se smatra stanjem greške. Štaviše, CAN koristi ovo pravilo da pošalje frejm greške,
koji se sastoji od (minimalno) 6 uzastopnih dominantnih bita. Svaki čvor u mreži prepoznaje
kršenje standarda i započinje odgovarajuću reakciju.
Da bi slao ili primao podatke koji sadrže više od 5 bita istog polariteta CAN standard zahtijeva
umetanje (od strane čvora predajnika) i filtriranje (od primajućeg čvora) komplementarnog bita
obrnutog polariteta, tkz. bita popunjavanja.
Slika 4.6.1 Osnovna arhitektura frejma greške
17
Frejm greške signalizira stanje greške detektovano od strane primajućeg ili čvora predajnika.
Namjerno kršenje CAN standarda (tj. slanje 6 dominantih bita) garantuje uništenje neispravnog
udaljenog ili frejma podataka. Kao što se vidi na slici 4.7.1frejm greške se sastoji od šestobitnog
indikatora greške i osmobitnog delimitera greške.
Objavljivanje frejma greške može da se dogodi u različitim trenucima od čvora do čvora. Kao
rezultat, sami indikator greške, kao što se dešava na bus-u, može biti konstruisan superpozicijom
više frejmova greške.
Slika 4.6.2 Realističan prikaz frejma greške
Stvarna dužina indikatora greške će biti trajanje 6 do 12 bita (slika 4.7.2). Ukupno dužina frejma
greške će biti trajanje između 14 do 20 bita. Koristeći ove brojke i dužinu međufrejmnog
prostora od 3 bita, moguće je izračunati vrijeme oporavka od greške u CAN mreži (table 4.7.1).
Tako kratki intervali oporavka su prednosti CAN mreže u odnosu na ostale protokole.
Dužina frejma greške Brzina protoka podataka Ukupno vrijeme oporavka
(frejm greške + IFS)
14 bita 1 Mbit/sec 14 + 3µsec
500 kBit/sec 28 + 6 µsec
250 kBit/sec 56 + 12 µsec
20 bita 1 Mbit/sec 20 + 3 µsec
500 kBit/sec 40 + 6 µsec
250 kBit/sec 80 + 12 µsec
Tabela 4.6.1: Vremena oporavka od greške
U slučaju CRC greške, slanje indikatora greške će biti sa kašnjenjem od 2 bita radi izbjegavanja
konflikta sa funkcijom potvrde.
4.7 Frejm preopterećenja
Ovaj frejm je specijalna vrsta frejma greške, ali za razliku od njega ne izaziva ponovno slanje
prethodnog frejma. Isto kao i frejm greške, sastoji se od šestobitnog indikatora preopterećenja
(koji može da se produži na 12 bita), i osmobitnog delimitera. Ukupna dužina frejma
preopterećenja je trajanje od 14 do 20 bita.
18
Slika 4.7.1 Realistični prikaz arhitekture frejma preopterećenja
Čvor može da zahtijeva kašnjenje između dva udaljena ili frejma podataka, što znači da frejm
preopterećenja može da se dogodi samo između prenosa udaljenih ili frejmova podataka. Ovaj
frejm šalje čvor koji je trenutno “preopterećen” i ne može da učestvuje u bilo kakvoj CAN bus
komunikaciji. Kao rezultat, prenos udaljenog ili frejma podataka od strane bilo kog čvora u
mreži će biti odloženo do završetka frejma preopterećenja.
Frejm preopterećenja se još dodatno koristi radi izvještaja o sljedećim stanjima greške:
detekcija dominantnog bita tokom prva dva bita međufrejmnog prostora;
detekcija dominantnog bita u zadnjem bitu EOF polja od strane prijemnog čvora;
detekcija dominantnog bita u zadnjem bitu delimitera greške ili delimitera preopterećenja
od strane bilo kog čvora.
Frejm preopterećenja, koji zahtijeva kašnjenje novog prenosa, počinje sa prvim bitom
međufrejmnog polja. Indikator preopterećenja koji se sastoji od 6 bita će izmijeniti 3 recesivna
bita polja prekida. Reaktivni frejm preopterećenja će početi jedan bit nakon detekcije
dominantnog bita u skladu sa uslovima navedenim iznad. Najviše dva frejma preopterećenja
mogu biti generisana radi odlaganja sljedećeg frejma podataka ili udaljenog frejma.
4.8 Širina opsega
Širina opsega je količina podataka koja može biti prenijeta kroz mrežu u definisanom intervalu
vremena. U CAN mreži obično se mjeri bitima po sekundi (bps). Ovaj pojam se ne treba miješati
sa opsegom iz telekomunikacija. U ovom slučaju širina opsega je prostor koji se zauzima na tom
opsegu.
Maksimalna širina je 1 Mbit po sekundi, međutim, ovaj broj dovoljno ne opisuje količinu sirovih
podataka koji se prenose za određeno vrijeme. Tačna definicija neto širine opsega, tj. Broj
stvarnih bita ili bajta podataka po jedinici vremena, zavisi od mnogo faktora kao što je korišćena
brzina protoka podataka, broj bajta po frejmu podataka, broj korišćenih udaljenih frejmova i
pojava stanja greške. Stvarna širina opsega koja se koristi može se izračunati dijeljenjem broja
bita podataka i totalne dužine frejma.
19
Broj bajta Ukupna dužina frejma Iskorišćenje širine opsega
1 (8 bita) 57 bita 14 %
8 (64 bita) 114 bita 56 %
Tabela 4.8.1
Kao što se vidi iz tabele, maksimalno iskorišćenje širine opsega (podrazumijevajući 11-bitni
identifikator) jeste 56%. Ovaj broj ne uzima u obzir pojave udaljenih i frejmova greške i
preopterećenja. Kao posljedica toga, stvaran broj je manji od 56%. Ukoliko se koristi
identifikator od 29 bita iskorišćenje je manje od 47%.
5. Emitovanje poruka
Emitovanje poruka se bazira na principu proizvođač-potrošač. Jedan čvor, prilikom slanja poruke,
će biti proizvođač dok su ostali čvorovi potrošači. Svi čvorovi u CAN mreži primaju poruku u
isto vrijeme.
U multi-master mreži čvorovi mogu prenositi podatke bilo kada. Svaki čvor “sluša” bus mreže i
primiće svaku poslatu poruku. CAN protokol podržava filtriranje poruka, tj. prijemni čvorovi će
reagovati samo na podatke koji su relevantni za njih.
CAN pretpostavlja da su sve poruke kompatibilne sa definisanim standardom, a ukoliko nijesu
doći će do ekvivalentnog odgovora od strane svih čvorova u mreži. Svi prijemni čvorovi
provjeravaju dosljednost primljenog frejma i potvrđuju dosljednost. Ako dosljednost nije
potvrđena od nekog ili svih čvorova u mreži, predajnik frejma će javiti grešku bus-u.
Ako bilo jedan ili više čvorova nijesu u stanju da dekodiraju poruku, tj. bilo da ne mogu da
detektuju grešku u poruci ili da nijesu u mogućnosti da pročitaju poruku zbog nekog unutrašnjeg
kvara, čitav bus će biti obaviješten o stanju greške. Čvorovi koji prenose neispravne podatke ili
koji konstantno ne mogu da prime poruku korektno isključuju sebe iz bus-a i time dozvoljavaju
ponovno uspostavljanje pravilnih uslova bus-a.
5.1 Emitovanje poruka kod frejmova podataka
Po definiciji, za CAN čvorove nijesu bitne informacije o konfiguraciji sistema (kao npr. adresa
čvora), pa stoga CAN ne podržava identifikatore čvorova. Umjesto toga, prijemni čvorovi
obrađuju poruke procesom filtriranja prijema, koji odlučuje da li je primljena poruka relevantna
za sloj primjene čvora ili ne. Nema potrebe da prijemnik zna informacije o čvoru koji šalje
podatke i obratno.
20
Slika 5.1.1 Prenos frejma podataka
Na slici je prikazano emitovanje frejma podataka, u ovom slučaju CAN mreže sa četiri čvora.
Takođe daje osnovni prikaz arhitekture CAN kontrolera. Svaki CAN čvor predstavlja kontroler
koji, između mnoštvo drugih funkcijskih blokova, smješta programabilni filter poruke i bafer.
Redosljed primanja, odnosno slanja, podataka u primjeru na slici je sljedeći:
čvor A šalje poruku;
čvorovi B, C i D primaju poruku;
čvorovi B i D prihvataju poruku, čvor C je odbija.
5.2 Zahtjev poruka kod udaljenih frejmova
Redosljed zahtjeva za porukom je:
čvor A šalje udaljeni frejm koji zahtijeva podatke;
čvor B, C i D primaju poruku;
čvor D prima poruku, a čvorovi B i C je odbijaju.
Slika 5.2.1 Zahtjev poruke kod udaljenog frejma
21
Ciklus zahtjeva podataka u CAN mreži uključuje slanje dvije poruke, samog zahtjeva za
porukom (udaljeni frejm), a potom zahtijevane podatke (frejm podataka). Slika 5.2.2prikazuje
odgovor na zahtjev udaljenog frejma, tj. slanje frejma podataka.
Slika 5.2.2 Prenos zahtijevanog frejma
6. Arbitraža bus-a
S obzirom na to da je serijski komunikacijski sistem kao što je CAN baziran na dvožičnoj
konekciji između čvorova u mreži, tj. svi čvorovi dijele isti fizički komunikacijski bus, metod za
izbjegavanje sudara poruka (podataka) je neophodan radi sigurnog prenosa podataka i
izbjegavanja kašnjenja koje nastaje zbog vremena potrebnog za uspostavljanje odgovarajućih
uslova bus-a nakog sudara.
Sudar se može dogoditi kada dva ili više čvorova u mreži pokušaju da pristupe bus-u u isto
vrijeme, što može dovesti do neželjenih efekata, kao što je kašnjenje pristupa bus-u ili čak
uništenje poruka.
CAN otklanja sudare podataka koristeći identifikator poruke čvora, tj. poruka sa najvećim
prioritetom dobija pristup bus-u. Ne samo da se ciklus arbitraže izvodi u predvidljivom, tj.
konstantnom vremenu, nego i CAN garantuje da poruke sa niskim prioritetom koje su izgubile
na arbitraži ubrzo započinju novu arbitražu čim je bus ponovo dostupan. Stoga CAN obezbjeđuje
arbitražu koja ne uništava podatke.
22
6.1 Principi arbitraže
Slika 6.1.1 Polje arbitraže
CAN prenosi podataka se razlikuju pomoću jedinstvenog identifikatora poruke (11 ili 29 bita),
koji takođe reprezentuje i prioritet poruke. Nizak identifikator znači veći prioritet. Poruke
visokog prioriteta će steći pristup bus-u za kratko vrijeme čak i kada je opterećenje bus-a veliko i
izazvano od strane poruka sa niskim prioritetom.
Slika 6.1.2 Primjer arbitraže bus-a
Slika 6.1.2prikazuje primjer gdje tri čvora u CAN mreži sa četiri čvora pokušavaju istovremeni
pristup bus-u. Čvor C će dobiti pristup bus-u u toku 12 klokova. Brzinom protoka podataka od 1
Mbit/sec ovo se prevodi u 12 mikrosekundi. Naravno, vrijeme arbitraže varira sa brzinom
protoka podataka i dužinom identifikatora.
23
6.2 Glavna pravila arbitraže
Arbitraža po bitima preko polja arbitraže
Bit nule = dominantni bus nivo, bit jedinice = recesivni bus nivo, dominantni bit mijenja
recesivni (upisuje se preko njega).
Bus se smatra neaktivnim,tj. slobodnim za pristup, poslije završetka potpunog prenosa
poruke praćenog poljem prekida.
Čvor koji šalje poruku sa najnižim identifikatorom poruke, tj. sa najvećim prioritetom,
dobija na arbitraži i nastavlja sa prenosom. Konkurentni čvorovi prelaze u prijemno
stanje (stanje osluškivanja).
Čvor koji izgubi na arbitraži započinje novu arbitražu čim bus bude ponovo dostupan za
pristup.
Slika 6.2.2 Dijagram procesa arbitraže
Na slici je demonstrirana interakcija između CAN čvora, koji pokušava da pristupi bus-u, i
samog CAN bus-a.
1. CAN čvor (kontroler) čeka kraj polja prekida.
2. Čim se detektuje da je bus u idle stanju (neaktivan), čvor signalizira SOF (početak frejma)
postavljanjem dominatnog (niskog) nivoa bus-u. Svi ostali čvorovi momentalno prelaze u
prijemno stanje.
3. CAN kontroler šalje prvi/sljedeći bit identifikatora poruke (MSB bit identifikatora će biti
poslat prvi).
24
4. CAN kontroler poredi svoj signal na izlazu sa nivoom bus-a (na kraju ciklusa svakog
bita).
5. Čvor gubi na arbitraži u slučaju da je poslao recesivni (visoki) nivo a detektuje
dominantni (nizak) nivo bus-a. Posljedično čvor prelazi u prijemno stanje.
6. Stanje greške je postojeće ukoliko je čvor detektovao recesivni nivo bus-a nakon što se na
njegovom izlazu pojavio dominantni nivo. Ovo je očigledno kršenje CAN standarda i
rezultuje slanjem frejma greške bus-u od strane čvora.
7. Ako je čvor završio sa slanjem svih bita arbitraže (identifikator poruke i RTR bit) bez
gubitka arbitraže, prenijeće ostatak poruke. U ovo vrijeme svi ostali čvorovi su prešli u
prijemno stanje.
7. Sinhronizacija prenosa podataka
Ne postoji garancija da će svi čvorovi u mreži raditi u apsolutnoj sinhronizaciji, jer svaki čvor
koristi individualne oscilatore. Štaviše, dolazi do tolerancija oscilatora, zbog faktora okoline kao
što su temperatura i vlažnost, i one se moraju kompenzovati. Padajuća ivica SOF bita (tranzicija
iz recesivnog u dominantni nivo), poslata od strane prvog čvora koji pokušava da pristupi bus-u
služi kao mehanizam sinhronizacije svih CAN bus čvorova.
CAN prenos podataka obezbjeđuje ograničena sredstva za “hard” sinhronizaciju toka bita, tj.
padajuću ivicu SOF bita. CAN tok bita se prenosi na principu Non-Return-to-Zero, koji
omogućava maksimalni kapacitet transporta, ali ima nedostatak dovoljnog broja signalnih ivica
za sinhronizaciju. U svrhu kompenzacije manjka signalnih ivica CAN standard uključuje
mehanizme kao što su popunjavanje bita, u cilju stvaranja dovoljnog broja signalnih ivica, i
kontinualna resinhronizacija tačke odabiranja bita.
7.1 Kodiranje bita
Postoje razni načini kodiranja bita kao što su Non-Return-to-Zero (NRZ), Mančester, širinska
modulacija impulsa, i drugi, koji se mogu razlikovati po broju potrebnih vremenskih klokova po
bitu. Efekat kodiranja bita prema NRZ principu jeste da nivo bita ostaje konstantan tokom
čitavog trajanja bita, koji postavlja problem u sinhronizaciji čvorova tokom prenosa većih
blokova bita istog polariteta. NRZ kodiranje zahtijeva mehnizam popunjavanja bita. Mančester
kodiranje, na primjer, je dizajniran tako da obezbjeđuje ivicu, rastuću (nivo nule) ili opadajuću
(nivo jedinice), tokom svakog trajanja bita, što omogućava dovoljno signalnih ivica za
sinhronizaciju između predajnika i prijemnika.
Slika 7.1.1 NRZ kodiranje
25
Slika 7.1.2 Poređenje NRZ i Mančester kodiranja
Na slici 7.1.3se vidi da Mančester kodiranje takođe ograničava kapacitet transporta zahtijevajući
više frekvencije (tačnije duplo veću) za istu brzinu protoka podataka.
Slika 7.1.3 Tok bita, NRZ i Mančester kodiranje
7.2 Popunjavanje bita
Popunjavanje bita je umetanje dodatnih bita suprotnog polariteta nakon serije bita istog polariteta.
Na ovaj način se dobija veći broj signalnih ivica i osigurava se da maksimalno dozvoljeno
vrijeme između dvije signalne ivice ne bude prekoračeno. Loša strana ovog mehanizma jeste
smanjivane širine opsega podataka.
Kao što je ranije pomenuto, CAN standard dozvoljava samo 5 uzastopnih bita frejma poruke
istog polariteta između SOF bita i (uključujući) CRC polja; svaki tok bita istog polariteta duži od
5 bita, dominatnih ili recesivnih, se smatra stanjem greške.
Osnovna pravila popunjavanja bita su:
predajnik ubaca komplementarni bit (bit popunjavanja) obrnutog polariteta nakon 5
uzastopnih bita istog nivoa;
26
prijemnik filtrira komplementarni bit;
popunjavanje bita nije dozvoljeno u poljima statičnog formata CAN frejma.
Slika 7.2.1 Opseg popunjavanja bita
Popunjavanje bita je dozvoljeno u sljedećim poljima CAN frejma poruke:
početak frejma (SOF);
polje arbitraže;
kontrolno polje;
polje podataka;
CRC sekvenca.
Popunjavanje bita nije dozvoljeno u statičnim poljima:
CRC delimiter;
polje potvrde;
EOF polje (završetak frejma);
polje prekida.
Prednosti popunjavanja bita jesu dodatne signalne ivice za svaku sinhronizaciju prenosa
podataka nakon 5 bita, kao i omogućavanje sredstava za signaliziranje frejma greške.
Slika 7.2.2 demonstrira popunjavanje bita:
Slika 7.2.2 Primjer popunjavanja bita
27
1. Sekvenca bita koja se prenosi
2. Sekvenca bita koja je poslata na bus-u nakon popunjavanja bita
3. Sekvenca bita na prijemniku nakon filtriranja bita
Postoji i specijalan slučaj kada bit popunjavanja doprinosi stvaranju sekvence od 5 bita, što
zauzvrat zahtijeva dodatni bit popunjavanja.
Slika 7.2.3 Dodatno popunjavanje bita
U primjeru na slici se vidi da je niz podataka sačinjen od 5 dominantnih bita praćen recesivnim
bitom popunjavanja. Nakon ovog bita je sekvenca od još 4 recesivna bita, što ponovo daje niz od
5 bita istog polariteta. U skladu sa CAN standardom, čvor predajnik mora da umetne još jedan
(dominantni) bit popunjavanja.
7.3 Tajming bita i sinhronizacija
U cilju osiguranja da svi prijemnici u CAN mreži čitaju prenešene frejmove korektno od njih se
takođe zahtijeva da stalno resinhronizuju internu vremensku osu sa primljenim tokom bita. Ovo
se ostvaruje neprekidnim podešavanjem tačke odabiranja bita tokom svakog trajanja bita. Svrha
sinhronizacije bita jeste koordinacija frekvencija oscilatora u CAN mreži i time obezbijediti
određenu vremensku referencu širom sistema.
7.3.1 Tačka odabiranja bita
Odnosi se na pitanje kada tačno prijemni CAN čvor čita informaciju bita.
Slika 7.3.1.1 Tačka odabiranja bita
28
Na nasumičnom primjeru u slici tačka odabiranja bita je locirana negdje blizu kraja trajanja bita,
radi kompenzacije propagacije kašnjenja signala u CAN mreži i kašnjenja u samim kolima
predajnika i prijemnika CAN-a. S obzirom da CAN standard rukovodi sa pristupom bus-a preko
arbitraže po bitima, mora se osigurati da propagacija signala od pošiljaoca do prijemnika i nazad
do pošiljaoca bude izvršena tokom trajanja jednog bita. Određivanje tačke odabiranja bita, i
njenog pozicioniranja, zahtijeva internu detekciju i simulaciju same vremenske reference bita.
7.3.2 Trajanje bita
Radi određivanja tačke odabiranja bita CAN standard dijeli nominalno trajanje bita na četiri
nepreklapajuća segmenta.
Slika 7.3.2.1 Podjela vremena bita
Nominalno trajanje bita je izvedeno iz nominalne brzine protoka podataka prema jednačini:
tB= 1
𝐵𝑅
gdje je tB - nominalno trajanje bita, a BR – nominalna brzina protoka podataka.
Četiri nepreklapajuća segmenta podele su:
Sync_Seg: sinhronizujući segment
Ovaj segment se koristi da sinhronizuje čvorove u CAN mreži. Signalna ivica se očekuje
unutar ovog segmenta. Bilo kakve devijacije, preuranjena ili zakašnjela signalna ivica, će
biti izmjerene i dužine bafera faze će biti podešene u skladu sa tim, što zauzvrat pomijera
tačku odabiranja bita (resinhronizacija).
Prop_Seg: segment propagacije vremena
Ovaj segment se koristi radi kompenzacije fizičkih kašnjenja unutar mreže, kao što je
kašnjenje propagacije signala i kašnjenja samih CAN čvorova, tj. kola predajnika i
prijemnika. Dužina ovog segmenta mora biti duplo veća od ovih kašnjenja zbog
kompenzacije od predajnika ka prijemniku i nazad ka predajniku.
Phase_Seg1/2: segment bafera faze ½
Ovi segmenti se koriste zbog kompenzacije grešaka faze signalnih ivica. Njihove dužine
moraju biti podešene resinhronizacijom. Phase_Seg1 može da se produži dok se
29
Phase_Seg2 skraćuje. Dužina Phase_Seg2 je programirana na maksimum dužine
Phase_Seg1 i vremena procesiranja informacije.
Širina resinhronizacionog skoka (SJW) definiše gornju granicu iznosa koji se koristi za
produženje ili skraćivanje bafera faze.
7.3.3 Sinhronizacija
Postoje dvije vrste sinhronizacije:
“hard“ sinhronizacija – na početku frejma (SOF bit)
Nakon ove sinhronizacije, interno vrijeme bita prijemnog CAN čvora će biti restartovano
resetovanjem tajmera, tj. postavljanjem reference tajmera prema početku
sinhronizacionog segmenta Sync_Seg. Ovo tjera signalnu ivicu, koja je izazvala hard
sinhronizaciju, da se pozicionira na početak sinhronizacionog segmenta.
Resinhronizacijabita – unutar frejma
Resinhronizacija bita se izvršava pomoću skraćivanja ili produženja segmenata faze,
Phase_Seg1 i Phase_Seg2, u cilju ispravljanja pozicije tačke odabiranja bita.
Obije vrste sinhronizacije se primjenjuju prema sljedećim konvencijama:
Postoji samo jedna sinhronizacija za vrijeme jednog bita, tj. između dvije tačke
odabiranja.
Padajuća ivica signala (recesivan ka dominantnom) će biti korištena za sinhronizaciju
jedino ako je prethodno detektovani nivo bus-a drugačiji od nivoa koji slijedi odmah
nakon ivice. Ovo sprečava bilo kakve reakcije na maksimume signala prouzrokovane
električnim interferencijama.
Hard sinhronizacija će započeti jedino prilikom pojave ivice od recesivnog ka
dominantnom signalu tokom međufrejmnog prostora (polja prekida), tj. kada je bus
neaktivan, sa izuzetkom prvog bita međufrejmnog prostora.
Sve ostale ivice od recesivnog ka dominantnom signalu, prateći prva dva pravila, će biti
iskorištene za resinhronizaciju. Međutim, postoji izuzetak kada čvor koji šalje dominantni
bit ne izvršava resinhronizaciju kao posljedica ivice od recesivnog ka dominantnom
signalu sa pozitivnom greškom faze.
7.3.4 Greška faze i resinhronizacija
Greška faze signalne ivice je dobijena iz pozicije ivice relativne sinhronizacionom segmentu
Sync_Seg. Sljedeće pretpostavke se primjenjuju za objašnjavanje greške faze i resinhronizaciju
narednog bita:
Greška faze je izmjerena između detektovane ivice signala i početka sinhronizacionog
segmenta-
Baferi faze se podešavaju unutar samog trajanja bita gdje je ivica detektovana.
Nakon resinhronizacije unutar trajanja bita, koja dovodi do podešavanja dužina bafera,
baferi faze će se resetovati na njihove početne vrijednosti.
30
Slika 7.3.4.1 Idealan tajming bita
Ovdje je prikazan idealan tajming bita gdje se detektovane ivice signala uvijek nalaze unutar
sinhronizacionog segmenta. Međutim, ovaj primjer radi samo u idealnom slučaju, dok se u
stvarnosti pojavljuju greške faze između detektovane ivice signala i sinhronizacionog segmenta.
Znak greške faze e, negativan ili pozitivan, je definisan kao:
e = 0 kada se ivica detektovanog signala nalazi unutar sinhronizacionog segmenta
trenutnog bita;
e > 0 kada se ivica detektovanog signala nalazi između sinhronizacionog segmenta i
tačke odabiranja trenutnog bita;
e < 0 kada se ivica detektovanog signala nalazi prije sinhronizacionog segmenta
trenutnog bita i posle tačke odabiranja prethodnog bita.
Slika 7.3.4.2 Pozitivna faza greške
31
Slika 7.3.4.3 Negativna faza greške
Resinhronizacija, tj. kompenzacija greške faze, se primjenjuje ili posle produženja bafera faze 1
ili skraćivanja bafera faze 2 u skladu sa znakom i iznosom greške faze. Efekat podešavanja
dužine bafera faze jeste da se prvo produžava ili skraćuje vrijeme bita, a drugo da se tačka
odabiranja bita postavlja na pravilnu poziciju. Resinhronizacija bita se primjenjuje po sljedećim
pravilima:
Iznos greške faze mora biti veći od širine resinhronizacionog skoka (SJW).
Ako je greška faze pozitivna, Phase_Seg1 će se produžiti za iznos jednak SJW.
Ako je greška faze negativna, Phase_Seg2 će se skratiti za iznos jednak SJW.
8. Detekcija greške i ograničavanje neispravnosti
CAN standard upotrebljava niz mehanizama za detekciju grešaka koji doprinose njegovom
visokom nivou pouzdanosti i otpornosti na greške. Ograničavanje neispravnosti garantuje
pravilnu funkcionalnost mreže i kontinualnu dostupnost sistema za prenos podataka podešavajući
ponašanje defektnih čvorova, čak do tačke kada čvor može da isključi sebe iz mreže (samo-
povlačenje).
8.1 Detekcija greške
CAN obezbjeđuje sljedeće procedure u cilju detektovanja grešaka tokom prenosa frejma:
Nadgledanje bita
Predajnici upoređuju poslati nivo bit po bit sa odgovarajućim nivoom na bus-u.
Provjera kontrolne sume
Svaki CAN udaljeni ili frejm podataka uključuje 15-bitni CRC.
Varijabilno popunjavanje bita sa širinom popunjavanja 5
Kršenje pravila popunjavanja bita se smatra greškom popunjavanja bita.
32
Provjera frejma
Svaki čvor koji šalje ili prima informacije i koji funkcioniše po utvrđenim
specifikacijama provjerava dosljednost prenešenog frejma.
Provjera potvrde
Svi prijemni čvorovi u CAN mreži provjeravaju dosljednost primljenog frejma i
potvrđuju tu dosljednost ili se odriču frejma u protivnom.
8.1.1 Nadgledanje bita
CAN čvorovi koji prenose poruku bus-u takođe nadgledaju bus i upoređuju prenešeni nivo bit po
bit sa odgovarajućim nivoom na bus-u. Greška bita je detektovana kada se prenešeni nivo
razlikuje od onog koji je detektovan na bus-u. Međutim, postoje izuzeci:
Dominantni bit na bus-u neće dovesti do greške kada se recesivni bit prenosi tokom
arbitraže.
Dominantni bit na bus-u neće dovesti do greške kada se recesivni bit prenosi tokom ACK
slota.
Čvor koji šalje pasivni frejm greške (6 uzastopnih recesivnih bita) i koji detektuje
dominantni bit neće interpretirati ovo kao grešku.
Nadgledanje bita ne samo da omogućava globalnu detekciju greške unutar mreže, već može da
nađe lokaciju izvora greške.
8.1.2 Provjera kontrolne sume
15-bitni CRC segment (CRC kod) u udaljenom ili frejmu podataka sadrži sekvencu za provjeru
frejma koja se prostire od SOF, preko polja arbitraže, kontrolnog polja i polja podataka. Biti za
popunjavanje nijesu uključeni. Sekvenca za provjeru frejma je dobijena CRC (BCH kodom)
najpodobnijim za frejmove dužine manje od 127 bita.
Slika 8.1.2.1 Opseg kontrolne sume
8.2 Signalizacija greške
Oštećeni frejm će biti identifikovan i označen od strane predajnog čvora i bilo kog drugog
prijemnog čvora koji funkcioniše bez greške. Defektni frejmovi će biti prekinuti i ponovo poslati
u skladu sa CAN procedurom obnavljanja. Vrijeme obnavljanja, tj. vrijeme proteklo između
detekcije greške i mogućeg starta novog frejma, je tipično između trajanja 17 bita i trajanja 23
bita. Prekinuti frejmovi će automatski biti ponovo poslati čim bus postane ponovo neaktivan
33
(idle). Ponovo poslatim frejmom se rukovodi kao sa bilo kojim drugim, tj. mora ponovo da
započne arbitražu da bi dobio pristup bus-u.
8.3 Ograničavanje neispravnosti
Bez prisustva podesnog metoda za ograničavanje, neispravni CAN čvorovi bi mogli da ugroze
funkcionalnost mreže do stepena potpune neefikasnosti. Sljedeći scenariji neispravnosti prilikom
primanja i slanja podataka, bez ograničavanja, bi poremetili performans sistema:
1. Greška pri slanju:
Neispravan čvor šalje bus-u defektan frejm visokog prioriteta. Svi ostali čvorovi u mreži
koji su funkcionalni detektuju grešku i obavještavaju. Prema CAN standardu neispravan
čvor bi automatski ponovo slao frejm sa defektom iznova i iznova. Svi ostali frejmovi sa
nižim prioritetom ne bi više imali mogućnost pristupa CAN bus-u.
2. Greška pri primanju:
Neispravan čvor prima perfektno dobar frejm, ali detektuje grešku i izvještava o tome.
Prema CAN standardu čvor predajnik bi automatski ponovo slao frejm a neispravan čvor
bi izvještavao o grešci iznova. Baš kao i u prethodnom scenariju, svi frejmovi sa nižim
prioritetom ne bi mogli da pristupe bus-u.
Dok su ovi scenariji na osnovu trajnih otkaza čvorova, može doći i do sporadičnih grešaka, npr.,
zbog raznih efekata okoline kao što su električne smetnje na bus-u, itd. U cilju osiguranja
funkcionalnosti sistema CAN standard zahtijeva da čvorovi moraju biti sposobni da razlikuju
sporadične smetnje od trajnih otkaza. Bilo koji čvor koji je permamentno neispravan mora se,
prije svega, detektovati (locirati) a potom logički diskonektovati sa bus-a, tako da ne može ni da
prima niti da šalje frejmove. Da bi bio u stanju da napravi razliku CAN čip je snabdjeven sa dva
brojača, brojač greške slanja i brojač greške primanja. U slučaju greške, pri prijemu ili slanju,
brojač će se uvećati. Ukoliko su frejmovi poslati ili primljeni korektno, brojač se smanjuje.
Zavisno od vrijednosti brojača greške čvor može da radi u različitim stanjima:
Error Active
Kada su vrijednosti brojača greške bilo slanja bilo primanja manje od 128. Čvor u ovom
stanju ispravno radi i učestvuje u bus komunikaciji bez restrikcija. Kada je detektovana
greška error active čvor šalje aktivan identifikator greške, koji se sastoji od 6 uzastopnih
dominantnih bita.
Error Passive
Kada su vrijednosti brojača greške bilo slanja bilo primanja veće od 127. Čvor u ovom
stanju učestvuje u bus komunikaciji bez restrikcija. Međutim, kada detektuje grešku
može da pošalje samo pasivni identifikator greške, koji se sastoji od 6 uzastopnih
recesivnih bita. Nakon prenosa, čvor koji radi u ovom stanju će sačekati da prođe
određeno vrijeme prije nego započne buduće prenose.
Zbog slanja pasivnog identifikatora čvor predajnik u error passive stanju može da
izvještava o prekidu svoje poruke samo bus-u, ali ne može da uništi poruke primljene od
ostalih čvorova.
Bus-Off
34
Vrijednost brojača greške slanja je veća od 255. Dok je u ovom stanju, CAN čvor neće
učestvovati u komunikaciji na bilo koji način, tj. ne može da šalje frejmove, ACK,
frejmove grešaka ili frejmove preopterećenja.
Zavisno od implementacije CAN čvor u bus off stanju, međutim, može da prima
frejmove.Oporavak od bus off stanja može se izvršiti jedino na zahtjev korisnika, npr.,
resetovanjem CAN čvora. Uslovi za obnavljanje od ovog stanja su:
Oba brojača, greške slanja i greške primanja, se postavljaju na nulu (ovo se može uraditi
hardverskim resetom).
Čvor mora da proći kroz sistemski start-up, i mora da čeka 128 pojava 11 uzastopnih
recesivnih bita na bus-u.
Slika 8.3.1 Stanja greške
9. Fizički sloj
9.1 Topologija bus-a
Slika 9.1.1 prikazuje jednostavnu CAN mrežu. Svi čvorovi su povezani sa dvije žice, CAN_H i
CAN_L. Linije bus-a se završavaju otpornicima, tipične vrijednosti 120 Ω, koji su potrebni radi
suzbijanja električnih odbijanja na bus-u. Ti otpornici bi trebalo da se nalaze uvijek na oba kraja
bus-a, i ne bi trebali biti fizičiki povezani sa CAN čvorom, jer bi u suprotnom bus izgubio svoj
završetak u slučaju da se ukloni čvor na koji je otpornik povezan.
35
Slika 9.1.1 Topologija bus-a
CAN_L i CAN_H predstavljaju fizičku konekciju između CAN čvorova, a ne nivoe napona.
CAN_H će uvijek biti na 3.5 V (nominalan) tokom dominantnog bita, dok će CAN_L biti na 1.5
V. Prema standardima otpornik na kraju bi trebao biti u opsegu između 100 i 130 oma, sa
minimalnom disipacijom snage od 220 mW. Odstupanja od nominalne vrijednosti od 120 Ω su
moguće zavisno od topologije bus-a i od brzine protoka podataka. Što je niža vrijednost završnog
otpornika niži je i broj mogućih čvorova u mreži.
Slika 9.1.2 Topologija ožičenja
Topologija ožičenja bi trebala da izbjegava kompleksne mrežne strukture (iako je skoro svaka
struktura mreže moguća kod CAN tehnologije) i da koristi što manje dužine kablova.
Parametri topologije mreže pri maksimalnoj brzini protoka od 1 Mbit/sec:
Parametri Maksimalna dužina [m]
L – Dužina bus-a 40
I – Dužina grane do čvora 0.3
d – Udaljenost čvorova 40
Tabela 9.1.1
36
9.2 Nivo signala bus-a
Kao što je prikazano na slici 9.2.1CAN bus nivo varira normalno između 1.5 V i 3.5 V. Međutim,
stvarno stanje signala, recesivno ili dominantno, je bazirano na diferencijalnom naponu Vdiff
između CAN_H i CAN_L.
Slika 9.2.1 Nivo CAN bus-a
Vdiff = VCAN_H – VCAN_L
Vdiff će biti 2 V tokom dominantnog bita i 0 V tokom recesivnog bita. Tokom arbitraže bus-a
više CAN čvorova može da prenese dominantan bit ka bus-u simultano. U ovom slučaju Vdiff će
prevazići nominalni nivo kakav je kod jedinične operacije, tj. kada se bus pogoni sa samo jednim
čvorom. Prednost korišćenja diferencijalnog napona između CAN_H i CAN_L leži u njegovoj
otpornosti na elektromagnetske interferencije. Ako bilo kakva smetnja utiče na obije žice na isti
način, nivo diferencijalnog napona će ostati isti.
9.3 Bus konekcija
Da bi se konektovao na fizički CAN bus, CAN kontroler sa svojim TTL izlazom koristi dodatni
transiver da obezbijedi standardni CAN nivo. Transiver pretvara standardni TTL nivo (ponekad
3 V umjesto standardnih 5 V) u diferencijalni napon, tj. u CAN bus nivo i obratno.
37
Slika 9.3.1 CAN kontroler i transiver
Slika 9.3.2 Fizička reprezentacija bita
9.4 Maksimalna dužina bus-a
Maksimalna dužina bus-a u CAN mreži zavisi od više faktora, ali najviše od korišćene brzine
protoka podataka kao što je prikazano na slici:
Kao nepisano pravilo, za dužine bus-a veće od 100 m, proizvod dužine bus-a i brzine protoka ne
bi trebao prelaziti 60. Razlog za ograničenom dužinom bus-a pri većim brzinama protoka jeste
38
zbog vremena kašnjenja, tj. vremena koje je potrebno signalu da putuje kroz čitav bus i nazad.
Ovo vrijeme je krucijalno posebno tokom arbitraže, ali i za nadgledanje bita čvora.
Slika 9.4.1 Maksimalna dužina bus-a
Preporučene brzine protoka podataka:
Brzina protoka [kBit/sec] Nominalno trajanje bita
[µsec]
1000 1
800 1.25
500 2
250 4
125 8
100 10
50 20
20 50
10 100
Tabela 9.4.1
9.5 Električna mreža i konektori
CAN nije previše zahtjevan u pogledu kablova. Zbog njegove visoke zaštićenosti protiv
elektromagnetskih interferencija koršćenje upredene parice je dovoljno. Ali za upotrebu u oštrim
39
električnim okolinama i posebno na maksimalnoj brzini protoka podataka, upotreba zaštićenog
kabla se preporučuje. Iako CAN generalno koristi dvožičnu mrežu, u nekim slučajevima može
biti potrebno konektovanje na CAN signal za uzemljenje. Uzemljenje zaštite na jednoj strani
konekcije je neophodni da bi osiguralo efektivnost zaštite. Prema dokumentaciji se preporučuje
korišćenje D-Sub konektora sa 9 pinova ili odgovarajući internacionalni standard.
Slika 9.5.1 Muški i ženski pinovi konektora
Dodjeljivanje pinova:
Pin Signal Opis
1 - Rezervisan
2 CAN_L CAN_L bus linija
3 CAN_GND CAN uzemljenje
4 - Rezervisan
5 CAN_SHLD Opcioni CAN shield
6 GND Opciono uzemljenje
7 CAN_H CAN_H bus linija
8 - Rezervisano (linija greške)
9 CAN_V+ Opcioni pozitivni eksterni izvor
Tabela 9.5.1
10. CAN sistem