Sunteți pe pagina 1din 16

Introducere

Magistrala CAN • CAN bus a fost iniţial proiectată pentru electronica auto
• În prezent CAN este utilizat şi în alte aplicaţii decât
sistemele auto, cum ar fi control industrial, automatizări,
(controller area network / reţele de aparate medicale
• Organizaţia Internaţională pentru standarde împreună cu
reţeaua de control zonal) Society of Automotive Engineers (SAE) au definit câteva
noi protocoale bazate pe CAN
• Protocolul CAN implementează cele mai de jos două
niveluri ale modelului de referinţă OSI

1 2

Introducere Introducere
1. Nivelul legăturii de date este împărţit în
două subniveluri:
• Funcţionalitatea CAN poate fi – Nivelul legăturii logice: acceptă
mesajele printr-un proces de filtrare,
descrisă în două niveluri OSI: realizează notificarea de overload şi
sarcinile de administrare pentru
revenirea din eroare..
1. Nivelul legăturii de date
– MAC (controlul accesului la mediu):
2. Nivelul fizic realizează încapsularea datelor,
codarea cadrelor transmise,
administrarea mediului de acces,
semnalarea şi detectarea erorilor şi
sarcini de generare ACK
2. Nivelul fizic: acest nivel realizează
codarea şi decodarea biţilor, durata
biţilor, procesele de sincronizare
3 4
Principii de funcţionare CAN Principii de funcţionare CAN
• La nivelul fizic, mediul de comunicaţie a fost intenţionat • CAN bus a fost proiectat pentru a reduce cantitatea de fire
lăsat deoparte, la CAN (standard realizat prima oară la cerute în reţeaua de senzori auto
firma Bosh - Germania) pentru a permite proiectanţilor să • Fizic, mediul de transmisie fir, constă în două fire torsadate
adapteze şi optimizeze protocolul de comunicaţie pentru pe care se transmite semnal diferenţial. Este proiectată
diferite medii şi pentru flexibilitate maximă pentru medii ce lucrează uneori în condiţii extreme şi poate
– pereche de cabluri torsadate (cu ecran – STP, sau fără ecran opera chiar dacă:
– UTP) – un fir este întrerupt
– cablu singular – unul din fire este scurtcircuitat la masă
– izolare optică – unul din fire este scurtcircuitat la tensiunea de alimentare
– RF – cele două fire sunt întrerupte în acelaşi loc. În acest caz cele
– IR două capete vor funcţiona ca reţele separate.
– etc.
5 6

Principii de funcţionare CAN Principii de funcţionare CAN


• Viteza relativ redusă pentru că durata unui bit trebuie să fie • Dacă un nod transmite:
cel puţin dublul întârzierii de propagare pe bus – mesajul e acceptat de un singur alt nod (caz frecvent)
– 1 Mb/s până la 25 metri – mesajul e acceptat de mai multe noduri (caz rar)
– 800 kb/s până la 100 metri
– 125 kb/s până la 500 metri
• De exemplu:
– 50 kb/s până la 1000 metri – nod detectare a temperaturii care trimite date de temperatură
acceptate doar de un nod afişor.
• Magistrala CAN utilizează transmisia serială pe bit
– dacă nodul detectează o supra-temperatură, datele transmise pot fi
• Protocolul de magistrală permite mai mulţi masteri pe acceptate de mai multe noduri ce utilizează informaţia
magistrală
• Fiecare nod al magistralei CAN are propriile drivere şi
receivere electrice prin care se conectează nodul la
magistrală într-o manieră SI - cablat.
7 8
Principii de funcţionare CAN Principii de funcţionare CAN
• CAN bus: • Un nod are capacitatea de a solicita informații de la alte
– Comunicaţie half-duplex noduri
– Reţea de viteză - foloseşte "mesaje scurte“ – cerere de transmisie la distanță, sau RTR.
– Mesajul este transmis pe bus bit cu bit, conform unui format • CAN permite interconectarea a maximum 110 noduri pe o
specificat de standard singură reţea, (limitări ale hardware - transceivere)
• Se pot adăuga noduri la bus fără reprogramarea celelalte • Imunitate ridicată la interferențe electromagnetice
noduri pentru a recunoaşte schimbarea hardware-ul
• Capacitate de autodiagnoză şi autocorecţie a erorilor de
existent
date
– Adăugare posbilă chiar și în timp ce sistemul este în funcțiune
– Noul nod va începe să primească mesaje de la rețea imediat. • Izolarea erorilor este un avantaj major al CAN
Aceasta se numește "hot plugging" – Nodurile cu defecte sunt eliminate automat din reţea.

9 10

Organizarea fizică şi electrică Organizarea fizică şi electrică


Dominant Pentru CAN de mare viteză (conform ISO 11898-2) este necesar ca liniile
Regresiv
Logic 0
magistralei să aibă conectate la ambele capete câte o rezistenţă de 120 Ω.
Logic 1 Regresiv Prezenţa rezistoarelor previne reflexiile şi de asemenea asigură o conexiune
electrică între ieşirile cu colector (drenă) în gol ale tranceiverelor.
CAN-H

CAN-L

Ground

TX RX TX RX

Nod Nod

11 12
Stare magistrală pentru două noduri
Organizarea nod transmiţătoare (ŞI cablat)
• Controler CAN – stochează Microcontroler
biţii recepţionaţi bit cu bit Nod 1 Nod 2 Stare magistrală (AND)
până la terminare mesaj
• Transciever CAN - emiţător- Controler CAN
0 0 0 (dominant)
receptor cu adaptarea
nivelurilor de tensiune între 0 1 0 (dominant)
bus şi controler. Asigură şi Transceiver CAN 1 0 0 (dominant)
circuite de protecţie pentru
controler 1 1 1 (regresiv)
CAN - H
• Microcontroler – decide cu
privire la mesajele primite sau
transmise
CAN - L Deosebire faţă de I2C la ŞI cablat: la CAN se foloseşte
tensiune diferenţială !
13 14

Alte caracteristici Alte caracteristici


• În terminologia CAN: • CAN este o magistrală sincronă - toate transmiţătoarele
– 1 logic pe magistrală este numit bit regresiv (recessive)
trebuie să transmită la acelaşi moment pentru ca arbitrarea de
magistrală să funcţioneze
– 0 logic este bit dominant (tensiune diferenţială mare)
• Nodurile se sincronizează la magistrală prin ascultarea
• Circuitele driver către magistrală pot trage semnalul tranziţiei biţilor de pe magistrală. Primul bit dintr-un cadru de
diferenţial la zero logic, dacă oricare nod aduce date furnizează prima posibilitate de sincronizare într-un
magistrala la nivel 0 (făcând 0 dominant faţă de 1) cadru (Sync+Prop+Ph1+Ph2)
• Nodurile trebuie de asemenea să continue să se sincronizeze
• Atunci când toate nodurile transmit 1 (diferenţă minimă faţă de următoarele tranziţii din fiecare cadru
de tensiune), se spune că magistrala este în stare • Din punct de vedere electric la transmisia diferenţială pe CAN
regresivă bus se determină diferenţa între nivelurile de tensiune dintre
• Datele sunt transmise în reţea în pachete cunoscute ca şi linii
cadre de date • Transmisia se face pe 2 fire, half duplex

15 16
Stare dominantă / regresivă Niveluri tensiune
CAN de mare viteză (ISO 898-2) CAN de mică viteză (ISO 898-3)
Nivel de valorile de niveluri de tensiune sunt orientative
tensiune (V)

Dominant Nivel Nivel


logic logic
Logic 0 CAN-H Regresiv Regresiv Regresiv Regresiv
1 1

Regresiv Regresiv Tensiune 0


0 Dominant
diferenţială Dominant
Logic 1
Tensiune
CAN-L Tensiune 5V CAN -H

3,5V
CAN -H 3,4V

Timp 2,5V 1,4V


1,5V CAN -L CAN -L
0V
17 18

Principii de funcţionare CAN


• Mesajele de date transmise prin CAN nu conţin adresa Principii de funcţionare CAN
emiţătorului sau a receptorului
– Conţinutul fiecărui mesaj este etichetat printr-un identificator care
este unic în cadrul reţelei. • Valoarea numerică a fiecărui identificator de mesaj (deci
și prioritatea mesajului) este alocat în timpul fazei inițiale
– Toate nodurile conectate la magistrală recepţionează mesajul
de proiectare a sistemului
• Mesajele sunt filtrate în funcţie de relevanţa lor pentru un
anumit nod. Dacă un mesaj este relevant, este procesat • La CAN datele se transmit şi recepţionează utilizând Cadre
Mesaj (Message Frames) care transportă datele de la un
• Identificatorul unic determină şi prioritatea mesajului. Cu
cât valoarea numerică a identificatorului este mai mică cu nod emiţător către unul sau mai multe noduri receptoare.
atât prioritatea sa este mai mare • Protocolul CAN standard, versiunea 2.0A, foloseşte
• Totdeauna va câştiga accesul la magistrală mesajul cu mesaje cu identificatori având lungimea de 11 biţi
prioritatea maximă • Protocolul CAN extins, versiunea 2.0B, foloseşte mesaje
– Mesajele cu prioritate mai mică sunt retransmise automat în cu identificatori având lungimea de 29 biţi
următoarele cicluri de magistrală, în funcţie de prioritatea lor
19 20
Comunicare pe bază de mesaj 1. DATA FRAME
• Transferul mesajelor pe magistrală se efectuează şi se • Cadrul de date este compus din 7 câmpuri binare diferite:
controlează prin patru tipuri diferite de cadre: – START OF FRAME
– Un DATA FRAME transferă date de la transmiţător la receptoare – ARBITRATION FIELD
– CONTROL FIELD
– Un REMOTE FRAME se transmite de o unitate conectată la
magistrală pentru a solicita transmisia unui DATA FRAME cu – DATA FIELD (poate avea şi lungime zero)
acelaşi IDENTIFICATOR – CRC FIELD
– Un ERROR FRAME este transmis de orice unitate ce detectează o – ACK FIELD Intermission = 3 biţi regresivi
eroare pe bus – END OF FRAME
– Un OVERLOAD FRAME e utilizat pentru a furniza o întârziere
suplimentară între cadrele precedent şi următor de tip DATA sau
REMOTE FRAME
• Cadrele de date şi cadrele la distanţă sunt separate de
precedentele cadre de un cadru de tip INTERFRAME SPACE
21 22

1. DATA FRAME 1. DATA FRAME

1 12 6 0 la 64 16 2 7 • START (SOF) = un singur bit dominant, 0

Start Câmp de Câmp de Câmp de Câmp Câmp de EOF • IDENTIFICATORUL mesajului are lungimea de 11 biţi.
SOF arbitrare control date CRC confirmare (sfârşitul Aceşti biţi sunt transmişi începând cu MSb (ID10). Cei mai
cadrului)
semnificativi 7 biţi (ID-10 - ID-4) trebuie să conţină cel
puţin un bit dominant (să nu fie toţi regresivi).
• Ultimul bit al câmpului de arbitrare este RTR (Remote
Bit cerere ID
Identificator transmi- Cod lungime Ack Ack Transmit Request). RTR bit poate specifica o cerere de
exten- =0
sie la sie date slot delimi- transmisie la distanţă.
distanţă tator
• Într-un cadru de date bitul RTR trebuie să fie dominant (0 =
11 1 1 1 4 1 1 scriere). Într-un cadru la distanţă bitul RTR trebuie să fie
regresiv (1=cerere de date)
23 24
1. DATA FRAME 1. DATA FRAME
Codarea numărului de octeţi de date

• Câmpul de control constă din 6 biţi. Primii doi biţi sunt Număr de Cod lungime date
octeţi de date DLC3 DLC2 DLC1 DLC0
rezervaţi pentru a indica fie formatul standard fie formatul
0 d d d d
extins. Pentru formatul standard cei doi biţi rezervaţi trebuie 1 d d d r
să fie dominanţi. 2 d d r d
3 d d r r
• Următorii patru biţi codifică lungimea în număr de octeţi a
4 d r d d
datelor (data length code). 5 d r d r
• Codarea numărului de octeţi se face conform tabelului 6 d r r d
7 d r r r
următor, în care s-a notat cu d bit dominant şi cu r bit
8 r d d d
recesiv.

Nu se pot utiliza valori mai mari de 8 Bytes.


25 26

1. DATA FRAME 1. DATA FRAME


• Câmpul de date are lungimea între 0 şi 64 de octeţi în
funcţie de valoarea dată în câmpul de control. • Câmpul de confirmare (acknowledge) este utilizat
pentru a permite ca identificatorul să semnaleze dacă
• Câmpul CRC furnizează un cod de verificare ciclică
cadrul a fost recepţionat corect:
redundantă (CRC) şi este trimis după câmpul de date transmiţătorul pune un bit regresiv (1) în porţiunea ACK
pentru corecţia erorilor. Câmpul CRC conţine secvenţa slot a câmpului confirmare
CRC (15 biţi) şi delimitatorul CRC (1 bit regresiv). dacă receptorul detectează o eroare, el lasă liniile la bit
regresiv (1)
dacă transmiţătorul vede un 0 pe magistrală în porţiunea
ACK slot, el ştie că cel puţin un nod a recepţionat corect
• Porţiunea ACK este urmată de un singur bit regresiv
delimitator
• End of Frame (EOF) conţine 7 biţi regresivi.
27 28
1. DATA FRAME – format standard 1. DATA FRAME – format extins

29 30

2. REMOTE FRAME 3. ERROR FRAME


• Remote frame este utilizat când un nod cere date de la alt • Fiecare interfaţă CAN conţine
nod. – un contor de erori pentru recepţie (REC)
• Solicitantul setează bitul RTR la 1 pentru a specifica cadrul – un contor de erori pentru transmisie (TEC)
la distanţă. El specifică de asemenea zero biţi de date. • Dacă un nod de transmisie detectează o eroare, atunci
• Nodul care recunoaşte câmpul identificator va răspunde cu acesta va incrementa contorul său TEC mai rapid (cu 8)
un cadru de date care are acelaşi identificator decât nodurile de recepţie care incrementează contorul
• Remote frame este de fapt un Data frame cu bitul RTR propriu REC (cu 1)
regresiv pentru a indica că este vorba de o cerere de • Un număr mare de erori face ca nodul să fie exclus din
transmisie la distanţă (Remote Transmit Request) comunicaţie

31
3. ERROR FRAME
3. ERROR FRAME
- stări eroare activă / pasivă -
• Un cadru de eroare poate fi generat de oricare nod care • Există două forme pentru un ERROR FLAG (determinarea stării
detectează o eroare pe magistrală
fiecărui nod descrisă mai jos):
• Cadrul de eroare constă dintr-un câmp fanion/indicator de
eroare urmat de un câmp delimitator de eroare cu 8 biţi – ACTIVE ERROR FLAG şi
regresivi. Câmpul delimitator de eroare permite magistralei să – PASSIVE ERROR FLAG.
revină la starea stabilă astfel încât să se poată relua transmisia
cadrului de date • ACTIVE ERROR FLAG constă din şase biţi dominanţi
• Primul câmp este generat prin suprapunerea fanioanelor de eroare consecutivi.
(ERROR FLAGs) provenite de la diferitele staţii conectate la • PASSIVE ERROR FLAG constă din şase biţi regresivi
magistrală
consecutivi cu excepţia cazului când ei sunt suprascrişi de biţi
dominanţi proveniţi de la alte noduri.

33 34

3. ERROR FRAME 3. ERROR FRAME


- stări eroare activă / pasivă - - stări eroare activă / pasivă -
• Modul "Eroare activă“
– Nodul este pe deplin funcțional și ambele registre de numărare • Un nod de tip „eroare activă” semnalizează detectarea unei
eroare conțin numere mai mici de 127 condiţii de eroare prin transmiterea unui ACTIVE ERROR
• Modul “Eroare pasivă” FLAG (6 biţi dominanţi + 8 biţi regresivi)
– Dacă oricare dintre cele două contoare de eroare depăşeşte 127 – Formatul fanionului de eroare violează legea împănării cu biţi aplicată
tuturor câmpurilor începând cu START OF FRAME până la CRC
– Astfel nodul respectiv nu se va distruge în mod activ traficul de
DELIMITER sau distruge forma fixă a câmpului de ACK ori a celui de
bus atunci când detectează o eroare END OF FRAME.
– Nodul în modul pasiv de eroare poate transmite şi primi în – Ca urmare toate celelalte staţii detectează o condiţie de eroare şi fiecare
continuare mesaje dintre ele porneşte la transmisia unui ERROR FLAG
• “Bus-Off” • Secvenţa de biţi dominanţi care poate fi monitorizată pe bus
– Atunci când contorul TEC ajunge la 255 rezultă din suprapunerea diferitelor fanioane de eroare transmise
– Nodul nu mai participă de loc la traficul de bus de staţiile individuale. Lungimea totală a acestei secvenţe
– Comunicațiile dintre celelalte noduri pot continua nestingherit. variază între minimum 6 biţi şi maximum 12 biţi.
35 36
3. ERROR FRAME
3. ERROR FRAME - stări eroare activă / pasivă -
- stări eroare activă / pasivă -
• De exemplu, nodul A generează o eroare (oricare ar fi
motivul) după fiecare încercare de transmisie mesaj
• Erorile de transmisie contribuie cu 8 puncte la – La fiecare eroare TEC nod A incrementat cu 8 şi REC alte noduri cu 1
incrementarea TEC a nodului ce transmite – Nodul A încerca să retransmită mesajul și din nou eroare
• Erorile de recepţie contribuie cu 1 punct la incrementarea – Atunci când TEC trece de 127 (adică după 16 încercări, 16x8 = 128),
REC nodul A trece în mod eroare pasivă. Acesta va transmite acum indicatoare
de eroare pasivă pe bus (nu se mai “aude” )
• Mesajele transmise sau recepţionate corect produc – Nodul A continuă să incrementeze contorul său TEC
decrementarea contoarelor din noduri. – Atunci când acesta trece peste 255, nodul-A în cele din urmă se oprește și
se duce la starea "Bus Off".
• Celelate noduri: pentru fiecare indicator de eroare activă
transmis de A, nodurile vor incrementa contorul lor REC
cu 1, până ce A trece în eroare pasivă şi nu mai contează
37
pe bus. 38

3. ERROR FRAME - tipuri de cadre 3. ERROR FRAME - tipuri de cadre


• Error frame – este un cadru de eroare transmis când se
detectează una din erorile definite de CAN: • CRC error - Se foloseşte o valoare CRC de 15 biţi. Fiecare nod
– eroare CRC calculează CRC şi verifică dacă valoarea calculată coincide cu
– eroare de Acknowledge cea recepţionată. Dacă cel puţin un nod determină eroare se
– eroare de format (se recepţionează un bit d în unul din segmentele: generează un Error Frame / Cadru de eroare. Asta înseamnă că
End_of_Frame, Interframe_Space, Ack_delimiter şi urmează re-transmisie.
CRC_delimiter)
• Acknowledge Error - în câmpul ACK al mesajului, nodul
– eroare de bit (se transmite r şi se citeşte d pe magistrală) - nu pe
durata arbitrării transmiţător verifică dacă slotul ACK (transmis ca un bit
– eroare de umplere cu biţi de sincronizare (Dacă între SOF şi regresiv) conţine vreun bit dominant. Acest bit dominant
delimitator CRC apar 6 biţi consecutivi de aceeaşi polaritate) indică că cel puţin un nod a recepţionat corect mesajul. Dacă
bitul rămâne regresiv, mesajul nu a fost recepţionat şi se va
produce un mesaj de tip Acknowledge Error. Se generează un
Error frame şi mesajul original se retransmite după un timp.

39 40
3. ERROR FRAME - tipuri de cadre 3. ERROR FRAME - tipuri de cadre
• Form Error (eroare de format)- dacă se recepţionează un bit • Eroare de umplere (stuff error)
dominant într-unul din segmentele: End of Frame, Interframe • Se foloseşte metoda NRZ, adică nivelul de tensiune se păstrează
Space, Acknowledge delimiter şi CRC Delimiter, protocolul acelaşi pe toată durata alocată unui bit.
CAN defineşte o violare de format şi se generează un Form • Uneori CAN funcţionează asincron, şi se face umplere cu biţi
Error. După un timp mesajul e retransmis. falşi pentru a permite sincronizarea nodurilor receptoare pe baza
• Bit error - apare în cazul în care se transmite un bit regresiv şi tranziţiilor. Dacă există mai mult de 5 biţi de aceeaşi
se recepţionează un bit dominant cu situaţiile: polaritate în linie (între SOF şi final câmp CRC), CAN va
– În timpul câmpului de arbitrare (ID) sau ACK, dacă transmiţătorul introduce automat un bit de polaritate opusă. Nodul receptor
trimite un bit regresiv şi detectează pe magistrală un bit dominant utilizează acest bit pentru sincronizare, dar îl va ignora atunci
nu se generează Bit error, pentru că se consideră că fie se produce când prelucrează datele.
operaţia de arbitrare normală fie că s-a conformat prin ACK
recepţia corectă. • Dacă între Start of Frame şi Delimitator CRC apar 6 biţi
– În celelalte cazuri rezultă generarea unui Error frame şi apoi
consecutivi de aceeaşi polaritate atunci s-a violat regula
retransmisie. împănării cu biţi de sincronizare, se produce Stuff Error şi se
generează un Error Frame. Mesajul va fi repetat.
41 42

4. OVERLOAD FRAME 4. OVERLOAD FRAME


• Overload frame (cadru de supraîncărcare) este un cadru special
generat de noduri atunci când este necesar mai mult timp
pentru prelucrarea mesajelor deja recepţionate.
• OVERLOAD FRAME conţine două câmpuri de biţi:
– OVERLOAD FLAG şi
• Cadrul de supraîncărcare este trimis în timpul perioadei stabile
inter-cadre şi semnalează că un nod este supraîncărcat şi nu va fi – OVERLOAD DELIMITER.
capabil să lucreze corect cu următorul mesaj.
• Nodul poate întârzia transmisia următorului cadru cu până la
două cadre de supraîncărcare în linie, în speranţa că va avea
astfel suficient timp pentru a-şi reveni din supraîncărcarea sa.

43 44
SPAŢIEREA INTER-CADRE
4. OVERLOAD FRAME descriere câmpuri binare
• INTERMISSION (întrerupere / pauză) constă din 3 biţi regresivi. În
• Se pot genera maximum două cadre de tip OVERLOAD timpul acestui câmp nici o staţie nu are voie să transmită cadre de
DATA sau REMOTE. Singura acţiune permisă este semnalizarea unei
FRAME pentru a întârzia următorul cadru de tip DATA sau condiţii de tip overload.
REMOTE. • BUS IDLE este o perioadă de lungime arbitrară. Magistrala este
• Fanionul overload constă din 6 biţi dominanţi. Formatul general recunoscută ca liberă. Un mesaj care a aşteptat să fie transmis în timpul
corespunde celui pentru fanion de eroare activ. transmiterii altui mesaj este pornit la primul interval de bit după
INTERMISSION. Detecţia unui bit dominant pe magistrală este
• Fanionul overload distruge formatul fix al câmpului interpretată ca START OF FRAME.
INTERMISSION. Ca urmare toate celelalte staţii determină o • SUSPEND TRANSMISSION. După ce o staţie „eroare pasivă” a
condiţie de tip overload şi pornesc transmisia unui flag transmis un mesaj, ea transmite 8 biţi recesivi urmaţi de câmpul
overload. INTERMISSION, înainte de a transmite un alt mesaj sau de
recunoaşterea că magistrala este liberă. Dacă între timp porneşte
• Delimitatorul overload constă din 8 biţi regresivi. transmisia de la o altă staţie, staţia va deveni receptor al acestui mesaj,
deci suspendă transmisia.

45 46

SPAŢIEREA INTER-CADRE SPAŢIEREA INTER-CADRE

• Cadrele DATA şi REMOTE sunt separate de cadrele • Pentru staţiile care nu sunt „eroare pasivă” sau care au fost
precedente indiferent de tipul acestora (DATA FRAME, receptoare la mesajele anterioare formatul este:
REMOTE FRAME, ERROR FRAME, OVERLOAD
FRAME) printr-un câmp binar numit spaţiu inter-cadre
(INTERFRAME SPACE).
• Spaţiul inter-cadre conţine câmpurile binare numite
– INTERMISSION şi
– BUS IDLE
– SUSPEND TRANSMISSION doar pentru staţiile „eroare pasivă”
care au fost transmiţătoare ale mesajelor anterioare

47 48
Starea de eroare Bit stuffing Doar pentru
DATA şi
OBSERVAŢII REMOTE
• Câmpurile din fluxul de biţi al unui cadru transmis pe magistrală
(START OF FRAME, ARBITRATION FIELD, CONTROL
FIELD, DATA FIELD şi CRC SEQUENCE) sunt codate prin
• O valoare contorizată mai mare de 96 indică o
metoda cu împănare de biţi (bit stuffing)
funcţionarea defectuoasă pe bus.
• De fiecare dată când transmiţătorul detectează o succesiune de
• La pornire, dacă un singur nod este on-line şi el cinci biţi consecutivi cu aceeaşi valoare, în fluxul transmis al
transmite mesaje, nu are de la cine primi ACK biţilor se inserează un bit cu valoare complementară
• Ca urmare detectează eroarea şi va repeta mesajul • Pentru cadrele de date (normal sau remote) biţii din câmpurile
următoare (CRC DELIMITER, ACK FIELD şi END OF
• El poate deveni eroare pasivă, dar nu şi bus off FRAME) au format fix şi nu sunt împănate cu biţi
pentru că este singur. • Cadrele ERROR FRAME şi OVERLOAD FRAME au formă
fixă şi nu sunt codate prin metoda împănării cu biţi

49 50

Observaţii privind arbitrarea Observaţii privind arbitrarea


C S M A /C D
• Conform specificaţiilor tehnice, controlul magistralei
CAN este făcut printr-o tehnică numită CSMA/AMP
= Carrier Sense Multiple Access with Arbitration on
Message Priority (Acces multiplu prin sesizarea Carrier Sense - fiecare Multiple Access -
Collision Detection -
nod monitorizează fiecare nod are şanse
putătoarei şi arbitrare prin prioritate de mesaj) coliziunile sunt
magistrala pentru a egale de transmitere
rezolvate prin
• CSMA/AMP este o variantă a CSMA/CD (Carrier sesiza, înainte de a mesajelor pe
arbitrarea la fiecare
transmiterea magistrală
Sense Multiple Access with Collision Detection) mesajului, că nu
bit, pe baza priorităţii
pre-fixate a
• Această metodă este similară cu metoda de arbitrare a există activitate
identificatorilor
magistralei I2C.

51 52
Observaţii privind arbitrarea Observaţii privind arbitrarea
• Dacă un nod transmiţător nu primeşte o confirmare pentru un
cadru de date, el va retransmite cadrul de date până când datele
sunt confirmate. Această acţiune corespunde nivelului legătură
de date (data link layer) din modelul OSI. • Se observă că magistrala CAN se bazează pe protocol
• Câmpul de arbitrare, inclus în cadrul de date, este utilizat pentru
de mesaj şi nu de adresă. Mesajele nu se transmit de
rezolvarea priorităţilor mesajelor de pe magistrală. la un nod la altul pe bază de adresă. Se transmite
mesaj care e recepţionat de toate nodurile
• Câmpul de arbitrare poate avea 12 biţi (11 ca identificator şi un
bit RTR) sau 32 biţi (29 biţi de identificare, 1 bit ce defineşte că • Fiecare nod decide dacă va neglija mesajul sau va
este vorba de un câmp de date extins, un bit SRR neutilizat şi un prelucra mesajul. Mesajele pot fi destinate unui singur
bit RTR, în funcţie de versiunea de standard CAN utilizată. nod sau mai multor noduri
• Fiecare nod recepţionează, sau neglijează un mesaj pe
baza ID-ului mesajului.

53 54

Variante ale CAN


Variante ale CAN • ISO 11898-2. CAN de mare viteză. Utilizează semnal
diferenţial transmis prin 2 fire. Este cel mai răspândit
standard în aplicaţii de automobile, transport feroviar de
marfă şi aplicaţii de reţele de control industrial.
• Pentru că standardul iniţial a definit doar
• ISO 11898-3. CAN de mică viteză (tolerant la erori)
nivelurile fizic şi al legăturii de date din modelul
• TTCAN (ISO 11898-4). Time Triggered CAN -
OSI, specificaţiile CAN au constituit baza unui Protocolul TTCAN alocă ferestre de timp pentru raportare
mare număr de variante de standardizare propuse din partea nodurilor, ferestre ce sunt planificate şi
mai ales de industrie administrate pe magistrală astfel încât să se asigure că nu
se produce supraîncărcare (overload) pe magistrală chiar şi
• Adesea acest lucru creează confuzie pentru că în cele mai dezavantajoase situaţii. Se bazează pe un
utilizatorii spun că utilizează CAN protocol CAN la nivelul legăturii de date furnizând în plus
un Clock sistem pentru planificarea mesajelor.
55 56
Variante ale CAN Variante ale CAN
• DeviceNet – dezvoltat pentru utilizare în controlul • CANopen. Este de asemenea proiectat pentru aplicaţii de
proceselor industriale este bazat complet pe standardul control.
CAN - ISO 11898-2 5v • Este un standard software bazat pe CAN - ISO 11898-2 5v.
• DeviceNet defineşte în mod riguros modul de • Limitează numărul de noduri la 127 şi le alocă câte un ID.
interconectare fizică şi are specificaţii mai restrictive decât • Prin organizaţia CAN in Automation (CiA) se definesc
standardul în ceea ce priveşte tranceiverele pentru fiecare tip de nod anumite profiluri pentru a
simplifica utilizarea sistemelor provenite de la diferiţi
• Foloseşte identificator de 11 biţi şi permite rate de doar producători. Se definesc de asemenea unele comenzi
125, 250 şi 500 kBaud standard ceea ce permite modulelor să fie identificate
• De asemenea impune restricţii privind conţinutul automat prin alocarea unui ID de nod. Standardul mai
mesajelor pentru a permite interoperabilitatea dintre defineşte modul de păstrare a sincronizării pentru citire şi
diferite unităţi de fabricaţie. scriere de blocuri mari de date.

57 58

Variante ale CAN Variante ale CAN


• ISO 11992-1 (B10011S) • SAE J1939. O întreagă familie de standarde industriale
(agricultură, marină, camioane, autobuze, etc.) construite pentru
• CAN tolerant la erori pentru comunicaţie cu camioane servicii de comunicare a datelor pe baza CAN - ISO 11898-2.
/ autotrenuri / remorci / platforme de transport. Există documente specifice fiecărui tip de aplicaţie ce
• ISO 11783-2 definesc combinaţia particulară a nivelurilor de comunicaţie
pentru mediul industrial specific.
• 250 kbit/s, foloseşte patru cabluri torsadate fără
• SAE J1939 este utilizat în special în echipamente agricole şi de
ecran: construcţii, folosind două cabluri torsadate. Varianta 11 are
– două pentru CAN şi ecran, în timp ce varianta 15 nu are ecran.
– două ca terminatoare pentru polarizarea circuitelor de ieşire – SAE J1939-11: 250 kbit/s, pentru cablu torsadat ecranat (Shielded
faţă de tensiunea de alimentare şi faţă de masă. Twisted Pair = STP)
• Standard pentru echipamente agricole. – SAE J1939-15: 250 kbit/s, pentru cablu torsadat fără ecran
(UnShielded Twisted Pair = UTP)

59 60
Variante ale CAN
• SAE J2411. CAN pe un singur fir (Single-wire CAN = SWC).
Single Wire CAN este un nivel fizic de mică putere şi viteză
redusă utilizat mai ales în aplicaţiile auto. El utilizează
tranceivere de tip AU5790.
• MilCAN - e definit pentru a fi utilizat în vehicule militare
terestre unde este necesar un protocol de diagnosticare. El
defineşte un set de reguli de utilizare şi un nivel de software
peste nivelurile reţelei CAN convenţionale. S-a introdus un nod
master de sinconizare (pentru sincronizare pseudo-hardware) şi
care transmite pe magistrală cadre de sincronizare ce includ şi
un număr al slotului de timp de sincronizare. Există două
variante, MilCAN A foloseşte identificatori pe 29 de biţi, iar
MilCAN B foloseşte identificatori de 11 biţi.
61

S-ar putea să vă placă și