Skip to main content
Visitor II
May 4, 2020
Solved

What does a Security Status = 63 mean when reading a single block from a RFID tag using the ST25R3911B and ISO-15693?

  • May 4, 2020
  • 1 reply
  • 1309 views

Hi,

Hardware Setup: MCU: XMC4200 (infineon) connected to ST25R3911B over SPI, tag is ISO15693 compliant

Software: Using the rfal library and the iso15693 APIs in en.STSW-ST25RFAL001 (V2.1.2)

I am able to successfully read the inventory, write a single block and read a single block from the RFID tag memory.

In my testing, if I write to a single block and read from that same block immediately after (to verify that the write occurred successfully), I get a "Security Stat: 63" on the block read transaction. If I simply read a single block (which is not preceded by a write to the same block the Security Status comes out to be 0)

What does this security status code mean? Why is it not 0?

I have attached the C code snippets for my read_single_block and write_single_block function implementation.

Here is the printout from my Debug UART

******************************************************************

Running Inventory Command

iso15693Inventory status: 0

Found Tag!

ISO15693/NFC-V card found

. UID: E0:08:01:55:AB:75:6C:D5

, DSFID: 0

, RES_FLAG: 0

, CRC: a090

Reading system info

System Info for card with UIDE0:08:01:55:AB:75:6C:D5:

Flags:     0

infoFlags:   f

dsfid:     0

afi:      0

numBlocks:   250

blockSize:   8

icReference:  84

Write Contents: 0A, 0C, 41, 47 5F, 39, 35, 37

Iso15693/NFC-V Successful write to block num: 1

Reading block number: 1

Read block 1:

  Flags:     0

  ErrorCode:   0

  SecurityStat: 63

  ActualSize:  8

  Data:     0A:0C:41:47:5F:39:35:37

Block Num: 1, Read Data Length: 8

Block Contents: 0A, 0C, 41, 47 5F, 39, 35, 37

*************************************************************************

    This topic has been closed for replies.
    Best answer by Brian TIDAL

    Hi,

    As per ISO/IEC 15693-3, the block security status is sent back by the tag as a parameter in the response to a reader request such as Read Single Block with Option flag set to 1.

    The meaning of the block security status is described in ISO/IEC 15693-3 §6:

    • b1: lock flag
    • b5:b2: proprietary
    • b8:b6: RFU 0

    As this value is sent by the tag, I would suggest to contact the tag manufacturer (if I am not wrong Fujitsu Limited).

    You can also dump the full receive buffer to make sure the 0x63 is not due to a decoding error due to casting an array of bytes to a structure in your code.

    Rgds

    BT

    1 reply

    Technical Moderator
    May 4, 2020

    Hi,

    As per ISO/IEC 15693-3, the block security status is sent back by the tag as a parameter in the response to a reader request such as Read Single Block with Option flag set to 1.

    The meaning of the block security status is described in ISO/IEC 15693-3 §6:

    • b1: lock flag
    • b5:b2: proprietary
    • b8:b6: RFU 0

    As this value is sent by the tag, I would suggest to contact the tag manufacturer (if I am not wrong Fujitsu Limited).

    You can also dump the full receive buffer to make sure the 0x63 is not due to a decoding error due to casting an array of bytes to a structure in your code.

    Rgds

    BT