Documente Academic
Documente Profesional
Documente Cultură
Magistrala CAN
• CAN bus a fost iniĠial proiectată pentru electronica auto
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
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)
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
• 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.
25 26
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
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
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
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
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
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
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
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