Interfață de date CAN. Adresarea și identificarea mesajelor. Rezolvarea conflictelor de autobuz și prioritatea mesajelor

Depozitați ruble valutare c.u.

Căutare

Autobuzul CAN. Partea 1.

1. Controller Area Network (CAN)

Domenii de utilizare.

Distribuitori de electronice, Auto, Marină, Echipamente hidraulice, Industria textilă, Industria de proces, Echipamente medicale, Căi ferate, Automatizări de clădiri, Electronice radio pentru avioane, Aparate, Forțele Armate, Manipularea materialelor, Agricultură, Telecomunicații, Camioane, Mașini și Vehicule pentru construcții, Automatizări industriale.

Informatii generale

CAN Controller Area Network este un standard de magistrală serial dezvoltat în anii 1980 de Robert Bosch GmbH pentru a conecta unități electronice de control. CAN a fost proiectat special pentru funcționare robustă în medii zgomotoase folosind o linie diversificată, cum ar fi RS-485. Conexiunea poate fi mai rezistentă la interferențe atunci când utilizați pereche răsucită. Creat inițial pentru aplicații auto, dar este utilizat în prezent într-o varietate de sisteme de control, inclusiv. industriale, care operează într-un mediu zgomotos.
Viteza de schimb de date de până la 1 Mbit/s este posibilă în rețelele cu o lungime de cel mult 40 m. Reducerea cursului de schimb vă permite să măriți lungimea rețelei, de exemplu - 250 Kbit / s la 250m.
Protocolul de comunicare CAN este standardizat conform ISO 11898-1 (2003). Acest standard descrie în principal nivelul de comunicare constând din subpărțile Control logic (LLC) și Controlul accesului (MAC) și unele aspecte ale stratului fizic al modelului ISO/OSI. Straturile rămase ale protocolului sunt lăsate la latitudinea proiectantului de rețea.

Rețele CAN și soiurile acestora

Există diverse rețele CAN. De exemplu, în automobile, rețelele CAN sunt împărțite în două categorii pe baza principiului transmiterii datelor prin rețea.
Rețele de control de sisteme de confort și confort, cu un număr mare de identificatori de informații care sunt transmise fără a respecta o anumită ordine sau frecvență.
Iar rețelele de control al grupului de propulsie gestionează informațiile legate de motor și transmisie. Conțin mai puține informații, dar informațiile sunt transmise într-o manieră organizată și rapidă.

caracteristici generale

Bus serial de comunicație integrat pentru aplicații în timp real.
. Rețeaua este operațională la o rată de schimb de date de până la 1 Mbit/s.
. Are capabilități excelente de detectare și verificare a erorilor și erorilor.
. Inițial, autobuzul CAN a fost proiectat pentru a fi utilizat în mașini.
. Este utilizat în diferite sisteme automate și sisteme de control.
. Standard internațional: ISO 11898

Definiţia CAN

CAN este un sistem de magistrală serială adaptat pentru organizarea unei rețele de dispozitive inteligente, precum și a senzorilor și actuatoarelor într-un sistem sau subsistem.

Proprietăți CAN

Sistem CAN pe o magistrală serială cu capacități multifuncționale, toate nodurile CAN sunt capabile să transmită date și unele noduri CAN pot solicita magistrala în același timp. Transmițătorul transmite mesajul către toate nodurile CAN. Fiecare nod, pe baza identificatorului primit, determină dacă ar trebui să proceseze mesajul sau nu. De asemenea, identificatorul determină prioritatea pe care o are mesajul la accesarea magistralei. Simplitatea determină costul echipamentului și costul instruirii personalului. Cipurile CAN pot fi relativ ușor de programat. Cursuri introductive, biblioteci funcționale, kituri de pornire, diverse interfețe, module I/O și instrumente într-o mare varietate sunt prezentate în vânzare deschisă la prețuri accesibile. Din 1989, cipurile CAN au fost conectate liber și ușor la microcontrolere. În prezent, există aproximativ 50 de cipuri CAN pentru microcontrolere de la peste 15 producători.
CAN este folosit în majoritatea autoturismelor europene, iar decizia producătorilor de camioane și SUV-uri de a continua să folosească CAN, a determinat dezvoltarea de mai bine de 10 ani. În alte domenii de aplicare, cum ar fi sectoarele domestice și industriale, vânzările de echipamente CAN sunt în creștere și vor continua în viitor. Până în primăvara anului 1997, existau deja peste 50 de milioane de noduri CAN instalate. Una dintre caracteristicile remarcabile ale protocolului CAN este fiabilitatea ridicată a schimbului de date. Controlerul CAN înregistrează erorile și le prelucrează statistic pentru măsurători adecvate, nodul CAN care este sursa defecțiunii va fi eliminat din conexiune ca urmare.
Fiecare mesaj CAN poate conține de la 0 la 8 biți de informații despre utilizator. Desigur, este posibil să transferați date mai lungi folosind fragmentarea. Rata de schimb maxim specificată este de 1 Mbit/s. Acest lucru este posibil cu o lungime a rețelei de cel mult 40 m. Pentru o comunicare mai lungă, viteza de transmisie trebuie redusă. Pentru o distanta de pana la 500m, viteza este de 125Kbit/s, iar pentru transmisia peste 1 km este permisa o viteza de 50Kbit/s.

aplicații CAN

Rețelele CAN pot fi utilizate ca sisteme de comunicații încorporate pentru microcontrolere, precum și ca sisteme de comunicații deschise pentru dispozitive inteligente. Sistemul de magistrală serială CAN, conceput pentru aplicații auto, va fi utilizat pe scară largă în sistemele de comunicații industriale și în multe feluri vor fi similare. În ambele cazuri, cerințele principale sunt: ​​cost redus, capacitatea de a funcționa în condiții dificile, durată lungă de viață și ușurință în utilizare.
Unii utilizatori, de exemplu în domeniul ingineriei medicale, preferă CAN din cauza cerințelor stricte de siguranță care trebuie îndeplinite. Condiții similare cu cerințe sporite de fiabilitate și siguranță sunt impuse altor dispozitive și echipamente (de exemplu roboți, sisteme de ridicare și transport).

Licență CAN

Protocolul CAN a fost dezvoltat de Robert Bosch GmbH și este protejat de brevete.

Standarde CAN de bază

Unele dintre standardele internaționale CAN sunt enumerate mai jos.
. Standarde CAN:
o ISO 11898-1 - protocol CAN
o ISO 11898-2 - Structura fizică de mare viteză CAN
o ISO 11898-3 - Structură fizică compatibilă cu erori de viteză redusă CAN
o ISO 11898-4 - Lansare CAN
o ISO 11898-5 - Dispozitiv de joasă tensiune de mare viteză (în dezvoltare).
o ISO 11519-2 înlocuit de 11898-3.
. ISO 14230 - „Keyword Protocol 2000” - protocol de diagnosticare folosind linia serială, nu CAN
. ISO 15765 - Protocol de diagnosticare pe magistrala CAN - Cuvânt cheie 2000 pe magistrala CAN.
. J1939 - Protocol CAN de bază pentru camioane și autobuze definit de SAE
. ISO 11783 - J1939 și supliment pentru mașini agricole
. ISO 11992 - definește interfața tractoarelor și remorcilor
. NMEA 2000 - Protocol bazat pe J1939 pentru nave, definit de NMEA.

Protocolul CAN este un standard ISO (ISO 11898) pentru comunicațiile seriale. Protocolul este conceput pentru aplicații auto. În prezent, sistemele CAN sunt utilizate pe scară largă și sunt folosite în automatizări industriale, transporturi diverse, mașini speciale și mașini.

Avantajele CAN:

- Disponibilitate pentru consumator.
Protocolul CAN a fost folosit cu succes de peste 15 ani, din 1986. Există o gamă largă de produse și dispozitive CAN disponibile pentru vânzare.

- Implementarea protocolului la nivel hardware
Protocolul se bazează pe nivelul hardware. Acest lucru face posibilă combinarea capacității de a recunoaște și controla erorile cu capacitatea de a transmite date la viteze mari.

- Linie de transmisie primitivă
Linia de transmisie a datelor, în cele mai multe cazuri, este pereche răsucită. Dar comunicarea prin protocolul CAN poate fi realizată și printr-un singur fir. ÎN diverse ocazii se pot folosi cele mai potrivite canale de comunicatie, canal optic sau radio.

- Capacitate excelentă de a detecta erori și defecțiuni și de a localiza defecțiuni.
Capacitatea de a detecta erori și defecțiuni este un avantaj semnificativ al protocolului CAN. Mecanismul de detectare a erorilor este construit pe un principiu extins, precum și pe un sistem fiabil și bine dezvoltat pentru verificarea și confirmarea erorilor și defecțiunilor.
Sistemul de detectare a defecțiunilor și retransmiterea datelor se realizează automat la nivel hardware.

- Sistem de detectare și verificare a defecțiunilor
O sursă defectă din sistem este capabilă să dezorganizeze întregul sistem, de exemplu. ocupa toate canalele de comunicare. Protocolul CAN are o capacitate încorporată care protejează sistemul de sursa defecțiunii. Sursa erorii este eliminată de la primirea și transmiterea datelor prin magistrala CAN.

2. CAN bus

Introducere

Protocolul CAN este un standard ISO (ISO 11898) pentru comunicațiile seriale. Protocolul este conceput pentru aplicații auto. În prezent, sistemele CAN sunt utilizate pe scară largă și sunt folosite în automatizări industriale, transporturi diverse, mașini speciale și mașini.
Standardul CAN descrie parametrii semnalului la nivelul fizic și ordinea de transmitere a datelor, care este definită de două tipuri diferite de mesaje, regulile de arbitrare a accesului la magistrală și metoda de detectare și verificare a defecțiunilor.

Protocolul CAN

CAN este definit de ISO 11898-1 și include următoarele informații de bază.
. La nivelul fizic, semnalul este transmis cu ajutorul unui cablu torsadat.
. Regulile de arbitraj sunt folosite pentru a controla accesul la autobuz.
. Blocurile de date sunt de dimensiuni mici (8 octeți în majoritatea cazurilor) și sunt protejate de o sumă de control.
. Blocurile de date nu sunt adresabile, în schimb fiecare bloc conține o valoare numerică care determină prioritatea transmisiei pe magistrală și poate, de asemenea, să poarte un identificator pentru conținutul blocului de date.
. schemă complexă de tratare a erorilor care are ca rezultat retransmiterea datelor care nu sunt recepționate corespunzător.
. Acțiune eficientă pentru izolarea defecțiunilor și deconectarea sursei defecțiunii de la magistrală.

Protocoale de comandă superioară (HLP)

Protocolul CAN definește transferul în siguranță al pachetelor de date mici de la punctul A la punctul B folosind o linie de comunicație comună. Protocolul nu conține controlul fluxului, adresare, nu asigură transmiterea de mesaje de peste 8 biți, nu stabilește o conexiune etc. Proprietățile enumerate sunt definite de HLP (Higher Layer Protocol) sau Higher Order Protocol. Termenii HLP sunt derivați și constau din șapte ordine ale modelului OSI.

Scopul HLP
. Standardizarea procedurilor de pornire și setarea ratei de transmisie
. Distribuția adresei dispozitivului și a tipurilor de mesaje.
. Determinarea ordinii mesajelor
. oferă un mecanism de detectare a defecțiunilor la nivel de sistem

produse CAN

Există două tipuri de produse CAN, cipuri CAN și instrumente de dezvoltare CAN.
La nivel superior, alte două varietăți de produse, module CAN și instrumente de dezvoltare CAN. O mare varietate de produse similare sunt disponibile comercial.

Brevete CAN

Brevetele privind aplicațiile CAN pot fi diferite feluriși direcții. Iată câteva tipuri:
. Sincronizarea și implementarea frecvenței de transmisie
. Transmiterea de blocuri mari de date (protocolul CAN utilizează cadre de maximum 8 biți)
Sisteme de control al distribuției
Protocolul CAN este o bază productivă pentru crearea sistemelor de control al distribuției. Metoda de arbitraj permite fiecărui dispozitiv CAN să interacționeze cu mesajele despre acel dispozitiv.
Un sistem de control al distribuției poate fi declarat ca un sistem în care capacitățile procesorului sunt distribuite între dispozitivele sistemului, sau invers, ca un sistem cu unități centrale de procesareși dispozitive I/O locale.
La dezvoltarea unei rețele CAN, pot fi utilizate diverse dispozitive hardware compatibile care au proprietățile necesare și satisfac parametrii de rețea specificați sau calculați, cum ar fi frecvența procesorului, rata de transfer de date etc.

Protocoale de ordin superior în uz (HLP)

Protocolul CAN definește transferul în siguranță al pachetelor de date mici de la punctul A la punctul B folosind o linie de comunicație comună. Protocolul nu conține controlul fluxului, adresare, nu asigură transmiterea de mesaje de peste 8 biți, nu stabilește o conexiune etc. Proprietățile enumerate sunt definite de HLP, protocolul de nivel superior. Condițiile HLP sunt obținute și constau din șapte comenzi

Modele OSI (Open Systems Interconnect Model)
CanKingdom
CANopen/CAL
DeviceNet
J1939
OSEK
SDS

HLP definește de obicei
. Parametri de lansare
. Distribuirea ID-ului mesajului între diferitele dispozitive din sistem
. Interpretarea conținutului blocurilor de date
. Starea interacțiunii în sistem

Caracteristici SDS, DeviceNet și CAN Kingdom.

Și diferențele dintre CAN Kingdom și CANopen. În prezent, există peste 50 de HLP. Utilizarea HLP este obligatorie, altfel va trebui să vă inventați propriul HLP.

CANKdom

CanKingdom este întreținut de CanKingdom International Specificațiile complete sunt disponibile pe site-ul web al organizației.
CanKingdom este denumit în mod obișnuit protocolul de ordin superior CAN (Controller Area Network). În realitate, cel mai ordonat protocol. Modulele din sistem sunt conectate printr-o rețea în care unul dintre module este maestru (Rege). De exemplu: pentru a organiza un sistem plug & play, modulul principal determină ce dispozitiv poate fi adăugat și în ce circumstanțe, numai dispozitivele specificate pot fi adăugate. CanKingdom oferă o identificare simplă unică a dispozitivelor din sistem, folosind standardul de identificare EAN/UPC, identificatorul individual al dispozitivului este determinat de numărul de serie al dispozitivului.
CanKingdom oferă dezvoltatorului întregul potențial al CAN.
Proiectantul nu este limitat de protocolul multi-master CSMA/AMP și poate crea sisteme de management al magistralei virtuale de toate tipurile și topologii. Oferă posibilitatea de a crea module partajate fără a lua în considerare circumstanțe precum dependența de HLP și proprietățile sistemului. Proiectantul poate defini utilizarea numai a modulelor specifice, combinând astfel valorile unui sistem deschis cu avantajele unui sistem cu acces limitat și sigur.

Deoarece identificatorul din mesajele CAN nu numai că identifică mesajul, ci și controlează accesul la magistrală, numerotarea mesajelor este de o importanță esențială. Un alt factor important este identitatea structurii de date în câmpul de date, atât în ​​modulul de transmisie, cât și în cel de recepție. Introducerea micului reguli simple, acești factori sunt pe deplin controlabili, iar comunicațiile sunt optimizate pentru orice sistem. Acest lucru se face în timpul unei scurte etape de configurare în timpul inițializării sistemului. De asemenea, este posibil să includeți dispozitive care nu respectă regulile CanKingdom în sistemul CanKingdom.
CanKingdom este însoțit de documentația relevantă pentru module și sisteme.

CAL și CANopen

CAL este prescurtarea pentru "CAN Application Layer" Order sau layer of CAN applications, protocol suportat de CiA. CAL este împărțit în mai multe componente:
. CMS (CAN-based Message Specification) definește protocoale pentru transferul de date între dispozitivele CAN
. NMT (Network Management Service) definește protocoalele de pornire și oprire, detectarea defecțiunilor etc.
. DBT (Distributor Service) definește protocolul de distribuire a identificatorilor diverselor dispozitive din sistem
- Protocol CAL diferit de modelul OSI (Open Systems Interconnect (OSI) Model)
- CANopen este un subset al CAL și este construit ca un set de profiluri care nu sunt finalizate.
- CAL/CANopen este unul dintre protocoalele HLP actuale acceptate de CiA.
- Specificațiile CAL și CANopen sunt complet disponibile și acceptate de CiA

DeviceNet

Protocolul este dezvoltat de „Rockwell Automation nowadays”, definit de ODVA (Open DeviceNet Vendor Association). DeviceNet este unul dintre cele patru protocoale acceptate de CiA.

SAE J1939

J 1939 Comunicație de rețea de mare viteză de clasă C concepută pentru a sprijini funcții de control în timp real între controlerele care sunt situate fizic în diferite locații din vehicul.
Jl708/Jl587 este tipul anterior, larg răspândit de rețea de clasă B, cu capacitatea de a schimba informații simple, inclusiv date de diagnosticare, între controlere. J1939 are toate caracteristicile J1708/J1587.
J1939 folosește protocolul CAN pentru a permite oricărui dispozitiv să trimită un mesaj prin rețea atunci când magistrala este inactivă. Fiecare mesaj va include un identificator care determină prioritatea mesajului, informații despre expeditorul datelor și informațiile conținute în mesaj. Conflictele sunt evitate printr-un mecanism de arbitraj care este invocat cu transmiterea unui identificator (folosind o schemă de arbitraj sigură). Acest lucru permite ca mesajele cu cea mai mare prioritate să fie transmise cu cea mai mică întârziere, datorită accesului egal la magistrală de către oricare dintre dispozitivele din rețea.
J1939 este organizat în mai multe părți pe baza modelului (Open Systems Interconnect (OSI) Model). Modelul OSI definește șapte ordine de comunicare (straturi), fiecare reprezentând o funcție diferită. Deși există un document J1939 alocat fiecărui strat, nu toate sunt definite în mod explicit în J1939. Alte straturi îndeplinesc funcții secundare descrise în altă parte. Stratul fizic descrie interfața de comunicații electrice (o pereche de fire ecranate răsucite, care poate fi denumită și magistrală). Stratul Link descrie protocolul sau gestionează structura mesajului, accesarea magistralei și detectarea erorilor de transmisie. Stratul de aplicație definește datele specifice conținute în fiecare mesaj trimis prin rețea.
Un set complet de specificații poate fi achiziționat de la SAE, mai jos este o listă de documente
J1939 este completat de următoarele documente:
J1939 Recomandări practice prin controlul transmisiei în serie și rețeaua de comunicații ale vehiculului
J1939/11 Ordine fizică (strat) - 250k biți/s, pereche răsucită ecranată
J1939/13 Conectori de diagnosticare
J1939/21 Date layer link
J1939/31 Stratul de rețea
J1939/71 Strat de aplicare
J1939/73 Diagnosticare
J1939/81 Managementul rețelei

OSEK/VDX

OSEK/VDX este un proiect comun în industria auto. Creat ca standard industrial pentru arhitectura deschisă pentru controlerele distribuite pentru vehicule. Sistemul de operare în timp real, interfețele software și sarcinile de gestionare a rețelei sunt specificate în comun. OSEK" (Sisteme deschise și interfețele corespunzătoare pentru electronica auto.) Sisteme deschise și interfețe de informații pentru electronica auto. VDX "Whicule Distributed eXecutive"
Companii implicate în comun în dezvoltare: Opel, BMW, DaimlerChrysler, IIIT - Universitatea din Karlsruhe, PSA, Renault, Bosch, Siemens, Volkswagen.
Site oficial: www.osek-vdx.org

Sistem inteligent distribuit (SDS)

Sistemul SDS, bazat pe o magistrală pentru senzori și actuatoare inteligente, cu un proces de instalare simplificat, oferă o gamă largă de opțiuni de control I/O. Cu un cablu SDS cu 4 fire, sistemul poate fi echipat cu până la 126 de dispozitive adresabile individual. Informații suplimentare și specificații pentru SDS sunt disponibile pe site-ul pentru dezvoltatori Honeywell. SDS este unul dintre cele patru protocoale actuale acceptate de CiA.

Caracteristici comparative ale principalelor protocoale HLP
Informatii generale

DeviceNet, SDS și CAN Kingdom se bazează pe protocolul de comunicație CAN ISO 11898 și funcționează conform cerințelor specificației CAN. Fiecare modul CAN care urmează un anumit protocol poate fi conectat la o magistrală CAN urmând același protocol. În orice caz, la conectarea modulelor care funcționează pe diferite protocoale, în majoritatea cazurilor, apar probleme din cauza unui conflict în interpretarea mesajelor la nivelul aplicației. CAN Kingdom diferă de SDS și DeviceNet într-un mod fundamental: CAN Kingdom este configurat ca un nod de comunicare principal („King”) la pornire, spre deosebire de SDS și DeviceNet. O astfel de organizare face posibilă simplificarea dezvoltării unui complex de sisteme în timp real și reduce numărul necesar de module care coordonează specificațiile, adesea denumite profiluri.
SDS este eficient în conectarea dispozitivelor I/O, diferite întrerupătoare și senzori la PLC, de fapt este o conexiune între modulul principal și dispozitivele I/O la distanță.
DeviceNet este un sistem deschis în care toate modulele au drepturi egale de utilizare a magistralei, iar ordinea în care este utilizată magistrala este determinată de un mic set de instrucțiuni. Proiectantul de module al sistemului poate delega autoritatea de control al comunicațiilor altor module, cum ar fi un modul master în modul Master/Sclav predefinit, dar DeviceNet nu are capacitatea de a delega autoritatea altor module. Caracteristicile SDS care utilizează dispozitive I/O și DeviceNet în modul Master/Slave sunt similare.
Can Kingdom este un protocol axat pe sisteme de producție, conectare și control și nu acceptă profiluri pentru dispozitive digitale și analogice. Caracteristica principală a protocolului este că modulul conectat la sistem așteaptă doar instrucțiuni de la dispozitivul principal. Toate prioritățile și identificatorii CAN sunt deținute și furnizate de comandant. În timpul lansării, fiecare modul este configurat de dispozitivul principal, se determină prioritățile și identificatorii de producere și consumare a obiectelor. Dispozitivul principal este dispozitivul principal, dar numai în perioada de configurare a sistemului. Gazda nu poate fi încorporată în timpul unei sesiuni de comunicare între aplicații care rulează diferite module. Dispozitivul principal poate fi scos după configurare și verificarea completității, fiecare modul stochând instrucțiunile primite în memorie.


25.10.2012

sau, pentru că sună mai familiar diagnosticării auto - CAN bus

* Ce este CAN?

* Relația sistemelor deschise (Open System Interconnection (OSI))

* Controller Area Network (CAN)

* PrincipalprincipiiPOATE SA

* Cum arată autobuzul CAN pe exemplul mașinilor fabricate în Japonia

Parcarea de pe străzile noastre se întinerește rapid și în același timp trebuie să stăpânim și să rezolvăm noi probleme legate de diagnosticare și reparare. Din ce în ce mai des în munca de zi cu zi întâmpinați probleme de comunicare între diferitele sisteme de bord ale vehiculului. Dacă în urmă cu câțiva ani, mașini soseau pentru diagnosticare cu erori prin magistrala CAN(primul caracter din clasificarea DTC este U ) au fost oaspeți rari, dar acum este aproape o practică zilnică. Informațiile pe această temă sunt, în principiu, disponibile și sunt destul de multe, chiar foarte multe - ceea ce, pe de o parte, este bun, dar, pe de altă parte, este o anumită dificultate în găsirea informațiilor necesare. Cu acest articol, aș vrea să dau în primul rând ideea generala despre sistem POATE SA ( ) pentru cei care abia încep să se familiarizeze cu el și pentru cei care vor să înțeleagă mai profund acest lucru.


Ce s-a întâmplat
POATE SA?

retea de control - acest concept a intrat în uz după ce la începutul anilor 1980 în Robert Bosch GmbH a dezvoltat un standard de rețea industrială axat în primul rând pe combinarea diferitelor actuatoare și senzori într-o singură rețea. Una dintre primele introduceri în industria auto a fost realizată pe mai multe modele de mașini. mercedes benz în 1992. Până în acest moment, controlul electronic al funcțiilor executive a fost construit conform sistemului - o unitate de control a primit semnale electronice de la diverși senzori și, după procesarea acestora, a trimis comenzile corespunzătoare către dispozitive executive(cum ar fi pompa de combustibil, injectoare, bobine de aprindere etc...). Creșterea volumului funcțiilor de control al mașinii transferate la electronică a condus la apariția unor astfel de sisteme suplimentare precum ABS, SRS, AT, Immobilaser și altele... Combinarea acestor funcții într-un singur ECU ar duce la volumul și complexitatea excesivă a acestuia, deoarece precum și la o pierdere a fiabilității, atunci când defecțiunea unui sistem ar putea duce la pierderea controlului întregului vehicul. Prin urmare, producătorii auto au luat calea separării funcțiilor de control și a separării tuturor sistemelor în blocuri separate. Și pentru a lega toate sistemele într-un singur întreg pentru a rezolva problemele comune ale conducerii unei mașini, un standard de comunicare a venit în ajutor. CAN de la Robert Bosch GmbH iar acest lucru este din ce în ce mai utilizat în industria auto. Astăzi, aproape fiecare mașină nouă este echipată cu acest sistem.

În principiu, totul este simplu și clar, dar cum funcționează bus-ul CAN?Și pe ce se bazează principiul activității sale? Iată un exemplu de interconectare a unităților de control electronice și a dispozitivelor legate într-o singură rețea de comunicații la bord a unei mașini - orez. unu

Aici luăm în considerare numai blocurile conectate în Rețea cu fir, dar în mașinile secolului 21, transmisia fără fir a informațiilor este din ce în ce mai folosită. De exemplu, un sistem de navigație, urmărirea locației mașinii (protecție împotriva furtului), monitorizarea presiunii în anvelope, diagnosticarea de la distanță și multe altele. În viitorul apropiat, se poate aștepta ca îmbinarea fluxurilor de informații interne și externe în rețeaua de bord a vehiculelor să aducă conducerea la un nou nivel de siguranță și confort, în primul rând în domenii precum afișarea informațiilor de avertizare despre pericole. situatii pe sosele si chiar atenuarea activa a consecintelor eventualelor coliziuni.autoturisme, precum si o repartizare mai rationala a fluxurilor de trafic.

Un pic de fundal - Relația sistemelor deschise (Open System Interconnection (OSI)).


Este evident că dacă două sau mai multe microprocesoare sunt interconectate într-un sistem, atunci trebuie utilizat un protocol standard care determină modul în care datele ar trebui să fie transferate între unitățile de rețea. Cel mai comun exemplu al unui astfel de protocol este TCP/IP ( Protocolul de control al transmisiei / Protocolul Internet), care este utilizat pentru a conecta serviciile de găzduire pe Internet. predecesor TCP/IP a fost un protocol - Open System Interconnection (OSI ). Acest protocol a fost dezvoltat în 1982 de către Biroul Internațional de Standardizare.Organizația Internațională pentru Standardizare(ISO 7498-1:1994(E)). OSI Protocolul este uneori denumit modelul „șapte straturi” deoarece constă din șapte elemente independente care definesc cerințele de interconectare la diferite niveluri de interacțiune.


Aceste șapte niveluri sunt:

1) Strat de aplicare (strat de aplicație) - acest nivel determină ce aplicații (programe) au acces la rețea. Exemple sunt e-mailul, transferul de fișiere, terminalele de acces la distanță și browserele web.

2) Stratul de prezentare a datelor (stratul de prezentare) - acest nivel definește lucruri precum standarde pentru compresia și criptarea datelor.

3) Stratul de transfer de date (strat de transport) - acest nivel oferă standarde pentru transferul de date între destinații, efectuează controlul erorilor și securitate.

4) Stratul de rețea (stratul de rețea) - acest nivel este responsabil pentru rutarea traficului de date din rețea.


5) Nivelul canalelor de comunicare (Stratul de legătură de dater) - acest strat asigură sincronizarea transmisiei datelor și controlul erorilor.

6) Nivelul de control asupra sesiunilor de comunicare (stratul de sesiune) - acest strat standardizează începutul și sfârșitul sesiunilor de comunicare între diferite aplicații și blocuri de rețea.

7) Stratul fizic (strat fizic) - acest nivel definește standardele caracteristici fizice dispozitivele din rețea, inclusiv tipurile de conexiuni și conectori, caracteristicile electrice ale cablurilor, nivelul de tensiune, puterea curentului etc.

Dar sarcinile rezolvate prin protocol OSI nu a îndeplinit pe deplin nevoile electronicii auto și, ca urmare, inginerii Robert Bosch GmbH a fost dezvoltat, în elaborarea protocolului OSI , protocol special POATE SA , care a definit standardele pentru straturile fizice și de legătură de date ale modelului OSI în siliciu pentru a realiza comunicația în serie între două sau mai multe dispozitive.

Controller Area Network (CAN)

CAN a fost dezvoltat de Robert Bosch GmbH pentru industria auto la începutul anilor 1980 și lansat oficial publicului în 1986. Această dezvoltare CAN de la Bosch a fost adoptat ca standard ISO (ISO 11898 ), în 1993 redenumit în CAN2.0A și sa extins în 1995 pentru a permite identificarea mai multor dispozitive de rețea în CAN2.0B. De obicei, magistrala CAN conectează module (sau noduri) la o rețea folosind două fire, perechi răsucite. Multe companii și nu numai companiile de automobile implementează POATE SA protocol în dezvoltarea lor pentru interconectarea diferitelor dispozitive controlate electronic. Într-o clasificare informală, dispozitive legate de protocol POATE SA și având procesoare din serie MPC 5xx, numit TouCAN module; având procesoare din serie MPC 55xx sunt numite module FlexCAN. POATE SA este un protocol serial, multi-trimitere, multicast, ceea ce înseamnă că atunci când magistrala este liberă, orice nod poate trimite un mesaj (multi-sender) și toate nodurile pot primi și răspunde la mesaj (multicast). Nodul care inițiază mesajul se numește transmițător, orice nod care nu trimite mesajul se numește receptor. Tuturor mesajelor li se atribuie prioritati statice, nodul de transmisie ramane emitator pana cand magistrala devine inactiva sau pana cand apare in retea un mesaj de la un alt nod cu o prioritate mai mare, proces care determina prioritatea mesajelor si se numeste arbitraj. Mesaj CAN buspoate conține până la 8 octeți de date. Identificatorul de mesaj descrie conținutul datelor și este utilizat de nodurile receptoare pentru a determina destinația rețelei (cu alte cuvinte, nodul destinație căruia îi este adresat mesajul). În rețelele scurte (≤ 40 m), ratele de mesaje pot ajunge până la 1 Mbps. Distanțele mai mari ale rețelei reduc viteza de transmisie disponibilă, de exemplu la 125 Kbps pe o rețea cu o lungime de până la 500 m. CAN de mare viteză ( CAN de mare viteză ) rețeaua este considerată o rețea cu o rată de transfer de date mai mare de 500 Kbps.

Principiile de bază ale CAN


Detalii specificații POATE SA protocoalele sunt complet descrise în Robert Bosch GmbH , “ Specificația CAN 2.0”, 1991. Familiarizați-vă cu documentul în format PDF posibil la următoarea adresăhttp://esd.cs.ucr.edu/webres/can20.pdf . În cele ce urmează, voi oferi o descriere cât mai scurtă posibil a modului în care datele sunt transmise prin CAN, cum sunt structurate mesajele CAN și cum sunt gestionate erorile de transmitere a mesajelor.

Există patru tipuri de mesaje CAN sau cadre (cadre): cadru de date ( cadru de date ), cadru șters (cadru la distanță ), cadru eronat (Cadru de eroare ) și cadru de supraîncărcare (Cadrul de supraîncărcare ).

cadru de date - mesaj CAN standard, transmite date de la transmițător către alte noduri de rețea.

cadru la distanță - un mesaj difuzat de emițător pentru a solicita date de la un anumit nod al rețelei.

Cadru de eroare -poate fi transmis de orice nod care detecteaza o eroare in retea.

Cadrul de supraîncărcare -utilizat ca o solicitare pentru a oferi o pauză suplimentară între datele primite ( cadru de date ) sau cereri de date ( cadru la distanță).

Diferențele dintre Cadrele de date pentru standardele CAN 2.0A și CAN 2.0B sunt ilustrate mai jos, - fig. 2

Diferența dintre formate CAN 2.0 A și CAN 2.0B sunt că cadrul de date pentru CAN2.0B acceptă atât identificatorul standard de cadru de date - 11 biți, cât și identificatorul de cadru de date extins - aproximativ 29 de biți. Cadrele în format standard și extins pot fi transmise cu ușurință pe rând pe aceeași magistrală și chiar au un identificator numeric echivalent.

În acest caz, cadrul standard va avea o prioritate mai mare,- orez. 3


Descrierea cadrului de mesaj CAN 2.0A


începutul mesajului (Începutul cadrului (SOF)

ID ( Identificator ) - 11 biți, identificator unic, indică prioritatea.

Solicitare de transfer de la distanță () - 1 bit, dominant în mesaj și recesiv în cererea de transmitere a mesajului.

Rezervat ) - 2 biți, trebuie să fie dominant.

Lungimea codului de date (Cod de lungime a datelor (DLC)

Câmp de transfer de date (câmp de dateDLC.

Verificarea redundanței ciclice (CRC)) - 15 biți.

Separator CRC

Confirmare ( Confirmare (ACK)

delimitator ACK - 1 bit, trebuie să fie recesiv.

Mesaj de final (Sfârșitul cadrului (EOF)) - 7 biți, trebuie să fie recesivi, - orez. 4


Descrierea cadrului de mesaj CAN 2.0B

începutul mesajului (Începutul cadrului (SOF) ) - 1 bit, trebuie să fie dominant.

Identificator de format standard și extins ( Identificator ) - 11 biți, identificator unic, corespunde bazei ID în format extins.

Identificator de format extins (Identificator - Format extins ) - 29 de biți, constă din 11 biți ai bazei ID și extins pe 18 biți ID .

Solicitare de transfer de la distanță (Solicitare de transmisie la distanță (RTR)) formate standard și extinse - 1 bit, dominant în mesaj și recesiv în cererea de transmitere a mesajului. În formatul standard, 11 biți ai identificatorului urmează bitului RTR.

Înlocuirea unei cereri de la distanță (Substituila distantaCerere ( SRR) ). Pentru formatul extins - 1 bit, trebuie să fie recesiv. SRR transmis în formate extinse de mesaje la poziția de biți RTR într-un mesaj standard. În arbitrajul dintre mesajele standard și extinse, SRR recesiv acordă prioritate mesajelor standard.

Camp IDE– pentru formatele standard și extinse - 1 bit, trebuie să fie recesiv pentru formatul extins și dominant pentru standard.

Rezervă ( Rezervat r0) pentru formatul standard - 1 bit, trebuie să fie dominant.

Rezervă ( Rezervat r1, r0) pentru format extins - 2 biți, trebuie să fie recesiv.

Lungimea codului de date ( Cod de lungime a datelor (DLC) ) - 4 biți, număr de octeți de date (0-8).

Câmp de transfer de date ( câmp de date ) - de la 0 la 8 octeți, dimensiunea este definită în câmp DLC.

Verificați codul de redundanță ciclică ( Verificarea redundanței ciclice (CRC) ) ) - 15 biți.

delimitator CRC - 1 bit, trebuie să fie recesiv.

Confirmați (ACK ) ) - 1 bit, emițătorul trimite recesiv; destinatarul confirmă dominant.

delimitator ACK - 1 bit, trebuie să fie recesiv.

Mesaj de final ( Sfârșitul cadrului (EOF ) ) - 7 biți, trebuie să fie recesivi.

Cadrul de date CAN

Cadrul de date CAN constă din șapte câmpuri: Început cadru ( SOF ), arbitraj, control, date, round-robin, verificare redundanță(CRC), confirmare (ACK) și sfârșit de cadru (EOF ). Biți de mesaj POATE SA etichetat ca „dominant” (0) sau „recesiv” (1). Camp SOF constă dintr-un bit dominant. Toate nodurile de rețea așteaptă sincron permisiunea de a trimite mesaje și încep să trimită în același timp. Schema de arbitraj determină care dintre nodurile care încearcă să transmită mesaje are prioritate maximă și va controla efectiv magistrala.


Arbitraj

Câmpul de arbitraj al mesajului POATE SA constă dintr-un identificator de 11 sau 29 de biți și un bit de transmisie la distanță ( RTR ). Schema de arbitraj CAN se numește „ control media cu acces multiplu și detectare a coliziunilor” sau CSMA/CD , care garantează căcel mai important mesaj cu cea mai mare prioritate va fi transmis mai întâi în întreaga rețea. Prioritatea mesajului este determinată de valoarea numerică a identificatorului din câmpul de arbitraj, câmpul cu cea mai mică valoare numerică are cea mai mare prioritate. Arbitrajul inteligent și nedistructiv rezolvă conflictele dintre emițătorii concurenți. Aceasta înseamnă că autobuzul poate fi considerat a acționa ca o poartă AND ( SI poarta ). Dacă orice nod scrie un atribut dominant (0) în rețea, atunci fiecare nod citește bitul dominant, indiferent de atribuirea lui dată de nodul de transmisie. Fiecare nod de transmisie citește întotdeauna răspunsul pentru fiecare bit transmis. Dacă un nod transmite un bit de cerere recesiv pentru a trimite un mesaj și primește un bit dominant pentru a citi mesajul, acesta încetează imediat transmiterea.

Prioritatea arbitrajului rețelei este ilustrată mai jos, unde al treilea nod are cea mai mare prioritate și primul are cea mai scăzută, - orez. cinci

Bit RTR activat pentru a face distincția între mesajele de trimis și solicitările de la distanță pentru a primi mesaje. În mesajele standard pentru transmitere ( Data Frame ) bit RTR trebuie să fie dominantă, iar în solicitările de la distanță de a primi mesaje ( cadru la distanță ) trebuie să fie recesiv.

Câmp de control și câmp de date din mesaj (câmpuri de control și date)

Câmpul care controlează lungimea codului de date ( DLC ) este format din 6 biți (dintre care sunt utilizați doar cei 4 biți mai puțin semnificativi), ei indică cantitatea de date din mesaj. Deoarece într-un mesaj pot fi trimiși doar până la 8 octeți de date, câmpul DLC poate lua valori în intervalul de la 000000 la 000111. Datele de transmis sunt conținute doar în câmpul de date. Cel mai semnificativ octet este transmis mai întâi ( Octet cel mai semnificativ (MSB) ) din octeți de date.

Eroare de manipulare

În protocolul CAN implementat cinci niveluri de detectare a erorilor. La nivel de mesaj, se efectuează o verificare ciclică a redundanței ( Verificarea redundanței ciclice (CRC) ), verificări ale mesajelor și confirmare obligatorie a verificărilor ( Confirmare (ACK) ). Bitul de verificare a nivelului constă dintr-un monitor și o umplere.

Erorile de redundanță ciclică sunt detectate folosind codul CRC 15 biți, calculati de transmițător din conținutul mesajului. Fiecare destinatar care primește mesajul recalculează codul CRC și îl compară cu valoarea transmisă. Discrepanța dintre aceste două calcule face ca indicatorul să fie setat ( steag ) erori. Mesajele care trebuie verificate care vor seta steag-ul de eroare sunt dacă receptorul detectează un bit invalid în delimitator CRC , delimitator ACK , la sfârșitul mesajului EOF sau într-un spațiu de separare a mesajelor de 3 biți. În cele din urmă, fiecare nod receptor scrie bitul dominant în celula delimitătoare ACK , care este apoi citit de nodul care a trimis mesajul. Și dacă primirea mesajului de către destinatar nu este confirmată (poate pentru că nodul de primire a încetat să funcționeze), atunci steag-ul de eroare de confirmare este setat ( ACK).

La nivel de biți, am observat deja că fiecare bit transmis este citit din nou de către expeditorul acestui mesaj în timp ce se verifică confirmarea de primire a mesajului transmis de către receptor. Dacă valoarea monitorizată diferă de valoarea trimisă, atunci a fost detectată o eroare la nivel de bit. În plus, erorile la nivel de biți sunt detectate folosind „inserții”: după cinci biți identici consecutivi care sunt transmisi într-un mesaj, urmează o „inserție”, un bit de polaritate opusă este inserat de către transmițător în fluxul de biți transmisi („ biții de inserare sunt inserați în mesajul din câmp Câmpul SOF în CRC ). Destinatarii verifică automat mesajul pentru „inserții”. Dacă oricare dintre nodurile rețelei de recepție detectează șase biți identici consecutivi în mesajul primit, atunci este înregistrată o eroare (absența unei „inserții”). Pe lângă detectarea erorilor, „inserțiile” asigură că există suficiente terminații non-nule în fluxul de biți ( neîntoarcerea la zero (NRZ) ) pentru a-l menține sincronizat.

Mesaj de eroare (cadru de eroare CAN)

Dacă nodul de transmisie sau de recepție detectează o eroare, va anula imediat mesajul curent primit sau transmis. Mesajul de eroare, numit „steagul” de eroare, este compus din șase biți dominanti și un delimitator de mesaje de eroare de opt biți recesivi. Deoarece acest șir de biți încalcă regula „inserții”, toate celelalte noduri trimit și un mesaj de eroare. După un număr critic de erori detectate, nodul se auto-închide în cele din urmă. Fiabilitatea, în special în producția și electronica auto în care se utilizează tehnologia CAN, necesită ca rețeaua să poată separa erorile aleatorii (datorite supratensiunii, zgomotului sau altor cauze temporare) de cele permanente care provoacă defecțiunea nodului din cauza defectelor echipamentelor. . Prin urmare, nodurile stochează și țin evidența numărului de erori detectate. Un nod poate fi într-unul din trei moduri, în funcție de numărul de erori remediate:

Dacă numărul de erori comise în fiecare buffer de transmisie sau recepție al nodului corespunzător este mai mare decât zero și mai mic de 128, nodul este considerat „activ în eroare” ( eroare activă ), indicând faptul că, deși nodul rămâne complet funcțional, a fost întâlnit cel puțin o eroare.

Dacă numărul de erori înregistrate este între 128 și 255, atunci nodul intră în „pasiv cu erori” ("eroare pasiva" ) modul. În modul „eroare pasiv”, nodul va transmite cu o rată mai mică, trimițând 8 biți recesivi înainte de a trimite din nou mesajul, recunoscând că magistrala este liberă.

Dacă numărul de erori înregistrate este mai mare de 255, atunci nodul intră în modul „offline” ( autobuzul oprit ) oprindu-se singur.

O eroare la recepție adaugă 1 la numărul total de erori, o eroare la transmisie adaugă 8 la numărul total de erori de numărat. Mesajele ulterioare fără erori scad treptat numărul de erori cu 1, pentru fiecare mesaj fără erori. . Dacă numărul total de erori raportate revine la zero, nodul revine la funcționarea normală. Nodul în modul în jos autobuzul oprit poate trece la eroare activă după 128 de intrări în rețea de 11 biți recesivi consecutivi care au fost monitorizați. Mesajul este considerat fără erori dacă nodul de transmisie nu a găsit erori în el până în câmp EOF . Mesajele corupte sunt retrimise de îndată ce autobuzul devine liber.

Solicitarea de date de la un anumit nod de rețea (The CAN Remote Frame)

Un nod care are nevoie de date de la un alt nod de rețea poate solicita transferul acestor date trimițând cererea corespunzătoare de date ( cadru la distanță ). De exemplu, microprocesorul de închidere centralizată de pe mașina dvs. trebuie să cunoască poziția selectorului de transmisie de la ECU de transmisie (dacă este în poziția „parcare”). Structura cererii de date este similară cu structura unui mesaj standard, doar fără câmpul de date ( câmp de date ) și cu un recesiv Bit RTR.

Solicitarea unei pauze suplimentare între datele primite și spațiul liber între mesaje (Overload Frames și Interframe Space)

Dacă orice nod de rețea primește mesaje mai repede decât le poate procesa, atunci va fi generată o solicitare pentru a oferi o pauză suplimentară între datele primite ( Cadre de supraîncărcare ) pentru a oferi timp suplimentar între datele primite sau solicitările de primire a mesajelor ( cadru la distanță ). Similar cu mesajul de eroare, Cadrul de supraîncărcare are două câmpuri cu biți: steag un delimitator de supraîncărcare format din șase biți dominanti și un delimitator de supraîncărcare format din opt biți recesivi. Spre deosebire de mesajele de eroare, numărul total Cadrele de supraîncărcare nu sunt menținute.

Spațiul dintre mesaje este format din trei biți recesivi, la fel ca timpul de inactivitate al magistralei dintre mesaje sau cererile de transfer de la distanță. În timpul expirării, niciun nod nu are voie să inițieze o transmisie (dacă bitul dominant este detectat în timpul expirării, atunci Cadrul de supraîncărcare vor fi generate). Timpul de inactivitate al magistralei durează până când nodul are ceva de transmis, iar când începe transmisia, atunci apariția bitului dominant pe magistrală semnalează începutul transmiterii mesajului.

POATE SA oferă o soluție de rețea robustă, simplă și flexibilă pentru aplicații de producție, auto și multe alte aplicații.Principalul dezavantaj al protocolului CAN- că întârzierea mesajului nu este sigură (datorită existenței Cadre de eroare, Cadre de supraîncărcare și retransmisii), iar o creștere a latenței duce la o creștere a traficului de rețea. În general, utilizarea autobuzului nu trebuie să depășească 30% din capacitatea maximă a magistralei și să se asigure că mesajele cu prioritate scăzută nu au întârzieri inacceptabile. Utilizarea autobuzului este definită ca împărțirea a două cantități -numărul total de biți utilizați pentru transmisie impartit de numărul maxim total disponibil pentru a transmite bițiși se calculează după cum urmează:

Pasul 1 - Este selectată o unitate de timp ≥ cel mai lent mesaj periodic înregistrat în rețea (de obicei, 1 secundă).

Pasul 2 - Toate mesajele periodice sunt determinate.

Pasul 3 - La fiecare dintre aceste mesaje de aproximativ aceeași dimensiune, se adaugă 47 de biți de supraîncărcare (dimensiunea câmpurilor de date de supraîncărcare este SOF + Arbitraj + RTR + Control + CRC + Acknowledgement + EOF +

Spațiu intercadru = 1 + 11 + 1 + 6 + 16 + 2 + 7 + 3 = 47 de biți).

Pasul 4 - Calculați numărul de biți utilizați în mesaje înmulțind dimensiunea mesajului în biți cu numărul de transmisii efectuate pe unitatea de timp.

Pasul 5 - Însumarea tuturor biților utilizați în mesajele transmise pentru a estima cantitatea totală de trafic de rețea. Înmulțiți această valoare cu un factor de siguranță de 1,1 pentru a obține cea mai defavorabilă predicție a traficului de rețea.

Pasul 6 - În cele din urmă, împărțiți numărul total de biți utilizați pentru transmisie la numărul total maxim disponibil pentru transmiterea de biți (de exemplu, 125 Kbps sau 500 Kbps ori unitatea de timp) pentru a obține procentul estimat de utilizare a magistralei, - orez. 6


Protocoale declanșate în timp


Pentru controlul rețelei în timp real, ar fi de dorit să se implementeze un protocol de comunicație care să asigure că mesajele sunt cronometrate la extreme, indiferent de încărcarea magistralei. Un exemplu de astfel de protocol care controlează nivelul temporal de comunicare Data CAN este „CAN declanșat în timp” sau TTCAN (ISO 11898-4). TTCAN mesajele au două tipuri speciale numite „ferestre de timp” ( fereastra de timp ): ferestre de timp privilegiate ( ferestre de timp exclusive ), și ferestre de timp de arbitraj ( ferestre de timp arbitrare). Ferestre de timp exclusive ataşate mesajelor speciale care sunt transmise periodic. În acest fel, Ferestre de timp exclusive nu concurați pentru accesul cu autobuzul. Arbitrarea ferestrelor de timp sunt folosite pentru mesaje care nu au limite de timp stricte.

Arbitrarea ferestrelor de timp ca mesajele normale POATE SA , concurează pentru accesul cu autobuzul pe baza priorității prin arbitraj. CAN declanșat în timp protocol, necesită un „nod master” ( nodul principal ) care difuzează periodic un semnal orar al rețelei (numit oră globală ( ora globala )) într-un mesaj special de informare. Pentru a crește toleranța la erori, rețeaua ar trebui să aibă mai multe noduri master potențiale. Dacă nodul master este în jos (nu a fost detectat niciun mesaj special de informare), alte noduri master potențiale concurează pentru statutul de „nod master” prin arbitraj, iar nodul cu cea mai mare prioritate devine noul „nod master”. După aceea, noul nod master începe să transmită mesaje de informații speciale - ora globala. CAN declanșat în timp protocolul nu transmite mesaje corupte și nici nu provoacă cadre de eroare.


Pentru protocolul TTCAN există un protocol concurent FlexRay , dezvoltat de un consorțiu de producători și furnizori de automobile. Mesaj de comunicare (cadru) FlexRay constă din părți „statice” și „dinamice” inițiate periodic. Un segment static este format din aceeași lungime de intervale de timp corespunzătoare nodurilor conectate la rețea. Fiecare nod își transmite mesajele sincron în slotul său rezervat. Segmentul static trimite, de asemenea, un cadru „sincronizare” pentru a oferi o variabilă globală ( baza de timp ) pentru rețea. Spre deosebire de POATE SA , nu există arbitraj pentru autobuz. Un fragment dinamic este, în esență, un mecanism de „interogare” în care fiecărui nod i se oferă posibilitatea de a pune pe magistrală un eveniment declanșat sau un mesaj asincron în ordinea priorității, folosind un mecanism de sincronizare „mini-slotting”. Pentru a îmbunătăți toleranța la erori, nodurile de rețea folosesc protocolul FlexRay , poate fi conectat la două autobuze sau canale în același timp.

Ei bine, în principiu, toate informațiile de bază despre protocol POATE SA iar acum un pic despre cum arată CAN cauciuc pe exemplul mașinilor fabricate în Japonia. Vreau să observ imediat că, fără un echipament de diagnosticare adecvat, este imposibil să se diagnosticheze și să se repare defecțiunile. POATE SA anvelopele sunt disponibile într-o gamă foarte limitată. Totul se rezumă la verificarea integrității fizice a firelor, verificarea stării conectorilor, verificarea rezistenței cablajului și rezistor terminal , verificând nivelul corespunzător de tensiune pornit CAN scăzut și CAN ridicat linii. Utilizarea echipamentelor dealer-ului în diagnosticare nu va face decât să faciliteze verificarea și să restrângă cercul de depanare, cu foarte mare reticență, producătorii auto permit contactul cu software, proprietatea sa intelectuală. În cazul unor probleme la nivel de software, este posibilă doar reprogramarea sau înlocuirea computerului corespunzător.

exemplu CAN anvelope auto Nissan 2007 - Orez. 7

Administrator

Necesitatea conexiunii în serie în mașini

Acesta este următorul nostru articol tradus din ciclul dedicat magistralei CAN, care dezvăluie puțin mai detaliat cum este aranjat și funcționează magistrala CAN. original englezesc.

Multe mașini au deja un numar mare de sisteme electronice de control. Creșterea componentelor electronice pentru automobile este parțial rezultatul dorinței consumatorului de a spori siguranță și confort și, parțial, al cererilor guvernamentale pentru un control mai bun al emisiilor și un consum mai mic de combustibil. Comenzile care îndeplinesc aceste cerințe sunt deja utilizate de ceva timp în domeniile controlului motorului, cutiei de viteze și ale accelerației, precum și în sistemele de frânare antiblocare (ABS) și controlul accelerației (ASC).

Complexitatea funcțiilor implementate în aceste sisteme necesită schimbul de date între ele. Sistemele tradiționale comunică folosind linii de semnal dedicate, dar acest lucru devine din ce în ce mai dificil și mai costisitor pe măsură ce funcțiile de control devin mai complexe. În cazul sistemelor de control complexe (cum ar fi Motronic), în special, numărul de conexiuni nu mai poate fi crescut.

În plus, sunt dezvoltate o serie de sisteme care implementează funcții care acoperă mai mult de un dispozitiv de control. De exemplu, ASC necesită interacțiunea sistemului de management al motorului și a controlului accelerației (injecție) pentru a reduce cuplul atunci când roata motoare alunecă. Un alt exemplu de funcții care implică mai mult de o unitate de control este controlul electronic al transmisiei, unde ușurința de schimbare a treptelor poate fi îmbunătățită prin reglarea scurtă a timpului de aprindere.

Dacă luăm în considerare și evoluțiile viitoare care vizează optimizarea generală a vehiculelor, atunci este necesar să depășim limitările care există datorită dispozitive convenționale management. Acest lucru se poate face numai prin conectarea în rețea a componentelor sistemului folosind o magistrală de date serială. Bosch a dezvoltat în acest scop sistemul „Controller Area Network” (CAN), care de atunci a fost standardizat la nivel internațional (ISO 11898) și a fost „turnat în piatră (în siliciu)” de mai mulți producători de semiconductori.

Folosind CAN, stațiile peer-to-peer (cu un singur nivel) (controlere, senzori și actuatoare) sunt conectate printr-o magistrală serială. Autobuzul în sine este un circuit cu două fire echilibrat sau asimetric care poate fi ecranat sau neecranat. Parametrii electrici de transmisie fizică sunt, de asemenea, specificați în standardul ISO 11898. Cip-uri adecvate pentru driverul de magistrală sunt disponibile de la o gamă largă de producători.

Protocolul CAN, corespunzător stratului de legătură de date din modelul de referință ISO/OSI, satisface cerințele auto pentru aplicațiile actuale ale vehiculelor. Spre deosebire de structurile arbore de cablu, un protocol de rețea detectează și corectează erorile de transmisie cauzate de interferența electromagnetică. Avantajele suplimentare ale unei astfel de rețele sunt ușurința de configurare a întregului sistem și posibilitatea de diagnosticare centrală.

Scopul utilizării CAN în vehicule este de a permite oricărei stații să comunice cu oricare alta fără a impune prea multă sarcină computerului controler.

Utilizarea rețelei CAN în mașini

Există patru aplicații principale pentru comunicațiile seriale în vehicule, fiecare cu cerințe și scopuri diferite.

Controlere de rețea pentru sincronizarea motorului, transmisiei, șasiului și frânelor. Ratele de transfer de date sunt în intervalul - tipic pentru sistemele în timp real - de la 200 kbps la 1 Mbps.
Componente de rețea pentru electronica generală și electronica șasiu care fac mașina mai confortabilă. Exemple de astfel de aplicații multiplex sunt controlul luminii, aerul condiționat și închiderea centralizată și reglarea scaunului și a oglinzilor. O importanță deosebită trebuie acordată aici costurilor componentelor și cerințelor de cablare. O rată de date tipică este de aproximativ 50 kbps.
În viitorul apropiat, comunicația serială va fi folosită și în domeniu comunicatii mobile pentru a lega componente precum radiouri auto, telefoane auto, ajutoare de navigare etc. la un panou de control central, mai ergonomic. Funcțiile definite în Proiectul Prometheus, cum ar fi comunicarea de la vehicul la vehicul, se vor baza în mare măsură pe comunicarea în serie.
În prezent, CAN este utilizat pentru primele trei aplicații, dar pentru diagnosticare, o interfață conform ISO 9141 este soluția preferată.

Aplicații industriale ale rețelei CAN

Compararea cerințelor pentru sistemele de magistrală pentru vehicule și sistemele de magistrală industrială dezvăluie asemănări izbitoare: costul scăzut, performanța în medii electrice dure, capacitatea ridicată în timp real și ușurința de utilizare sunt la fel de dorite în ambele sectoare.

Utilizarea standard a CAN în Mercedes-Benz „S-Class” și adoptarea CAN de către producătorii auto comerciali din SUA pentru transfer rapid(până la 1 Mbps) i-a făcut pe utilizatorii industriali să ciulească urechile. Nu numai producătorii de mașini și echipamente agricole și marine mobile și staționare au ales CAN, ci și alegerea producătorilor de echipamente medicale, mașini textile, precum și echipamente speciale și comenzi pentru lift. Un sistem de magistrală serială este deosebit de potrivit pentru dispozitivele I/O „inteligente” în rețea, precum și pentru senzori și dispozitive de acționare dintr-o mașină sau instalație.

Industria mașinilor textile este unul dintre pionierii CAN. Un producător și-a echipat războaiele cu sisteme de control modulare care comunică în timp real prin rețele CAN încă din 1990. Între timp, mai mulți producători de mașini textile au fuzionat în „CAN Textile Users Group”, care la rândul său este membru al grupului internațional de utilizatori și producători „CAN in Automation”. Există cerințe similare pentru mașinile textile din mașinile de ambalat și pentru mașinile pentru producția și prelucrarea hârtiei.

În SUA, un număr de întreprinderi folosesc CAN în liniile de producție și mașini-unelte ca sistem intern anvelope pentru senzori de rețea și actuatoare în interiorul liniei sau direct pe mașină. Unii utilizatori, cum ar fi sectorul ingineriei medicale, au optat pentru CAN deoarece aveau cerințe de securitate deosebit de stricte. Probleme similare se confruntă și de alți producători de mașini și echipamente cu cerinte specialeîn ceea ce privește siguranța (ex. roboți și sisteme de transport).

Pe lângă fiabilitatea ridicată a transmisiei, costurile scăzute de conectare pe stație sunt un alt argument decisiv pentru CAN. În aplicațiile în care prețul este critic, este esențial ca cipurile CAN să fie disponibile de la o varietate de producători. Compactitatea altor cipuri de control este, de asemenea, o considerație importantă, de exemplu în domeniul aparatelor de comutare de joasă tensiune.

Cum funcționează rețelele CAN

Principiile schimbului de date

Când datele sunt transmise prin CAN, nicio stație nu este adresată, ci în schimb conținutul mesajului (cum ar fi turația motorului sau temperatura) este identificat printr-un identificator care este unic în întreaga rețea. Identificatorul determină nu numai conținutul, ci și prioritatea mesajului. Acest lucru este important pentru alocarea autobuzelor atunci când mai multe stații concurează pentru accesul cu autobuzul. Dacă CPU-ul unei anumite stații dorește să trimită un mesaj către una sau mai multe stații, trimite datele și identificatorii acestora către cipul CAN alocat (starea gata). Asta este tot ce trebuie să facă CPU pentru a iniția comunicarea. Mesajul este format și transmis folosind un cip CAN. De îndată ce cipul CAN primește o alocare de magistrală (starea „Trimitere mesaj”), toate celelalte stații din rețeaua CAN devin destinatarii acestui mesaj (starea „Primire mesaj”). Fiecare stație din rețeaua CAN, după ce a primit corect mesajul, efectuează un test de acceptare (test de primire) pentru a determina dacă datele primite se aplică acestei stații (starea „Selectare”). Dacă datele sunt relevante pentru stația corespunzătoare, acestea sunt procesate (Stare „Acceptat”), în caz contrar, sunt ignorate. Un grad ridicat de flexibilitate a sistemului și a configurației este atins printr-o schemă de adresare orientată pe conținut. Este foarte ușor să adăugați stații la o rețea CAN existentă fără a face modificări hardware sau software la stațiile existente, atâta timp cât noile stații sunt receptori puri. Întrucât protocolul de comunicație nu necesită adrese fizice de destinație pentru componente individuale, acesta acceptă conceptul de electronică modulară și, de asemenea, permite recepția multiplă (difuzare, multicast) și sincronizarea proceselor distribuite: măsurătorile necesare ca informații de mai multe controlere pot fi transmise prin rețeaua în așa fel încât fiecare controler să nu fie obligat să aibă propriul senzor.



1. Transmiterea transmisiei și filtrarea de intrare de către nodurile CAN pentru a determina dacă datele sunt potrivite pentru un anumit nod

Verificare nedistructivă pe biți:

Pentru ca datele să fie prelucrate în timp real, acestea trebuie transmise rapid. Acest lucru necesită nu numai o legătură fizică de date de până la 1 Mbps, dar necesită și o alocare rapidă a magistralei atunci când mai multe stații doresc să trimită mesaje în același timp.



2. Principiul verificării nedistructive pe biți (evaluare, citire)

În timp real, urgența (în așteptarea) a mesajelor din rețea poate varia foarte mult: o dimensiune care se schimbă rapid (de exemplu, sarcina motorului) trebuie transmisă mai frecvent și, prin urmare, cu întârzieri mai scurte decât alte măsurători (de exemplu, temperatura motorului) care se modifică relativ lent. Prioritatea la care un mesaj este transmis față de un alt mesaj mai puțin urgent este determinată de identificatorul mesajului corespunzător. Prioritățile sunt stabilite în timpul proiectării sistemului ca valori binare corespunzătoare și nu pot fi modificate dinamic. Identificatorul cu cel mai mic număr binar are cea mai mare prioritate.

Conflictele de acces la magistrală sunt rezolvate prin verificarea bit cu bit a fiecărei stații participante ale identificatorilor recepționați prin observarea (citirea) nivelului magistralei bit cu bit. Conform mecanismului „cablat și” prin care starea dominantă (0 logic) suprascrie starea recesivă (1 logic), disputa pentru alocarea magistralei este pierdută de toate aceste stații cu transmisie recesivă și ceas dominantă (așteptați ca 0 să primească). Toți „perdanții” devin automat destinatarii mesajului cu cea mai mare prioritate și nu retransmit până când magistrala este din nou disponibilă.

Eficiența distribuției anvelopelor:

Eficiența unui sistem de distribuție cu magistrală este determinată în primul rând de posibila utilizare a unei magistrale seriale pentru acel sistem. Pentru a aprecia ce sisteme de magistrală sunt potrivite pentru ce aplicații, literatura include o metodă de clasificare a procedurilor de alocare a magistralei. De obicei distingem între următoarele clase:

Distributie dupa un program fix. Alocarea se face secvenţial fiecărui participant pe durata maximă, indiferent dacă acest participant are nevoie sau nu de autobuz în momentul de faţă (exemple: celulă cu simbol sau transfer cu simbol).
Alocarea anvelopelor în funcție de nevoi. Autobuzul este atribuit unui membru pe baza cererilor de transfer restante, adică sistemul de alocare ia în considerare doar participanții dispuși să transfere (exemple: CSMA, CSMA/CD, zbor de control, buclă sau verificare biți). Pentru CAN, alocarea magistralei este negociată exclusiv între mesajele care așteaptă să fie transmise. Aceasta înseamnă că procedura definită de CAN este clasificată ca alocare în funcție de nevoie.

Un alt mijloc de evaluare a eficacității sistemelor de inspecție (evaluare) a anvelopelor este metoda de acces la autobuz:

Acces nedistructiv cu autobuzul. Cu metode de acest tip, autobuzul este alocat unei singure stații, fie imediat, fie într-un anumit timp după un acces la autobuz (de către una sau mai multe stații). Acest lucru asigură că fiecare acces la autobuz de către una sau mai multe stații are ca rezultat o alocare unică a magistralei (exemple: locația simbolului, transferul jetonului, bucla, verificarea biților.
Distribuție distructivă a anvelopelor. Accesul simultan la magistrală de către mai mult de o stație are ca rezultat întreruperea tuturor încercărilor de transmisie și, prin urmare, nu există o alocare reușită a magistralei. Alocarea magistralei poate necesita mai mult de un acces la magistrală, numărul de încercări înainte de alocarea cu succes a magistralei este pur o valoare statistică (exemple: CSMA/CD, Ethernet). Pentru a gestiona toate cererile de transmisie a rețelei CAN respectând în același timp limitele de latență la cea mai mică rată de date posibilă, protocolul CAN trebuie să implementeze o metodă de alocare a magistralei care să asigure că există întotdeauna o alocare unică a magistralei, chiar dacă există accese simultane de magistrală de la diferite stații. .

Metoda de verificare bit cu bit, folosind identificatorul mesajelor care urmează să fie transmise, rezolvă în mod unic orice coliziune între mai multe stații care doresc să transmită și o face în intervale de 13 (format standard) sau 33 (format extins) de biți la cel mai recent pentru orice perioadă de acces la pneu. Spre deosebire de verificarea bazată pe mesaje utilizată de metoda CSMA/CD, această metodă nedistructivă de rezolvare a conflictelor asigură că lățimea de bandă a magistralei nu este utilizată fără a transmite informații utile.

Chiar și în situațiile în care magistrala este aglomerată, asocierea priorității de acces la magistrală cu conținutul mesajului se dovedește a fi un atribut de sistem util în comparație cu protocoalele existente CSMA/CD sau token (token): în ciuda lățimii de bandă insuficiente a magistralei, toate cererile de transfer restante sunt procesate în ordonați importanța lor pentru întregul sistem (după cum este determinată de prioritatea mesajului).

Lățimea de bandă disponibilă este utilizată în mod eficient pentru a transfera date utile, deoarece „lacunele” în alocarea magistralei sunt păstrate foarte mici. Căderea întregului sistem de transmisie din cauza supraîncărcării, care se poate întâmpla cu protocolul CSMA/CD, nu este posibilă cu CAN. În acest fel, CAN permite implementarea unui acces rapid la magistrală, definit de trafic, care este nedistructiv datorită verificării bit cu bit pe baza priorității mesajului utilizat.

Accesul nedistructiv cu autobuzul poate fi împărțit în:

Gestionarea centralizată a accesului autobuzului și
Control descentralizat al accesului autobuzului

În funcție de faptul că mecanismele de control sunt prezente în sistem o singură dată (centralizat) sau de mai multe ori (descentralizat).

Sistemul de comunicație cu stația alocată (în special pentru controlul accesului centralizat al magistralei) trebuie să ofere o strategie care să intre în vigoare în cazul unei defecțiuni a stației principale. Acest concept are dezavantajul că strategia de management al defecțiunilor este complexă și costisitoare de implementat și că poate dura foarte mult timp pentru ca stația de rezervă să preia stația centrală.

Din aceste motive, și pentru a ocoli problema fiabilității stației master (și deci a întregului sistem de comunicații), protocolul CAN implementează managementul magistralei descentralizat. Toate mecanismele de comunicare de bază, inclusiv controlul accesului la magistrală, sunt efectuate de mai multe ori în sistem, deoarece aceasta este singura modalitate de a îndeplini cerințele de înaltă disponibilitate ale sistemului de comunicații.

În general, se poate spune că CAN implementează un sistem de alocare a magistralei definit de trafic care permite, folosind accesul nedistructiv cu magistrala cu control de acces descentralizat, să ofere o rată de date utilă ridicată la cea mai mică rată posibilă a magistralei în condiții de magistrală ocupată pt. toate statiile. Eficiența procedurii de verificare a magistralei este sporită de faptul că magistrala este utilizată numai de acele stații care așteaptă transmiterea cererilor.

Aceste solicitări sunt procesate în ordinea importanței mesajelor pentru sistemul în ansamblu. Acest lucru este deosebit de avantajos în caz de suprasarcină. Deoarece accesul la magistrală este prioritatea bazată pe mesaje, latența individuală scăzută poate fi garantată în sistemele în timp real.



3. Cadru de mesaj pentru format standard (Specificație CAN 2.0A)

Formate de mesaje.

Protocolul CAN acceptă două formate de cadre (cadre) ale mesajului, singura diferență semnificativă este lungimea identificatorului (ID). În formatul standard, lungimea identificatorului este de 11 biți, iar în formatul extins, lungimea este de 29 de biți. Cadrul de mesaj pentru transmiterea pe magistrală conține șapte câmpuri principale.

Un mesaj în format standard începe cu un bit de început „începutul cadrului”, urmat de un „câmp de validare” care conține un identificator și un bit „RTR” (cerere de transmisie la distanță) care indică dacă este un cadru de date sau un cadru de solicitare fără oricare sau octeți de date (cadru de solicitare la distanță).

„Câmpul de control” conține bitul de extensie IDE (identificatorul de extensie) care indică fie formatul standard, fie formatul extins, bitul este rezervat pentru extensii viitoare și - în ultimii 4 biți - numărul de octeți de date a câmpului de date.

„Câmpul de date” are o lungime de la 0 la 8 octeți și este urmat de un câmp „CRC”, care este folosit ca verificare de siguranță a cadrului pentru a detecta erorile de biți.

Câmpul „ACK” conține un slot ACK (1 bit) și un delimitator ACK (un bit recesiv). Bitul din slotul ACK este trimis ca bit recesiv și suprascris ca bit dominant de către acei receptori care au primit datele corect (corect) în acel moment (confirmare pozitivă). Mesajele corecte sunt confirmate de receptori indiferent de rezultatul testului de acceptare. Sfârșitul unui mesaj este indicat de „sfârșitul cadrului”. „Gap” este numărul minim de perioade de biți care separă mesajele succesive. Dacă vreo stație nu are următorul acces la autobuz, autobuzul rămâne inactiv ("bus idle").

Detectarea și semnalizarea erorilor.

Spre deosebire de alte sisteme de magistrală, protocolul CAN nu utilizează mesaje de confirmare, ci semnalează orice erori care apar. Pentru a detecta erorile în protocolul CAN, sunt implementate trei mecanisme la nivel de mesaj:

Verificarea redundanței ciclice (CRC) CRC protejează informațiile dintr-un cadru prin adăugarea de biți de verificare redundanți la sfârșitul transmisiei. La capătul receptor, acești biți sunt recalculați și verificați față de biții primiți. Dacă nu sunt de acord, a apărut o eroare CRC. Frame Check - Acest mecanism verifică structura cadrului transmis prin verificarea câmpurilor de biți pentru un format și dimensiune fixă ​​a cadrului. Erorile găsite în timpul verificărilor cadrelor sunt denumite „erori de format”.
Erori ACK. După cum sa menționat mai sus, cadrele primite sunt confirmate de către toți destinatarii printr-o „confirmare pozitivă”. Dacă nu se primește nicio confirmare de la expeditorul mesajului (eroare ACK), aceasta poate însemna că există o eroare de transmisie care a fost detectată doar de către receptori, că câmpul ACK a fost corupt sau că nu există receptori.

Protocolul CAN implementează, de asemenea, două mecanisme de detectare a erorilor la nivel de biți.

Monitorizarea. Capacitatea unui transmițător de a detecta erori se bazează pe monitorizarea semnalelor magistralei: fiecare nod care transmite monitorizează și nivelul magistralei și astfel detectează diferențele dintre un bit trimis și un bit recepționat. Acest lucru asigură detectarea fiabilă a tuturor erorilor globale și locale ale emițătorului.
Bit Stuffing - Codificarea biților individuali este verificată la nivel de biți. Reprezentarea biților folosită de CAN este codificarea NRZ (non-return-to-zero), care garantează eficiență maximă în codificarea biților. Marginile de sincronizare sunt generate prin umplerea de biți, adică după cinci biți egali consecutivi, emițătorul inserează biți de informații în fluxul de biți cu o valoare suplimentară care este eliminată de receptori. Verificarea codului se limitează la verificarea respectării regulii de umplutură. Dacă una sau mai multe erori sunt detectate de cel puțin o stație (orice stație) folosind mecanismele de mai sus, transmisia curentă este întreruptă prin trimiterea unui „drapel de eroare”. Acest lucru împiedică alte stații să primească mesaje și astfel asigură consistența datelor în întreaga rețea.

După ce transmiterea mesajului eronat este încheiată, expeditorul reîncearcă automat transmisia ( cerere automată repetări). Poate exista din nou competiție pentru alocarea autobuzelor. De obicei, retransmisia începe în perioade de 23 de biți după detectarea unei erori; În cazuri speciale, timpul de recuperare a sistemului este de 31 de biți.

Metoda descrisă poate fi însă eficientă și eficientă în cazul în care o defecțiune a stației poate duce la întreruperea tuturor mesajelor (inclusiv a celor corecte), care blochează sistemul de magistrală dacă nu s-au luat măsuri de automonitorizare. Astfel, protocolul CAN oferă un mecanism de separare a erorilor sporadice de erorile persistente și de localizare a defecțiunilor stației (limitarea erorilor). Acest lucru se realizează prin evaluarea statistică a situațiilor de eroare ale stației pentru a recunoaște propriile defecte ale stației și, eventual, a intra într-un mod de funcționare în care restul rețelei CAN nu este afectat negativ. Acest lucru poate duce până la a determina stația să se închidă de la sine pentru a preveni identificarea greșită a mesajelor incorecte printre cele care au fost întrerupte.

Fiabilitatea datelor protocolului CAN:

Introducerea sistemelor legate de siguranță în vehicule este asociată cu cerințe ridicate pentru fiabilitatea transmisiei datelor. Scopul este adesea formulat astfel încât să se evite situațiile periculoase pentru șofer ca urmare a schimbului de date pe toată durata de viață a vehiculului.

Acest obiectiv este atins dacă fiabilitatea datelor este suficient de mare sau probabilitatea de eroare reziduală este suficient de mică. În contextul sistemelor de magistrală de date, fiabilitatea se referă la capacitatea de a identifica datele corupte de erorile de transmisie. Probabilitatea de eroare reziduală este o măsură statistică a deteriorării fiabilității datelor: determină probabilitatea corupției datelor și că această corupție va rămâne nedetectată. Probabilitatea de eroare reziduală ar trebui să fie atât de mică încât, în medie, nicio dată coruptă nu va trece neobservată pe durata de viață a sistemului.



4. Probabilitatea de eroare reziduală ca funcție a probabilității de eroare de biți

Calcularea probabilității de eroare reziduală necesită clasificarea erorilor și ca întreaga cale de transmisie să fie descrisă de model. Dacă definim probabilitatea de eroare reziduală CAN ca o funcție a probabilității de eroare de biți pentru lungimi de mesaj de 80 până la 90 de biți, pentru configurații de sistem de, de exemplu, cinci sau zece noduri și cu o rată de eroare de 1/1000 (o eroare în un mesaj la fiecare mie), atunci probabilitatea maximă de eroare pe biți este de aproximativ 0,02 până la aproximativ 10^-13. Pe baza acestui lucru, este posibil să se calculeze numărul maxim de erori nedetectabile pentru o anumită rețea CAN.

De exemplu, dacă o rețea CAN funcționează la o rată a datelor de 1 Mbps, cu o utilizare medie a lățimii de bandă a magistralei de 50%, cu o durată de viață totală de 4000 de ore și cu o lungime medie a mesajului de 80 de biți, atunci numărul total de Mesajele transmise sunt 9x10^10. Numărul statistic de erori de transmisie nedetectate în timpul vieții este astfel mai mic decât de ordinul a 10^-2. Sau, altfel spus, cu o durată de funcționare de opt ore pe zi timp de 365 de zile pe an și o rată de eroare la fiecare 0,7 s, o eroare nedetectată apare la fiecare mie de ani (media statistică).

Mesaje CAN avansate

Subcomitetul SAE Camioane și Autobuze are semnale și mesaje standardizate, precum și protocoale de transfer de date pentru diferite rate de date. A devenit evident că acest tip de standardizare este mai ușor de implementat atunci când este disponibil un câmp de identificare mai lung.

Pentru a sprijini aceste eforturi, protocolul CAN a fost extins cu introducerea unui identificator de 29 de biți. Acest identificator constă dintr-un identificator existent de 11 biți (base-ID) și o extensie de 18 biți (extension-ID). Astfel, protocolul CAN permite utilizarea a două formate de mesaje: StandardCAN (Versiunea 2.0A) și ExtendedCAN (Versiunea 2.0B). Deoarece cele două formate trebuie să coexiste pe aceeași magistrală, se stabilește care mesaj are prioritate mai mare pe magistrală în cazul coliziunilor de acces la magistrală cu formate anti-aliasing și același identificator de bază: un mesaj standard are întotdeauna prioritate față de un format extins mesaj.

Controlerele CAN care acceptă mesaje în format extins pot trimite și primi, de asemenea, mesaje în format standard. Doar mesajele în format standard pot fi transmise în întreaga rețea dacă rețeaua utilizează controlere CAN care acceptă doar formatul standard (Versiunea 2.0A). Mesajele în format extins vor fi înțelese greșit. Cu toate acestea, există controlere CAN care acceptă doar formatul standard, dar recunosc mesajele în format extins și le ignoră (versiunea 2.0B pasivă).

Distincția dintre formatul standard și formatul extins se face folosind bitul IDE (bit de extensie de identificare), care este transmis ca dominant în cazul unui cadru de format standard. Pentru cadrele cu format extins, acesta este recesiv. Bitul RTR este transmis în mod dominant sau recesiv, în funcție de faptul că datele sunt transmise sau dacă un anumit mesaj este solicitat de la stație. În loc de bitul RTR în formatul standard, bitul SRR (înlocuire cerere la distanță) este trimis pentru cadrele de identificare extinse. Bitul SRR este întotdeauna transmis ca recesiv pentru a se asigura că, în cazul unei verificări, un cadru standard are întotdeauna o alocare de prioritate de magistrală unui cadru extins atunci când ambele mesaje au același identificator de bază.

Spre deosebire de formatul standard, în formatul extins, bitul IDE este urmat de un număr ID de 18 biți, un bit RTR și un bit rezervat (r1).

Toate câmpurile următoare sunt identice cu standardul. Corespondența dintre cele două formate este asigurată de faptul că controlerele CAN care suportă formatul extins pot face schimb de date și în formatul standard.



5. Cadrul de mesaj pentru format extins (specificația CAN 2.0A)

Implementări ale protocolului CAN

Comunicarea este identică pentru toate implementările protocolului CAN. Cu toate acestea, există diferențe în măsura în care o implementare gestionează transmiterea mesajelor de la microcontrolerele care o urmează în circuit. Comunicarea este identică pentru toate implementările protocolului CAN. Cu toate acestea, există diferențe în modul în care transmiterea mesajelor este implementată de la microcontrolerele care o urmează în circuit.

Controler CAN cu tampon intermediar

Controlerele buffer CAN (denumite anterior cipuri basicCAN) implementau ca hardware logica necesară pentru a crea și valida un flux de biți conform protocolului. Cu toate acestea, administrarea seturilor de date care urmează a fi trimise și primite, în special filtrarea recepției, este efectuată numai de controlerul CAN.

De regulă, controlerele CAN cu un buffer intermediar au două tampon de recepție și unul de transmisie. Codul de 8 biți și registrele de mască permit filtrarea de acceptare limitată (8 MSB-uri ale identificatorului). O alegere adecvată a acestor valori de caz permite citirea grupurilor de identificatori sau, în cazuri limită, selectarea tuturor identificatorilor. Dacă sunt necesare mai mult de 8 ID-MSB-uri pentru diferențierea mesajelor, atunci microcontrolerul care urmează controlerul CAN în circuit trebuie să suplimenteze filtrarea de acceptare a software-ului.

Controlerele CAN cu un buffer intermediar pot descărca o sarcină mare pe un microcontroler filtrat prin recepție, dar necesită doar o zonă mică a matriței și, prin urmare, pot fi fabricate la un cost mai mic. În principiu, pot primi toate obiectele din rețeaua CAN.

Controler CAN cu stocare obiecte.

Obiectele CAN constau în principal din trei componente: un identificator, un cod de lungime a datelor și sarcina utilă reală.

Controlerele CAN de stocare a obiectelor (denumite anterior fullCAN) funcționează ca controlerele CAN cu buffere intermediare, dar gestionează și anumite obiecte. Acolo unde există mai multe solicitări simultane, acestea determină, de exemplu, care obiect ar trebui să fie transmis primul. De asemenea, efectuează filtrarea de acceptare a obiectelor primite. Interfața cu următorul microcontroler corespunde RAM. Datele de transmis sunt scrise în zona RAM corespunzătoare, datele primite sunt citite din zona RAM, respectiv. Microcontrolerul trebuie să gestioneze doar câțiva biți (de exemplu, cererea de transfer).

Controlerele CAN cu stocare obiecte sunt proiectate pentru sarcina maximă de la microcontrolerul local. Cu toate acestea, aceste controlere CAN necesită o suprafață de cip mai mare și, prin urmare, sunt mai scumpe. În plus, ei pot administra doar un număr limitat de cipuri (microcontrolere).

Astăzi, sunt disponibile controlere CAN care combină ambele principii de implementare. Au stocarea obiectelor, dintre care cel puțin unul este proiectat ca un tampon intermediar. Din acest motiv, nu mai are sens să facem diferența între basicCAN și fullCAN.

Controlere slave CAN pentru funcții I/O.

La fel ca controlerele CAN care acceptă toate funcțiile protocolului CAN, există cipuri CAN care nu necesită un microcontroler ulterior. Aceste cipuri CAN se numesc SLIO (Serial I/O Connection). Cipurile CAN sunt sclave și trebuie controlate de un master CAN (microcontroler central, principal din rețea).

Conexiune CAN fizică

Ratele de date (până la 1 Mbit/s) necesită o pantă de impuls destul de abruptă, care poate fi realizată numai folosind celule de putere. În principiu, sunt posibile mai multe conexiuni fizice. Cu toate acestea, utilizatorii și producătorii grupului CAN în automatizare recomandă utilizarea schemelor de drivere în conformitate cu ISO 11898.

Circuitele integrate pentru drivere încorporate conforme cu ISO 11898 sunt disponibile de la mai multe companii (Bosch, Philips, Siliconix și Texas Instruments). Grupul Internațional de Utilizatori și Producători (CiA) definește și mai multe conexiuni mecanice (cablu și conectori).



6. Conexiune CAN fizică conform ISO 11898

Cu stimă, traducerea este asigurată de echipa atelierului

Rețeaua industrială în timp real CAN este o rețea cu un mediu comun de transmisie a datelor. Aceasta înseamnă că toate nodurile din rețea primesc simultan semnale transmise prin magistrală. Nu este posibil să trimiteți un mesaj către un anumit nod. Toate nodurile rețelei primesc tot traficul transmis prin magistrală. Cu toate acestea, controlerele CAN oferă o capacitate hardware de a filtra mesajele CAN.

Fiecare nod este format din două componente. Acesta este controlerul CAN în sine, care asigură interacțiunea cu rețeaua și implementează protocolul și un microprocesor (CPU).

Orez. 1. Topologia rețelei CAN.

Controlerele CAN sunt conectate folosind o magistrală diferențială, care are două linii - CAN_H (can-high) și CAN_L (can-low), prin care sunt transmise semnalele. Zero logic este înregistrat atunci când semnalul pe linia CAN_H este mai mare decât pe linia CAN_L. Unitate logică - în cazul în care semnalele CAN_H și CAN_L sunt aceleași (diferă cu mai puțin de 0,5 V). Utilizarea unei astfel de scheme de transmisie diferenţială face posibilă slujbă Rețele CAN în condiții de mediu foarte dificile. Un zero logic se numește bit dominant, iar unul logic se numește bit recesiv. Aceste nume reflectă prioritatea unu logic și zero pe magistrala CAN. Cu transmisie simultană la jurnalul de magistrală. zero și unu, doar un zero logic (semnal dominant) va fi înregistrat pe magistrală, iar unul logic va fi suprimat (semnal recesiv).

Tipuri de mesaje CAN.

Datele în CAN sunt transmise în mesaje-cadre scurte de format standard. Există patru tipuri de mesaje în CAN:

  • cadru de date
  • cadru la distanță
  • Cadru de eroare
  • Cadrul de supraîncărcare

cadru de date este tipul de mesaj cel mai frecvent utilizat. Este format din următoarele părți principale:

  • câmpul de arbitraj determină prioritatea mesajului atunci când două sau mai multe noduri încearcă simultan să trimită date în rețea. Domeniul arbitrajului constă la rândul său în:
    • pentru standardul CAN-2.0A, identificator de 11 biți + RTR de 1 bit (retransmisie)
    • pentru standardul CAN-2.0B, identificator de 29 de biți + RTR de 1 bit (retransmitere)

    De remarcat că câmpul de identificare, în ciuda numelui său, nu identifică în sine nici nodul din rețea, nici conținutul câmpului de date. Pentru un cadru de date, bitul RTR este întotdeauna setat la zero logic (semnal dominant).

  • câmpul de date conține 0 până la 8 octeți de date
  • câmpul CRC conține suma de verificare de 15 biți a mesajului, care este utilizată pentru detectarea erorilor
  • Slot de confirmare (1 bit), fiecare controler CAN care a primit corect mesajul trimite un bit de confirmare către rețea. Nodul care a trimis mesajul ascultă acest bit, iar dacă nu este primită confirmarea, repetă transmisia. În cazul primirii unui slot de confirmare, nodul de transmisie poate fi sigur doar că cel puțin unul dintre nodurile din rețea a primit corect mesajul său.

Orez. 2. Cadrul de date standard CAN 2.0A.

cadru la distanță este un cadru de date fără câmp de date și cu bitul RTR setat (1 - biți recesivi). Scopul principal al cadrului Remote este inițierea de către unul dintre nodurile rețelei de transmisie către rețeaua de date de către un alt nod. Această schemă vă permite să reduceți traficul total de rețea. Cu toate acestea, Remote Frame este acum rar folosit în practică (de exemplu, Remote Frame nu este folosit deloc în DeviceNet).

Cadru de eroare este un mesaj care încalcă în mod clar formatul de mesaj CAN. Transmiterea unui astfel de mesaj face ca toate nodurile de rețea să înregistreze o eroare de format de cadru CAN și, la rândul lor, să transmită automat un cadru de eroare în rețea. Rezultatul acestui proces este retransmiterea automată a datelor către rețea de către nodul de transmisie. Cadrul de eroare este format din câmpul Error Flag, care constă din 6 biți de aceeași valoare (și astfel cadrul de eroare încalcă verificarea Bit Stuffing, vezi mai jos) și câmpul Error Delimiter, care constă din 8 biți recesivi. Delimitatorul de erori permite altor noduri de rețea să-și trimită propriul flag de eroare în rețea atunci când detectează un cadru de eroare.

Cadrul de supraîncărcare- repetă structura și logica cadrului Error, cu diferența că este folosit de un nod supraîncărcat care nu poate procesa în prezent un mesaj primit și, prin urmare, solicită retransmiterea datelor folosind cadrul Overload. În prezent, cadrul de supraîncărcare practic nu este utilizat.

Controlul accesului la mediul de transmisie (arbitraj pe biți).

Câmpul de arbitraj al unui cadru CAN este utilizat în CAN pentru a rezolva coliziunile de acces la magistrală folosind arbitrajul nedistructiv. Esența metodei arbitrajului nedistructiv este următoarea. În cazul în care mai multe controlere încep să trimită un cadru CAN către rețea în același timp, fiecare dintre ele compară bitul care urmează să fie trimis către magistrală cu bitul pe care controlerul concurent încearcă să îl trimită către magistrală. Dacă valorile acestor biți sunt egale, ambele controlere transmit următorul bit. Și asta se întâmplă până când valorile biților transmiși sunt diferite. Acum controlerul care a transmis un zero logic (semnal cu prioritate mai mare) va continua să transmită, iar celălalt (celălalt) controler își va întrerupe transmisia până când magistrala este din nou liberă. Desigur, dacă magistrala este ocupată în prezent, atunci controlerul nu va începe să transmită până când este liber.

Orez. 3. Arbitraj pe biți pe magistrala CAN.

Metode de detectare a erorilor.

Protocolul CAN definește cinci metode pentru detectarea erorilor de rețea:

  • monitorizarea biților
  • un pic de umplutură
  • verificarea cadrului
  • Verificare ACKcunoaștere
  • Verificare CRC

monitorizarea biților- fiecare nod, in timpul transferului de biti in retea, compara valoarea bitului transmis de acesta cu valoarea bitului care apare pe magistrala. Dacă aceste valori nu se potrivesc, atunci nodul generează o eroare de bit. Desigur, în timpul arbitrajului pe magistrală (trecerea câmpului de arbitrare către magistrală), acest mecanism de verificare a erorilor este dezactivat.

un pic de umplutură- când un nod trimite secvenţial 5 biţi cu aceeaşi valoare către magistrală, adaugă un al şaselea bit cu valoarea opusă. Nodurile de primire elimină acest bit suplimentar. Dacă un nod detectează mai mult de 5 biți consecutivi cu aceeași valoare pe magistrală, generează o eroare de chestiune.

verificarea cadrului- unele părți ale mesajului CAN au aceeași semnificație în toate tipurile de mesaje. Acestea. Protocolul CAN specifică exact ce niveluri de tensiune și când ar trebui să apară pe magistrală. Dacă formatul mesajului este încălcat, atunci nodurile generează o Eroare de formular.

Verificare ACKcunoaștere- fiecare nod, după ce a primit mesajul corect prin rețea, trimite un bit dominant (0) către rețea. Dacă acest lucru nu se întâmplă, atunci nodul de transmisie înregistrează o eroare de confirmare.

Verificare CRC- fiecare mesaj CAN conține o sumă CRC, iar fiecare nod receptor calculează valoarea CRC pentru fiecare mesaj primit. Dacă valoarea CRC calculată a sumei nu se potrivește cu valoarea CRC din corpul mesajului, nodul receptor generează o eroare CRC.

Mecanism de limitare a erorilor.

Fiecare nod al rețelei CAN, în timpul funcționării, încearcă să detecteze una dintre cele cinci erori posibile. Dacă este detectată o eroare, nodul trimite un cadru de eroare în rețea, distrugând astfel tot traficul actual de rețea (transmiterea și primirea mesajului curent). Toate celelalte noduri detectează Cadrul de Eroare și iau măsurile corespunzătoare (renunțați la mesajul primit). În plus, fiecare nod menține două contoare de erori: contorul de erori de transmisie și contorul de erori de recepție. Aceste contoare cresc sau scad conform mai multor reguli. Regulile de gestionare a contoarelor de erori în sine sunt destul de complexe, dar se rezumă la un principiu simplu, o eroare de transmisie face ca contorul de eroare de transmisie să crească cu 8, o eroare de recepție crește contorul de eroare de recepție cu 1, orice transmisie/recepție corectă a un mesaj scade contorul corespunzător cu 1. Aceste reguli conduc la ca contorul de erori de transmisie al nodului de transmisie să crească mai repede decât contorul de erori de recepție al nodurilor de recepție. Această regulă corespunde ipotezei că există o probabilitate mare ca sursa erorilor să fie nodul de transmisie.

Fiecare nod al rețelei CAN poate fi într-una din cele trei stări. Când pornește un nod, acesta se află în starea de eroare activă. Când cel puțin unul dintre cele două contoare de erori depășește limita de 127, nodul intră în starea pasivă de eroare. Când valoarea a cel puțin unuia dintre cele două contoare depășește limita de 255, nodul intră în starea Bus Off.

Un nod în starea de eroare activă trimite semnale de eroare activă în rețea dacă este detectată o eroare pe magistrală. Active Error Flags este format din 6 biți dominanti, astfel încât toate nodurile îl înregistrează. Un nod în starea de eroare pasivă trimite semnale de eroare pasivă în rețea atunci când detectează o eroare în rețea. Flag-urile de eroare pasive sunt formate din 6 biți recesivi, astfel încât restul nodurilor de rețea nu-l observă, iar steaguri de eroare pasivă duce doar la o creștere a contorului de erori al nodului. Un nod în starea Bus Off nu trimite nimic în rețea (nu doar cadre de eroare, dar deloc).

Adresare și protocoale la nivel înalt

Nu există o adresare explicită a mesajelor și nodurilor în CAN. Protocolul CAN nu specifică nicăieri că câmpul de arbitraj (câmp de identificare + RTR) ar trebui să fie utilizat ca un mesaj sau un identificator de nod. Astfel, identificatorii de mesaje și adresele nodurilor pot apărea în orice câmp al mesajului (câmp de arbitraj, câmp de date sau ambele). În mod similar, protocolul nu interzice utilizarea câmpului de arbitraj pentru transferul de date.

Utilizarea câmpului de arbitraj și a câmpului de date, precum și distribuția adreselor de noduri, a identificatorilor de mesaje și a priorităților în rețea face obiectul așa-numitelor protocoale de nivel superior (HLP). Denumirea HLP reflectă faptul că protocolul CAN descrie doar cele două straturi inferioare ale modelului de rețea de referință ISO/OSI, în timp ce straturile rămase sunt descrise de protocoalele HLP.

Orez. 4. Structura logică a protocolului CAN.

Există multe astfel de protocoale la nivel înalt. Cele mai comune dintre ele sunt:

  • DeviceNet
  • CAL/CANopen
  • CanKingdom

Stratul fizic al protocolului CAN

Stratul fizic (Physical Layer) al protocolului CAN determină rezistența cablului, nivelul semnalelor electrice din rețea etc. Există mai multe straturi fizice ale protocolului CAN (ISO 11898, ISO 11519, SAE J2411).

În marea majoritate a cazurilor, este utilizat stratul fizic CAN definit în standardul ISO 11898. ISO 11898 definește o linie diferențială cu două fire cu o impedanță (terminatoare) de 120 ohmi ca mediu de transmisie (sunt permise fluctuații de impedanță în domeniu). de la 108 ohmi la 132 ohmi.Stratul fizic CAN este implementat în cipuri speciale - transceiver CAN (transceiver), care convertesc nivelurile obișnuite ale semnalului TTL utilizate de controlerele CAN în niveluri de semnal pe magistrala CAN.Cel mai obișnuit transceiver CAN este Phillips 82C250, care respectă pe deplin standardul ISO 11898.

Viteza maximă a rețelei CAN conform protocolului este de 1 Mbit/sec. La o viteză de 1 Mbit/sec, lungimea maximă a cablului este de aproximativ 40 de metri. Limitarea lungimii cablului este legată de viteza finită a luminii și de mecanismul arbitrajului bit cu bit (în timpul arbitrajului, toate nodurile de rețea trebuie să primească bitul de transmisie curent în același timp, semnalul trebuie să aibă timp să se propage pe tot parcursul cablul într-un singur număr de timp de rețea. Raportul dintre viteza de transmisie și lungimea maximă a cablului prezentat în tabel:

Conectorii pentru rețeaua CAN încă NU sunt STANDARDIZAȚI. Fiecare protocol de nivel înalt își definește de obicei propriul tip de conectori pentru rețeaua CAN.

În acest articol, nu vom descrie complet protocolul CAN, ci vom acorda atenție doar lucrurilor pe care trebuie să le cunoașteți și să le înțelegeți pentru a utiliza sau dezvolta dispozitive electronice compatibile cu CAN.

Protocolul CAN a fost dezvoltat pentru industria auto și a devenit ulterior standardul în domeniul rețelelor la bord pentru mașini, transport feroviar etc. CAN vă permite să creați rețele cu instrumente avansate de control al erorilor, rate de transfer de până la 1 Mbps și pachete care nu conțin mai mult de opt octeți de date.

Legături și straturi fizicePOATE SA

Nu există o definiție strictă a stratului fizic în protocolul CAN, așa că, de exemplu, perechea răsucită sau fibra optică poate fi folosită pentru a transmite mesaje. În esență, CAN implementează stratul de legătură, de exemplu. realizează formarea pachetelor de mesaje, limitând propagarea erorilor, recunoașterea și arbitrajul. Există, desigur, standarde comune la nivel de aplicație, cum ar fi CANopen, dar dacă nu este nevoie să se asigure interacțiunea între echipamente de la diferiți producători, atunci este mai bine să utilizați un protocol intern.

Structura gazdeiPOATE SA

Nodul de rețea CAN pe care îl luăm în considerare constă dintr-un microcontroler, un controler CAN și un transceiver (Figura 1). Cel mai adesea, folosim microcontrolere cu un controler CAN încorporat pentru a simplifica circuitul, dar uneori se folosește un controler CAN autonom cu o interfață SPI (MCP2510). În continuare, transceiver-ul este conectat la o pereche răsucită, la capete ale căreia se află rezistențe de terminare (terminator) cu o rezistență de 120 ohmi.

Figura 1 - Nodul rețelei CAN

Pentru a forma unul logic într-o pereche răsucită, sau magistrală liberă, la ambele fire se aplică o tensiune egală cu jumătate din diferența de tensiune dintre 0 sau Vcc. Zeroul logic corespunde alimentării cu tensiune diferenţială a firelor liniei (Figura 2).




Figura 2 - Niveluri logice pe magistrala CAN

Bus-ul CAN vă permite să transferați date la o viteză de 1 Mbps cu o lungime a cablului de cel mult 40 m. În literatura de instruire este scris că prin reducerea ratei de transmisie la 10 kbps, puteți obține o lungime a rețelei de 1,5 km.

pachet de mesajePOATE SA

Formatul mesajului CAN este prezentat în Figura 3.




Figura 3 - Pachetul de mesaje CAN

De fapt, pachetul de mesaje este format din controlerul CAN, iar aplicația software setează doar identificatorul mesajului, lungimea mesajului și furnizează octeți de date, așa că nu vom lua în considerare pe deplin pachetul, ci ne vom uita la datele pe care le schimbăm atunci când lucrăm cu magistrala CAN.

ID-ul mesajului este folosit pentru a identifica datele trimise în acest pachet. Fiecare mesaj trimis este primit de toate nodurile rețelei și, în acest caz, identificatorul permite unui anumit dispozitiv să înțeleagă dacă este necesar să proceseze acest mesaj. Lungimea maximă a mesajului este de 8 octeți, dar puteți reduce această valoare pentru a economisi lățime de bandă pe magistrala CAN. De exemplu, mai jos în text există mai multe capturi de ecran ale mesajelor CAN din rețeaua auto.

Arbitraj în autobuzPOATE SA

Fără detalii, mesajul cu cel mai mic identificator este întotdeauna transmis primul pe magistrala CAN.

Setarea vitezei de transmisie a magistraleiPOATE SA

Rata de transfer de date pe magistrala CAN este ajustată prin formarea de secțiuni de timp și nu, ca în multe alte protocoale de transfer de date în serie, printr-un divizor de viteză. În cele mai multe cazuri, se folosesc viteze de 10Kbps, 20Kbps, 50Kbps, 100Kbps, 125Kbps, 500Kbps, 800Kbps, 1MBaud, iar setările pentru aceste viteze au fost deja calculate. Figura 4 arată fereastra de selectare a vitezei în PcanView.



Figura 4 - Selectarea vitezei de transmisie în programul PcanView

După cum putem vedea, la setarea vitezei standard, setările sunt setate automat, dar există momente când este necesară utilizarea unei rate de transfer de date diferite. De exemplu, CAN-ul de bord al vehiculului poate funcționa la 83 Kbps. În acest caz, va trebui să calculați singur setările sau să căutați un calculator specializat de viteză pe Internet. Pentru a calcula independent viteza, este necesar să înțelegeți că mai multe cuante sunt utilizate pentru a transmite un bit al unui mesaj, iar intervalul de transmisie este format din trei segmente (Figura 5).




Figura 5 - Timpul de transmitere a unui bit

Primul segment este întotdeauna fix și este egal cu o cuantă. Apoi există două segmente Tseg1 și Tseg2, iar numărul de cuante din fiecare segment este definit de utilizator și poate fi de la 8 la 25. Punctul de eșantionare este între Tseg1 și Tseg2, adică. la sfârşitul primului şi la începutul celui de-al doilea segment. De asemenea, utilizatorul poate defini lățimea saltului de sincronizare (Synchronization Jump Width - SJW) pentru a regla rata de biți a dispozitivului de recepție, care poate fi în intervalul 1 - 4 secțiuni de timp.

Acum dăm formula pentru calcularea vitezei (Exemplu de calcul al vitezei pentru controlerul CAN SJA1000):

BTR = Pclk/(BRP * (1 + Tseg1 + Tseg2))

BTR - rata de transfer de date,

Pclk – frecvența de funcționare a controlerului CAN,

BRP - valoarea prescalerului de frecvență a generatorului de viteză în baud

Tseg1 - primul segment

Tseg2 - Al doilea segment

Pentru a verifica, să luăm viteza deja calculată de 125 Kbps și să încercăm să obținem setările manual. Pclk ia 16 MHz.

BRP = 16MHz /(125K * (1 + Tseg1 + Tseg2))

Apoi selectăm intervalul de transmisie de biți, care este în intervalul de la 8 la 25 de secțiuni de timp, astfel încât să se obțină o valoare întreagă a BRP. În cazul nostru, dacă luăm (1 + Tseg1 + Tseg2) = 16, atunci BRP va fi egal cu 30.

SP = ((1 + Tseg1 + Tseg2) * 70)/100

Înlocuim valorile și obținem 16 * 0,7 = 11,2, care corespunde relației Tseg1 = 10, Tseg2 = 5, adică. 1 + 10 + 5 = 16. Atunci ne uităm dacă Tseg2 >= 5, atunci SJW = 4, dacă Tseg2< 5, то SJW = (Tseg2 – 1). В нашем случае SJW = 4.

În total, pentru a obține o viteză de 125Kbps, trebuie să specificați în parametrii BRP = 30, Tseg1 = 10, Tseg2 = 5, SJW = 4.

P.S. Configurația ratei de transmisie diferă semnificativ între vechile module USB-CAN (GW-001 și GW-002) cu controlerul SJA1000 și noile module sysWORXX cu controlerul AT91SAM7A3. În articolul care descrie lucrul cu CAN-ul de bord al mașinii la o viteză de 83 kbit / s, este dat calculul vitezei pentru controlerul AT91SAM7A3.


Un exemplu de primire și transmitere de date prininterfață CAN

În exemplu, vom folosi un adaptor CAN cu programul PcanView de la SYSTEC și vom conecta la CAN interiorul mașinii care funcționează la o viteză de 125Kbps. Mașina pe care o luăm în considerare este echipată cu scaune electrice și de aceea vom examina datele responsabile pentru poziția scaunelor și vom încerca să schimbăm poziția spătarului prin înlocuirea pachetului cu ajutorul unui computer.

Pentru început, pe diagrama mașinii, găsim conectorul cel mai convenabil amplasat cu liniile CANH și CANL și conectăm adaptorul nostru la acesta. Dacă conectorul și firele nu au putut fi găsite, atunci vă puteți târa până la unitatea de control al scaunului, puteți găsi două fire răsucite împreună și tăiați cu grijă firele pentru a conecta adaptorul. Dacă, după conectarea și configurarea adaptorului, mesajele nu vin, atunci în primul rând încercați să schimbați CANH CANL între ele și să verificați dacă contactul este pus.
Apoi, rulați programul PcanView, în fereastra de setări care se deschide, setați Baudrate = 125Kbps și faceți clic pe OK (Figura 4). În fereastra următoare, setați Filtru mesaj = Standard, interval de adrese de la 000 la 7FF și faceți clic pe OK (Figura 6).



Figura 6 - Configurarea filtrului CAN

Dacă totul este făcut corect, vom vedea mesaje de pe scaune (Figura 7), iar când apăsați butonul de înclinare a spătarului de pe panoul de control, vom vedea un alt mesaj cu adresa 1F4 care vine de la telecomandă către scaun (Figura 8).



Figura 7 - Mesaje CAN de la scaunul electric


Figura 8 - Mesaje CAN de la scaunul electric și mesajul de la panoul de control către scaun

Acum știm care ar trebui să fie adresa, lungimea și datele din pachetul CAN pentru a simula apăsarea butonului pentru a schimba poziția din spate. În fila Transmite, faceți clic pe NOU și în fereastra care se deschide, creați o copie a pachetului 1F4, adică. ID = 1F4, Lungime = 3, Date = 40 80 00. Perioada poate fi lăsată la 0 ms, apoi mesajele vor fi trimise la apăsarea barei de spațiu (Figura 9).



Figura 9 - Crearea unui mesaj CAN

Figura 10 prezintă câmpul Transmitere al ferestrei principale care conține toate mesajele trimise către CAN și informații despre acestea. Când un mesaj este evidențiat și butonul de spațiu este apăsat, un pachet va fi trimis în rețeaua CAN și scaunul se va mișca ușor în direcția dorită.



Este clar că în acest caz nu va fi posibil să se obțină un control deplin al scaunului, deoarece. nu putem exclude pachetele de telecomandă din fabrică din rețea, dar această problemă este destul de rezolvabilă.

Rezultat

Am văzut cum, cu anumite eforturi și abilități, îți poți crea propriile tale sisteme electronice folosind protocolul CAN de înaltă tehnologie și cum vă puteți conecta, explora și controla dispozitivele conectate CAN auto obosi.