0

At first it may seems that it uses ascii but the values don't match. The numbers 1-15 seem to written in the first nibble(without knowing what the rest bits mean) For higher values i don't have a clue.

The data received seems to be correct because the header is always right.

Before the header and after the data received there are many zeros.

I don’t have any information on the RFID writer I use. Is a generic Chinese with no documentation. The tag is the EM4305. And the reader I use is based on EM4095 in read only config.

Data Header Written Value on Tag
00000000 00110001 0111111111 0000000001
00000000 01010010 0111111111 0000000002
00000000 01100011 0111111111 0000000003
00000000 10010100 0111111111 0000000004
00000001 00101001 0111111111 0000000009
00000001 01001010 0111111111 0000000010
00000001 11101111 0111111111 0000000015
00001100 01010001 0111111111 0000000050
00010011 01111111 0111111111 0000000075
00011000 01100101 0111111111 0000000099
2
  • when dealing with binary data, stop using decimal notation ... use hexadecimal or binary notation ... keep the decimal values only as comments
    – jsotola
    Commented Oct 10 at 1:46
  • @jsotola the decimals are just number I put to the RFID writer to write in the tag. The keypad has only decimals.
    – arisk4
    Commented Oct 10 at 9:43

1 Answer 1

0

Investigating the values you show I assume this encoding, with bit numbered from 15 (the left most) to 0 (the right most).

  • Bits 15 and 14 are unknown. In your examples they are always zero. It could be an bit of the value and its parity.
  • Bits 13 to 10 are the bits 7 to 4 of the value.
  • Bit 9 is the parity bit for bits 13 to 10, making parity even.
  • Bits 8 to 5 are the bits 3 to 0 of the value.
  • Bit 4 is the parity bit for bits 8 to 5, making parity even.
  • Bits 3 to 0 are the XOR result of bits 13 to 10 and bits 8 to 5.
15 & 14 13 to 10 9 8 to 5 4 3 to 0 binary decimal
00 0000 0 0001 1 0001 00000001 1
00 0000 0 0010 1 0010 00000010 2
00 0000 0 0011 0 0011 00000011 3
00 0000 0 0100 1 0100 00000100 4
00 0000 0 1001 0 1001 00001001 9
00 0000 0 1010 0 1010 00001010 10
00 0000 0 1111 0 1111 00001111 15
00 0011 0 0010 1 0001 00110010 50
00 0100 1 1011 1 1111 01001011 75
00 0110 0 0011 0 0101 01100011 99
2
  • I think that make sense!!! the tags memory is 32 bits for each address, but I posted only the 16bits because the rest was zero. Ill do more tests with bigger numbers (the rfid copier can write up to 10 digits number). An interesting fact is that when I put 9999999999(10 digits of 9) it doesn't let me maybe it has something to do with the memory...
    – arisk4
    Commented Oct 7 at 12:41
  • @arisk4 (32 bits - 4 XOR bits) / 5 bits per 4-bit data = 5 4-bit groups, giving you a maximum of 2^20 - 1 = 1048575. You might want to check that this value works, and 1048576 does not. You can try powers of 2 to find the actual usable width. -- If you extend your question with more and bigger values, I will extend my answer. Commented Oct 7 at 12:52

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.