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

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

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





