Š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.
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.

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.
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.

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.
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.
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.
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.





