Modificarea temperaturii aparatului de aer condiționat Ford Fusion utilizând comenzi prin magistrala CAN.
Ariel Nuñez
Modificarea temperaturii aparatului de aer condiționat Ford Fusion utilizând comenzi prin magistrala CAN.
Figura 1: Cum pot controla funcțiile cheie ale vehiculului folosind aplicația?
Recent eu, împreună cu prietenii mei din companie Călătorie a lucrat la implementare controlul programului sistem de aer condiționat la Ford Fusion. Pe acest moment Voyage dezvoltă mașini low-cost autonome. Scopul final: ca toată lumea să poată chema o mașină la ușa din față și să călătorească în siguranță oriunde dorește. Voyage consideră că este extrem de important să oferim acces la funcțiile cheie ale vehiculului scaunul din spate, pentru că nu este departe ziua în care munca șoferului va fi complet automatizată.
De ce ai nevoie de o anvelopă?POATE SA
Mașinile moderne folosesc o varietate de sisteme de control, care în multe cazuri funcționează ca micro-servicii în dezvoltarea web. De exemplu, airbag-uri, sisteme de frânare, control al vitezei (controlul vitezei de croazieră), servodirecție electrică, sisteme audio, comenzi pentru geamuri și uși, reglarea geamurilor, sisteme de încărcare pentru mașini electrice etc. Aceste sisteme trebuie să fie capabile să comunice și să citească reciproc parametrii . În 1983, Bosch a început dezvoltarea magistralei CAN (Controller Area Network; Rețeaua locală controlere) pentru a rezolva această problemă complexă.
Putem spune că magistrala CAN este o rețea simplă în care fiecare sistem din mașină poate citi și trimite comenzi. Această anvelopă integrează toate componentele complexe într-un mod elegant, făcând posibilă realizarea caracteristicilor mult iubite ale mașinii pe care le folosim.
Figura 2: Anvelopă pentru prima datăCAN a început să fie folosit în 1988 în BMW Seria 8
Mașini și autobuze cu conducere autonomăPOATE SA
Pe măsură ce interesul pentru dezvoltarea mașinilor autonome a crescut semnificativ, expresia „autobuz CAN” a devenit, de asemenea, populară. De ce? Majoritatea companiilor care creează mașini autonome nu produc de la zero, ci încearcă să învețe cum să controleze programatic mașinile după ce părăsesc linia de asamblare din fabrică.
Înţelegere structura interna Autobuzul CAN utilizat în mașină permite inginerului să genereze comenzi folosind software. Cele mai necesare comenzi, după cum puteți ghici, sunt legate de direcție, accelerare și frânare.
Figura 3: Introducere în LIDAR (Senzor cheie pentru vehicule cu auto-conducere)
Folosind senzori cum ar fi LIDAR (detecția și măsurarea luminii; sistem optic de rază), mașina este capabilă să privească lumea ca un supraom. Computerul din interiorul mașinii ia apoi decizii pe baza informațiilor primite și trimite comenzi către magistrala CAN pentru a controla direcția, accelerația și frânarea.
Nu orice mașină este capabilă să devină autonomă. Și din anumite motive, Voyage a ales modelul Ford Fusion (poți citi mai multe despre motive în acest articol).
Cercetare autobuzPOATE inVadFuziune
Înainte de a-mi începe cercetările despre sistemele de aer condiționat din Ford Fusion, am deschis cartea mea preferată, The Car Hacker's Handbook. Înainte de a ne scufunda, să aruncăm o privire la Capitolul 2, care acoperă trei concepte importante: protocoale de magistrală, magistrală CAN și cadre CAN.
ObosiPOATE SA
Autobuzul CAN a început să fie folosit în America autoturisme de pasageriși camioane mici din 1994 și din 2008 obligatoriu (la mașinile europene din 2001). Această magistrală are două fire: CAN high (CANH) și CAN low (CANL). Bus-ul CAN folosește semnalizare diferențială, a cărei esență este că atunci când un semnal este primit pe un fir, tensiunea crește, iar pe celălalt scade cu aceeași cantitate. Semnalizarea diferențială este utilizată în medii care trebuie să fie sensibile la zgomot, cum ar fi sistemele auto sau producția.
Figura 4: Semnal magistral brutCAN afișat pe un osciloscop
Pe de altă parte, pachetele transmise prin autobuzCAN, nu standardizat. Fiecare pachet conține 4 elemente cheie:
- ArbitrajID (ArbitrajID) este un mesaj difuzat care identifică dispozitivul care încearcă să comunice. Orice dispozitiv poate trimite mai multe ID-uri de arbitraj. Dacă două pachete CAN sunt trimise pe magistrală pe unitatea de timp, cel cu ID-ul de arbitrare mai mic este omis.
- extensia ID(Identificatorextensie; IDE) – în cazul unei configurații standard CAN bus, acest bit este întotdeauna 0.
- Cod lungimea datelor (Datelungimecod; DLC) definește dimensiunea datelor, care variază de la 0 la 8 octeți.
- Date. Dimensiunea maximă a datelor transferate anvelopă standard CAN, poate avea până la 8 octeți. Unele sisteme obligă pachetul să fie completat la 8 octeți.
Figura 5: Format standardPachete CAN
rame CAN
Pentru a porni/opri sistemul de climatizare trebuie să găsim anvelopa potrivită CAN (există mai multe astfel de autobuze într-o mașină). Există cel puțin 4 anvelope documentate pe Ford Fusion. 3 autobuze operează la o viteză mare de 500 kbit/s (CAN de mare viteză; HS) și 1 autobuz la o viteză medie de 125 kbit/s (CAN de viteză medie; MS).
Două magistrale de mare viteză HS1 și HS2 sunt conectate la portul OBD-II, dar acolo există protecție care nu permite falsificarea comenzilor. Împreună cu Alan de la Voyage, am scos portul OBD-II și am găsit conexiunile la toate autobuzele (HS1, HS2, HS3 și MS). Pe peretele din spate al OBD-II, toate autobuzele au fost conectate la modulul Gateway.
Figura 6:Homer – primul taxi autonom de la companieCălătorie
Deoarece sistemul de climatizare este controlat prin interfața media (SYNC), va trebui să trimitem comenzi prin magistrala de viteză medie (MS).
Citirea și scrierea pachetelor CAN se realizează folosind driverul SocketCAN și stiva de rețea, create de departamentul de cercetare Volkswagen pentru nucleul Linux.
Vom conecta trei fire de la mașină (GND, MSCANH, MSCANL) la un adaptor Kvaser Leaf Light HSv2 (poate fi cumpărat cu 300 USD pe Amazon) sau la un CANable (vândut cu 25 USD pe Tindie) și vom încărca autobuzul pe un computer cu un nou nucleu Linux CAN ca dispozitiv de rețea.
Modprobe poate
modprobe kvaser_usb
set de legături ip tip can0 poate bitrate 1250000
ifconfig can0 up
După descărcare, rulați comanda candump can0 și începeți să monitorizați traficul:
Can0 33A 00 00 00 00 00 00 00 00 can0 415 00 00 C4 FB 0F FE 0F FE can0 346 00 00 00 03 03 00 C0 00 can0 348 00 00 00 70 0 0 0 0 0 7 0 0 7F FF 10 00 19 F8 00 can0 3E0 00 00 00 00 80 00 00 00 can0 167 72 7F FF 10 00 19 F7 00 can0 34E 00 00 00 00 00 00 00 00 can0 358 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 00 00 00 00 00 00 00 can0 216 00 00 00 00 82 00 00 00 can0 3AC FF FF FF FF FF FF FF FF can0 415 00 00 C8 FA 0F FE 0F FE can0 083 00 00 00 00 00 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 5 2 00 00 can0 3BC 0C 00 08 96 01 BB 27 00 can0 167 72 7F FF 10 00 19 F7 00 can0 3BE 00 20 AE EC D2 03 54 00 can0 333 00 00 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5B 70 E0 00 00 00 00 can0 42C 05 51 54 00 90 46 A4 00 can0 33B 00 00 00 00 00 00 00 00 can0 42E 93 00 00 E1 78 03 CD 40 can0 42F 60 70 42 00 00 00 00 00 00 00 42E 7 7 2 7F FF 10 00 19 F7 00 can0 3E7 00 00 00 00 00 00 00 00 can0 216 00 00 00 00 82 00 00 00 can0 415 00 00 CC F9 0F FE 0F FE can0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 AD FF FF FF FF FF FF FF FF can0 50B 1E 12 00 00 00 00 00 00
Deși informațiile de mai sus sunt echivalente cu amplitudinea semnal sonor, este destul de dificil să înțelegeți ce se întâmplă și să detectați orice tipare. Avem nevoie de ceva similar cu un analizor de frecvență, iar un astfel de echivalent este disponibil sub forma utilitarului cansniffer. Cansniffer arată o listă de identificatori și vă permite să urmăriți modificările în secțiunea de date din cadrul CAN. Pe măsură ce explorăm ID-uri specifice, putem filtra ID-urile care sunt relevante pentru sarcina noastră.
Figura de mai jos prezintă un exemplu de informații preluate din autobuzul MS folosind cansniffer. Am filtrat tot ce are legătură cu ID-urile 355, 356 și 358. După apăsarea și eliberarea butoanelor asociate cu reglarea temperaturii, la sfârșit apare valoarea 001C00000000.
Figura 7: Informații despre autobuzMS capturat folosind utilitarul cansniffer
În continuare, trebuie să combinați funcționalitatea pentru a gestiona sistem climatic cu un computer care rulează în interiorul mașinii. Calculatorul rulează pe sistemul de operare ROS (Robot Operating System; Operating system for robots). Deoarece folosim SocketCAN, modulul socketcan_bridge simplifică foarte mult sarcina de a converti un cadru CAN într-un bloc de informații înțeles de sistemul de operare ROS.
Mai jos este un exemplu de algoritm de decodare:
Dacă frame.id == 0x356:
raw_data = unpack("BBBBBBBB", frame.data)
fan_speed = raw_data / 4
driver_temp = parse_temperature (date_brute)
temperatură_pasager = parse_temperature (date_brute)
Datele primite sunt stocate în CelsiusReport.msg:
Bool auto
bool system_on
bool unit_on
bool dual
bool max_cool
bool max_defrost
recirculare bool
bool head_fan
bool feet_fan
bool front_defrost
bool rear_defrost șir driver_temp
string pasager_temp
După ce faceți clic pe toate butoanele necesareîn mașină, avem următoarea listă:
CONTROL_CODES = (
„ac_toggle”: 0x5C,
„ac_unit_toggle”: 0x14,
„max_ac_toggle”: 0x38,
„recirculation_toggle”: 0x3C,
„dual_temperature_toggle”: 0x18,
„passenger_temp_up”: 0x24,
„passenger_temp_down”: 0x28,
„driver_temp_up”: 0x1C,
„driver_temp_down”: 0x20,
„auto”: 0x34,
„wheel_heat_toggle”: 0x78,
„defrost_max_toggle”: 0x64,
„defrost_toggle”: 0x4C,
„rear_defrost_toggle”: 0x58,
„body_fan_toggle”: 0x04,
„feet_fan_toggle”: 0x0C,
„fan_up”: 0x2C,
„fan_down”: 0x30,
}
Aceste șiruri sunt apoi trimise la nodul care rulează sistem de operare ROS este apoi tradus în coduri înțelese de mașină:
Rostopic pub /celsius_control celsius/CelsiusControl ac_toggle
Concluzie
Acum putem crea și trimite aceleași coduri către magistrala CAN care sunt generate atunci când apăsăm butoanele fizice asociate cu creșterea și scăderea temperaturii, permițându-ne să schimbăm de la distanță temperatura mașinii folosind o aplicație în timp ce suntem porniți. locul din spate mașină.
Figura 8: Telecomanda sistemului de climatizare al mașinii
Acesta este doar un pas mic în crearea unui taxi autonom împreună cu specialiștii Voyage. Am primit multe emoții pozitive în timp ce lucram la acest proiect. Dacă ești și tu interesat de acest subiect, poți consulta lista de posturi vacante la Voyage.
Bus CAN este un dispozitiv care facilitează controlul unei mașini prin schimbul de informații cu alte sisteme auto. Transferul de date de la o unitate de vehicul la alta se realizează prin canale speciale folosind criptare.
[Ascunde]
Ce este busul CAN
Interfața electronică CAN dintr-o mașină este o rețea de controlere utilizate pentru a combina toate modulele de control într-un singur sistem.
Această interfață este un bloc cu care se pot conecta următoarele blocuri prin fire:
- un sistem antifurt echipat cu sau fără funcție de pornire automată;
- sisteme de control al motoarelor mașinii;
- unitate antiblocare;
- sisteme de siguranță, în special airbag-uri;
- controlul transmisiei automate;
- panou de control etc.
Dispozitiv și unde se află autobuzul
Din punct de vedere structural, magistrala CAN este un bloc realizat în Cutie de plastic, sau un conector pentru conectarea cablurilor. Interfața digitală este formată din mai mulți conductori numiti CAN. Un cablu este folosit pentru a conecta blocuri și dispozitive.
Locația de instalare a dispozitivului depinde de modelul vehiculului. De obicei, această nuanță este indicată în manualul de service. Autobuzul CAN este instalat în interiorul vehiculului, sub panoul de comandă și uneori poate fi amplasat în compartimentul motorului.
Cum functioneazã?
Principiul de funcționare al sistemului automat este de a transmite mesaje codificate. Fiecare dintre ele are un identificator special care este unic. De exemplu, „temperatura unității de alimentare este de 100 de grade” sau „viteza vehiculului este de 60 km/h”. Când trimiteți mesaje, totul module electronice va primi informații relevante care sunt verificate prin identificatori. Când datele transmise între dispozitive sunt legate de un anumit bloc, acestea sunt procesate; dacă nu, sunt ignorate.
Lungimea identificatorului magistralei CAN poate fi de 11 sau 29 de biți.
Fiecare transmițător de informații citește simultan datele transmise către interfață. Dispozitiv cu mai multe prioritate redusa ar trebui să elibereze anvelopa, deoarece nivelul dominant cu Rata ridicată denaturează transmisia acestuia. În același timp, pachetul cu valoarea mărită rămâne neatins. Un transmițător care și-a pierdut conexiunea îl restabilește după un anumit timp.
Interfața conectată la modulul de alarmă sau de pornire automată poate funcționa în diferite moduri:
- Fundal, care se numește dormit sau de sine stătător. Când rulează, toate sistemele majore ale mașinii sunt dezactivate. Dar, în același timp, interfața digitală primește energie de la rețea. Tensiunea este minimă, ceea ce previne descărcarea bateriei.
- Modul de pornire sau de trezire. Începe să funcționeze atunci când șoferul introduce cheia în încuietoare și o rotește pentru a activa contactul. Dacă mașina este echipată cu un buton de pornire/oprire, acest lucru se întâmplă atunci când este apăsat. Opțiunea de stabilizare a tensiunii este activată. Alimentarea este furnizată controlerelor și senzorilor.
- Activ. Când acest mod este activat, procedura de schimb de date este efectuată între regulatoare și actuatoare. Parametrul de tensiune al circuitului crește deoarece interfața poate absorbi până la 85 mA de curent.
- Dezactivare sau adormire. Când grupul motopropulsor se oprește, toate sistemele și componentele conectate la magistrala CAN nu mai funcționează. Sunt dezactivate de la reteaua electrica vehicul.
Caracteristici
Proprietățile tehnice ale interfeței digitale:
- viteza de transfer a informațiilor generale este de aproximativ 1 Mb/s;
- la trimiterea datelor între unitățile de control ale diferitelor sisteme, această cifră scade la 500 kb/s;
- viteza de transfer de informații în interfața de tip „Comfort” este întotdeauna de 100 kb/s.
Canalul „Inginerie electrică și electronică pentru programatori” a vorbit despre principiul trimiterii de date de pachete, precum și despre caracteristicile adaptoarelor digitale.
Tipuri de autobuze CAN
În mod convențional, magistralele CAN pot fi împărțite în două tipuri în funcție de identificatorii utilizați:
- KAN2, 0A. Așa sunt marcate dispozitive digitale, care poate funcționa într-un format de schimb de date pe 11 biți. Acest tip de interfață, prin definiție, nu poate detecta erori la semnalele de la modulele care funcționează pe 29 de biți.
- CH2, 0V. Așa sunt marcate interfețele digitale care funcționează în format de 11 biți. Dar caracteristica cheie este că datele de eroare vor fi transmise dispozitivelor cu microprocesor dacă este detectat un identificator de 29 de biți.
Autobuzele CAN pot fi împărțite în trei categorii în funcție de tipul lor:
- Pentru unitatea de putere a unei mașini. Dacă conectați acest tip de interfață la acesta, aceasta va permite o comunicare rapidă între sistemele de control prin canal suplimentar. Scopul magistralei este de a sincroniza funcționarea ECU a motorului cu alte componente. De exemplu, o cutie de viteze sistem de franare anti-blocare etc.
- Dispozitive de tip confort. Acest tip de interfață digitală este utilizat pentru conectarea tuturor sistemelor din această categorie. De exemplu, reglaj electronic oglinzi, scaune incalzite etc.
- Interfețe de informare și comandă. Au o viteză similară de transfer de informații. Acestea sunt utilizate pentru a asigura o comunicare de înaltă calitate între nodurile necesare pentru deservirea vehiculului. De exemplu, între unitate electronică management și sistem de navigare sau smartphone.
Canalul „Inginerie electrică și electronică pentru programatori” a vorbit despre principiul de funcționare, precum și despre tipurile de interfețe digitale.
Instrucțiuni pentru conectarea alarmei prin magistrala CAN
Când instalați un sistem antifurt, o opțiune simplă de conectare la rețeaua de bord este conectarea instalare de securitate cu interfata digitala. Dar această metodă este posibilă dacă în mașină există un autobuz CAN.
Pentru a instala o alarmă auto și a o conecta la interfața CAN, trebuie să cunoașteți locația de instalare a unității de control a sistemului.
Dacă alarma a fost instalată de specialiști, atunci trebuie să căutați ajutor cu această problemă la o stație de service. De obicei, dispozitivul este situat în spatele sau sub tabloul de bord al vehiculului. Uneori, instalatorii plasează modulul microprocesorului în spațiul liber din spatele torpedoului sau al radioului auto.
De ce vei avea nevoie?
Pentru a finaliza sarcina veți avea nevoie de:
- multimetru;
- cuțit de papetărie;
- banda izolatoare;
- şurubelniţă.
Acțiuni pas cu pas
Procedura de conectare instalatie antifurt la magistrala CAN se face după cum urmează:
- Mai întâi trebuie să vă asigurați că toate elementele sistemului de securitate sunt instalate și funcționează. Vorbim despre o unitate cu microprocesor, un modul de antenă, un buton de service, o sirenă, precum și întrerupătoare de limită. Dacă sistemul de alarmă are o opțiune de pornire automată, trebuie să vă asigurați că acest dispozitiv este instalat corect. Toate elementele instalației antifurt sunt conectate la unitatea cu microprocesor.
- Se efectuează o căutare pentru conductorul principal care merge la magistrala CAN. Este mai groasă și izolația sa este de obicei portocalie.
- Unitatea principală de alarmă auto este conectată la acest contact. Pentru a efectua sarcina, este utilizat conectorul de interfață digitală.
- Unitatea de control al sistemului de securitate este în curs de instalare dacă nu a fost instalată. Ar trebui plasat într-un loc uscat, inaccesibil privirilor indiscrete. După instalare, dispozitivul trebuie fixat corespunzător, altfel în timpul mișcării va fi afectat negativ de vibrații. Ca rezultat, acest lucru va duce la o defecțiune rapidă a modulului.
- Joncțiunea conductorilor este izolată cu grijă; este permisă utilizarea tuburilor termocontractabile. Se recomandă să înfășurați suplimentar firele cu bandă electrică. Acest lucru va crește durata lor de viață și va preveni abraziunea stratului izolator. Când conexiunea este finalizată, se efectuează o verificare. Dacă apar probleme la transmiterea pachetelor de date, ar trebui să utilizați un multimetru pentru a diagnostica integritatea circuitelor electrice.
- În etapa finală, toate canalele de comunicare sunt configurate, inclusiv altele suplimentare, dacă sunt disponibile. Acest lucru va asigura funcționarea neîntreruptă a sistemului de securitate. Pentru configurare, utilizați cartea de service inclusă cu instalația antifurt.
Utilizatorul Sigmax69 a vorbit despre conectarea unui sistem de securitate cu o interfață digitală folosind exemplul unei mașini Hyundai Solaris 2017.
Defecțiuni
Deoarece interfața CAN este conectată la multe sisteme ale vehiculului, dacă unul dintre noduri se defectează sau funcționează incorect, pot apărea probleme în acesta. Prezența lor va afecta funcționarea unităților principale.
Semne și cauze
Următoarele „simptome” pot indica apariția defecțiunilor:
- pe bord mai multe pictograme au apărut în același timp fără motiv - airbag-uri, direcție, presiunea în sistemul de ungere etc.;
- a apărut lumină Verificare indicator Motor;
- Nu există informații pe panoul de control despre temperatura unității de alimentare, nivelul de combustibil din rezervor, viteza etc.
Motive pentru care pot apărea defecțiuni în funcționarea interfeței CAN:
- cablare întreruptă într-unul dintre sisteme sau deteriorare a liniilor electrice;
- scurtcircuit în funcționarea unităților la baterie sau la masă;
- deteriorarea jumperilor de cauciuc de pe conector;
- oxidarea contactelor, în urma căreia transmisia semnalului între sisteme este întreruptă;
- descărcarea bateriei auto sau scăderea tensiunii în rețeaua electrică, care este asociată cu funcționarea necorespunzătoare a grupului electrogen;
- închiderea sistemelor CAN-high sau CAN-low;
- apariția defecțiunilor în funcționarea bobinei de aprindere.
Canalul KV Avtoservis a vorbit mai detaliat despre defecțiunile interfeței digitale și testarea folosind un computer.
Diagnosticare
Pentru a determina cauza problemei, veți avea nevoie de un tester; se recomandă utilizarea unui multimetru.
Proces de verificare:
- Diagnosticarea începe cu căutarea conductorului de pereche torsadată al magistralei CAN. Cablul are izolație neagră sau gri portocaliu. Primul este nivelul dominant, iar al doilea este nivelul secundar.
- Cu ajutorul unui multimetru, se verifică nivelul de tensiune pe elementele de contact. Când efectuați o sarcină, contactul trebuie să fie pornit. Procedura de testare va dezvălui o tensiune în intervalul de la 0 la 11 volți. În practică, acesta este de obicei 4,5 V.
- Contactul este oprit. Conductorul cu contactul negativ este deconectat de la baterie; mai întâi, utilizați o cheie pentru a slăbi clema.
- Se măsoară parametrul de rezistență între conductori. Puteți ști că contactele sunt închise dacă această valoare tinde spre zero. Când diagnosticul a arătat că rezistența este infinită, atunci există o întrerupere a liniei de alimentare. Problema poate sta direct în contact. Este necesar să verificați conectorul și toate firele mai detaliat.
- În practică, un scurtcircuit apare de obicei din cauza unei defecțiuni a dispozitivelor de control. Pentru a găsi un modul eșuat, opriți fiecare unitate una câte una și verificați valoarea rezistenței.
Utilizatorul Filat Ogorodnikov a vorbit despre diagnosticarea magistralei CAN folosind un osciloscop.
Cum să faci un analizor cu propriile mâini?
Faceți singur asamblarea a acestui dispozitiv Doar un profesionist în domeniul electronicii și ingineriei electrice poate face acest lucru.
Principalele nuanțe ale procedurii:
- În conformitate cu diagrama din prima fotografie din galerie, trebuie să achiziționați toate elementele pentru a dezvolta analizorul. Componentele sunt etichetate pe el. Veți avea nevoie de o placă cu un controler STM32F103С8Т6. Veți avea nevoie de un circuit electric al unui dispozitiv de control stabilizat și de un transceiver CAN MCP2551.
- Dacă este necesar, un modul Bluetooth este adăugat la analizor. Acest lucru vă va permite să înregistrați informații de bază pe dispozitivul dvs. mobil atunci când utilizați dispozitivul.
- Procedura de programare se realizează folosind orice utilitar. Se recomandă utilizarea programelor KANHacker sau Arduino. Prima opțiune este mai funcțională și are opțiunea de filtrare a pachetelor de date.
- Pentru a realiza firmware-ul, veți avea nevoie de un dispozitiv de conversie USB-TTL; acesta va fi necesar pentru depanare. O opțiune simplă este utilizarea ST-Link versiunea 2.
- După descărcarea programului pe computer, fișierul EXE principal trebuie să fie flash în controler folosind un programator. După finalizarea sarcinii, jumperul bootloader-ului este instalat, iar dispozitivul fabricat este conectat la computer printr-o ieșire USB.
- Puteți încărca firmware-ul în analizor utilizând software-ul MPHIDFlash.
- Când actualizarea software-ului este finalizată, trebuie să deconectați cablul și să scoateți jumperul. Se instalează drivere. Dacă dispozitivul este asamblat corect, acesta va fi detectat pe computer ca port COM; acest lucru poate fi văzut în managerul de activități.
Galerie foto
Schema de dezvoltare a unui analizor CAN
Placa principala pentru asamblarea dispozitivuluiAvantaje și dezavantaje ale autobuzelor CAN
Avantajele interfeței digitale:
- Performanţă. Dispozitivul poate face schimb rapid de pachete de date între diferite sisteme.
- Rezistență ridicată la interferențe electromagnetice.
- Toate interfețele digitale au un sistem de control pe mai multe niveluri. Datorită acestui fapt, puteți preveni erorile la transmiterea și primirea informațiilor.
- În timpul funcționării, autobuzul însuși distribuie viteza pe canale în modul automat. Datorită acestui lucru este asigurat munca eficienta sisteme electronice ale vehiculelor.
- Interfața digitală este sigură. Dacă cineva încearcă să obțină acces ilegal la componentele și sistemele electronice ale mașinii, autobuzul va bloca automat această încercare.
- Prezența unei interfețe digitale face posibilă simplificarea instalării unui sistem de securitate pe o mașină cu interferențe minime în rețeaua standard de bord.
Dezavantajele magistralei CAN:
- Unele interfețe au restricții privind cantitatea de informații care pot fi transferate. Acest dezavantaj va fi semnificativ pentru o mașină modernă, „umplută” cu electronice. Pe măsură ce se adaugă mai multe dispozitive, o sarcină mai mare este plasată pe autobuz. Din acest motiv, timpul de răspuns este redus.
- Toate pachetele de date care sunt transmise prin magistrală au un scop specific. Pentru Informatii utile se alocă o parte minimă din trafic.
- Dacă se utilizează un protocol de nivel superior, aceasta va cauza o lipsă de standardizare.
Video „Reparare interfață CAN de la tine însuți”
Utilizatorul Roman Brock a vorbit despre procedura de refacere a anvelopei de bord la o mașină cu restyling Ford Focus 2.
Salutări tuturor prietenilor! Evoluția umană a dus treptat la faptul că o mașină modernă este literalmente plină cu tot felul de senzori și dispozitive. Există o echipă întreagă „la bord”, ca într-o fabrică. Desigur, o astfel de „brigadă” trebuie condusă de cineva! Este despre acest lider despre care vreau să vă vorbesc astăzi, și anume, autobuzul CAN într-o mașină - ce este, pe ce principiu funcționează și exact cum a luat ființă. Să începem cu începutul...
Puțină istorie
Puțini oameni știu că primele mașini nu aveau absolut nicio electricitate. Tot ce aveau nevoie șoferii de atunci era un dispozitiv magnetoelectric special pentru a porni motorul, care era capabil să genereze electricitate din energia cinetică. Nu este surprinzător că un astfel de sistem primitiv a cauzat unele inconveniente și, în consecință, a fost modernizat în mod constant.
Deci, de la an la an, erau tot mai multe fire și, în consecință, diverși senzori. S-a ajuns la punctul în care, în ceea ce privește echipamentul electric, mașina era deja comparată cu un avion. Atunci, în 1970, a devenit evident că pentru o funcționare bună, toate circuitele trebuiau raționalizate. 13 ani mai târziu, un brand cult din Germania, numit Bosch, a preluat controlul asupra situației. Ca rezultat, protocolul inovator Controller Area Network (CAN) a fost introdus la Detroit în 1986.
Cu toate acestea, chiar și după prezentarea oficială, dezvoltarea a rămas, ca să spunem ușor, „brută”, așa că munca la ea a continuat.
- 1987 – s-au finalizat testele practice ale autobuzelor CAN, care au fost oferite voluntar pentru a fi efectuate de branduri la fel de celebre din domeniul tehnologiei informatice Philips si Intel.
- 1988 - chiar anul următor, un alt gigant auto german BMW a introdus prima mașină care folosește tehnologia autobuzului, era îndrăgitul model din seria 8.
- 1993 – recunoaștere internațională și, în consecință, un certificat ISO.
- 2001 - modificări fundamentale ale standardelor, acum orice mașină europeană trebuie să funcționeze după principiul „CAN”.
- 2012 - cea mai recentă actualizare a mecanismului, care a crescut lista de dispozitive compatibile și viteza de transfer de date.
„Directorul” nostru de aparate electrice a parcurs un drum atât de lung. Puteți vedea singuri că experiența nu este scurtă, așa că o poziție atât de înaltă este absolut potrivită).
Definiţia CAN bus
În ciuda funcționalității sale bogate, vizual magistrala CAN pare destul de primitivă. Toate componentele sale sunt un cip și două fire. Deși la începutul „carierei” sale (anii 80), au fost necesare mai mult de o duzină de prize pentru a contacta toți senzorii. Acest lucru s-a întâmplat deoarece fiecare fir individual era responsabil pentru un singur semnal, dar acum numărul lor poate ajunge la sute. Apropo, din moment ce am menționat deja senzori, să luăm în considerare ce anume controlează mecanismul nostru:
- punct de control;
- Motor;
- Sistem antiblocare;
- Airbag;
- Ștergătoare;
- Bord;
- servodirecție;
- Controlere;
- Aprindere;
- Computer de bord;
- Sistem multimedia;
- navigație GPS.
Sistemele de alarmă cu magistrala CAN, după cum înțelegeți voi înșivă, funcționează foarte îndeaproape. Peste 80% dintre mașinile din Federația Rusă folosesc tehnologia CAN, chiar și modele din industria auto autohtonă!
În plus, o magistrală CAN modernă nu poate doar să verifice echipamentul mașinii, ci chiar să elimine unele defecțiuni! Iar izolarea excelentă a tuturor contactelor instrumentului îi permite acestuia să se protejeze complet de orice fel de interferență!
Principiul de funcționare al magistralei CAN
Deci, magistrala CAN este un fel de transmițător testabil care este capabil să trimită informații nu numai peste două fire răsucite, dar și prin semnal radio. Viteza de schimb de informații poate ajunge la 1 Mbit/s, iar mai multe dispozitive pot folosi magistrala simultan. În plus, tehnologia CAN are noduri personale generatoare de ceas, care vă permite să trimiteți semnale specifice tuturor sistemelor vehiculului simultan!
Programul de lucru al „liderului” nostru este următorul:
- Modul de așteptare - absolut toate sistemele sunt oprite, electricitatea este furnizată numai microcipului CAN, care așteaptă comanda „Start”.
- Pornire - CAN activează toate sistemele atunci când cheia este rotită în contact.
- Exploatarea activă- există un schimb reciproc informatie necesara, inclusiv diagnostic.
- Modul Sleep - imediat după oprirea unității de alimentare, magistrala CAN își oprește instantaneu activitatea, toate sistemele „adorm”.
Notă: tehnologia CAN este folosită nu numai în inginerie mecanică, ci a fost folosită în sistemele Smart Home de destul de mult timp și, judecând după recenzii, cipul face față sarcinilor atribuite cu un bang!
Este evident că și astăzi acest lucru unitate importantă Există loc de îmbunătățiri, în special acest lucru se referă la viteza de transfer de date. Producătorii fac deja câțiva pași în această direcție, de exemplu, cei mai deștepți reduc lungimea firelor magistralei CAN, ceea ce permite creșterea vitezei de transmisie la 2 Mbit/s!
Avantaje și dezavantaje
La sfârșitul acestei publicații, trasând o linie, ca să spunem așa, vom lua în considerare pe scurt toate avantajele și dezavantajele acestei tehnologii. Desigur, să începem cu avantajele:
- Instalare simplă și ieftină;
- Performanţă;
- Rezistență la interferențe;
- Nivel ridicat de securitate împotriva hackingului;
- Sortiment mare pentru fiecare buget, alege modelul dorit poți chiar să mergi la „Zaporojhets”).
În ceea ce privește dezavantajele, există și unele, dar nu atât de multe:
- Nu este un protocol standardizat de nivel superior;
- Aproape tot traficul este consumat de informații tehnice și de service;
- În fiecare an, volumul de informații alocat care este transmis simultan devine din ce în ce mai mic!
De fapt, asta e tot, conform vechii tradiții, atașez un videoclip la subiect! În el veți învăța cum să verificați magistrala CAN și dacă se poate face acasă. Ne revedem, domnilor!
CAN Bus - Introducere
Protocolul CAN este un standard ISO (ISO 11898) pentru comunicațiile seriale. Protocolul a fost dezvoltat în vederea utilizării în aplicații de transport. Astăzi, CAN s-a răspândit și este utilizat în sistemele de automatizare industrială, precum și în transport.
Standardul CAN constă dintr-un strat fizic și de date care definesc mai multe tipuri diferite de mesaje, reguli pentru rezolvarea conflictelor de acces la magistrală și protecție împotriva defecțiunilor.
Protocolul CAN
Protocolul CAN este descris în standardul ISO 11898–1 și poate fi descris pe scurt după cum urmează:
Stratul fizic utilizează transmisia diferenţială de date prin pereche răsucită;
Rezolvarea nedistructivă a conflictelor pe biți este utilizată pentru a controla accesul la magistrală;
Mesajele sunt de dimensiuni mici (mai ales 8 octeți de date) și sunt protejate de o sumă de control;
Mesajele nu au adrese explicite, în schimb, fiecare mesaj conține o valoare numerică care îi controlează ordinea pe magistrală și poate servi și ca identificator pentru conținutul mesajului;
O schemă bine gândită de gestionare a erorilor care asigură retransmiterea mesajelor dacă nu au fost primite corect;
Există mijloace eficiente pentru a izola defecțiunile și pentru a elimina nodurile dăunătoare din magistrală.
Protocoale de nivel superior
Protocolul CAN în sine definește pur și simplu modul în care pachetele mici de date pot fi mutate în siguranță de la punctul A la punctul B printr-un mediu de comunicație. După cum v-ați putea aștepta, nu spune nimic despre cum să controlați fluxul; transmite o cantitate mare de date decât se încadrează într-un mesaj de 8 octeți; nici despre adresele nodurilor; stabilirea unei conexiuni etc. Aceste puncte sunt definite printr-un protocol de nivel superior (Higher Layer Protocol, HLP). Termenul HLP provine de la modelul OSI și cele șapte straturi ale sale.
Protocoalele de nivel superior sunt utilizate pentru:
Standardizarea procedurii de pornire, inclusiv alegerea vitezei de transfer de date;
Distribuirea adreselor între nodurile sau tipurile de mesaje care interacționează;
Definiții de marcare a mesajelor;
asigurarea ordinii de tratare a erorilor la nivel de sistem.
Grupuri de utilizatori etc.
Una dintre cele mai moduri eficiente A-ți crește competența în domeniul CAN înseamnă a participa la munca desfășurată în cadrul grupurilor de utilizatori existente. Chiar dacă nu intenționați să participați activ, grupurile de utilizatori pot fi sursa buna informație. Participarea la conferințe este alta intr-o maniera pozitiva obținerea de informații complete și corecte.
Produse CAN
La un nivel scăzut, se face o distincție fundamentală între două tipuri de produse CAN disponibile pe piața liberă – cipurile CAN și instrumentele de dezvoltare CAN. Pentru mai mult nivel inalt– Celelalte două tipuri de produse sunt modulele CAN și instrumentele de proiectare CAN. O gamă largă de aceste produse sunt disponibile pe piața liberă în prezent.
Brevete CAN
Patentele legate de aplicațiile CAN pot fi de diferite tipuri: implementare de sincronizare și frecvențe, transmitere de seturi mari de date (protocolul CAN folosește cadre de date cu lungimea de doar 8 octeți) etc.
Sisteme de control distribuit
Protocolul CAN este o bază bună pentru dezvoltarea sistemelor de control distribuit. Metoda de soluționare a litigiilor utilizată de CAN asigură că fiecare nod CAN va interacționa cu mesaje care sunt relevante pentru acel nod.
Un sistem de control distribuit poate fi descris ca un sistem a cărui putere de calcul este distribuită între toate nodurile sistemului. Opțiunea opusă este un sistem cu un procesor central și puncte I/O locale.
Mesaje CAN
Autobuzul CAN este un autobuz de difuzare. Aceasta înseamnă că toate nodurile pot „asculta” toate transmisiile. Nu există nicio modalitate de a trimite un mesaj către un anumit nod; toate nodurile, fără excepție, vor primi toate mesajele. Cu toate acestea, hardware-ul CAN oferă capabilități de filtrare locală, astfel încât fiecare modul să poată răspunde doar la mesajul de care este interesat.
Adresarea mesajelor CAN
CAN folosește mesaje relativ scurte - lungimea maximă a câmpului de informații este de 94 de biți. Mesajele nu au o adresă explicită; ele pot fi numite adresate de conținut: conținutul mesajului determină implicit (implicit) destinatarul.
Tipuri de mesaje
Există 4 tipuri de mesaje (sau cadre) transmise prin magistrala CAN:
Cadrul de date;
Cadru de la distanță;
Cadru de eroare;
Cadrul de supraîncărcare.
Cadrul de date
Pe scurt: „Bună ziua tuturor, există date marcate cu X, sper să vă placă!”
Cadrul de date este cel mai comun tip de mesaj. Conține următoarele părți principale (unele detalii sunt omise pentru concizie):
Câmp de arbitraj, care determină prioritatea mesajelor atunci când două sau mai multe noduri concurează pentru magistrală. Domeniul arbitrajului contine:
În cazul CAN 2.0A, un identificator de 11 biți și un bit, bitul RTR, care este decisiv pentru cadrele de date.
În cazul CAN 2.0B, un identificator de 29 de biți (care conține și doi biți recesivi: SRR și IDE) și un bit RTR.
Câmp de date, care conține de la 0 la 8 octeți de date.
Câmp CRC care conține o sumă de control de 15 biți calculată pentru majoritatea părților mesajului. Această sumă de verificare este utilizată pentru a detecta erori.
Slot de recunoaștere. Fiecare controler CAN capabil să primească un mesaj corect trimite un bit de confirmare la sfârșitul fiecărui mesaj. Transceiver-ul verifică prezența unui bit de recunoaștere și, dacă nu este detectat, retrimite mesajul.
Nota 1: Prezența unui bit de recunoaștere pe magistrală nu înseamnă altceva decât că fiecare destinație intenționată a primit mesajul. Singurul lucru care devine cunoscut este faptul că mesajul a fost recepționat corect de unul sau mai multe noduri de magistrală.
Nota 2: Identificatorul din câmpul de arbitraj, în ciuda numelui său, nu identifică neapărat conținutul mesajului.
Cadrul de date CAN 2.0B („CAN standard”).
Cadrul de date CAN 2.0B („CAN extins”).
Cadru șters
Pe scurt: „Bună tuturor, poate cineva să producă date etichetate X?”
Un cadru la distanță este foarte asemănător cu un cadru de date, dar cu două diferențe importante:
Este marcat în mod explicit ca un cadru șters (bitul RTR din câmpul de arbitrare este recesiv) și
Câmpul de date lipsește.
Scopul principal al unui cadru la distanță este de a solicita transmiterea unui cadru de date adecvat. Dacă, de exemplu, nodul A trimite un cadru la distanță cu un parametru de câmp de arbitrare de 234, atunci nodul B, dacă este inițializat corespunzător, ar trebui să trimită înapoi un cadru de date cu un parametru de câmp de arbitrare egal cu 234.
Cadrele de la distanță pot fi utilizate pentru a implementa controlul traficului autobuzului cerere-răspuns. În practică, totuși, cadrul de la distanță este rar folosit. Acest lucru nu este atât de important, deoarece standardul CAN nu necesită funcționarea exact așa cum este indicat aici. Majoritatea controlerelor CAN pot fi programate să răspundă automat la un cadru de la distanță sau să notifice procesorul local.
Există o problemă cu cadrul de la distanță: codul de lungime a datelor trebuie setat la lungimea mesajului de răspuns așteptat. În caz contrar, rezolvarea conflictului nu va funcționa.
Uneori este necesar ca un nod care răspunde la un cadru de la distanță să-și înceapă transmiterea de îndată ce recunoaște identificatorul, „umplând” astfel un cadru de la distanță gol. Acesta este un caz diferit.
Cadru de eroare
Pe scurt (toți împreună, cu voce tare): „O, dragă, să încercăm din nou unul.”
Un cadru de eroare este mesaj special, încălcând regulile de încadrare a mesajelor CAN. Este trimis atunci când un nod detectează o defecțiune și ajută alte noduri să detecteze defecțiunea - și vor trimite, de asemenea, cadre de eroare. Transmițătorul va încerca automat să retrimită mesajul. Există un circuit sofisticat de contor de erori pentru a se asigura că un nod nu poate perturba comunicațiile cu magistrala prin trimiterea în mod repetat a cadrelor de eroare.
Un cadru de eroare conține un flag de eroare, care constă din 6 biți de valoare egală (încălcând astfel regula de umplere a biților) și un delimitator de eroare, care constă din 8 biți recesivi. Delimitatorul de erori oferă un spațiu în care alte noduri de magistrală își pot trimite steagurile de eroare după ce ei înșiși detectează primul indicator de eroare.
Cadru de suprasarcină
Pe scurt: „Sunt un micuț foarte ocupat 82526, poți aștepta un minut?”
Cadrul de suprasarcină este menționat aici doar de dragul completității. Este foarte asemănător ca format cu un cadru de eroare și este transmis de un nod ocupat. Cadrul de suprasarcina nu este folosit des deoarece controlerele CAN moderne sunt suficient de puternice pentru a nu-l folosi. De fapt, singurul controler care va genera cadre de supraîncărcare este acum învechit 82526.
CAN standard și extins
Standardul CAN a stabilit inițial lungimea identificatorului în câmpul de arbitrare la 11 biți. Ulterior, la cererea clienților, standardul a fost extins. Format nou numit adesea CAN extins, permite cel puțin 29 de biți în identificator. Un bit rezervat în câmpul de control este utilizat pentru a distinge între cele două tipuri de cadre.
În mod oficial, standardele sunt denumite după cum urmează -
2.0A – numai cu identificatori de 11 biți;
2.0B – versiune extinsă cu identificatori pe 29 sau 11 biți (pot fi amestecați). Nodul 2.0B poate fi
2.0B activ (activ), adică capabile să transmită și să primească cadre extinse sau
2.0B pasiv (pasiv), adică va elimina în tăcere cadrele extinse primite (dar, vezi mai jos).
1.x – se referă la specificația originală și la revizuirile acesteia.
În zilele noastre, noile controlere CAN sunt de obicei de tip 2.0B. Un controler 1.x sau 2.0A va fi confuz dacă primește mesaje cu 29 de biți de arbitrare. Controlerul de tip pasiv 2.0B le va accepta, le va recunoaște dacă sunt corecte și apoi le va reseta; un controler 2.0B tip activ va putea atât să transmită, cât și să primească astfel de mesaje.
Controlerele 2.0B și 2.0A (precum și 1.x) sunt compatibile. Este posibil să le folosiți pe toate pe aceeași magistrală atâta timp cât controlerele 2.0B se abțin de la a trimite cadre extinse.
Uneori oamenii susțin că standardul CAN este „mai bun” decât Enhanced CAN, deoarece există mai multă suprasarcină în mesajele Enhanced CAN. Acesta nu este neapărat cazul. Dacă utilizați câmpul de arbitrare pentru a transmite date, atunci un cadru CAN îmbunătățit poate conține mai puțină suprasarcină decât un cadru CAN standard.
CAN de bază (CAN de bază) și CAN complet (CAN complet)
Termenii CAN de bază și CAN complet provin din „copilăria” CAN. A fost odată un controler Intel 82526 CAN care a oferit programatorului o interfață în stil DPRAM. Apoi Philips a venit împreună cu 82C200, care a folosit un model de programare FIFO și capacități limitate de filtrare. Pentru a indica diferența dintre cele două modele de programare, oamenii au început să numească metoda Intel Full CAN și metoda Philips Basic CAN. Astăzi, majoritatea controlerelor CAN acceptă ambele modele de programare, așa că nu are rost să folosiți termenii Full CAN și Basic CAN - de fapt, acești termeni pot provoca confuzie și ar trebui evitați.
De fapt, un controler complet CAN poate comunica cu un controler CAN de bază și invers. Nu există probleme de compatibilitate.
Rezolvarea conflictelor de magistrală și prioritatea mesajelor
Rezolvarea conflictelor de mesaje (procesul prin care doi sau mai mulți controlori CAN decid cine va folosi magistrala) este foarte importantă pentru a determina disponibilitatea reală a lățimii de bandă pentru transmiterea datelor.
Orice controler CAN poate începe să transmită atunci când detectează că magistrala este inactivă. Acest lucru poate duce la ca două sau mai multe controlere să înceapă să transmită un mesaj (aproape) simultan. Conflictul se rezolvă după cum urmează. Nodurile de trimitere monitorizează magistrala în timp ce trimit un mesaj. Dacă un nod detectează un nivel dominant în timp ce trimite un nivel recesiv, se va retrage imediat din procesul de rezolvare a conflictului și va deveni receptor. Rezolvarea coliziunilor are loc pe întregul câmp de arbitraj, iar după ce acest câmp este trimis, mai rămâne un singur transmițător pe magistrală. Acest nod va continua să transmită dacă nu se întâmplă nimic. Emițătorii potențiali rămași vor încerca să-și transmită mesajele mai târziu, când magistrala este liberă. Nu se pierde timp în procesul de rezolvare a conflictului.
O condiție importantă pentru rezolvarea cu succes a conflictului este imposibilitatea unei situații în care două noduri pot transmite același câmp de arbitraj. Există o excepție de la această regulă: dacă mesajul nu conține date, atunci orice nod poate transmite acest mesaj.
Deoarece magistrala CAN este o magistrală ȘI cu fir și bitul dominant este un 0 logic, mesajul cu cel mai mic câmp de arbitrare numeric va câștiga rezolvarea conflictului.
Întrebare: Ce se întâmplă dacă un singur nod de magistrală încearcă să trimită un mesaj?
Răspuns: Nodul va câștiga, desigur, rezolvarea conflictului și va transmite cu succes mesajul. Dar când vine momentul recunoașterii... niciun nod nu va trimite bitul dominant al regiunii de recunoaștere, astfel încât transmițătorul detectează o eroare de recunoaștere, trimite un semnal de eroare, își mărește contorul de erori de transmisie cu 8 și începe retransmiterea. Acest ciclu se va repeta de 16 ori, apoi transmițătorul va intra în starea de eroare pasivă. Conform regula specialaÎn algoritmul de limitare a erorilor, valoarea contorului de erori de transmisie nu va mai fi incrementată dacă nodul are o stare de eroare pasivă și eroarea este o eroare de recunoaștere. Prin urmare, nodul va transmite pentru totdeauna până când cineva va recunoaște mesajul.
Adresarea și identificarea mesajelor
Din nou, nu este nimic în neregulă cu faptul că mesajele CAN nu conțin adrese exacte. Fiecare controler CAN va primi tot traficul de magistrală și, folosind o combinație de filtre hardware și software, va determina dacă este „interesat” de acest mesaj sau nu.
De fapt, protocolul CAN nu are conceptul de adresă de mesaj. În schimb, conținutul mesajului este determinat de un identificator care se află undeva în mesaj. Mesajele CAN pot fi numite „adresate de conținut”.
O anumită adresă funcționează astfel: „Acesta este un mesaj pentru nodul X”. Un mesaj adresat conținutului poate fi descris după cum urmează: „Acest mesaj conține date marcate cu X.” Diferența dintre aceste două concepte este mică, dar semnificativă.
Conținutul câmpului de arbitraj este utilizat, conform standardului, pentru a determina prioritatea mesajelor pe magistrală. Toate controlerele CAN vor folosi tot (unele doar o parte) câmpul de arbitraj ca o cheie în procesul de filtrare hardware.
Standardul nu spune că câmpul de arbitraj trebuie utilizat în mod necesar ca identificator de mesaj. Cu toate acestea, acesta este un caz de utilizare foarte frecvent.
O notă despre valorile ID
Am spus că 11 (CAN 2.0A) sau 29 (CAN 2.0B) biți sunt disponibili pentru identificator. Acest lucru nu este în întregime adevărat. Pentru compatibilitatea cu un anumit controler CAN mai vechi (ghici care dintre ele?), ID-urile nu ar trebui să aibă cei 7 biți cei mai semnificativi setați la unul logic, astfel încât ID-urile pe 11 biți au 0..2031 valori disponibile, iar utilizatorii ID-urilor pe 29 de biți pot utilizați 532676608 valori diferite.
Rețineți că toate celelalte controlere CAN acceptă ID-uri „greșite”, deci sisteme moderne Identificatorii CAN 2032..2047 pot fi utilizați fără restricții.
straturi fizice CAN
Autobuzul CAN
Autobuzul CAN folosește un cod de non-retur la zero (NRZ) cu umplutură de biți. Există două stări diferite de semnal: dominant (0 logic) și recesiv (1 logic). Acestea corespund unor niveluri electrice specifice, în funcție de stratul fizic utilizat (există mai multe). Modulele sunt conectate la magistrală folosind o schemă SI cu fir: dacă cel puțin un nod transferă magistrala într-o stare dominantă, atunci întreaga magistrală se află în această stare, indiferent de câte noduri transmit o stare recesivă.
Niveluri fizice diferite
Strat fizic determină nivelurile electrice și modelul de transmisie a semnalului de magistrală, impedanța cablului etc.
Sunt câteva versiuni diferite straturi fizice: cea mai comună variantă este definită de standardul CAN, parte a ISO 11898–2, și este un circuit de semnal echilibrat cu două fire. Este, de asemenea, numit uneori CAN de mare viteză.
O altă parte a aceluiași standard ISO 11898-3 descrie un circuit de semnal echilibrat cu două fire diferit - pentru o magistrală mai lentă. Este tolerant la erori, astfel încât transmisia poate continua chiar dacă unul dintre fire este tăiat, scurtcircuitat la masă sau în stare Vbat. Uneori, această schemă se numește CAN cu viteză mică.
SAE J2411 descrie un strat fizic cu un singur fir (plus masă, desigur). Este folosit în principal în mașini - de exemplu GM-LAN.
Există mai multe straturi fizice proprietare.
Pe vremuri, când driverele CAN nu existau, se foloseau modificări RS485.
De obicei, diferitele niveluri fizice nu pot interacționa între ele. Unele combinații pot funcționa (sau par că funcționează) în condiții bune. De exemplu, transceiver-urile de mare viteză și de mică viteză pot funcționa doar uneori pe aceeași magistrală.
Marea majoritate a chip-urilor transceiver CAN sunt produse de Philips; Alți producători includ Bosch, Infineon, Siliconix și Unitrode.
Cel mai comun transceiver este 82C250, care implementează stratul fizic descris de standardul ISO 11898. O versiune îmbunătățită este 82C251.
Un transceiver obișnuit pentru „CAN cu viteză mică” este Philips TJA1054.
Rata maximă de transfer de date pe magistrală
Rata maximă de transfer de date prin magistrala CAN, conform standardului, este egal cu 1 Mbit/s. Cu toate acestea, unele controlere CAN suportă viteze mai mari de 1 Mbps și pot fi folosite în aplicații specializate.
CAN de viteză mică (ISO 11898-3, vezi mai sus) funcționează la viteze de până la 125 kbit/s.
O magistrală CAN cu un singur fir în modul standard poate transmite date cu o viteză de aproximativ 50 kbit/s, iar într-un mod special de mare viteză, de exemplu pentru programarea unui ECU, aproximativ 100 kbit/s.
Rata minimă de transfer de date pe magistrală
Rețineți că unele transceiver nu vă vor permite să selectați o viteză sub o anumită valoare. De exemplu, dacă utilizați un 82C250 sau 82C251, puteți seta viteza la 10 kbps fără probleme, dar dacă utilizați un TJA1050, nu veți putea seta viteza sub 50 kbps. Verificați specificațiile.
Lungimea maximă a cablului
Cu o rată de transfer de date de 1 Mbit/s, lungimea maximă a cablului utilizat poate fi de aproximativ 40 de metri. Acest lucru se datorează cerinței circuitului de rezoluție a coliziunilor ca frontul de undă al semnalului să poată călători la cel mai îndepărtat nod și să se întoarcă înainte ca bitul să fie citit. Cu alte cuvinte, lungimea cablului este limitată de viteza luminii. Au fost luate în considerare propuneri de creștere a vitezei luminii, dar au fost respinse din cauza problemelor intergalactice.
Alte lungimi maxime ale cablurilor (valorile sunt aproximative):
100 de metri la 500 kbps;
200 de metri la 250 kbps;
500 de metri la 125 kbps;
6 kilometri la 10 kbit/s.
Dacă optocuplere sunt utilizate pentru a asigura izolarea galvanică, lungimea maximă a magistralei este redusă corespunzător. Sfat: Folosiți optocuple rapide și uitați-vă la latența semnalului a dispozitivului, nu la rata maximă de date din specificație.
Întreruperea de terminare a magistralei
Autobuzul CAN ISO 11898 trebuie să se termine cu un terminator. Acest lucru se realizează prin instalarea unui rezistor de 120 ohmi la fiecare capăt al magistralei. Rezilierea are două scopuri:
1. Eliminați reflexiile semnalului de la capătul magistralei.
2. Asigurați-vă că primește nivelurile corecte de curent continuu (DC).
Autobuzul CAN ISO 11898 trebuie să fie terminat indiferent de viteza sa. Repet: magistrala ISO 11898 CAN trebuie terminata, indiferent de viteza acesteia. Pentru munca de laborator Un singur terminator poate fi suficient. Dacă autobuzul tău CAN funcționează chiar și în absența terminatoarelor, ești pur și simplu norocos.
Te rog noteaza asta alte niveluri fizice, cum ar fi CAN de viteză mică, magistrală CAN cu un singur fir și altele, pot necesita sau nu un terminator de terminare a magistralei. Dar magistrala dumneavoastră CAN de mare viteză ISO 11898 va necesita întotdeauna cel puțin un terminator.
Cablu
Standardul ISO 11898 specifică că impedanța caracteristică a cablului trebuie să fie nominal de 120 ohmi, dar este permisă o gamă de impedanțe ohmi.
Puține cabluri de pe piață îndeplinesc astăzi aceste cerințe. Există o mare probabilitate ca gama de valori ale rezistenței să fie extinsă în viitor.
ISO 11898 descrie cablul cu perechi răsucite, ecranat sau neecranat. Se lucrează la standardul SAE J2411 cu un singur fir de cablu.
Sarcină: Obțineți acces la citirile senzorilor standard ai mașinii fără a instala alții suplimentari.
Soluţie: Citirea datelor din mașină.
Când vine vorba de monitorizarea parametrilor precum viteză vehicul şi consum de combustibil O soluție fiabilă și dovedită este instalarea unui auto tracker și a unui senzor de nivel de combustibil.
Dacă aveți nevoie de acces la informații precum turația motorului, kilometrajul, temperatura lichidului de răcire și alte date de la Computer de bord- această sarcină este deja mai mult ca una creativă.
S-ar părea că ceea ce ar putea fi mai logic: Dacă mașina are deja toți senzorii necesari, atunci de ce să instalați alții noi? Aproape toate mașinile moderne (mai ales când vine vorba de mașini personale de clasă business și echipamente speciale scumpe) sunt echipate standard cu senzori, informațiile de la care sunt trimise la computerul de bord.
Singura întrebare este cum să accesați aceste informații. Multă vreme această problemă a rămas nerezolvată. Dar acum există din ce în ce mai mulți ingineri de înaltă calificare care lucrează pe piața de monitorizare prin satelit, care încă sunt capabili să găsească o soluție la problema obținerii corecte a datelor precum:
- viteza motorului;
- nivelul combustibilului din rezervor;
- kilometrajul mașinii;
- temperatura lichidului de răcire a motorului vehiculului;
- etc.
Soluția despre care vom vorbi în acest articol este citirea datelor din magistrala CAN al vehiculului.
. Ce s-a întâmplat ?
CAN (Controller Area Network) este un standard popular de rețea industrială care vizează combinarea diferitelor actuatoare și senzori într-o singură rețea, utilizată pe scară largă în automatizarea auto. Astăzi, aproape toate mașinile moderne sunt echipate cu așa-numita cablare digitală - un autobuz CAN pentru automobile.
. De unde a venit sarcina de a citi datele din magistrala CAN?
Sarcina de citire a datelor din magistrala CAN a apărut ca o consecință a sarcinii de optimizare a costurilor de exploatare a vehiculelor.
În conformitate cu cerințele tipice ale clienților, mașinile și echipamentele speciale sunt echipate cu un sistem de monitorizare satelit GLONASS sau GPS și un sistem de control al circulației combustibilului (bazat pe senzori submersibili sau ultrasonici de nivel al combustibilului).
Dar practica a arătat că clienții sunt din ce în ce mai interesați de modalități mai economice de obținere a datelor, precum și de cele care nu ar necesita o intervenție serioasă în designul și electricitatea mașinii.
Primirea de informații de la magistrala CAN a fost tocmai o astfel de soluție. La urma urmei, are o serie întreagă avantaje:
1. Salvare pe dispozitive suplimentare
Nu este nevoie să suportați costuri semnificative pentru achiziționarea și instalarea diferiților senzori și dispozitive.
2. Mentinerea garantiei auto
Detectarea de către producător a interferențelor terțelor în designul sau electricitatea mașinii amenință cu eliminarea aproape garantată a vehiculului din garanție. Și acest lucru în mod clar nu este în sfera intereselor proprietarilor de mașini.
3. Obținerea accesului la informații de la dispozitive și senzori electronici instalați standard.
În funcție de sistemul electronic, un anumit set de funcții poate fi implementat în mod standard în mașină. Toate aceste funcții, teoretic, le putem accesa prin magistrala CAN. Acesta ar putea fi kilometrajul, nivelul de combustibil din rezervorul de benzină, senzorii de deschidere/închidere a ușii, temperatura exterioară și în interior, turația motorului, viteza de conducere etc.
Specialiștii tehnici Skysim au ales un dispozitiv pentru a testa această soluție. Are un decodor FMS încorporat și poate citi informații direct din magistrala CAN al vehiculului.
. Care sunt avantajele și dezavantajele unei soluții care citește date din magistrala CAN?
Avantaje:
Abilitatea de a lucra din greu în timp real.
. Ușurință de implementare și cost minim de utilizare.
. Rezistență ridicată la interferențe.
. Control fiabil al erorilor de transmisie și recepție.
. Gamă largă viteze de operare.
. Răspândit tehnologii, disponibilitatea unei game largi de produse de la diverși furnizori.
Defecte:
Lungimea maximă a rețelei este invers proporțională cu viteza de transmisie.
. Marime mare datele de serviciu din pachet (în raport cu datele utile).
. Lipsa unui singur standard general acceptat pentru un protocol de nivel înalt.
Standardul de rețea prevede oportunități ample pentru transferul de date practic fără erori între noduri, lăsând dezvoltatorului posibilitatea de a pune în acest standard tot ceea ce se poate încadra acolo. În acest sens, magistrala CAN este asemănătoare unui simplu cablu electric. Puteți „împinge” orice flux de informații acolo care poate rezista debitului cauciucuri.
Există exemple cunoscute de transmitere a sunetului și a imaginii prin magistrala CAN. Există un caz cunoscut de creare a unui sistem de comunicații de urgență de-a lungul unei autostrăzi lungi de câteva zeci de kilometri (Germania). (În primul caz a fost necesar de mare viteză transmisie și lungimea scurtă a liniei, în al doilea caz - invers).
Producătorii, de regulă, nu fac reclamă exact cum folosesc octeții de încărcare utilă în pachet. Prin urmare, dispozitivul FMS nu poate descifra întotdeauna datele pe care le „trimite” magistrala CAN. În plus, nu toate mărcile de mașini au un autobuz CAN. Și nu toate mașinile de aceeași marcă și model pot furniza aceleași informații.
Exemplu de implementare a soluției:
Nu cu mult timp în urmă, Skysim și partenerul său au implementat un proiect amplu de monitorizare a vehiculelor. Au fost diverse camioane producție străină. În special, camioanele Scania p340.
Pentru a analiza procesul de obținere a datelor din magistrala CAN, noi, de comun acord cu clientul, am efectuat studii relevante pe trei vehicule Scania p340: unul fabricat în 2008, al doilea de la începutul lui 2009 și al treilea de la sfârșitul anului. 2009.
Rezultatele au fost următoarele:
- din prima nu au fost primite date;
- din a doua s-a obtinut numai kilometraj;
- din a treia au fost primite toate datele de interes (nivelul combustibilului, temperatura lichidului de răcire, turația motorului, consumul total, kilometraj total).
Figura prezintă un fragment dintr-un mesaj din sistemul de informații Wialon, unde:
Fuel_level - nivelul combustibilului din rezervor în %;
Temp_aqua - Temperatura lichidului de răcire în grade Celsius;
Taho - Date de la turometru (rpm).
Regulile de punere în aplicare a deciziei au fost următoarele:
1. Dispozitivul de navigație Galileo GLONASS/GPS a fost conectat la magistrala CAN al camioanelor.
Acest model auto tracker a fost ales datorită combinației optime de funcționalitate, fiabilitate și cost. În plus, acceptă FMS (Fuel Monitoring System), un sistem care vă permite să înregistrați și să monitorizați parametrii de bază ai utilizării vehiculului, de exemplu. Potrivit pentru conectarea la magistrala CAN.
Schema de conectare la magistrala CAN din partea laterală a dispozitivului Galileo poate fi găsită în manualul de utilizare. Pentru a conecta din partea mașinii, trebuie mai întâi să găsiți o pereche de fire răsucite potrivite pentru conectorul de diagnosticare. Conectorul de diagnosticare este întotdeauna accesibil și este situat aproape de coloana de direcție. Într-un conector cu 16 pini conform standardului OBD II, acesta este 6-CAN înalt, 14-CAN scăzut. Vă rugăm să rețineți că pentru firele înalte tensiunea este de aproximativ 2,6-2,7 V, pentru firele joase este de obicei cu 0,2 V mai mică.
_________________________________________________________________________
O altă soluție unică care a fost folosită pentru a prelua date din magistrala CAN a fost cititorul de date CAN fără contact Crocodile (fabricat de JV Technoton, Minsk). Este perfect potrivit pentru a lucra cu instrumente Galileo.
Avantajele tehnologiei CAN Crocodile:
CAN Crocodile vă permite să primiți date despre funcționarea vehiculului din magistrala CAN fără a interfera cu integritatea anvelopei în sine.
Citirea datelor are loc fără mecanic sau contact electric cu fire.
CAN Crocodile este folosit pentru a conecta sistemele de monitorizare GPS/GLONASS la magistrala CAN, care primește informații despre modurile de funcționare a motorului, starea senzorului, defecțiuni etc.
CAN Crocodile nu încalcă izolarea firelor CAN și „ascultă” schimbul pe autobuz folosind un receptor wireless special.
Utilizarea CAN Crocodile este absolut sigură pentru mașină, invizibilă pentru funcționarea computerului de bord, a scanerului de diagnostic și a altor sisteme electronice. Utilizarea CAN Crocodile este relevantă în special pentru vehiculele aflate în garanție, în care conectarea oricăror dispozitive electronice la magistrala CAN servește adesea drept motiv pentru anularea garanției.
2. Dacă firele sunt detectate și identificate corect, puteți începe să lansați scanerul CAN în dispozitivul Galileo.
3. Este selectat standardul FMS, viteza pentru majoritatea mașinilor este de 250.000.
4. Începe scanarea.
5. După ce scanarea este finalizată, accesați pagina principală a configuratorului. Dacă scanarea este finalizată cu succes, avem acces la datele decriptate.
6. Dacă nu vedeți altceva decât „scanare finală”, există mai multe opțiuni. Fie conexiunea a fost efectuată incorect, fie mașina din anumite motive nu scoate date, fie dispozitivul nu cunoaște codul acestei magistrale CAN. După cum am menționat deja, acest lucru se întâmplă destul de des, deoarece nu există un standard unic pentru transmiterea și procesarea datelor prin CAN. Din păcate, după cum arată practica, nu este întotdeauna posibil să obțineți date complete din magistrala CAN.
Dar mai este un punct care este important de ridicat.
Cel mai adesea, scopul principal al clienților este controlul nivelului de combustibil și al consumului.
Chiar dacă datele de la senzorii standard sunt primite cu succes de la magistrala CAN, care este valoarea lor practică?
Faptul este că scopul principal al senzorilor standard de nivel al combustibilului este de a oferi o evaluare cu gradul de precizie care pare producător corect TS. Această precizie nu poate fi egalată cu precizia furnizată de senzorul de nivel al combustibilului submersibil (FLS) fabricat Omnicom sau, de exemplu, Technoton.
Una dintre sarcinile principale pe care le rezolvă un FLS standard este să se asigure că combustibilul nu se epuizează brusc și că șoferul înțelege situația generală cu nivelul combustibilului din rezervor. Este greu de așteptat la o mare precizie de la un senzor cu plutitor standard care are un design simplu. În plus, există cazuri în care un senzor standard distorsionează datele (de exemplu, când vehiculul este situat pe o pantă).
concluzii
Din mai multe dintre motivele de mai sus, vă recomandăm să nu vă bazați în întregime pe citirile senzorilor standard de nivel al combustibilului, ci să luați în considerare fiecare situație în mod individual. De regulă, o soluție adecvată poate fi găsită numai împreună cu specialiștii tehnici. U diferiți producători TS are o precizie diferită de citire. Toți clienții au, de asemenea, sarcini diferite. Și numai pentru o sarcină specifică este recomandabil să selectați soluții. Pentru unii, o soluție care primește date de la magistrala CAN este destul de potrivită, deoarece este de câteva ori mai ieftină și nu necesită modificări sistem de alimentare TS. Dar pentru clienții cu cerințe de precizie ridicate, este rezonabil să se ia în considerare opțiunea unui FLS submersibil.