Comunicare CAN
B - Senzor 1
CAN - Bus de date
M - Elemente executive I-III (servomecanisme)
N - Unități de control (controlorii) I-V
Autobuzul este full duplex (sau doar duplex), adică orice dispozitiv conectat la acesta poate primi și transmite simultan mesaje.
Semnalul de la elementul sensibil al informației corespunzătoare (senzor) intră în cea mai apropiată unitate de control, care o prelucrează și o transferă pe magistrala de date CAN.
Orice unitate de control conectată la magistrala de date CAN poate citi acest semnal, poate calcula parametrii de control pe baza acestuia și poate controla servomotorul.
Avantaje
Prin conexiunea obișnuită prin cablu a dispozitivelor electrice și electronice, fiecare unitate de control este conectată direct la toți senzorii și actuatoarele de la care primește măsurători sau pe care le controlează.
Complicația sistemului de control duce la o lungime excesivă sau la mai multe linii de cablu.
În comparație cu cablarea standard, magistrala de date oferă:
- Reducerea numărului de cabluri. Firele de la senzori sunt trase numai la cea mai apropiată unitate de control, care convertește valorile măsurate într-un pachet de date și le transferă pe magistrala CAN;
- Orice unitate de control poate controla actuatorul, care primește pachetul de date corespunzător prin magistrala CAN și, pe baza acestuia, calculează valoarea acțiunii de control asupra servomecanismului;
- Îmbunătățirea compatibilității electromagnetice;
- Reducerea numărului de conexiuni la priză și reducerea numărului de ieșiri de contact pe unitățile de control;
- Pierdere în greutate;
- Reducerea numărului de senzori, deoarece semnale cu un singur senzor (de exemplu de la senzorul de temperatură a lichidului de răcire) poate fi utilizat de diverse sisteme;
- Îmbunătățirea capacităților de diagnosticare. Deoarece semnale cu un singur senzor (de exemplu, semnal de viteză) sunt utilizate de sisteme diferite, atunci dacă un mesaj de eroare este emis de către toate sistemele care utilizează acest semnal, senzorul sau unitatea de control care procesează semnalele sale este de obicei defect. Dacă mesajul de eroare vine de la un singur sistem, deși acest semnal este utilizat de alte sisteme, atunci cauza defecțiunii se află cel mai adesea în unitatea de control al procesării sau servomecanismul;
- Rată mare de date - până la 1 Mbit/s posibil cu o lungime maximă a liniei de 40 m. În prezent, vehiculele Mercedes-Benz au rate de transfer de date de la 83 Kbit/s la 500 Kbit/s;
- Pe aceeași linie pot fi transmise pe rând mai multe mesaje.
Busul de date CAN este format dintr-un fir cu două fire realizat sub forma unei perechi răsucite. Toate dispozitivele conectate la această linie (unități de control al dispozitivului).
Transferul de date se realizează cu duplicare pe ambele fire, iar nivelurile logice ale magistralei de date sunt oglindite (adică dacă un nivel logic zero este transmis pe un fir (0), apoi pe celălalt fir - nivelul unei unități logice (1), si invers).
Schema de transmisie cu două fire este utilizată din două motive: pentru controlul erorilor și ca bază pentru fiabilitate.
Dacă apare un vârf de tensiune pe un singur fir, de exemplu din cauza problemelor EMC (EMC), atunci receptorii pot identifica aceasta ca o eroare și pot ignora acest vârf.
În cazul unui scurtcircuit sau întrerupere a unuia dintre cele două fire ale magistralei CAN, datorită sistemului integrat de fiabilitate software și hardware, se realizează trecerea la modul de funcționare cu un singur fir. O linie de transmisie deteriorată nu mai este utilizată.
Comanda și formatul transmis și primit de utilizatori (abonati) mesajele sunt definite în protocolul de comunicare.
Caracteristica distinctivă esențială a magistralei de date CAN în comparație cu alte sisteme de magistrală bazate pe principiul adresei abonaților este adresarea legată de mesaje.
Aceasta înseamnă că fiecărui mesaj transmis pe magistrală i se atribuie adresa permanentă (identificator), marcând conținutul acestui mesaj (ex.: temperatura lichidului de răcire). Protocolul CAN data bus permite transmiterea a până la 2048 de mesaje diferite, adresele de la 2033 la 2048 fiind alocate permanent.
Cantitatea de date dintr-un mesaj pe magistrala CAN este de 8 octeți.
Unitatea receptor procesează numai acele mesaje care sunt stocate în propria listă de identificare (controlul acceptării).
Pachetele de date pot fi transmise numai dacă magistrala de schimb CAN este liberă (adică dacă după transmiterea ultimului pachet a urmat un interval de 3 biți și niciuna dintre unitățile de control nu începe să transmită următorul mesaj). În acest caz, nivelul logic al magistralei de date trebuie să fie recesiv (logic «1»).
Dacă mai multe unități de control încep să transmită mesaje în același timp, atunci intră în vigoare principiul priorității, conform căruia mesajul cu cea mai mare prioritate va fi transmis mai întâi fără a pierde timp sau biți (arbitrajul cererilor de acces la magistrala comună de date).
Fiecare unitate de control care își pierde dreptul de a arbitra va trece automat pentru a primi și va reîncerca să-și trimită mesajul de îndată ce magistrala de date este din nou liberă.
Pe lângă pachetele de date, sunt folosite și pachete pentru solicitarea unui anumit mesaj pe magistrala de date CAN - la o astfel de solicitare răspunde unitatea de control care poate furniza informațiile solicitate.
Format de transfer de date
În modul de transfer normal, sunt utilizate pachete din următoarele configurații:
- Data Frame (cadru de mesaj) pentru transmiterea mesajelor pe magistrala de date CAN (ex.: temperatura lichidului de răcire);
- Remote Frame (cadru de cerere) să solicite mesaje pe magistrala de date CAN de la o altă unitate de control;
- Error Frame (cadru de eroare), - toate unitățile de control conectate sunt notificate că a apărut o eroare și ultimul mesaj de pe magistrala de date CAN este invalid.
Protocolul de magistrală de date CAN acceptă două formate diferite de cadre de mesaje de magistrală de date CAN care diferă doar în lungimea identificatorului:
- format standard;
- Format extins.
În prezent, sistemele de comunicare ale sistemului de control al vehiculelor Daimler Chrysler utilizează doar formatul standard.
Fiecare cadru de mesaje transmis prin magistrala CAN este format din șapte câmpuri consecutive:
Format cadru
- Start of Frame (start bit): marchează începutul mesajului și sincronizează toate modulele;
- Arbitration Field (id și cerere): Acest câmp este format dintr-un identificator (adrese) 11 biți și 1 bit de verificare (Remote Transmission Request-Bit). Acest bit de control marchează cadrul ca un cadru de date (cadru de date) sau ca cadru de la distanță (cadru de solicitare de la distanță) fără octeți de date;
- Control Field (biți de control): Câmp de control (6 biți) conține bit IDE (Identifier Extension Bit) pentru a recunoaște formatul standard și extins, un bit de rezervă pentru extensiile ulterioare și - în ultimii 4 biți - numărul de octeți de date încorporați în câmpul de date (câmp de date);
- Data Field (date): Câmpul de date poate conține 0 până la 8 octeți de date; un mesaj pe magistrala de date CAN cu o lungime de 0 octeți este utilizat pentru a sincroniza procesele distribuite;
- CRC Field (câmpul de control): câmp CRC (Cyclic-Redundancy-Check Field) conține 16 biți și servește pentru controlul recunoașterii erorilor în timpul transmisiei;
- ACK Field (confirmare de primire): câmp ACK (Acknowledgement Field) conține un semnal de confirmare pentru toate unitățile receptor care au primit un mesaj prin magistrala CAN fără erori;
- End of Frame (capătul cadrului): marchează sfârșitul cadrului;
- Intermission (interval): Interval între două cadre de date. Intervalul trebuie să fie de cel puțin 3 biți. După aceea, orice unitate de control poate începe să transmită următorul pachet;
- IDLE (modul de odihnă): Dacă nicio unitate de control nu transmite mesaje, atunci magistrala CAN rămâne în modul inactiv până când este transmis următorul pachet.
Priorități
Pentru a procesa datele în timp real, trebuie să fie posibilă transferul rapid al acestora.
Acest lucru nu numai că necesită o legătură cu o rată de date fizică ridicată, dar necesită și ca magistrala CAN comună să fie rapid accesibilă dacă mai multe unități de control trebuie să trimită mesaje în același timp.
Pentru a distinge mesajele transmise pe magistrala de date CAN în funcție de gradul de urgență, sunt prevăzute diferite priorități pentru mesajele individuale.
Timpul de aprindere, de exemplu, are cea mai mare prioritate, valorile de alunecare au medie, iar temperatura exterioară are cea mai mică prioritate.
Prioritatea cu care este transmis un mesaj pe magistrala CAN este determinată de identificator (abordare) mesajul corespunzător.
Un identificator care corespunde unui număr binar mai mic are o prioritate mai mare și invers.
Protocolul magistralei de date CAN se bazează pe două stări logice: Biții sunt fie «recesiv» (logic «1»), sau «dominant» (logic «0»). Dacă un bit dominant este transmis de cel puțin un modul, atunci biții recesivi transmiși de alte module sunt suprascriși.
Exemplu
Dacă mai multe unități de control încep transferul de date în același timp, atunci conflictul de acces la magistrala de date comună este rezolvat de «arbitrajul pe biți a cererilor de resurse partajate» cu identificatorii corespunzători.
La transmiterea câmpului de identificare, emițătorul verifică după fiecare bit dacă mai are dreptul de a transmite sau dacă o altă unitate de control transmite deja un mesaj cu o prioritate mai mare pe magistrală.
Dacă bitul recesiv transmis de prima unitate emițător este suprascris de bitul dominant al altei unități transmițătoare, atunci prima unitate emițător își pierde dreptul de a transmite (arbitraj) și devine un bloc receptor.
Exemplu de arbitraj
Prima unitate de control (N I) pierde arbitrajul din al 3-lea bit.
A treia unitate de control (N III) pierde arbitrajul din al 7-lea bit.
A doua unitate de control (N II) își păstrează dreptul de a accesa magistrala de date CAN și își poate transmite mesajul.
Alte unități de control vor încerca să-și transmită mesajele pe magistrala de date CAN numai atunci când aceasta este din nou liberă. În acest caz, dreptul de a transmite va fi din nou acordat în conformitate cu prioritatea mesajului pe magistrala de date CAN.
Recunoașterea erorilor
Interferența poate duce la erori în transmiterea datelor. Astfel de erori de transmisie ar trebui recunoscute și corectate. Protocolul magistralei de date CAN face distincție între două niveluri de recunoaștere a erorilor:
- Mecanisme la nivelul cadrului de date (cadru de date);
- Mecanisme la nivel de biți.
Mecanisme la nivelul cadrului de date
Cyclic-Redundancy-Check
Pe baza mesajului transmis prin magistrala de date CAN, transmițătorul calculează biții de control care sunt transmisi împreună cu pachetul de date în câmp «CRC Field» (sume de control). Unitatea de recepție recalculează acești biți de control pe baza mesajului primit pe magistrala de date CAN și îi compară cu biții de control primiți cu acest mesaj.
Frame Check
Acest mecanism verifică structura blocului transmis (cadru), adică câmpurile de biți cu un format fix și lungimea cadrului sunt din nou verificate.
Erorile detectate de Frame Check sunt marcate ca erori de format.
Mecanisme la nivel de biți
Monitorizarea
Fiecare modul, atunci când transmite un mesaj, monitorizează nivelul logic al magistralei de date CAN și determină diferențele dintre biții transmisi și recepționați. Acest lucru asigură recunoașterea fiabilă a erorilor globale și locale de biți care apar în unitatea transmițător.
Bit Stuffing
În fiecare cadru de date dintre câmp «Start of Frame» și capătul câmpului «CRC Field» nu ar trebui să existe mai mult de 5 biți consecutivi cu aceeași polaritate.
După fiecare secvență de 5 biți identici, transmițătorul bloc adaugă un bit cu polaritate opusă fluxului de biți.
Unitățile de recepție șterg acești biți după ce primesc un mesaj pe magistrala de date CAN.
Depanare
Dacă orice modul magistrală de date CAN detectează o eroare, acesta întrerupe procesul curent de transfer de date prin trimiterea unui mesaj de eroare. Mesajul de eroare este format din 6 biți dominanti.
Datorită mesajului de eroare, toate unitățile de control conectate la magistrala de date CAN sunt notificate cu privire la o eroare locală care a apărut și, în consecință, ignoră mesajul transmis anterior.
După o scurtă pauză, toate unitățile de control vor putea din nou să trimită mesaje pe magistrala de date CAN, mesajul cu cea mai mare prioritate fiind trimis din nou primul.
Unitatea de control al cărei mesaj de pe magistrala de date CAN a cauzat eroarea începe și ea să-și retransmită mesajul (funcția de solicitare de repetare automată).
Tipuri de bus CAN
Diferite magistrale CAN sunt utilizate pentru diferite zone de control. Ele diferă unele de altele prin viteza de transfer de date.
Zona de viteză de transmisie CAN «motor și mecanism de rulare» (CAN-C) este de 125 Kbps și magistrala de date CAN «Salon» (CAN-B) datorită numărului mai mic de mesaje deosebit de urgente, este conceput pentru o rată de transfer de date de doar 83 Kbps.
Schimbul de date între cele două sisteme de magistrală are loc prin așa-numitul «gateway-uri», adică unități de control conectate la ambele magistrale de date.
Fibră optică D2B (Digital Daten-Bus) date aplicate zonei «Audio/Comunicare/Navigație». Un cablu de fibră optică poate transmite o cantitate semnificativ mai mare de informații decât un autobuz cu un cablu de cupru.
Autobuz CAN C «Motor și șasiu»
Un așa-numit rezistor de terminare a magistralei de date cu o rezistență de 120 Ω este instalat de fiecare parte a unității de control terminal și este conectat între ambele fire de magistrală de date.
Busul de date CAN al compartimentului motor este activ numai când contactul este pus.
Mai mult de 7 unități de control pot fi conectate la magistrala CAN-C.
Autobuz CAN-B «Salon»
Unele unități de control conectate la magistrala de date CAN din habitaclu sunt activate indiferent de cuplarea contactului (de exemplu, sistem de blocare unică).
Prin urmare, magistrala de date CAN din habitaclu trebuie să fie operațională chiar și atunci când contactul este oprit, ceea ce înseamnă că posibilitatea de transmitere a pachetelor de date trebuie asigurată chiar și atunci când contactul este oprit.
Pentru a reduce cât mai mult consumul de curent în repaus, magistrala de date CAN, în lipsa datelor necesare transmiterii, trece în modul standby pasiv, și se reactivează abia la următoarea accesare.
Dacă în modul standby pasiv al magistralei de date CAN din habitaclu, orice unitate de control (de exemplu, modul de control al blocării unice) transmite un mesaj prin el, apoi îl primește doar modulul principal de sistem (comutator electronic de aprindere, EZS/EIS). Modulul EZS stochează acest mesaj în memorie și trimite un semnal de activare (Wake-up) la toate unitățile de control conectate la magistrala CAN-B.
Când este activat, EZS verifică pentru toți utilizatorii magistralei de date CAN și apoi transmite mesajul stocat anterior.
Mai mult de 20 de unități de control pot fi conectate la magistrala CAN-B.