Què passa si dos segments d'identificador de node són els mateixos?

Apr 04, 2018Deixa un missatge

Què passa si els dos segments de node ID són els mateixos?




Les xarxes CAN-bus no permeten que dos nodes tinguin el mateix segment ID en principi, però què passa si els dos segments de node ID són els mateixos?

Abans de l'experiment, hem de comprendre clarament l'estructura dels missatges CAN i els principis d'arbitratge.


En primer lloc, l'estructura de missatges CAN

L'estàndard de xarxa CAN-bus més utilitzat és la versió V2.0. Aquest estàndard es divideix en parts A i B. La seva principal diferència és la longitud del codi d'identificació a l'àrea d'arbitratge. Entre ells, CAN2.0A (marc estàndard) és ID d'11 bits, CAN2.0B (expandir fotograma) és una identificació de 29 bits. La Taula 1 següent mostra l'estructura del missatge CAN:

Taula 1 Estructura de missatges CAN

Nom de la fase Longitud de fase / bit Descripció
SOF 1 significa arrencada de la fase de dades, i es compon d'un únic bit dominant
Fase d'abducció Marc estàndard 12 Indica la prioritat del marc, composa per 11 adreces d'identificació i 1 RTR
marc estès 32 Indica la prioritat del marc, composa per 29 adreces d'identificació, SRR de 1 bit, IDE estès i RTR
Fase de control 6 significa el codi del grup i els bits reservats de la longitud de dades del segment de dades
Fase de dades 0 ~ 8 el contingut de dades, la fase de control controla la durada de les dades
CRC 16 comproveu l'error de transició de quadres, des de SOF a la fase de dades, tots els continguts, excepte els bits de farcit
ACK 2 un altre node confirma que aquest marc es rep correctament
Endavant 7 significa el final del marc


En segon lloc, el principi d'arbitratge

L'arbitratge del bus CAN es basa en la "línia i el principi", tal com es mostra a la figura 1. Quan un transceptor emet senyals de diferents nivells al mateix temps, el nivell recessiu sempre està cobert pel nivell dominant. Mentre envia el missatge, el controlador CAN controlarà si l'estat de l'autobús és igual que el que s'envia. Si la inconsistència es produeix en el segment ID, es produirà l'arbitratge. Si es produeix en altres àrees, es generarà l'error corresponent.

El següent és el punt clau. Què passa si els dos segments de node ID són els mateixos? Comencem l'experiment amb dues targetes CAN i un CANScope. La targeta CAN simula el node estàndard CAN per enviar i rebre missatges, i el CANScope fa el seguiment de la comunicació, tal com es mostra a la Figura 2.

                                                           

1.jpg

Fig.2 Construcció de la plataforma d'experimentació


En tercer lloc, experimenta un "El segment ID és el mateix però les dades són diferents"

Una targeta CAN s'utilitza per enviar un marc CAN amb dades ID 000H a 01020304050607H i una altra targeta CAN per enviar un marc CAN amb dades de 000H a 02020304050607H. Les dades que escolta CANScope es mostren a la figura 3. Es pot observar que hi ha una gran quantitat d'errors de farciment de camps de dades.


2.jpg

Fig.3 Arxiu de farcit del camp de dades

Per què és així? Primer obtenim les formes d'ona corresponents als dos missatges de transmissió de la targeta CAN, tal com es mostra a la Figura 4. Com que el missatge de dos pins és un marc de dades estàndard i cada marc conté 8 bytes de dades, les formes d'ona corresponents als dos marcs de paquets són exactament igual al segment d'identificació, els segments RTR, IDE, R0 i DLC. Per tant, el paper de l'arbitratge és ineficaç i tots dos nodes es consideren prioritaris i continuen enviant dades.

3.jpg

Ara ens centrem en el segment de dades, les primeres dades de bytes són iguals, són 00H; les dades del segon byte són diferents, respectivament, 01H, 02H. Les fletxes de la Figura 5 indiquen que la lògica dels bits corresponents és 0 i 1 respectivament. Anteriorment hem esmentat que el node CAN detectarà si el nivell d'autobús és igual al nivell que va enviar quan enviava el missatge. Si la incongruència es produeix a l'àrea no arbitral, s'activa l'error corresponent, de manera que si els dos marcs s'envien a l'autobús al mateix temps, els errors de bit s'han de produir. Atès que l'error d'enviament de bits causarà que el node envieu 6 bits dominants que infringeixin la regla d'ompliment (l'error actiu destrueix les dades del marc), es produeix l'error de omplert del camp de dades, tal com es mostra a la FIG. 3.


4.jpg

Fig.5 Conflictes de camps de dades


En quart lloc, experimenta dues "les mateixes dades amb la mateixa identificació"

Al mateix temps, utilitzeu dues targetes CAN per enviar fotogrames CAN, l'ID de les quals és de dades 000H a 01020304050607H, i CANScope fa el seguiment de la comunicació. En primer lloc, no comprovem l'opció "resposta de l'autobús" per fer que CANScope funcioni en mode de només audició. Els resultats experimentals es mostren a la Figura 6 i el delimitador de resposta està en un format erroni.

5.jpg

Fig.6 Error del format de delimitador de resposta


Per què passa això? El node que envia el missatge enviarà dos bits recessius al segment ACK. Si es rep un nivell dominant durant el primer bit, es considera que el marc es rep correctament. Com que els dos àrbitres creuen que han obtingut el dret d'arbitratge quan tenen el mateix segment arbitral, esperen una resposta al segment ACK, però només hi ha dos nodes a la xarxa. Per tant, no es pot rebre cap resposta en el segment ACK, i es produeix un error delimitador de resposta. Simplement parlant, aquesta situació és similar al fet que només un node de l'autobús no podrà enviar dades. La figura 7 mostra la comparació de forma d'ona quan no hi ha cap resposta en el segment ACK.

6.jpg

Fig.7 ACK Reply


Revisem la resposta de l'autobús i torna a iniciar l'experiment (en aquest moment hi ha 3 nodes a l'autobús). En aquest moment, tal com es mostra a la fig. 8, les dades de bus es transmeten i reben normalment.

7.jpg

Fig.8 Inicia la resposta de l'autobús


Resum: Quan dos nodes envien paquets amb el mateix ID i dades al mateix temps, es produeix un error de farcit del camp de dades. Quan dos nodes envien paquets amb el mateix ID i les mateixes dades, no es produeix cap error si altres nodes responen. Altres nodes van respondre amb un error de resposta. Per tant, hem d'evitar la mateixa situació en el segment d'identificació quan dissenyem l'autobús CAN.


Enviar la consulta

whatsapp

Telèfon

Correu electrònic

Investigació