• începând
  • Despre noi
  • Produse
    • Servo hibrid
      • Servomotor hibrid
      • Servomotor hibrid
    • Stepper
      • Acționare pas cu pas în 2 faze
      • Unitate cu 3 faze
      • Motor pas cu pas 2 faze
      • Motor pas cu pas cu 3 faze

    • Sistem servo
      • Ace servo servo
      • Servomotor de curent alternativ
    • Controler de mișcare
      • Controler de strung CNC
      • Controlere de frezare CNC
      • Controler router CNC
      • Controler de tăiere cu flacără cu plasmă
    • Alimentare electrică
      • Surse de curent continuu
      • Transformator de curent alternativ
    • accesorii
      • Cablu de alimentare
      • Cablu de semnal codificator
    • Servosistem DC fără perii
      • Servomotor fără perii
      • Servomotoare DC fără perii
    • Motor incorporat pentru controlul traficului
      • acționare integrată a motorului pas cu pas în buclă închisă
      • Unitate de motor cu pas deschis încorporată
      • Servomotor încorporat fără perii DC
    • Controler motor pas cu pas
      • Controler cu motor pas cu pas 2 faze
      • Motor pas cu pas 3 faze
    • Driver de rețea
      • Șofer Ethercat
      • Dispozitiv CaNopen
      • Unitate RS485
    • Reductor planetar
    • transmitere
  • Știri
    • Cunoștințe în domenii industriale
    • Știri despre companie
  • Contactează-ne
  • ÎNTREBĂRI FRECVENTE
  • Descarca

Ce se întâmplă dacă segmentele de identificare a două noduri sunt aceleași?

Ce se întâmplă dacă două noduri ID de segment sunt aceleași?

dacă

Rețelele CAN-bus nu permit ca două noduri să aibă același segment de identificare în principiu, dar ce se întâmplă dacă cele două segmente de noduri ID sunt aceleași?

Înainte de experiment, trebuie să avem o înțelegere clară a structurii mesajelor CAN și a principiilor arbitrajului.

În primul rând, structura mesajului CAN

Cel mai utilizat standard de rețea CAN-bus este versiunea V2.0. Acest standard este împărțit în continuare în părțile A și B. Diferența lor principală este lungimea codului de identificare în zona de arbitraj. Printre acestea CAN2.0A (cadru standard) are 11 biți ID, CAN2.0B (cadru de desfășurare) este 29 biți ID. Tabelul 1 de mai jos prezintă structura mesajului CAN:

Tabelul 1 Structura mesajului CAN

În al doilea rând, principiul arbitrajului

Arbitrajul autobuzului CAN se bazează pe „linie și principiu”, așa cum se arată în Figura 1. Când un transceptor transmite semnale la diferite niveluri simultan, nivelul recesiv este întotdeauna acoperit de nivelul dominant. În timpul trimiterii mesajului, controlerul CAN va monitoriza dacă starea magistralei este aceeași cu cea trimisă de el însuși. Dacă discrepanța apare în segmentul ID, va avea loc arbitrajul. Dacă apare în alte zone, va fi declanșată eroarea corespunzătoare.

Următorul este punctul cheie. Ce se întâmplă dacă cele două noduri ID de segment sunt aceleași? Am început experimentul cu două cărți CAN și un CANScope. Cardul CAN simulează un nod CAN standard pentru trimiterea și primirea mesajelor, iar CANScope monitorizează comunicarea așa cum se arată în Figura 2.

Fig.2 Construirea unei platforme experimentale

În al treilea rând, experimentați cu „Segmentul de identificare este același, dar datele sunt diferite”

CAN CAN este utilizat pentru a trimite un cadru CAN cu ID-ul de date 000H la 01020304050607H și un alt card CAN pentru a trimite un cadru CAN cu date 000H la 02020304050607H. Datele pe care CANScope le ascultă sunt prezentate în Figura 3. Se poate observa că există un număr mare de erori la completarea câmpurilor.

Fig.3 Eroare la completarea unui câmp de date

De ce este asta? Mai întâi obținem undele corespunzătoare celor două mesaje de transmisie a cardului CAN, așa cum se arată în Figura 4. Deoarece mesajul bidirecțional este un cadru de date standard și fiecare cadru conține 8 octeți de date, undele corespunzătoare celor două pachete de pachete sunt exact în segmente ale segmentului ID, RTR, IDE, R0 și DLC. Prin urmare, rolul arbitrajului este ineficient și ambele noduri sunt considerate prioritare și continuă să trimită date.

Acum ne concentrăm pe segmentul de date, datele din primul octet sunt aceleași, sunt 00H; datele de al doilea octet sunt diferite, respectiv 01H, 02H. Săgețile din Figura 5 arată că logica biților respectivi este 0 și respectiv 1. Am menționat mai devreme că nodul CAN poate detecta dacă nivelul magistralei este același cu nivelul trimis la trimiterea mesajului. Dacă discrepanța apare într-o zonă non-arbitraj, se declanșează eroarea corespunzătoare, deci dacă ambele cadre sunt trimise la magistrală în același timp, ar trebui să apară erori de biți. Deoarece eroarea la trimiterea biților va face ca nodul să trimită 6 biți dominanți care încalcă regula de umplere (eroarea activă distruge datele cadrului), apare o eroare la completarea câmpului, așa cum se arată în FIG. 3.

Fig.5 Conflicte în domeniul datelor

În al patrulea rând, experimentați cu două „aceleași date cu același ID”

În același timp, utilizați două carduri CAN pentru a trimite cadre CAN, al căror număr de identificare este 000H la 01020304050607H, iar CANScope monitorizează comunicarea. În primul rând, nu bifăm opțiunea „răspuns autobuz” astfel încât CANScope să poată funcționa în modul de ascultare numai. Rezultatele experimentale sunt prezentate în Figura 6, iar delimitatorul de răspuns este într-un format greșit.

Fig.6 Eroare sub forma unui separator al răspunsului

De ce se întâmplă asta? Trimiterea curentă a mesajului va trimite doi biți recesivi în segmentul ACK. Dacă se obține un nivel dominant în timpul primului bit, cadrul este considerat a fi acceptat corect. Deoarece cei doi arbitri cred că li s-a acordat arbitrajul atunci când au același segment de arbitraj, așteaptă un răspuns în segmentul ACK, dar există doar două noduri în rețea. Prin urmare, nu se poate obține niciun răspuns în segmentul ACK și apare o eroare de delimitare a răspunsului. Pur și simplu, această situație este similară cu faptul că doar un singur nod din autobuz nu va putea trimite date. Figura 7 prezintă comparația formei de undă atunci când nu există niciun răspuns în segmentul ACK.

Fig.7 Răspunsul ACK

Verificăm reacția autobuzului și începem din nou experimentul (în acel moment sunt 3 noduri în autobuz). În acest moment, așa cum se arată în FIG. 8, datele autobuzului sunt transmise și recepționate în mod normal.

Fig.8 Porniți răspunsul BUS

Rezumat: Când două noduri trimit pachete cu același număr de identificare și date în același timp, apare o eroare la completarea câmpului de date. Când două noduri trimit pachete cu același număr de ID și aceleași date, nu apare nicio eroare dacă alte noduri răspund. Alte noduri au răspuns cu o eroare în răspuns. Prin urmare, trebuie să evităm aceeași situație în segmentul ID atunci când proiectăm magistrala CAN.