Paso 2: ¿Qué es almacenado en la tarjeta?
Las tarjetas RFID que traído tienen números impresos en la parte posterior de ellos. Este número señala los datos que la tarjeta ha incluido en él.
la tarjeta con 0007820706 119,21922 impreso en él transmite este patrón:
1111111110010111000000000000001111011110101001010101000010101100
El primer conjunto de bits 111111111 son la secuencia de inicio, se utiliza para indicar al lector que viene un código, el lector también utiliza la secuencia de bloqueo sobre los datos de la tarjeta.
Los datos almacenados se transmiten en grupos de 4 bits, con un bit de paridad al final de cada grupo.
Los datos pueden dividirse como sigue;
00101 11000 00000 00000 01111 01111 01010 01010 10100 00101 0110 0
Si ignora el bit de paridad al final de cada nibble tenemos
0010 1100 0000 0000 0111 0111 0101 0101 1010 0010 0110 0
2 C 0 0 7 7 5 5 A 2 CHECKSUM STOP
Este código es c 2 0077 55a2 si rompemos el código en 3 grupos, tenemos 2c, seguido por 0077 (que es el 119 en decimal), y finalmente 55A2, 21922 en decimal - siendo esto corresponde a la 119,21922.
El mismo número está escrito también en otra manera en estas tarjetas 0007820706 (en decimal) es simplemente el 7755A2 número hexadecimal.
WOOT ahora comprendemos cómo se almacenan los datos.
2C es un código constante que se envía con todas las tarjetas. Es simplemente un identificador de instalación de este sistema RFID.
¿Cómo funciona la paridad y el trabajo de suma de comprobación?
Un último dato que la tarjeta transmite es una palabra de suma de comprobación: se utiliza para asegurar que todos los datos ha sido recibido con éxito. En primer lugar, el bit de paridad al final de cada nibble de datos es incluso paridad - esto significa que el transmisor agrega un 1 para asegurarse de que cada bloque de datos tiene un número de bits '1' - de 'incluso' así que si miramos un '2', que es 0010 en binario - detectaría el sistema de paridad que existía un número impar de bits '1' y añadir uno para compensar. Comparar que la 'c' que es 1100, el sistema de paridad detectaría que hay un número par de bits '1', por lo que añadiría un cero.
00101 2
C 11000
00000 0
00000 0
01111 7
01111 7
5 01010
5 01010
10100 A
00101 2
0110 checksum + bit de parada 0
Finalmente, la suma de comprobación es un bit de paridad incluso aplicado a cada uno de los bits de la fila vertical. Así, hay que un control horizontal y vertical de cada bit enviado - todo tiene que alinearse, o el lector simplemente rechazará la transmisión.
Descifra los datos de mi tarjeta de prox trabajo, siguió una secuencia similar aquí, pero (por razones obvias) realmente no publicar los números. Otra vez, parte de la secuencia era un código de instalación, y el resto de la secuencia llevó a cabo el mismo número que fue impreso en la parte posterior de la tarjeta.