Usuario
CRC8 Byte(0) de un Array C#

Pregunta
-
Hola a todos
Estoy buscando como hacer CRC8 en el byte(0) para una serie de datos, hay que tener en cuenta el Id del frame, que en este caso es 0x11E se ha de incluir en el proceso de calculo porque con 0x11D y los mismos datos da otro CRC.
El polinomio tiene que ser uno de esos dos:
CRC-8-SAE x8 + x4 + x3 + x2 + 1
1. CRC de 8 bits: común
-Contador en vivo: Max. 0x0F
-Polinomio: 0x1D (CRC-8-SAE J1850)
-Valor inicial: 0xFF
-Valor XOR: 0xFF
2. CRC de 8 bits: E2E
-Contador en vivo: Max. 0x0E
-Polinomio: 0x1D (CRC-8-SAE J1850)
-Modo de identificación de datos: ambos
-Valor inicial: 0x00
-Valor XOR: 0xFF
Con CRC en byte (7) hay varias publicaciones muy buenas sobre cómo hacerlo, pero en Byte (0) e incluyendo el ID en el proceso no encuentro nada, así que lo publico para ver si alguien puede ayudar
Trama
ID Dat Nm Byte CRC Byte (0) Contador Byte (1) Byte (2) Byte (3) Byte (4) Byte (5) Byye (6) Byte (7)
11E 8 D4 00 00 00 00 00 00 00
11E 8 B0 01 00 00 00 00 00 00
11E 8 1C 02 00 00 00 00 00 00
11E 8 78 03 00 00 00 00 00 00
11E 8 6B 04 00 00 00 00 00 00
11E 8 0F 05 00 00 00 00 00 00
11E 8 A3 06 00 00 00 00 00 00
11E 8 C7 07 00 00 00 00 00 00
11E 8 85 08 00 00 00 00 00 00
11E 8 E1 09 00 00 00 00 00 00
11E 8 4D 0A 00 00 00 00 00 00
11E 8 29 0B 00 00 00 00 00 00
11E 8 3A 0C 00 00 00 00 00 00
11E 8 5E 0D 00 00 00 00 00 00
11E 8 F2 0E 00 00 00 00 00 00
11E 8 96 0F 00 00 00 00 00 00
11E 8 D4 00 00 00 00 00 00 00
Con ID 11D estos son los datos
trama
ID Dat Nm Bytes CRC Byte (0) Contador Byte (1) Byte (2) Byte (3) Byte (4) Byte (5) Byte (6) Byte (7)
11D 8 64 00 00 00 00 00 00 00
11D 8 00 01 00 00 00 00 00 00
11D 8 AC 02 00 00 00 00 00 00
11D 8 C8 03 00 00 00 00 00 00
11D 8 DB 04 00 00 00 00 00 00
11D 8 BF 05 00 00 00 00 00 00
...
11D 8 26 0F 00 00 00 00 00 00
Todas las respuestas
-
Hola Carlos,
Gracias por levantar tu consulta en los foros de MSDN.
Eric Ruiz
____________________________
Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.
Si tiene algún cumplido o reclamo sobre el soporte de MSDN siéntase en la libertad de contactar MSDNFSF@microsoft.com.
-
Hola a todos
Estoy buscando como hacer CRC8 en el byte(0) para una serie de datos, hay que tener en cuenta el Id del frame, que en este caso es 0x11E se ha de incluir en el proceso de calculo porque con 0x11D y los mismos datos da otro CRC.
El polinomio tiene que ser uno de esos dos:
CRC-8-SAE x8 + x4 + x3 + x2 + 1
1. CRC de 8 bits: común
-Contador en vivo: Max. 0x0F
-Polinomio: 0x1D (CRC-8-SAE J1850)
-Valor inicial: 0xFF
-Valor XOR: 0xFF
2. CRC de 8 bits: E2E
-Contador en vivo: Max. 0x0E
-Polinomio: 0x1D (CRC-8-SAE J1850)
-Modo de identificación de datos: ambos
-Valor inicial: 0x00
-Valor XOR: 0xFF
Con CRC en byte (7) hay varias publicaciones muy buenas sobre cómo hacerlo, pero en Byte (0) e incluyendo el ID en el proceso no encuentro nada, así que lo publico para ver si alguien puede ayudar
Trama
ID Dat Nm Byte CRC Byte (0) Contador Byte (1) Byte (2) Byte (3) Byte (4) Byte (5) Byye (6) Byte (7)
11E 8 D4 00 00 00 00 00 00 00
11E 8 B0 01 00 00 00 00 00 00
11E 8 1C 02 00 00 00 00 00 00
11E 8 78 03 00 00 00 00 00 00
11E 8 6B 04 00 00 00 00 00 00
11E 8 0F 05 00 00 00 00 00 00
11E 8 A3 06 00 00 00 00 00 00
11E 8 C7 07 00 00 00 00 00 00
11E 8 85 08 00 00 00 00 00 00
11E 8 E1 09 00 00 00 00 00 00
11E 8 4D 0A 00 00 00 00 00 00
11E 8 29 0B 00 00 00 00 00 00
11E 8 3A 0C 00 00 00 00 00 00
11E 8 5E 0D 00 00 00 00 00 00
11E 8 F2 0E 00 00 00 00 00 00
11E 8 96 0F 00 00 00 00 00 00
11E 8 D4 00 00 00 00 00 00 00
Con ID 11D estos son los datos
trama
ID Dat Nm Bytes CRC Byte (0) Contador Byte (1) Byte (2) Byte (3) Byte (4) Byte (5) Byte (6) Byte (7)
11D 8 64 00 00 00 00 00 00 00
11D 8 00 01 00 00 00 00 00 00
11D 8 AC 02 00 00 00 00 00 00
11D 8 C8 03 00 00 00 00 00 00
11D 8 DB 04 00 00 00 00 00 00
11D 8 BF 05 00 00 00 00 00 00
...
11D 8 26 0F 00 00 00 00 00 00