Étape 2: Quel est stocké sur la carte ?
Les cartes RFID que j’ai apporté ont numéros imprimés sur le dos d’eux. Ce nombre indique quelles données la carte a inclus dedans.
la carte avec le 0007820706 119,21922 imprimé là-dessus transmet ce modèle :
1111111110010111000000000000001111011110101001010101000010101100
Le premier ensemble de bits 111111111 sont la séquence de démarrage - il est utilisé pour indiquer au lecteur qu’un code est à venir - le lecteur utilise également la séquence pour verrouiller sur les données de la carte.
Données stockées sont transmises dans les groupes de 4 bits, avec un bit de parité à la fin de chaque groupe.
Les données peuvent être divisées comme suit :
00101 11000 00000 00000 01111 01111 01010 01010 10100 00101 0110 0
Si nous ignorons le bit de parité à la fin de chaque nibble nous avons
0010 1100 0000 0000 0111 0111 0101 0101 1010 0010 0110 0
2 C 0 0 7 7 5 5 A 2 CHECKSUM STOP
Ce code est 2c 0077 55a2 si nous rompons le code en 3 groupes, nous avons 2c, suivi par 0077 (qui est 119 en décimal), et enfin 55A2, qui est 21922 en décimal - ce qui correspond à la 119,21922.
Le même nombre est aussi écrit dans un autre chemin sur ces cartes 0007820706 (en décimal) est tout simplement le 7755A2 numéro hexadécimal.
WOOT, nous comprenons maintenant comment les données sont stockées.
2C est un constant code qui est envoyé avec toutes les cartes. C’est simplement un identificateur d’installation pour ce système RFID.
Comment fonctionne la parité et le œuvre de somme de contrôle ?
Une dernière pièce de données qui transmet la carte est un terme de somme de contrôle - cela sert à s’assurer que toutes les données ont été reçues avec succès. Tout d’abord, le bit de parité à la fin de chaque nibble des données est parité paire - cela signifie que l’émetteur va ajouter un 1 pour s’assurer que chaque bloc de données a un « même » nombre de « 1 » bits - donc si on regarde un le « 2 », qui est 0010 en binaire - le système de parité détecte qu’il y avait un nombre impair de bits « 1 » et j’ajouterais un pour compenser. Comparer qu’à la « C » qui est 1100, le système de parité détecte qu’il y a un nombre pair de bits « 1 », alors il serait d’ajouter un zéro.
00101 2
C 11000
00000 0
00000 0
01111 7
01111 7
01010 5
01010 5
10100 A
00101 2
somme de contrôle 0110 + bit de stop 0
Enfin, la somme de contrôle est un bit de parité même appliqué à chacun des bits rangée verticale. De cette façon, il n’y a envoyé un contrôle horizontal et vertical de chaque bit - tout ce que peut aligner ou le lecteur rejettera tout simplement la transmission.
Quand j’ai décodé les données pour ma carte de prox de travail, il s’ensuit une séquence similaire ici, mais (pour des raisons évidentes), je ne publie effectivement les numéros. Encore une fois, partie de la séquence était un code d’installation, et le reste de la séquence qui s’est tenue le même nombre qui a été imprimé au verso de la carte.