Mitä tapahtuu, jos kaksi solmun ID-segmenttiä ovat samat?

Apr 04, 2018 Jätä viesti

Mitä tapahtuu, jos kaksi solmun ID-segmenttiä ovat samat?




CAN-väylän verkoissa ei sallita kahden solmun periaatteessa samaa ID-segmenttiä, mutta mitä tapahtuu, jos kaksi solmun ID-segmenttiä ovat samat?

Ennen kokeilua meillä on oltava selkeä käsitys CAN-viestien rakenteesta ja välimiesmenettelyn periaatteista.


Ensinnäkin CAN-sanoman rakenne

Yleisimmin käytetty CAN-väylän verkko-standardi on V2.0-versio. Tämä standardi jaetaan edelleen A- ja B-osiin. Niiden tärkein ero on ID-koodin pituus välimiesalueella. Niistä CAN2.0A (vakiokehys) on 11 bittiä, CAN2.0B (laajennuskehys) on 29-bittinen ID. Alla olevassa taulukossa 1 esitetään CAN-sanoman rakenne:

Taulukko 1 CAN-sanoman rakenne

Vaihe nimi Vaihepituus / bitti Kuvaus
SOF 1 tarkoittaa datavaiheen alkamista ja koostuu yhdestä hallitsevasta bitistä
Abtrition Phase Vakiokehys 12 Ilmaisee kehyksen prioriteetti, koostuu 11 ID-osoitteesta ja 1 RTR
laajennettu kehys 32 Ilmaisee kehyksen prioriteetti, koostuu 29 ID-osoitteesta, 1 bitti SRR, IDE laajennettu ja RTR
Ohjausvaihe 6 tarkoittaa datasegmentin datapituuden ryhmäkoodia ja varattuja bittejä
Data-vaihe 0 ~ 8 datasisältö, ohjausvaihe ohjaa datan pituutta
CRC 16 tarkista kehyksen transimission erro, SOF: stä datavaiheeseen, kaikki sisältö, paitsi täyttöbitit
ACK 2 toinen solmu vahvistaa tämän kehyksen vastaanotettavaksi oikein
Kehyksen loppu 7 tarkoittaa kehyksen päätä


Toiseksi, välimiesmenettelyn periaate

CAN-väylän välitystoiminto perustuu "linjaan ja periaatteeseen", kuten kuviossa 1 esitetään. Kun lähetin-vastaanotin lähettää samanaikaisesti eri tasojen signaaleja, resessiivinen taso kattaa aina määräävä taso. Viestin lähettämisen aikana CAN-ohjain tarkkailee, onko väylän tila sama kuin itse lähettämä. Jos epäjohdonmukaisuus tapahtuu ID-segmentissä, välimiesmenettely tapahtuu. Jos se tapahtuu muilla alueilla, vastaava virhe käynnistyy.

Seuraavassa on avainkysymys. Entä jos kaksi solmun ID-segmenttiä ovat samat? Aloitimme kokeilun kahdella CAN-kortilla ja yhdellä CANScopella. CAN-kortti simuloi CAN-standardisolmua lähettämään ja vastaanottamaan viestejä, ja CANScope tekee viestinnän valvonnan, kuten kuviossa 2 on esitetty.

                                                           

1.jpg

Kuva 2 Kokeilulaitteen rakentaminen


Kolmanneksi kokeile yhtä "ID-segmentti on sama, mutta tiedot ovat erilaiset"

CAN-korttia käytetään CAN-kehyksen lähettämiseen ID 000H -datalla 01020304050607H ja toinen CAN-kortti CAN-kehyksen lähettämiseksi 000H-datalla 02020304050607H. Tiedot, jotka CANScope kuuntelee, on esitetty kuviossa 3. Voidaan havaita, että on paljon tietokentän täyttövirheitä.


2.jpg

Kuva 3 Tietokenttä täyttyy

Miksi tämä on niin? Saamme ensin aaltomuodot, jotka vastaavat kahta CAN-kortin lähetysviestiä, kuten kuviossa 4 on esitetty. Koska kaksinapainen viesti on vakiotietokehys ja kukin kehys sisältää 8 tavua dataa, pakettien kaksi kehystä vastaavat aaltomuodot ovat täsmälleen sama ID-segmentissä, RTR, IDE, R0 ja DLC segmenteissä. Siten välimiesmenettelyn rooli on tehoton ja molemmat solmut pitävät itsensä ensisijaisina ja jatkavat tietojen lähettämistä.

3.jpg

Nyt keskitymme datasegmenttiin, ensimmäisen tavun tiedot ovat samat, ovat 00H; toiset tavutiedot ovat erilaiset, vastaavasti 01H, 02H. Kuvion 5 nuolet osoittavat, että vastaavien bittien logiikka on vastaavasti 0 ja 1. Aiemmin mainittiin, että CAN-solmu havaitsee, onko väylätaso sama kuin viestin lähettämiseen lähetetty taso. Jos epäjohdonmukaisuus esiintyy ei-välitysalueella, vastaava virhe käynnistyy, joten jos kaksi kehystä lähetetään samaan aikaan väylään Bittivirheet on tehtävä. Koska bittivirheviesti aiheuttaa sen, että solmu lähettää 6 dominanttia bittiä, jotka rikkoo täyttösääntöä (aktiivinen virhe tuhoaa kehysdatan), datakentän täyttövirhe ilmenee, kuten kuviossa 2 esitetään. 3.


4.jpg

Kuvio 5 Data Field Conflicts


Neljänneksi kokeile kaksi "samaa dataa samalla tunnuksella"

Samanaikaisesti voit käyttää kahta CAN-korttia lähettämään CAN-kehyksiä, joiden tunnus on 000H-data 01020304050607H ja CANScope tekee viestintätarkkailua. Ennen kaikkea emme tarkista "väylävastausta" -vaihtoehtoa, jotta CANScope toimisi vain kuuntelutilassa. Koetulokset on esitetty kuviossa 6, ja vastauserotin on väärässä muodossa.

5.jpg

Kuva 6. Vastauserotusmuoto virhe


Miksi näin tapahtuu? Viestin lähettävä solmu lähettää kaksi recessive-bittiä ACK-segmenttiin. Jos hallitseva taso vastaanotetaan ensimmäisen bitin aikana, kehystä pidetään oikein vastaanotettuna. Koska molemmat välimiehet katsovat, että he ovat saaneet välimiesoikeuden, kun heillä on sama välimiesosa, he odottavat vastausta ACK-segmentissä, mutta verkossa on vain kaksi solmua. Tästä syystä ACK-segmenttiin ei voida vastaanottaa vastausta, ja vastauserotusvirhe esiintyy. Yksinkertaisesti sanottuna tämä tilanne on samanlainen kuin se, että väylässä vain yksi solmu ei pysty lähettämään tietoja. Kuvio 7 esittää aaltomuodon vertailua, kun ACK-segmentissä ei ole vastausta.

6.jpg

Kuva 7 ACK Vastaus


Tarkistamme väylävastauksen ja aloitamme kokeilun uudelleen (tällä hetkellä linjalla on 3 solmua). Tällä hetkellä, kuten kuviossa 2 esitetään, 8, väylädata lähetetään ja vastaanotetaan normaalisti.

7.jpg

Kuva.8 Start BUS Reply


Yhteenveto: Kun kaksi solmua lähettää paketteja, joilla on sama tunnus ja tiedot samanaikaisesti, ilmestyy datakentän täyttövirhe. Kun kaksi solmua lähettää paketteja, joilla on sama tunnus ja samat tiedot, virhe ei ilmene, jos muut solmut reagoivat. Muut solmut vastasivat vastausvirheellä. Siksi meidän on vältettävä samaa tilannetta ID-segmentissä suunnittelemalla CAN-väylä.


Lähetä kysely

whatsapp

Puhelin

Sähköposti

Tutkimus