Autobuzul CAN explicat: cum comunică controlerele, sistemele de management al bateriei (BMS) și afișajele
Într-o mașină electrică modernă, componentele nu doar că schimbă energie, ci și informații. Controlerul trebuie să cunoască starea bateriei, afișajul viteza și temperaturile, iar un al doilea controler trebuie să cunoască valorile setate de primul. Metoda cea mai răspândită pentru acest lucru provine din industria auto: bus-ul CAN. Acest ghid explică cum funcționează și cum să-l conectați corect.
Esentialul
- CAN (Controller Area Network) conecte mai multe dispozitive printr-o pereche de fire torsadați, numite CAN High și CAN Low.
- Este necesară o rezistență de 120 ohmi la fiecare dintre cele două capete ale magistralei, și doar la capete.
- Fiecare mesaj are un identificator care servește și ca prioritate: mesajul cel mai important este întotdeauna procesat primul.
- Toate dispozitivele trebuie să utilizeze aceeași viteză de comunicare.
Un autobuz, nu o conexiune
O conexiune serială standard leagă două dispozitive. CAN, în schimb, este un bus: toate dispozitivele sunt conectate la aceleași două fire, iar fiecare poate comunica cu toate celelalte. Pentru a adăuga un dispozitiv, se conectează la bus, fără a mai trage un cablu până la controler. Acesta este motivul pentru care a fost adoptat pe scară largă în industria auto, unde zeci de calculatoare împărtășesc doar câteva perechi de fire.
Pe un vehicul ușor, se găsesc, de obicei, unul sau mai mulți controlere, sistemul de management al bateriei (BMS), un afișaj, un modul de telemetrie sau un încărcător.
Două fire, o diferență
CAN utilize o pereche de fire, "CAN high" și "CAN low". Informația nu este transmisă prin tensiunea unui fir față de masă, ci prin diferența dintre cele două:
- În repaus (când bitul este "recesiv"), cele două fire au aceeași tensiune, aproximativ jumătate din tensiunea de alimentare a circuitului;
- Pentru a emite un bit "dominant", emițătorul separă cele două fire: firul superior urcă, iar firul inferior coboară.
O perturbare electrică, precum cea generată de un controler care livrează sute de amperi, afectează ambele fire în același mod. Diferența dintre ele, însă, rămâne neschimbată. Acesta este motivul pentru care protocolul CAN este atât de robust într-un mediu electric zgomotos, cu condiția ca cele două fire să fie răsucite împreună.
Rezistențele de terminare
Un bus CAN trebuie să aibă o rezistență de 120 ohmi între liniile CAN High și CAN Low la fiecare dintre cele două capete fizice. Aceste rezistențe împiedică reflectarea semnalelor la capătul cablului și readuc bus-ul la starea de repaus.
- Bus-ul a fost conectat corect: măsurând tensiunea între firele CAN high și CAN low, cu dispozitivele oprite, se obține o rezistență de aproximativ 60 ohmi (echivalentul a două rezistențe de 120 ohmi conectate în paralel).
- Aproximativ 120 ohmi: lipsește o rezistență de terminare.
- O valoare semnificativ mai mică de 60 ohmi: acest lucru indică un număr prea mare de conexiuni active, adesea deoarece mai multe dispozitive au propriile conexiuni activate.
O conexiune lipsă sau redundantă este cea mai frecventă cauză a problemelor de comunicare.
Identificatori și prioritate
Fiecare mesaj CAN are un identificator, un număr care indică despre ce este vorba (de exemplu, "starea bateriei" sau "valoarea de referință a motorului față"). Dispozitivele citesc toate mesajele și păstrează doar pe cele care le interesează.
Când două dispozitive încep să transmită simultan, acestea compară identificatorii lor bit cu bit, pe același cablu. Un bit dominant suprascrie un bit recesiv: dispozitivul care emite un bit recesiv și citește un bit dominant înțelege că a pierdut și încetează transmiterea. Identificatorul cel mai mic câștigă întotdeauna, fără ca niciun mesaj să fie corupt. Acest proces se numește arbitraj: mesajele critice primesc identificatorii cei mai mici.
Fiabilitate integrată
- Fiecare mesaj conține un cod de control: un mesaj corupt este detectat și retransmis.
- Fiecare receptor confirmă primirea corectă printr-un bit de confirmare.
- Un dispozitiv care acumulează erori se va dezactiva automat, pentru a evita blocarea întregului sistem.
Viteza magistralei
Toate dispozitivele conectate la un bus trebuie să utilizeze aceeași viteză. Valorile cele mai comune sunt 250 și 500 de kilobiți pe secundă, uneori 1 megabit. Cu cât bus-ul este mai rapid, cu atât lungimea sa maximă este mai scurtă, dar într-un vehicul ușor, de câțiva metri, lungimea nu reprezintă niciodată o limitare. O versiune mai nouă, CAN FD, transportă mai multe date per mesaj, la o viteză mai mare.
Exemple: două controllere conectate
Într-o trotinetă cu două motoare, două controlere conectate prin CAN funcționează ca un singur: cel care primește semnalul de la accelerație transmite comanda către celălalt, iar un singur software de reglare vede ambele. Acesta este cazul controlerelor VESC, prezentat în ghidul nostru VESC explicat simplu.
Sfaturi utile pentru atelier.
Întotdeauna conectați împreună firele CAN high și CAN low, departe de cablurile de fază, și verificați rezistența de 60 ohmi cu multimetrul înainte de prima pornire. Cinci minute de verificare pot preveni ore de căutare a problemelor de comunicare intermitente.
Întrebări frecvente
CAN transportă curent pentru a alimenta dispozitivele?
Nu, perechea CAN transportă doar informații. Dispozitivele au propria sursă de alimentare, care uneori este furnizată de alte fire din același cablu.
De ce funcționează comunicarea CAN intermitent?
Cele mai frecvente cauze sunt o terminație lipsă sau incorectă, fire netorsionate care se află în apropierea cablurilor de alimentare, un conector deteriorat sau două dispozitive care nu au aceeași viteză de transfer de date.
Se pot conecta orice dispozitive CAN între ele?
Din punct de vedere electric, da, dacă împărtășesc aceeași frecvență de comunicare. Însă, pentru ca acestea să poată comunica, trebuie să folosească același "limbaj": aceiași identificatori și același conținut al mesajelor. Două mărci diferite nu pot comunica fără adaptare.