Sistemul CAN Bus

5 aprilie 2023, 14:59

Controller Area Network (CAN bus) este un standard robust de magistrală pentru vehicule, care este conceput pentru a permite microcontrolerelor și dispozitivelor să comunice între ele fără un computer gazdă. Este un protocol bazat pe mesaje, care a fost conceput inițial pentru cablarea electrică multiplex în mașini pentru a economisi utilizarea cuprului, dar poate fi folosit și în multe alte situații.

Acesta a fost unul dintre primele astfel de protocoale din industria vehiculelor prezentă în acest segment.

O scurta prezentare 
Dezvoltarea CAN Bus a început în 1983 la Robert Bosch GmbH. Protocolul a fost lansat oficial în 1986, la conferința Societății Inginerilor Auto (SAE) din Detroit, Michigan. Primele cipuri de control CAN au fost introduse de Intel în 1987, urmate la scurt timp de Philips. Mercedes-Benz W140 lansat în 1991 a fost primul vehicul de serie care a prevăzut un sistem de cablare multiplex bazat pe CAN.

Bosch a publicat mai multe versiuni ale specificației CAN, cea mai recentă este CAN 2.0 care a fost lansată în 1991. Această specificație constă din două părți; partea „A” se referă la formatul standard cu un identificator de 11 biți, iar partea „B” se referă la formatul extins cu un identificator de 29 de biți. Dispozitivele CAN care folosesc identificatori de 11 biți sunt numite CAN 2.0A, iar dispozitivele CAN care folosesc identificatori de 29 de biți sunt numite CAN 2.0B. Aceste standarde sunt disponibile gratuit de la Bosch, împreună cu alte specificații și studii.

În 1993, Organizația Internațională pentru Standardizare (ISO) a publicat standardul ISO 11898 CAN, care a fost ulterior structurat în două părți; ISO 11898-1, care acoperă nivelul de legătură de date și ISO 11898-2, care acoperă stratul fizic CAN pentru CAN de mare viteză. ISO 11898-3 a apărut mai târziu și acoperă stratul fizic CAN pentru CAN cu viteză redusă, tolerant la erori. Standardele ISO 11898-2 și ISO 11898-3 ale stratului fizic nu fac parte din specificația Bosch CAN 2.0. Aceste standarde pot fi achiziționate direct de la ISO.

CAN Bus este unul dintre cele cinci protocoale utilizate în standardul de diagnosticare a vehiculelor OBD-II. Standardul EOBD este obligatoriu pentru toate vehiculele vândute pe benzină în Uniunea Europeană din 2001 și pentru toate vehiculele diesel din 2004.

Aplicații în industria auto
Mașinile moderne pot avea până la 70 de unități de control electronic (ECU) pentru diferite subsisteme. În mod tradițional, cel mai mare procesor este unitatea de control al motorului. Altele sunt pentru conducere autonomă, sistem avansat de asistență a șoferului (ADAS), transmisie, airbag-uri, sistem antiblocare frânare/ABS, cruise control, servodirecție electrică, sisteme audio, geamuri electrice, uși, reglare oglinzi, baterie și încărcare hibridă/electrică.

Diagrama semnalului CAN de mare viteză ISO 11898-2 (Sursă: www.wikipedia.org)

Unul dintre avantajele cheie este că conectarea diferitelor sisteme de vehicule permite implementarea unei game largi de funcții de siguranță, operaționale și de confort numai folosind software - funcționalitate care ar adăuga costuri și complexitate dacă aceste funcții ar fi „conectate” cu dispozitive electrice tradiționale. Am putea avea multe exemple în acest sens, de la sisteme start-stop la frâne de parcare electrice la sisteme de asistență la parcare și așa mai departe.

Semnal CAN ISO 11898-2 de mare viteză (Sursă: www.wikipedia.org)

Mesaj CAN
CAN  Bus este o magistrală de tip broadcast. Aceasta înseamnă că fiecare nod „aude” fiecare transmisie. Nu există nicio modalitate de a trimite un mesaj doar unui anumit nod; fiecare nod primește întotdeauna tot traficul. Hardware-ul CAN oferă filtrare locală, astfel încât fiecare nod să poată răspunde numai la mesajele relevante pentru el.
CAN folosește mesaje scurte - sarcina maximă de utilitate este de 94 de biți. Mesajele nu au o adresă explicită; în schimb, putem spune că mesajele sunt adresate conținutului, deci conținutul lor determină implicit adresa.

Tipuri de mesaje
Există patru tipuri diferite de mesaje (sau „cadre”) pe magistrala CAN:

  • Cadru de date
  • Cadru de la distanță
  • Cadru de eroare
  • Cadru de suprasarcină

Cadrul de date
Cel mai comun tip de mesaj. Este format din următoarele părți principale:

  • Câmp de arbitraj, care determină prioritatea mesajului atunci când două sau mai multe noduri concurează pentru magistrală. Domeniul arbitrajului include:
    În cazul CAN 2.0A, există un identificator de 11 biți și un bit,
    Pentru CAN 2.0B, un identificator de 29 de biți (care include doi biți recesivi: SRR și     IDE) și bitul RTR.
  • Câmpul de date care conține de la zero la opt octeți de date.
  • Câmpul CRC, care conține o sumă de control de 15 biți calculată în majoritatea părților din mesaj. Această sumă de verificare este utilizată pentru a detecta eroarea.
  • Un slot de confirmare; fiecare controler CAN care a fost capabil să primească corect mesajul trimite un bit de confirmare la sfârșitul fiecărui mesaj. Transmițătorul verifică prezența bitului de confirmare și retransmite mesajul dacă nu este detectată nicio confirmare.

Cadru de la distanță
Cadrul de la distanță este la fel ca și cadrul de date, cu două diferențe importante:

  • este marcat în mod specific ca un cadru la distanță (bitul Arbitration Field RTR este recesiv) și
  • nu există câmp de date.

Scopul cadrului de la distanță este de a solicita transmiterea cadrului de date corespunzător. Dacă, de exemplu, nodul A trimite un cadru la distanță cu câmpul de arbitrare setat la 234, atunci nodul B poate răspunde cu un cadru de date cu câmpul de arbitrare setat la 234 dacă este inițializat corespunzător.
Cadrele de la distanță pot fi utilizate pentru a implementa managementul traficului de tip cerere-răspuns. Cu toate acestea, Remote Frame este rar folosit în practică. De asemenea, este de remarcat faptul că standardul CAN nu prescrie comportamentul menționat aici. Majoritatea controlerelor CAN pot fi programate să răspundă automat la un cadru de la distanță sau să notifice procesorul local.
Remote Frame are o provocare: codul de lungime a datelor trebuie setat la lungimea mesajului de răspuns așteptat. În caz contrar, arbitrajul nu va funcționa.

Cadrul de eroare
Cadrul de eroare este un mesaj special care încalcă regulile de încadrare a mesajelor CAN. Este transmis atunci când un nod detectează o eroare și toate celelalte noduri detectează o eroare - deci trimit și cadre de eroare.
Transmițătorul va încerca automat să retrimită mesajul. Există o schemă elaborată de numărare a erorilor pentru a se asigura că un nod nu poate distruge traficul de magistrală prin retransmiterea cadrelor de eroare.

Cadrul de supraîncărcare
Cadrul de supraîncărcare este inclus aici doar pentru a fi complet. Este foarte asemănător cu un cadru de eroare în ceea ce privește formatul și este transmis de un nod care este prea ocupat. Cadrul de supraîncărcare nu este folosit foarte des, deoarece controlerele CAN de astăzi sunt suficient de inteligente pentru a nu avea nevoie de el. De fapt, singurul controler care generează cadre de supraîncărcare este nr. 82526.

Comentarii

Comentariul trebuie sa conțină mai mult de 5 caractere!

Vă rugăm să acceptați regulamentele!

Nu există comentarii. Fii primul!