Što se događa ako su dva segmenta ID-a čvora jednaki?

Apr 04, 2018 Ostavite poruku

Što se događa ako su dva segmenta ID čvor jednaki?




CAN-bus mreže ne dopuštaju dva čvora da imaju isti ID segment u načelu, ali što se događa ako su dva segmenta ID čvorova isti?

Prije eksperimenta moramo imati jasno razumijevanje strukture CAN poruka i načela arbitraže.


Prvo, struktura CAN poruke

Najčešće korišten standard CAN-bus mreže je verzija V2.0. Ovaj je standard dalje podijeljen na dijelove A i B. Njihova glavna razlika je duljina ID broja u arbitražnom području. Među njima CAN2.0A (standardni okvir) je 11 bit ID, CAN2.0B (proširiti okvir) je 29 bit ID. Tablica 1 u nastavku prikazuje strukturu CAN poruke:

Tablica 1. Struktura CAN poruke

Naziv faze Duljina faze / bit Opis
SOF 1 podrazumijeva početak faze podataka i čine pojedinačni dominantni bit
Faza Abtrition Standardni okvir 12 Označava prioritet okvira, čine 11 ID adresa i 1 RTR
prošireni okvir 32 Označava prioritet okvira, sačinjava 29 ID adresa, 1 bit SRR, IDE proširen i RTR
Kontrolna faza 6 označava skupni kod i rezervirane bitove duljine podataka segmenta podataka
Faza podataka 0-8 sadržaj podataka, kontrolna faza kontrolira duljinu podataka
CRC 16 provjeriti okvir transimisija erro, od SOF-a do podatkovne faze, sve sadržaje, osim punjenja bita
ACK 2 drugi čvor potvrđuje ispravno primanje ovog okvira
Okvir završetka 7 znači kraj okvira


Drugo, princip arbitraže

CAN-sabirnička arbitraža temelji se na "liniji i načelu", kao što je prikazano na slici 1. Kada primopredajnik emitira signale različitih razina istodobno, recesivna razina uvijek pokriva dominantna razina. Tijekom slanja poruke, CAN kontroler će pratiti je li status sabirnice isti kao i onaj koji je poslan. Ako se neusklađenost pojavljuje u ID segmentu, doći će do arbitraže. Ako se dogodi u drugim područjima, pokrenut će se odgovarajuća pogreška.

Slijedi ključna točka. Što ako su dva segmenta ID čvor jednaki? Pokrenuli smo eksperiment s dvije CAN kartice i jednim CANScopeom. CAN kartica simulira CAN standardni čvor za slanje i primanje poruka, a CANScope obavlja nadzor nad komunikacijom, kao što je prikazano na slici 2.

                                                           

1.jpg

Slika 2. Izgradnja platforme eksperimenta


Treće, eksperimentirajte jedan "ID segment je isti, ali podaci su različiti"

CAN kartica se koristi za slanje CAN okvira s ID 000H podataka na 01020304050607H i drugu CAN karticu za slanje CAN okvira s 000H podatcima na 02020304050607H. Podaci koji CANScope sluša prikazani su na slici 3. Može se zamijetiti da postoji velik broj grešaka u punjenju podataka.


2.jpg

Slika 3 Područje ispunjavanja polja podataka

Zašto je tako? Najprije se dobivamo valni oblici koji odgovaraju dvjema CAN prijenosnim karticama, kao što je prikazano na slici 4. Budući da je dvostruka poruka standardni okvir podataka, a svaki okvir sadrži 8 bajta podataka, valni oblici koji odgovaraju dvama okvirima paketa točno isto u ID segmentu, RTR, IDE, R0 i DLC segmentima. Stoga je uloga arbitraže neučinkovita i oba čvora smatraju da imaju prioritet i nastavljaju slati podatke.

3.jpg

Sada se usredotočimo na podatkovni segment, podaci prvog bajta su isti, su 00H; podaci drugog bajta su različiti, odnosno 01H, 02H. Strelice na slici 5 upućuju da je logika odgovarajućih bitova 0 odnosno 1. Ranije smo spomenuli da će CAN čvor otkriti je li razina sabirnice jednaka razini koju je poslao prilikom slanja poruke. Ako se neusklađenost pojavljuje u području bez arbitraže, pokreće se odgovarajuća pogreška, pa ako se dva okvira istodobno šalju na sabirnicu Moraju se pojaviti pogreške u bitu. Budući da će pogreška slanja bita uzrokovati da čvor šalje 6 dominantnih bitova koji krše pravilo punjenja (aktivna pogreška uništava podatke okvira), pojavljuje se pogreška punjenja podatkovnog polja, kako je prikazano na SL. 3.


4.jpg

Sl.5 Sukobi na polju podataka


Četvrto, eksperimentirajte dva "iste podatke s istim ID-om"

Istodobno, koristite dvije CAN kartice za slanje CAN okvira čiji je ID 000H podataka na 01020304050607H, a CANScope obavlja komunikacijski nadzor. Prije svega, ne provjeravamo opciju "reakcija na sabirnicu" kako bi CANScope radio u načinu slušanja. Eksperimentalni rezultati prikazani su na slici 6, a odzivni odziv je u krivom formatu.

5.jpg

Slika 6. Pogreška formata delimitera odgovora


Zašto se to dogodi? Čvor koji šalje poruku će poslati dva recesivna bita u ACK segmentu. Ako se tijekom prvog bita primi dominantna razina, smatra se da je okvir pravilno primljen. Budući da dvojica arbitara smatraju da su dobili pravu arbitražu kada imaju isti arbitražni segment, čekaju odgovor u ACK segmentu, ali postoje samo dva čvora u mreži. Stoga se u ACK segmentu ne može primiti nikakav odgovor, a dođe do pogreške odziva odziva. Jednostavno rečeno, ova je situacija slična činjenici da samo jedan čvor u autobusu neće moći slati podatke. Slika 7 prikazuje usporedbu valnih oblika kada nema odgovora u ACK segmentu.

6.jpg

Slika 7 ACK Odgovor


Provjeravamo odgovor na autobus i ponovno započnimo eksperiment (trenutačno ima 3 čvora u autobusu). U ovom trenutku, kao što je prikazano na SL. 8, podaci o autobusu se prenose i primaju normalno.

7.jpg

Slika 8. Start BUS Reply


Sažetak: Kada dva čvora šalju pakete s istim ID-om i podacima istodobno, javlja se pogreška padanja podataka. Kada dva čvora šalju pakete s istim ID-om i istim podacima, nema grešaka ako drugi čvorovi odgovore. Drugi čvorovi reagirali su s pogreškom odgovora. Stoga, trebamo izbjeći istu situaciju u ID segmentu pri projektiranju CAN sabirnice.


Pošaljite upit

whatsapp

Telefon

E-pošte

Upit