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 Organizarea fizică úi electrică


Dominant
Logic 0
Regresiv
Regresiv
• Viteza este relativ redusă, iar limitarea este determinată de Logic 1

modul de arbitrare, pe bază de prioritate a mesajelor


CAN-H
– 1 Mb/s până la 40 metri
– 125 kb/s până la 500 metri CAN-L
– 50 kb/s până la 1000 metri
Ground
• Magistrala CAN utilizează transmisia serială pe bit
• Protocolul de magistrală permite mai mulĠi masteri pe
magistrală TX RX TX RX
• Fiecare nod al magistralei CAN are propriile drivere úi Nod Nod
receivere electrice prin care se conectează nodul la
magistrală într-o manieră SI - cablat.

7 8
Organizarea fizică úi electrică Stare magistrală pentru două noduri
Pentru CAN de mare viteză (conform ISO 11898-2) este necesar ca liniile transmiĠătoare (ùI cablat)
magistralei să aibă conectate la ambele capete câte o rezistenĠă de 120 :.
PrezenĠa rezistoarelor previne reflexiile úi de asemenea asigură o conexiune
electrică între ieúirile cu colector (drenă) în gol ale tranceiverelor.
Nod 1 Nod 2 Stare magistrală (AND)

0 0 0 (dominant)
0 1 0 (dominant)
1 0 0 (dominant)
1 1 1 (regresiv)

Deosebire faĠă de I2C la ùI cablat: la CAN se foloseúte


tensiune diferenĠială !
9 10

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
• 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

11 12
Stare dominantă / regresivă Niveluri tensiune
Nivel de ISO 11898 High speed
tensiune (V)
Signal recessive state dominant state unit
Dominant
min nominal max min nominal max
Logic 0 CAN-H
CAN-High 2.0 2.5 3.0 2.75 3.5 4.5 Volt
CAN-Low 2.0 2.5 3.0 0.5 1.5 2.25 Volt
Regresiv Regresiv Tensiune
diferenĠială
Logic 1 ISO 11519 Low speed
CAN-L
Signal recessive state dominant state unit
min nominal max min nominal max
CAN-High 1.6 1.75 1.9 3.85 4.0 5.0 Volt
Timp
CAN-Low 3.1 3.25 3.4 0 1.0 1.15 Volt

13 14

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.
• La CAN datele se transmit úi recepĠionează utilizând Cadre
Mesaj (Message Frames) care transportă datele de la un
– Toate nodurile conectate la magistrală recepĠionează mesajul
nod emiĠător către unul sau mai multe noduri receptoare.
• Mesajele sunt filtrate în funcĠie de relevanĠa lor pentru un
anumit nod. Dacă un mesaj este relevant, este procesat • Protocolul CAN standard, versiunea 2.0A, foloseúte
mesaje cu identificatori având lungimea de 11 biĠi
• Identificatorul unic determină úi prioritatea mesajului. Cu
cât valoarea numerică a identificatorului este mai mică cu • Protocolul CAN extins, versiunea 2.0B, foloseúte mesaje
atât prioritatea sa este mai mare cu identificatori având lungimea de 29 biĠi
• Totdeauna va câútiga accesul la magistrală mesajul cu
prioritatea maximă
– Mesajele cu prioritate mai mică sunt retransmise automat în
următoarele cicluri de magistrală, în funcĠie de prioritatea lor
15 16
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
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
17 18

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


21 22

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
pentru corecĠia erorilor. Câmpul CRC conĠine secvenĠa ACK 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.
23 24
1. DATA FRAME – format standard 1. DATA FRAME – format extins

25 26

2. REMOTE FRAME 3. ERROR FRAME


• Remote frame este utilizat când un nod cere date de la alt • Cadrele de eroare au o structură predefinită 14 biĠi
nod. – 6 biĠi indicator de eroare + 8 biĠi delimitator de eroare
• Solicitantul setează bitul RTR la 1 pentru a specifica cadrul
la distanĠă. El specifică de asemenea zero biĠi de date.
• Fiecare interfaĠă CAN conĠine
– un contor de erori pentru recepĠie (CER)
• Nodul care recunoaúte câmpul identificator va răspunde cu
un cadru de date care are acelaúi identificator – un contor de erori pentru transmisie (CET)
• Remote frame este de fapt un Data frame cu bitul RTR – CER úi CET se incrementează cu 1 la o eroare minoră
regresiv pentru a indica că este vorba de o cerere de úi cu 8 la o eroare gravă
transmisie la distanĠă (Remote Transmit Request) – Un număr mare de erori face ca interfaĠa să fie exclusă
din comunicaĠie

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

29 30

3. ERROR FRAME 3. ERROR FRAME


- stări eroare activă / pasivă - - stări eroare activă / pasivă -
• O staĠie de tip „eroare activă” semnalizează detectarea unei • O staĠie de tip „eroare pasivă” semnalizează detectarea
condiĠii de eroare prin transmiterea unui ACTIVE ERROR unei condiĠii de eroare prin transmiterea unui PASSIVE
FLAG. Formatul fanionului de eroare violează legea împănării
cu biĠi aplicată tuturor câmpurilor începând cu START OF ERROR FLAG. StaĠia „eroare pasivă” aúteaptă timp de 6
FRAME până la CRC DELIMITER sau distruge forma fixă a biĠi consecutivi de aceeaúi polaritate începerea transmisiei
câmpului de ACK ori a celui de END OF FRAME. Ca urmare unui fanion de eroare pasivă.
toate celelalte staĠii detectează o condiĠie de eroare úi fiecare • ERROR DELIMITER. Delimitatorul de eroare constă din
dintre ele porneúte la transmisia unui ERROR FLAG
8 biĠi regresivi. După transmisia unui fanion de eroare
• Astfel că secvenĠa de biĠi dominanĠi care poate fi monitorizată
pe bus rezultă din suprapunerea diferitelor fanioane de eroare fiecare staĠie transmite biĠi regresivi úi monitorizează
transmise de staĠiile individuale. Lungimea totală a acestei magistrala până când detectează un bit dominant.
secvenĠe variază între minimum 6 biĠi úi maximum 12 biĠi.

31 32
3. ERROR FRAME - tipuri de cadre 3. ERROR FRAME - tipuri de cadre
• Error frame – este un cadru de eroare transmis când se • CRC error - Se foloseúte o valoare CRC de 15 biĠi. Fiecare nod
detectează una din erorile definite de CAN: calculează eroarea CRC úi verifică corectitudinea mesajului.
– eroare CRC Dacă cel puĠin un nod determină eroare se generează un Error
– eroare de Acknowledge Frame / Cadru de eroare. Asta înseamnă că urmează re-
– eroare de format (se recepĠionează un bit d în unul din segmentele: transmisie.
End_of_Frame, Interframe_Space, Ack_delimiter úi
CRC_delimiter) • Acknowledge Error - în câmpul ACK al mesajului, nodul
– eroare de bit (se transmite r úi se citeúte d pe magistrală) 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.

33 34

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.
35 36
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.

37 38

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.

39 40
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

41 42

Constrângeri privind Constrângeri privind starea de eroare


starea de eroare
• O unitate „eroare activă” poate să ia parte normal la
• O unitate legată la CAN bus se poate găsi într- comunicarea pe bus úi transmite un fanion de eroare
una din următoarele trei stări: activă când se detectează producerea unei erori.
• O unitate „eroare pasivă” ia parte la comunicarea pe
bus úi transmite un fanion de eroare pasivă când se
– eroare activă detectează producerea unei erori. Mai mult, după
transmiterea fanionului de eroare pasivă unitatea va
– eroare pasivă aútepta înainte de a iniĠia o transmisie viitoare.
– deconectare (bus off) • O unitate „bus off” nu are voie să aibă nici o influenĠă
pe bus (de exemplu drivere de ieúire deconectate).

43 44
Constrângeri privind starea de eroare Constrângeri privind starea de eroare

• Fiecare unitate conectată la bus are două contoare: 4. Când un transmiĠător transmite un fanion de eroare CET e
– contor de eroare transmisă (CET) incrementat cu 8 (există úi excepĠii de la această regulă)
– contor de eroare recepĠionată (CER) 5. Când un transmiĠător detectează o eroare de bit în timp ce
transmite un fanion de eroare activă sau un fanion de overload
• Regulile (simplificate aici) de modificare a contoarelor CET e incrementat cu 8.
sunt: 6. Oricare nod tolerează până la 7 biĠi dominanĠi consecutivi după
1. Când un receptor detectează o eroare CER se incrementează cu ce s-a transmis un fanion de eroare activă, eroare pasivă sau de
1 (există úi excepĠii de la această regulă) overload. Fiecare transmiĠător / receptor incrementează registrul
2. Când un receptor detectează un bit dominant ca primul bit dintr- său CET / CER cu 8 în situaĠiile:
un fanion de eroare CER e incrementat cu 8. ¾ După detectarea celui de-al 14-lea bit dominant consecutiv (în cazul
fanioanelor eroare activă úi overload)
3. Când un receptor detectează o eroare de bit în timp ce transmite
un fanion de eroare activă sau un fanion de overload CER e ¾ după detectarea celui de-al 8-lea bit dominant consecutiv (ce
urmează după un fanion de eroare pasivă)
incrementat cu 8.
¾ după fiecare secvenĠă suplimentară de 8 biĠi dominanĠi consecutivi

45 46

Constrângeri privind starea de eroare Constrângeri privind starea de eroare

9. Un nod este de tip „eroare pasivă” dacă unul din contoarele sale
CET sau CER este mai mare sau egal cu 128.
7. După transmisia cu succes a unui mesaj, la care se recepĠionează 10. Un nod este de tip „bus off” dacă CET este mai mare sau egal cu
ACK úi la care nu există eroare până se termină EOF, CET e 256.
decrementat cu 1 cu excepĠia cazului când a ajuns deja la 0. 11. Un nod trece din stare „eroare pasivă” în stare „eroare activă”
8. După recepĠia cu succes a unui mesaj la care nu există eroare atunci când ambele contoare CET úi CER conĠin o valoare mai
până la slot-ul ACK úi se transmite un ACK corect CER e mică sau egală cu 127.
decrementat cu 1 cu excepĠia cazului când a ajuns deja la 0. 12. Unui nod „bus off” i se permite să devină „activ la eroare” (iese
din starea bus off) cu contoarele de eroare setate amândouă la 0
după 128 de apariĠii de 11 biĠi regresivi consecutivi.

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 (CS)


• Nodurile reĠelei transmit sincron, astfel încât pot începe, în
acelaúi moment, să-úi transmită mesajul (câmpurile
• Conform specificaĠiilor tehnice, controlul magistralei identificator)
CAN este făcut printr-o tehnică numită CSMA/AMP
• Dacă un nod aude un bit dominant în identificator, atunci când
= Carrier Sense Multiple Access with Arbitration on el a încercat să transmită un bit regresiv, opreúte transmisia
Message Priority (Acces multiplu prin sesizarea • La sfârúitul câmpului identificator va mai rămâne doar un
putătoarei úi arbitrare prin prioritate de mesaj) transmiĠător
• CSMA/AMP este o variantă a CSMA/CD (Carrier • Protocolul impune ca fiecare nod din reĠea să poată monitoriza
Sense Multiple Access with Collision Detection) magistrala pentru o perioadă de timp, în care sesizează, înainte
de transmiterea mesajului, că nu există activitate (Carrier Sense)
• Această metodă este similară cu metoda de arbitrare a
magistralei I2C.

51 52
ObservaĠii privind arbitrarea ObservaĠii privind arbitrarea
• În cazul în care există perioade de inactivitate fiecare nod are
úanse egale de transmitere a mesajelor (Multiple Access) • 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
• Dacă două noduri încep transmisia în acelaúi timp, ele vor
detecta coliziunea (CD) úi vor lua măsura adecvată. Câútigă cela sunt confirmate. Această acĠiune corespunde nivelului legătură
care are mesajul cu prioritatea maximă (prin identificatorul de de date (data link layer) din modelul OSI.
mesaj). • Câmpul de arbitrare, inclus în cadrul de date, este utilizat pentru
• De observat deosebirea faĠă de protocoalele CSMA/CA (CA = rezolvarea priorităĠilor mesajelor de pe magistrală.
collision avoidance), la care fiecare dispozitiv partener primeúte • Câmpul de arbitrare poate avea 12 biĠi (11 ca identificator úi un
un ID (prioritate). bit RTR) sau 32 biĠi (29 biĠi de identificare, 1 bit ce defineúte că
– După fiecare transfer pe magistrală, fiecare dintre parteneri este vorba de un câmp de date extins, un bit SRR neutilizat úi un
încearcă să-úi poziĠioneze ID-ul propriu pe magistrală (un SAU
cablat de ID-uri). Partenerii care detectează ID-uri mai mari se bit RTR, în funcĠie de versiunea de standard CAN utilizată.
deconectează de la magistrală
– Partenerii cu prioritate mai mare primesc un timp garantat de
răspuns, iar ceilalĠi doar dacă primii le dau úi lor o úansă.
53 54

ObservaĠii privind arbitrarea


Variante ale CAN
• Se observă că magistrala CAN se bazează pe protocol
de mesaj úi nu de adresă. Mesajele nu se transmit de • Pentru că standardul iniĠial a definit doar
la un nod la altul pe bază de adresă. Se transmite nivelurile fizic úi al legăturii de date din modelul
mesaj care e recepĠionat de toate nodurile OSI, specificaĠiile CAN au constituit baza unui
• Fiecare nod decide dacă va neglija mesajul sau va mare număr de variante de standardizare propuse
prelucra mesajul. Mesajele pot fi destinate unui singur mai ales de industrie
nod sau mai multor noduri
• Adesea acest lucru creează confuzie pentru că
• Fiecare nod recepĠionează, sau neglijează un mesaj pe
baza ID-ului mesajului. utilizatorii spun că utilizează CAN

55 56
Variante ale CAN Variante ale CAN
• ISO 11898-2. CAN de mare viteză. Utilizează semnal • DeviceNet – dezvoltat pentru utilizare în controlul
diferenĠial transmis prin 2 fire. Este cel mai răspândit proceselor industriale este bazat complet pe standardul
standard în aplicaĠii de automobile, transport feroviar de CAN - ISO 11898-2 5v
marfă úi aplicaĠii de reĠele de control industrial.
• DeviceNet defineúte în mod riguros modul de
• ISO 11898-3. CAN de mică viteză (tolerant la erori)
interconectare fizică úi are specificaĠii mai restrictive decât
• TTCAN (ISO 11898-4). Time Triggered CAN - standardul în ceea ce priveúte tranceiverele
Protocolul TTCAN alocă ferestre de timp pentru raportare
din partea nodurilor, ferestre ce sunt planificate úi • Foloseúte identificator de 11 biĠi úi permite rate de doar
administrate pe magistrală astfel încât să se asigure că nu 125, 250 úi 500 kBaud
se produce supraîncărcare (overload) pe magistrală chiar úi • De asemenea impune restricĠii privind conĠinutul
în cele mai dezavantajoase situaĠii. Se bazează pe un mesajelor pentru a permite interoperabilitatea dintre
protocol CAN la nivelul legăturii de date furnizând în plus diferite unităĠi de fabricaĠie.
un Clock sistem pentru planificarea mesajelor.
57 58

Variante ale CAN Variante ale CAN


• CANopen. Este de asemenea proiectat pentru aplicaĠii de • ISO 11992-1 (B10011S)
control.
• CAN tolerant la erori pentru comunicaĠie cu camioane
• Este un standard software bazat pe CAN - ISO 11898-2 5v.
/ autotrenuri / remorci / platforme de transport.
• Limitează numărul de noduri la 127 úi le alocă câte un ID.
• Prin organizaĠia CAN in Automation (CiA) se definesc • ISO 11783-2
pentru fiecare tip de nod anumite profiluri pentru a • 250 kbit/s, foloseúte patru cabluri torsadate fără
simplifica utilizarea sistemelor provenite de la diferiĠi ecran:
producători. Se definesc de asemenea unele comenzi
– două pentru CAN úi
standard ceea ce permite modulelor să fie identificate
automat prin alocarea unui ID de nod. Standardul mai – două ca terminatoare pentru polarizarea circuitelor de ieúire
defineúte modul de păstrare a sincronizării pentru citire úi faĠă de tensiunea de alimentare úi faĠă de masă.
scriere de blocuri mari de date. • Standard pentru echipamente agricole.

59 60
Variante ale CAN Variante ale CAN
• SAE J1939. O întreagă familie de standarde industriale • SAE J2411. CAN pe un singur fir (Single-wire CAN = SWC).
(agricultură, marină, camioane, autobuze, etc.) construite pentru Single Wire CAN este un nivel fizic de mică putere úi viteză
servicii de comunicare a datelor pe baza CAN - ISO 11898-2. redusă utilizat mai ales în aplicaĠiile auto. El utilizează
Există documente specifice fiecărui tip de aplicaĠie ce tranceivere de tip AU5790.
definesc combinaĠia particulară a nivelurilor de comunicaĠie • MilCAN - e definit pentru a fi utilizat în vehicule militare
pentru mediul industrial specific. terestre unde este necesar un protocol de diagnosticare. El
• SAE J1939 este utilizat în special în echipamente agricole úi de defineúte un set de reguli de utilizare úi un nivel de software
construcĠii, folosind două cabluri torsadate. Varianta 11 are peste nivelurile reĠelei CAN convenĠionale. S-a introdus un nod
ecran, în timp ce varianta 15 nu are ecran. master de sinconizare (pentru sincronizare pseudo-hardware) úi
– SAE J1939-11: 250 kbit/s, pentru cablu torsadat ecranat (Shielded care transmite pe magistrală cadre de sincronizare ce includ úi
Twisted Pair = STP) un număr al slotului de timp de sincronizare. Există două
– SAE J1939-15: 250 kbit/s, pentru cablu torsadat fără ecran variante, MilCAN A foloseúte identificatori pe 29 de biĠi, iar
(UnShielded Twisted Pair = UTP) MilCAN B foloseúte identificatori de 11 biĠi.
61 62

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