Link to this headingISO 15693 Protocol
- Uses the Amplitude Shift Keying 13.56 MHz ± 7 kHz
- There are three elvens for the ASK so two bits are encoded into a single change.
- At one of two data rates 26.48 kbit/s, 52.97 kbit/s
- Low speed uses 4 levels to send two bits at the same time
- High speed uses 256 levels to send 8 bits at the same time
Common Cards:
Link to this headingFrames
- SOF: Start of Frame (10101011 pattern)
- Flags: 8-bit control field
- Command: 8-bit command code
- Parameters: Variable length (UID, addresses, etc.)
- Data: Variable length payload
- CRC: 16-bit CRC-CCITT
- EOF: End of Frame
Reader Frame:
packet
+8: "SOF"
+8: "Flags"
+8: "Command"
+64: "Parameters"
+32: "Data"
+16: "CRC"
+8: "EOF"
Card Frame:
packet
+8: "SOF"
+8: "Flags"
+32: "Data"
+16: "CRC"
+8: "EOF"
Error Frame:
[SOF] [01] [Error Code] [CRC] [EOF]
Link to this headingFlags
packet
+1: "Sub-carrier"
+1: "Address"
+1: "Select"
+1: "Protocol Ext"
+1: "RFU"
+1: "Option"
+1: "RFU"
+1: "RFU"
Link to this headingCommands
Common Commands
INVENTORY 0x01 - Find cards in field
STAY_QUIET 0x02 - Silence specific card
READ_SINGLE_BLOCK 0x20 - Read one block
WRITE_SINGLE_BLOCK 0x21 - Write one block
LOCK_BLOCK 0x22 - Lock block against writing
READ_MULTIPLE_BLOCK 0x23 - Read multiple blocks
SELECT 0x25 - Select specific card
RESET_TO_READY 0x26 - Reset card state
WRITE_AFI 0x27 - Write AFI value
LOCK_AFI 0x28 - Lock AFI against changes
WRITE_DSFID 0x29 - Write DSFID value
LOCK_DSFID 0x2A - Lock DSFID against changes
GET_SYSTEM_INFO 0x2B - Get card information
Optional Commands:
GET_MULTIPLE_BLOCK_SECURITY 0x2C
READ_SINGLE_BLOCK_SECURITY 0x2D
WRITE_MULTIPLE_BLOCK 0x24
CUSTOM_COMMANDS 0xA0-0xDF
Link to this headingInventory Command
Reader -> Card:
[26] [01] [00] [CRC]
(Flags=26h, Command=0x01, No mask, CRC)
Card -> Reader:
[00] [UID 8 bytes] [DSFID] [CRC]
(No error, UID, DSFID, CRC)
Link to this headingRead Single Block Command
Reader -> Card:
[22] [20] [UID 8 bytes] [Block#] [CRC]
(Addressed, Read command, UID, Block number, CRC)
Card -> Reader:
[00] [Block Data 4 bytes] [CRC]
(No error, Data, CRC)
Link to this headingWrite Single Block Command
Reader -> Card:
[22] [21] [UID 8 bytes] [Block#] [Data 4 bytes] [CRC]
(Addressed, Write command, UID, Block, Data, CRC)
Card -> Reader:
[00] [CRC]
(No error, CRC)
Link to this headingErrors
00: No Error
01: Command not supported
02: Command not recognized
03: Option not supported
0F: Unknown error
10: Block not available
11: Block already locked
12: Block locked
13: Block not successfully programmed
14: Block not successfully locked