Sigmatek and Co KG PHR001 HF-RFID Reader User Manual HF RFID Reader Modul
Sigmatek GmbH & Co KG HF-RFID Reader HF RFID Reader Modul
User Manual
HF-RFID Reader Module Date of creation: 23.07.2014 Version date: 28.03.2014 Article number: xxxxxx Publisher: SIGMATEK GmbH & Co KG A-5112 Lamprechtshausen Tel.: 06274/4321 Fax: 06274/4321-18 Email: office@sigmatek.at WWW.SIGMATEK-AUTOMATION.COM Copyright © 2014 SIGMATEK GmbH & Co KG All rights reserved. No part of this work may be reproduced, edited using an electronic system, duplicated or distributed in any form (print, photocopy, microfilm or in any other process) without the express permission. We reserve the right to make changes in the content without notice. The SIGMATEK GmbH & Co KG is not responsible for technical or printing errors in the handbook and assumes no responsibility for damages that occur through use of this handbook. HF-RFID-READER HF-RFID Reader PRELIMINARY Page 1 HF-RFID-READER Contents Technical Data ......................................................................... 7 1.1 RFID Specification ........................................................................ 7 1.2 Electrical Requirements ............................................................... 7 1.3 Environmental Conditions ........................................................... 7 Mechanical Dimensions .......................................................... 9 Connector Layout .................................................................. 10 3.1.1 Protocol Description ............................................................. 12 4.1 Structure Packet ......................................................................... 12 4.2 Example of Communication ...................................................... 13 4.2.1 From Host to RFID Reader ............................................................... 13 4.2.2 From RFID Reader to Host ............................................................... 13 4.3 Breakdown of the Status Bytes ................................................. 13 4.4 Card Types for Protocol Handling ............................................ 14 4.4.1 Protocol ............................................................................................. 14 4.4.2 Card type .......................................................................................... 14 4.5 4.5.1 Applicable Connectors ...................................................................... 11 Checksum .................................................................................... 15 Data Configuration Example ............................................................. 15 Overview of the Available Commands ................................ 16 5.1 General Reader Commands ....................................................... 16 5.2 General Transponder Commands ............................................. 16 5.3 Tag-specific Commands ............................................................ 16 Page 2 PRELIMINARY HF-RFID-READER 5.4 DESFire-Commands ................................................................... 17 Detailed Description of the Commands .............................. 18 6.1 Get-Reader Name – 0x00 ............................................................ 18 6.1.1 From Host to RFID Reader ............................................................... 18 6.1.2 From RFID Reader to Host ............................................................... 18 6.1.3 Example ............................................................................................ 18 6.2 Get-Product Name – 0x01 .......................................................... 19 6.2.1 From Host to RFID Reader ............................................................... 19 6.2.2 From RFID Reader to Host ............................................................... 19 6.2.3 Example ............................................................................................ 19 6.3 Get-Software Revision – 0x02 ................................................... 20 6.3.1 From Host to RFID Reader ............................................................... 20 6.3.2 From RFID Reader to Host ............................................................... 20 6.3.3 Example ............................................................................................ 20 6.4 Get-Hardware Revision – 0x03 .................................................. 21 6.4.1 From Host to RFID Reader ............................................................... 21 6.4.2 From RFID Reader to Host ............................................................... 21 6.4.3 Example ............................................................................................ 21 6.5 Get-Bootloader Revision – 0x04................................................ 22 6.5.1 From Host to RFID Reader ............................................................... 22 6.5.2 From RFID Reader to Host ............................................................... 22 6.5.3 Example ............................................................................................ 22 6.6 Calibrate Antenna – 0x05 ........................................................... 23 6.6.1 From Host to RFID Reader ............................................................... 23 6.6.2 From RFID Reader to Host ............................................................... 23 6.6.3 Example ............................................................................................ 23 6.7 PRELIMINARY Scan Tags – 0x06 ........................................................................ 24 Page 3 HF-RFID-READER 6.7.1 From Host to RFID Reader ............................................................... 24 6.7.2 From RFID Reader to Host ............................................................... 24 Configuration of Card Data................................................... 24 7.1 Example for 1 Card ..................................................................... 25 7.2 Example for 2 Cards ................................................................... 25 7.3 Select Tag – 0x07 ........................................................................ 27 7.3.1 From Host to RFID Reader ............................................................... 27 7.3.2 From RFID Reader to Host ............................................................... 27 7.3.3 Example ............................................................................................ 28 7.4 7.4.1 From Host to RFID Reader ............................................................... 29 7.4.2 From RFID Reader to Host ............................................................... 29 7.5 Read-From Tag – 0x09 ............................................................... 30 7.5.1 Description of Non-encrypted Cards ................................................. 30 7.5.2 From Host to RFID Reader ............................................................... 30 7.5.3 From RFID Reader to Host ............................................................... 30 7.5.4 Example of Reading Non-encrypted Cards: ...................................... 31 7.6 Description of Encrypted Cards ................................................ 32 7.6.1 From Host to RFID Reader ............................................................... 32 7.6.2 From RFID Reader to Host ............................................................... 32 7.6.3 Examples of Reading Encrypted Cards: ........................................... 33 7.7 Write-To Tag – 0x0A ................................................................... 35 7.7.1 Description of Non-encrypted Cards ................................................. 35 7.7.2 From Host to RFID Reader ............................................................... 35 7.7.3 From RFID Reader to Host ............................................................... 35 7.7.4 Example of Writing to Non-encrypted Cards: .................................... 36 7.8 Page 4 DeSelect Tag – 0x08 ................................................................... 29 Description of Encrypted Cards ................................................ 37 PRELIMINARY HF-RFID-READER 7.8.1 From Host to RFID Reader ............................................................... 37 7.8.2 From RFID Reader to Host ............................................................... 37 7.8.3 Examples of Reading Encrypted Cards: ........................................... 38 7.9 Option Tag Commands – 0x0B .................................................. 39 7.9.1 Commands........................................................................................ 39 7.9.2 From Host to RFID Reader ............................................................... 39 7.9.3 From RFID Reader to Host ............................................................... 40 7.9.4 Example Read AFI – 0x00 ................................................................ 40 7.9.5 Example Write AFI – 0x01 ................................................................ 41 7.9.6 Example LOCK AFI – 0x02 ............................................................... 42 7.9.7 Example READ DSFID – 0x03.......................................................... 42 7.9.8 Example WRITE DSFID – 0x04 ........................................................ 43 7.9.9 Example LOCK DSFID – 0x05 .......................................................... 43 7.9.10 LOCK BLOCK – 0x06 ....................................................................... 44 7.9.11 SYS-INFO – 0x0A ............................................................................. 45 7.10 Get-ATS – 0x0C ........................................................................... 46 7.10.1 From Host to RFID Reader ............................................................... 46 7.10.2 From RFID Reader to Host ............................................................... 46 7.10.3 Example ............................................................................................ 46 7.11 SET-PPS – 0x0D .......................................................................... 47 7.11.1 From Host to RFID Reader ............................................................... 47 7.11.2 From RFID Reader to Host ............................................................... 47 7.11.3 Example ............................................................................................ 47 7.12 Execute Command – 0x0E ......................................................... 48 7.12.1 From Host to RFID Reader ............................................................... 48 7.12.2 From RFID Reader to Host ............................................................... 48 7.12.3 Example ............................................................................................ 49 7.13 7.13.1 PRELIMINARY SET RSSI – 0x11.......................................................................... 50 From Host to RFID Reader ............................................................... 50 Page 5 HF-RFID-READER 7.13.2 From RFID Reader to Host ............................................................... 50 7.13.3 Example ............................................................................................ 50 Communication Process Diagram ....................................... 51 8.1 Connecting with the Reader ...................................................... 51 8.2 With Tag Communication .......................................................... 52 Enumerators C....................................................................... 53 10 Declaration of Conformity .................................................... 55 10.1 FCC Statement ............................................................................ 55 Documentation Changes .............................................................. 56 Page 6 PRELIMINARY HF-RFID-READER Technical Data 1.1 RFID Specification Protocol Supported cards RF power Operating frequency Reading distance ISO15693 ISO14443A ISO14443B B3 Mifare Ultralight / Ultralight C Mifare Classic Mini / 1K / 4K Mifare Desfire EV1 2K, 4K 8K Mifare Pro, Plus ISO15693 NXP ICOD SLI, TI TagIT, standard cards 100 mW 13.56 MHz up to 12 cm (depending on the tag, antenna and ambient conditions) Write distance circa 70 % or the read distance Host interface USB CDC (Virtual Serial Port) Default 57600 Baud IO pins 3 software controllable GPIO pins Antenna external via Molex Pico Blade article No. 0532610471 Driver Dimensions 1.2 41.00 mm x 37.70 mm x 6.50 mm (W x H x D) Electrical Requirements Supply voltage Current consumption 1.3 Windows 5 V DC ±5 % (via USB) maximum 100 mA Environmental Conditions Storage temperature Operating temperature Humidity -20 ... +85 °C 0 ... +55 °C 0 - 95 %, non-condensing EMV resistance in accordance with EN 61000-6-2 (industrial area) EMC - noise generation in accordance with EN 61000-6-4 (industrial area) Radio Communication Conformity Europe ETSI EN 302 291 Radio Communication Conformity USA FCC CFR 47 Part 15 PRELIMINARY Page 7 HF-RFID-READER Product safety Page 8 EN 60950-1:2006 PRELIMINARY HF-RFID-READER Mechanical Dimensions PRELIMINARY Page 9 HF-RFID-READER Connector Layout X1: USB-Device 2.0 (Type Mini-B) Pin Function +5 V DD+ n.c. GND X2: USB Device 2.0 (4-pin Molex Pico Blade) Pin Function GND D+ D+5 V X3: UART (4-pin Molex Pico Blade) Page 10 Pin Function +5 V TXD RXD GND PRELIMINARY HF-RFID-READER X4: Antenna (4-pin Molex Pico Blade) Pin 3.1.1 X1: X2: X3: X4: Function RFO 2 GND GND RFO 1 Applicable Connectors USB 2.0 (Type A) (not included in delivery) 4-pin Molex Pico Blade - 51021-0400 4-pin Molex Pico Blade - 51021-0400 4-pin Molex Pico Blade - 51021-0400 PRELIMINARY Page 11 HF-RFID-READER Protocol Description The protocol is always the same and independent of the interface used. 4.1 Structure Packet All packets between the reader and host have the same structure and must be interpreted the same. Description Number Short description Color Instruction 1 byte CMD Blue status 1 byte STC red Data length 2 bytes DLI Orange DATA variable Data green Checksum 1 byte CS Black Instruction The field command describes which command should be run. This is described in chapter 5. Status: This byte is always 0x00 for commands from the host to the RFIE reader. The status is used exclusively as a return value for the reader and indexes the status of the currently executed commands. Data Length: The "Data length" indicates how much payload data is transferred after this byte. Data: The payload data to evaluate. Checksum: The checksum is used to verify the transferred data. More information can be found in chapter 4.4. Page 12 PRELIMINARY HF-RFID-READER 4.2 Example of Communication As an example, the command 0x02 – Get Software-Revision is used here. 4.2.1 Byte No. From Host to RFID Reader Number Contents Data Sent Value Description 1 byte CMD 0x02 Command 0x02 "Get Software Revision" 1 byte STC 0x00 Status code for read always 0x00 2–3 2 bytes DLI 0x00, 0x00 Data length 1 byte CS 0x02 Data checksum 4.2.2 Byte No. From RFID Reader to Host Number Contents Data Sent Description 1 byte CMD 0x02 Command 0x02 "Get Software Revision" 1 byte STC 0x00 status code from the host to the reader 2–3 2 bytes DLI 0x00, 0x00 Data length 4–7 4 bytes Data 0x00, 0x01, 0x00, 0x06 Software Revision 01.06 1 byte CS 0x3D Checksum 4.3 Breakdown of the Status Bytes Here, the status bytes and there meanings are explained. Name Value Description ERR_RET_SUCCESS 0x00 The command was successfully executed ERR_ET_PARM 0x01 The wrong parameter was sent ERR_RET_DATA_PUSH 0x02 The wrong data were sent ERR_RET_CMD_INVALID 0x03 The command used does not exist ERR_RET_CRC_ERR 0x04 The Checksum is defective ERR_RET_LENGTH 0x05 The wrong data length was entered ERR_RET_CMD_DATA 0x06 The data length and transmitted data do not match ERR_RET_CALIBRATE_ANT 0x0F The antenna could not be calibrated ERR_RET_TIMEOUT 0x10 A time out event has occurred ERR_RET_FIFO_DATA 0x11 No data in FIFO ERR_RET_COLLISION 0x12 Card collision ERR_RET_EXEC_CMD 0x13 Error while executing a command PRELIMINARY Page 13 HF-RFID-READER ERR_RET_CARD_NOT_SUPPORTED 0x14 The RFID card is not supported ERR_RET_AUTH 0x15 Login with card failed 4.4 Card Types for Protocol Handling 4.4.1 Protocol See Enumerators Table, Chapter 4.6 Norm Value Example ISO14443A 0x00 Mifare Classic 1K ISO14443B 0x01 NFC Label such as SRI512 ISO15693 0x02 NXP ICode SLI Unknown card 0xFF unidentified card 4.4.2 Version Card type See Enumerators Table, Chapter 4.6 Card type Value Example Mifare Ultralight 0x00 NXP MF0ICU1 Mifare Mini 0x01 NXP MF1ICS20 Mifare Classic 1K 0x02 NXP MF1S503 Mifare Classic 4K 0x03 NXP MF1S70 Mifare Plus 0x04 MF1 S PLUS60 Mifare DESFire 0x05 MF3 IC D41 Mifare ISO14443A-4 0x06 ISO14443B Srix 0x07 ISO14443B Srix 176 0x08 ISO15693 (default) 0x09 NXP ICode SLI, TI TagIT Unknown card 0xFF unidentified card Page 14 Version PRELIMINARY HF-RFID-READER 4.5 Checksum The checksum is an XOR from all bytes. This is calculated as follows: Example command "Scan Tags – 0x06" 4.5.1 Data Configuration Example Byte No. Number Contents Data Sent Description 1 byte CMD 0x06 Command "Scan Tags" 1 byte STC 0x00 Status code for read always 0x00 2–3 2 bytes DLI 0x01, 0x00 Data length 1 byte Data 0x00 Card type 1 byte CS 0x07 Data checksum Below the data (0x06 0x00 0x01 0x00 0x02) that should be sent to the reader can be seen. Before the data are sent, the checksum (byte 5) must be formed. The checksum in an XOR or each subsequent byte. Bytes Number 0x06 0x00 0x01 0x00 0x02 data to send (command, status...) 0x06 ⊻ 0x00 ⊻ 0x01 ⊻ 0x00 ⊻ 0x02 XOR calculation 0x05 Checksum 0x06 0x00 0x01 0x00 0x02 0x05 data to send including the checksum ⊻ = XOR PRELIMINARY Page 15 HF-RFID-READER 5.1 Overview of the Available Commands General Reader Commands Instruction Value Description GET-Reader Name 0x00 Calls the reader name GET-Product Name 0x01 Calls the product name GET-Software Rev. 0x02 Calls the software version GET-Hardware Rev. 0x03 Calls the hardware version GET-Bootloader Rev. 0x04 Calls the booloader version Calibrate_Antenna 0x05 Calibrates the antenna GET-Feature 0x10 Calls the available functions SET-RSSI 0x11 Activates the RSSI value transition GPIO_Commands 0x0F Enables the control of GPIOs 5.2 Version General Transponder Commands General commands that can be used in all tags. Instruction Value Description Scan_Tags 0x06 Searches for tags that are in range. Select_Tag 0x07 Selects a tag Deslect_Tag 0x08 Deselects a tag Read_From_Tag 0x09 Reads data from a tag Write_To_Tag 0x0A Writes data to a tag 5.3 Version Tag-specific Commands The tag-specific commands are limited to a tag group or type. Instruction Value Description Option_Tag 0x0B See chapter 7.9 (ISO15693 only) Page 16 Version PRELIMINARY HF-RFID-READER 5.4 DESFire-Commands This command is used with Mifare DESFire cards. More information can be found in the DESFire standards documentation. Please reference the NXP documentation for the DESFire standard Instruction Value Description Get ATS 0x0C Call answer from the card for select Set PPC 0x0D Sets communication parameters Execute Command 0x0E Executes a command on a DESFire card PRELIMINARY Version Page 17 HF-RFID-READER Detailed Description of the Commands 6.1 Get-Reader Name – 0x00 The command returns the reader name. 6.1.1 From Host to RFID Reader Byte No. Number Contents Data Sent Description 1 byte CMD 0x00 Command "Get-Reader Name" 1 byte STC 0x00 Status code for read always 0x00 2–3 2 bytes DLI 0x00, 0x00 Data length 1 byte CS 0x00 Data checksum 6.1.2 From RFID Reader to Host Byte No. Number Contents Data Sent Description 1 byte CMD 0x00 Command "Get-Reader Name" 1 byte STC 0x00 status code from reader, see chapter 4.3 2–3 2 bytes DLI 0x00, 0x00 Data length x byte Data 0xFF, 0xFF, 0xFF Reader name as ASCII string X+1 1 byte CS 0x3D Checksum 6.1.3 Example Host to Reader: 0x00 0x00 0x00 0x00 0x00 Reader to Host: 0x00 0x00 0x05 0x00 0x52 0x2D 0x4F 0x45 0x4D 0x3D Command Status Data length Data Checksum Sent: Received: Page 18 = 0x00 => Command "Get-Reader Name" = 0x00 => action error-free = 0x05 0x00 => 5 bytes = 0x52 0x2D 0x4F 0x45 0x4D => ASCII „R-OEM“ = 0x3D 5 bytes 10 bytes PRELIMINARY HF-RFID-READER 6.2 Get-Product Name – 0x01 The command returns the product name of the reader. 6.2.1 From Host to RFID Reader Byte No. Number Contents Data Sent Description 1 byte CMD 0x01 Command "Get-Product Name" 1 byte STC 0x00 Status code for read always 0x00 2–3 2 bytes DLI 0x00, 0x00 Data length 1 byte CS 0x01 Data checksum 6.2.2 From RFID Reader to Host Byte No. Number Contents Data Sent Description 1 byte CMD 0x01 Command "Get-Product Name" 1 byte STC 0x00 status code from reader, see chapter 4.3 2–3 2 bytes DLI 0x00, 0x00 Data length x byte Data 0xFF, 0xFF, 0xFF Product name as ASCII string X+1 1 byte CS 0x3D Checksum 6.2.3 Example Host to Reader: 0x01 0x00 0x00 0x00 0x01 Reader to Host: 0x01 0x00 0x0D 0x00 data: 0x39 0x30 0x30 0x2D 0x4D 0x54 0x2D 0x53 0x65 0x72 0x69 0x61 0x6C 0x0C Command Status Data length Data Checksum Sent: Received: PRELIMINARY = 0x01 => Command "Get-Product Name" = 0x00 => action error-free = 0x0D 0x00=> 13 bytes = data => ASCII String "900-MT-Serial" = 0x0C 5 bytes 18 bytes Page 19 HF-RFID-READER 6.3 Get-Software Revision – 0x02 The command returns the name of the software version found on the reader. 6.3.1 From Host to RFID Reader Byte No. Number Contents Data Sent Description 1 byte CMD 0x02 Command "Get-Software Revision" 1 byte STC 0x00 Status code for read always 0x00 2–3 2 bytes DLI 0x00, 0x00 Data length 1 byte CS 0x02 Data checksum 6.3.2 From RFID Reader to Host Byte No. Number Contents Data Sent Description 1 byte CMD 0x02 Command "Get-Software Revision" 1 byte STC 0x00 status code from reader, see chapter 4.3 2–3 2 bytes DLI 0x04, 0x00 Data length 4–7 4 bytes Data 0x00, 0x02, 0x00, 0x09 Software version (02.09) 1 byte CS 0x0D Checksum 6.3.3 Example Host to Reader: 0x02 0x00 0x00 0x00 0x02 Reader to Host: 0x02 0x00 0x04 0x00 0x00 0x02 0x00 0x09 0x0D Command Status Data length Data Checksum Sent: Received: Page 20 = 0x02 => Command "Get-Software Revision" = 0x00 => action error-free = 0x0D 0x00 => 4 bytes = 0x00 0x02 0x00 0x09 => Software Revision 02.09 = 0x0D 5 bytes 9 bytes PRELIMINARY HF-RFID-READER 6.4 Get-Hardware Revision – 0x03 The command returns the hardware version of the reader. 6.4.1 From Host to RFID Reader Byte No. Number Contents Data Sent Description 1 byte CMD 0x03 Command "Get-Hardware Revision" 1 byte STC 0x00 Status code for read always 0x00 2–3 2 bytes DLI 0x00, 0x00 Data length 1 byte CS 0x03 Data checksum 6.4.2 From RFID Reader to Host Byte No. Number Contents Data Sent Description 1 byte CMD 0x03 Command "Get-Hardware Revision" 1 byte STC 0x00 status code from reader, see chapter 4.3 2–3 2 bytes DLI 0x04, 0x00 Data length 4–7 4 bytes Data 0x00, 0x01, 0x00, 0x00 Hardware version (01.00) 1 byte CS 0x06 Checksum 6.4.3 Example Host to Reader: 0x03 0x00 0x00 0x00 0x03 Reader to Host: 0x03 0x00 0x04 0x00 0x00 0x01 0x00 0x00 0x06 Command Status Data length Data Checksum Sent: Received: PRELIMINARY = 0x03 => Command "Get-Hardware Revision" = 0x00 => action error-free = 0x04 0x00 => 4 bytes = 0x00 0x01 0x00 0x00 => Hardware Revision 01.00 = 0x06 5 bytes 9 bytes Page 21 HF-RFID-READER 6.5 Get-Bootloader Revision – 0x04 The command returns the bootloader revision on the reader. 6.5.1 From Host to RFID Reader Byte No. Number Contents Data Sent Description 1 byte CMD 0x04 Command "Get-Bootloader Revision" 1 byte STC 0x00 Status code for read always 0x00 2–3 2 bytes DLI 0x00, 0x00 Data length 1 byte CS 0x04 Data checksum 6.5.2 From RFID Reader to Host Byte No. Number Contents Data Sent Description 1 byte CMD 0x04 Command "Get-Bootloader Revision" 1 byte STC 0x00 Status code from reader, see chapter 4.3 2–3 2 bytes DLI 0x04, 0x00 Data length 4–7 4 bytes Data 0x00, 0x01, 0x00, 0x00 Bootloader version (01.00) 1 byte CS 0x01 Checksum 6.5.3 Example Host to Reader: 0x04 0x00 0x00 0x00 0x04 Reader to Host: 0x04 0x00 0x04 0x00 0x00 0x01 0x00 0x00 0x01 Command Status Data length Data Checksum Sent: Received: Page 22 = 0x04 => Command "Get-BootloaderRevision" = 0x00 => action error-free = 0x04 0x00 => 4 bytes = 0x00 0x01 0x00 0x00 => Bootloader Revision 01.00 = 0x01 5 bytes 9 bytes PRELIMINARY HF-RFID-READER 6.6 Calibrate Antenna – 0x05 Calibrates the antenna within the range of the system limits. If the calibration fails, a specific error code is returned. 6.6.1 From Host to RFID Reader Byte No. Number Contents Data Sent Description 1 byte CMD 0x05 Command "Calibrate Antenna" 1 byte STC 0x00 Status code for read always 0x00 2–3 2 bytes DLI 0x00, 0x00 Data length 1 byte CS 0x05 Data checksum 6.6.2 From RFID Reader to Host Byte No. Number Contents Data Sent Description 1 byte CMD 0x05 Command "Calibrate Antenna" 1 byte STC 0x00 Status code from reader, see chapter 4.3 2–3 2 bytes DLI 0x00, 0x00 Data length 1 byte CS 0x05 Checksum 6.6.3 Example Host to Reader: 0x05 0x00 0x00 0x00 0x05 Reader to Host: 0x05 0x00 0x00 0x00 0x05 Command Status Data length Checksum Sent: Received: PRELIMINARY = 0x05 => Command "Calibrate Antenna" = 0x00 => action error-free = 0x00 0x00 => 4 bytes = 0x05 5 bytes 9 bytes Page 23 HF-RFID-READER Scan Tags – 0x06 6.7 With the Scan Tags command, all available tags with the reading range of the RFID reader listed. 6.7.1 From Host to RFID Reader Byte No. Number Contents Data Sent Description 1 byte CMD 0x06 command "Scan Tags" 1 byte STC 0x00 Status code for read always 0x00 2–3 2 bytes DLI 0x01, 0x00 Data length 1 byte Data 0x00 Card type, see chapter 4.4.2! 1 byte CS 0x07 Data checksum 6.7.2 From RFID Reader to Host Byte No. Number Contents Data Sent Description 1 byte CMD 0x06 Command "Scan Tags" 1 byte STC 0x00 Status code from reader, see chapter 4.3 2–3 2 bytes DLI 0xFF, 0xFF Data length x byte Data 0xFF, 0xFF, 0xFF 0xFF Card information x +1 1 byte CS 0xFF Checksum Configuration of Card Data Block Name Number of tags Card data length Card type Card subtype RSSI value 1 byte 1 byte 1 byte 1 byte 1 byte UID length UID 1 byte X bytes Description Returns the number of tags found Returns the number of bytes contained in the card data. Indicates the card type, e.g. 0x02 = ISO15693 Indicates the exact type of card 0x09 = ISO15693 standard Indicates the RSSI value of the card (receiver field strength) Indicates the UID length as follows The UID The fields marked in grey repeat for each recognized RFID card. RSSI value: The RSSI value represents the Receiver field data Page 24 PRELIMINARY HF-RFID-READER 7.1 Example for 1 Card Host to Reader: 0x06 0x00 0x01 0x00 0x02 0x07 Reader to Host: 0x06 0x00 0x0E 0x00 0x01 0x0D 0x02 0x09 0x50 0x08 UID:0xEA 0xAA 0xD9 0x7F 0x00 0x01 0x04 0xE0 0x54 Command Status Data length Data Checksum Sent: Received: 7.2 = 0x06 => Command "Scan Tags" = 0x00 => action error-free = 0x0E 0x00=> 14 bytes = 0x01 => number of cards found 0x0D => card data length 12 bytes 0x02 => card type ISO15693 0x09 => Cards SubType ISO15693 Standard 0x50 => RSSI (If not activated, the value is 0x00) 0x08 => UID length 8 bytes UID => EA-AA-D9-7F-00-01-04-E0 = 0x54 6 bytes 19 bytes Example for 2 Cards Host to Reader: 0x06 0x00 0x01 0x00 0x02 0x07 Reader to Host: 0x06 0x00 0x1B 0x00 0x02 0x0D 0x02 0x09 0x94 0x08 UID:0x50 0x72 0xD9 0x7F 0x00 0x01 0x04 0xE0 0x0D 0x02 0x09 0x84 0x08 UID:0xEA 0xAA 0xAD 0x97 0xF0 0x01 0x04 0xE0 0x6D Command Status Data length Dat PRELIMINARY = 0x06 => Command "Scan Tags" = 0x00 => action error-free = 0x1B 0x00=> 27 bytes = 0x02 => number of cards found 2 Data card 1: 0x0D => card data length 12 bytes 0x02 => card type ISO15693 0x09 => Cards SubType ISO15693 Standard 0x50 => RSSI (If not activated, the value is 0x00) 0x08 => UID length (8 bytes) UID => EA-AA-D9-7F-00-01-04-E0 Data card 2: 0x0D => card data length 12 bytes 0x02 => card type ISO15693 Page 25 HF-RFID-READER Checksum Page 26 0x09 => Cards SubType ISO15693 Standard 0x84 => RSSI (If not activated, the value is 0x00) 0x08 => UID length (8 bytes) UID => EA-AA-D9-7F-00-01-04-E0 = 0x6D PRELIMINARY HF-RFID-READER 7.3 Select Tag – 0x07 This command selects the card for further operations such as read or write. As soon as a tag is selected, the HF field is active and communication with the card can be established. 7.3.1 Byte No. From Host to RFID Reader Number Contents Data Sent Description 1 byte CMD 0x07 Command "Select Tag" 1 byte STC 0x00 Status code for read always 0x00 2–3 2 bytes DLI 0x00, 0x00 Data length 1 byte Data 0x00 Length of the card data 1 byte Data 0x00 Card type 1 byte Data 0x00 Card subtype 1 byte Data 0x00 Dummy byte with content 0x00 8 –x Variable Data 0x00, 0x00, 0x00, 0x00 UID of the card to select x +1 1 byte CS 0x00 Checksum 7.3.2 From RFID Reader to Host Byte No. Number Contents Data Sent Description 1 byte CMD 0x07 Command "Select Tag" 1 byte STC 0x00 Status code from reader, see chapter 4.3 2–3 2 bytes DLI 0x00, 0x00 Data length 1 byte CS 0x07 Checksum PRELIMINARY Page 27 HF-RFID-READER 7.3.3 Example Host to Reader: 0x070x00 0x0D 0x00 0x0D 0x02 0x09 0x00 0x08 UID: 0xD5 0x4C 0xD8 0x7F 0x00 0x01 0x04 0xE0 0xDF Command Status Data length Data Checksum = 0x07 => Command "Select Tag" = 0x00 => dummy byte 0x00 = 0x0D 0x00=> 14 bytes = 0x0D => card data length 12 bytes 0x02 => card type ISO15693 0x09 => Cards SubType ISO15693 Standard 0x00 => dummy byte with 0x00 0x08 => UID length 8 bytes UID => D5-4C-D8-7F-00-01-04-E0 = 0xDF Reader to Host: 0x07 0x00 0x00 0x00 0x07 = card selected successfully Page 28 PRELIMINARY HF-RFID-READER 7.4 DeSelect Tag – 0x08 This command deselects the previously selected card. After running, the HF field is deactivated and communication with the card is ended. 7.4.1 From Host to RFID Reader Byte No. Number Contents Data Sent Description 1 byte CMD 0x08 Command "DeSelect Tag" 1 byte STC 0x00 Status code for read always 0x00 2–3 2 bytes DLI 0x00, 0x00 Data length 1 byte CS 0x08 Data checksum 7.4.2 From RFID Reader to Host Byte No. Number Contents Data Sent Description 1 byte CMD 0x08 Command "DeSelect Tag" 1 byte STC 0x00 Status code from reader, see chapter 4.3 2–3 2 bytes DLI 0x00, 0x00 Data length 1 byte CS 0x08 Checksum 7.4.2.1 Example Host to Reader: 0x08 0x00 0x00 0x00 0x08 Reader to Host: 0x08 0x00 0x00 0x00 0x08 Command Status Data length Checksum Sent: Received: PRELIMINARY = 0x08 => Command "DeSelect Tag" = 0x00 => action error-free = 0x00 0x00 => 0 bytes = 0x08 5 bytes 5 bytes Page 29 HF-RFID-READER 7.5 Read-From Tag – 0x09 With this command, data can be read from the card. Hereby, it must be ensured that the correct communication variant is selected. This varies between in protocol between "encrypted cards" and "non-encrypted cards" 7.5.1 Description of Non-encrypted Cards Non-encrypted cards are for example, ISO15693, Mifare Ultralight and others. The description can be found in the card specifications. 7.5.2 From Host to RFID Reader Byte No. Number Contents Data Sent Description 1 byte CMD 0x09 Command "Read-From Tag" 1 byte STC 0x00 Status code for read always 0x00 2–3 2 bytes DLI 0x08, 0x00 Data length 4, -7 4 bytes Data 0x04, 0x00, 0x00, 0x00 Start sector as UINT (here start sector 4) 9 - 10 4 bytes Data 0x01, 0x00, 0x00, 0x00 Number of sectors (here 1 sector) 1 as UINT 12 1 byte CS 0x00 Checksum 7.5.3 From RFID Reader to Host Byte No. Number Contents Data Sent Description 1 byte CMD 0x07 Command "Read-From Tag" 1 byte STC 0x00 Status code from reader, see chapter 4.3 2–3 2 bytes DLI 0x00, 0x00 Data length 4-X Variable Data 0xFF, 0xFF, 0xFF, 0xFF the date required from the card X +1 1 byte CS 0x07 Checksum Page 30 PRELIMINARY HF-RFID-READER 7.5.4 Example of Reading Non-encrypted Cards: Host to Reader: 0x09 0x00 0x08 0x00 Start: 0x04 0x00 0x00 0x00 Count: 0x01 0x00 0x00 0x00 0x04 Command Status Data length Data Checksum = 0x09=> Command "Read-From Tag" = 0x00 => dummy byte 0x00 = 0x08 0x00 => 8 bytes = Start => start reading data from sector 4 = Count => 1 sector is read = 0x04 Reader to Host: 0x09 0x00 0x04 0x00 Data: 0x73 0x69 0x67 0x6D 0x1D Command Status Data length Data Checksum PRELIMINARY = 0x09=> Command "Read-From Tag" = 0x00 => action error-free = 0x04 0x00 => 4 bytes = Data => 4-byte data = 0x04 Page 31 HF-RFID-READER 7.6 Description of Encrypted Cards With this sequence of the protocol, data is read from cards with encrypted content. Example of such cards are Mifare 1K or similar. Further information on handling can be found in the data sheet of the RFID transponder. 7.6.1 From Host to RFID Reader Byte No. Number Contents Data Sent Description 1 byte CMD 0x09 Command "Read-From Tag" 1 byte STC 0x00 Status code for read always 0x00 2–3 2 bytes DLI 0x10, 0x00 Data length 4, -7 4 bytes Data 0x04, 0x00, 0x00, 0x00 Start sector as UINT (here start sector 4) 9 - 10 4 bytes Data 0x01, 0x00, 0x00, 0x00 Number of sectors (here 1 sector) 1 as UINT 12 1 byte Data 0x00 KeyType (0x00 = KeyA, 0x01 = KeyB) 13 1 byte Data 0x06 Length of the keys (here 6 bytes) 14 -19 6 bytes Data 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF key 20 1 byte CS 0x1A Checksum 7.6.2 From RFID Reader to Host Byte No. Number Contents Data Sent Description 1 byte CMD 0x07 Command "Read-From Tag" 1 byte STC 0x00 Status code from reader, see chapter 4.3 2–3 2 bytes DLI 0x00, 0x00 Data length 4-X Variable Data 0xFF, 0xFF, 0xFF, 0xFF the date required from the card X +1 1 byte CS 0x07 Checksum Page 32 PRELIMINARY HF-RFID-READER 7.6.3 Examples of Reading Encrypted Cards: Host to Reader: 0x09 0x00 0x10 0x00 Start: 0x04 0x00 0x00 0x00 Count: 0x01 0x00 0x00 0x00 0x00 0x06 Key: 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0x1A Command Status Data length Data Checksum PRELIMINARY = 0x09=> Command "Read-From Tag" = 0x00 => dummy byte 0x00 = 0x08 0x00 => 8 bytes = Start => start reading data from sector 4 = Count => 1 sector is read = 0x00 => Key Type (0x00 = KeyA, 0x01 = KeyB) = 0x06 => Key length 6 bytes = Key => FF-FF-FF-FF-FF-FF = 0x1A Page 33 HF-RFID-READER Reader to Host: 0x09 0x00 0x10 0x00 Data: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x19 Command Status Data length Data Checksum = 0x09=> Command "Read-From Tag" = 0x00 => action error-free = 0x10 0x00=> 16 bytes = Data => 16-byte data = 0x04 With a Mifare 1K tag, 16 bytes are returned due to the memory organization per sector (4 bytes). Excerpt from the data sheet for the Mifare 1K Tag MF1S503x from NXP. Page 34 PRELIMINARY HF-RFID-READER 7.7 Write-To Tag – 0x0A This instruction writes to the specified areas of the card data. Here, it must be ensured that the right communication variant is used. This varies between in protocol between "encrypted cards" and "non-encrypted cards" 7.7.1 Description of Non-encrypted Cards Non-encrypted cards are for example, ISO15693, Mifare Ultralight and others. The description can be found in the card specifications. 7.7.2 From Host to RFID Reader Byte No. Number Contents Data Sent Description 1 byte CMD 0x0A Command "Write-to Tag" 1 byte STC 0x00 Status code for read always 0x00 2–3 2 bytes DLI 0x10, 0x00 Data length 4, -7 4 bytes Data 0x04, 0x00, 0x00, 0x00 Start sector as UINT (here start sector 4) 9 - 10 4 bytes Data 0x01, 0x00, 0x00, 0x00 Number of sectors (here 1 sector) 1 as UINT 12 – 15 4 bytes Data 0x04, 0x00, 0x00, 0x00 Length of the following data as UINT 15 - x Variable Data 0x00, 0x01, 0x02, 0x03 Date that should be written X+1 1 byte CS 0x1F Checksum 7.7.3 From RFID Reader to Host Byte No. Number Contents Data Sent Description 1 byte CMD 0x0A Command "Write-to Tag" 1 byte STC 0x00 Status code from reader, see chapter 4.3 2–3 2 bytes DLI 0x00, 0x00 Data length 1 byte CS 0x0A Checksum PRELIMINARY Page 35 HF-RFID-READER 7.7.4 Example of Writing to Non-encrypted Cards: Host to Reader: 0x0A 0x00 0x10 0x00 Start: 0x04 0x00 0x00 0x00 Count: 0x01 0x00 0x00 0x00 length: 0x04 0x00 0x00 0x00 Data: 0x01 0x02 0x03 0x04 0x1F Command Status Data length Data Checksum = 0x0A=> Command "Write-To Tag" = 0x00 => dummy byte 0x00 = 0x10 0x00=> 16 bytes = Start => start reading data from sector 4 = Count => 1 sector is read = Data length => 4 bytes are written to the card = Data => The data that should be written in the tag = 0x1F Reader to Host: 0x0A 0x00 0x00 0x00 0x0A Command Status Data length Checksum Page 36 = 0x0A=> Command "Write-To Tag" = 0x00 => action error-free = 0x00 0x00 => 0 bytes = 0x0A PRELIMINARY HF-RFID-READER 7.8 Description of Encrypted Cards With this sequence of the protocol, data is read from cards with encrypted content. Example of such cards are Mifare 1K or similar. Further information on handling can be found in the data sheet of the RFID transponder. 7.8.1 From Host to RFID Reader Byte No. Number Contents Data Sent Description 1 byte CMD 0x0A Command "Write-to Tag" 1 byte STC 0x00 Status code for read always 0x00 2–3 2 bytes DLI 0x29, 0x00 Data length 4, -7 4 bytes Data 0x04, 0x00, 0x00, 0x00 Start sector as UINT (here start sector 4) 9 - 10 4 bytes Data 0x01, 0x00, 0x00, 0x00 Number of sectors (here 1 sector) 1 as UINT 4 bytes Data 0x10, 0x00, 0x00, 0x00 Length of the following data as UINT 16 1 byte Data 0x00 KeyType (0x00 = KeyA, 0x01 = KeyB) 17 1 byte Data 0x06 Length of the keys (here 6 bytes) 18 – 23 6 bytes Data 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF key 23 – X Variable Data 0x01, 0x02, 0x03, 0x04 Date that should be written 20 1 byte CS 0x30 Checksum 7.8.2 From RFID Reader to Host Byte No. Number Contents Data Sent Description 1 byte CMD 0x0A Command "Write-to Tag" 1 byte STC 0x00 Status code from reader, see chapter 4.3 2–3 2 bytes DLI 0x00, 0x00 Data length 1 byte CS 0x0A Checksum PRELIMINARY Page 37 HF-RFID-READER 7.8.3 Examples of Reading Encrypted Cards: Host to Reader: 0x0A 0x00 0x29 0x00 Start: 0x04 0x00 0x00 0x00 Count: 0x01 0x00 0x00 0x00 length: 0x04 0x00 0x00 0x00 0x00 0x06 Key: 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF Data: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x30 Command Status Data length Data Checksum = 0x0A=> Command "Write-To Tag" = 0x00 => dummy byte 0x00 = 0x29 0x00 => 8 byte = Start => start reading data from sector 4 = Count => 1 sector is read = Data length => 16 bytes should be written = 0x00 => Key Type (0x00 = KeyA, 0x01 = KeyB) = 0x06 => Key length 6 bytes = Key => FF-FF-FF-FF-FF-FF = Data => Data that should be written to the card = 0x30 Reader to Host: 0x0A 0x00 0x00 0x00 0x0A Command Status Data length Checksum Page 38 = 0x0A=> Command "Write-To Tag" = 0x00 => action error-free = 0x00 0x00 => 0 bytes = 0x0A PRELIMINARY HF-RFID-READER 7.9 Option Tag Commands – 0x0B Running Option Tags Commands allows ISO15693-specific and special instructions to be run in the tag. 7.9.1 Commands The following instructions are available as additional commands: Instruction Value Description CMD_OPT_READ_AFI 0x00 Returns the value of the AFI register CMD_OPT_WRITE_AFI 0x01 Writes the AFI CMD_LOCK_AFI 0x02 Sets the AFI to Read Only CMD_READ_DSFID 0x03 Returns the value of the DSFID register CMD_WRITE_DSFID 0x04 Writes the DSFID CMD_LOCK_DSFID 0x05 Sets the AFI to Read Only CMD_OPT_LOCK_BLOCK 0x06 Sets a block to Read Only reserved 0x07 reserved reserved 0x08 reserved reserved 0x09 reserved CMD_SYS_INFO 0x0A Reads card information 7.9.2 Version From Host to RFID Reader Byte No. Number Contents Data Sent Description 1 byte CMD 0x0B Command "Option Tag Command" 1 byte STC 0x00 Status code for read always 0x00 2–3 2 bytes DLI 0x00, 0x00 Data length 1 byte OCMD 0x00 Option Tag Command 5-x Variable DATA 0x00 0x00 0x00 0x00 Data / parameters for option commands x +1 1 byte CS 0x04 Data checksum Data are optional and must be implemented depending on the Option Tag Command used. This is explained in the following examples. PRELIMINARY Page 39 HF-RFID-READER 7.9.3 From RFID Reader to Host Byte No. Number Contents Data Sent Description 1 byte CMD 0x0B Command "Option Tag Command" 1 byte STC 0x00 Status code for read always 0x00 2–3 2 bytes DLI 0x00, 0x00 Data length 4-x Variable DATA 0x00 0x00 0x00 0x00 Return data from the card x +1 1 byte CS 0x00 Data checksum Whether data are sent or only a confirmation of the action is explained in this example. 7.9.4 Example Read AFI – 0x00 The AFI register sets the "Application Family identifier" according to ISO15693-3. With this command, the value of this register is read. Host to Reader: 0x0B 0x00 0x01 0x00 0x00 0x04 Command Status Data length Opt_Command Checksum = 0x0B => Command "Option Tag Command" = 0x00 => dummy byte 0x00 = 0x01 0x00 => 1 byte = 0x01 => Read AFI = 0x0B Reader to Host: 0x0B 0x00 0x01 0x00 0x01 0x0B Command Status Data length Data Checksum Page 40 = 0x0B => Command "Option Tag Command" = 0x00 => action error-free = 0x01 0x00 => 1 byte = 0x01 => value of the AFI register = 0x0B PRELIMINARY HF-RFID-READER 7.9.5 Example Write AFI – 0x01 The AFI register sets the "Application Family identifier" according to ISO15693-3. With this command, the value of this register is written. Host to Reader: 0x0B 0x00 0x02 0x00 0x01 0x01 0x09 Command Status Data length Opt_Command Data Checksum = 0x0B => Command "Option Tag Command" = 0x00 => dummy byte 0x00 = 0x02 0x00 => 2 bytes = 0x01 => Write AFI = 0x01 => Value that should be written to the AFI register = 0x0B Reader to Host: 0x0B 0x00 0x00 0x00 0x0B Command Status Data length Checksum PRELIMINARY = 0x0B => Command "Option Tag Command" = 0x00 => action error-free = 0x01 0x00 => 1 byte = 0x0B Page 41 HF-RFID-READER 7.9.6 Example LOCK AFI – 0x02 The AFI register sets the "Application Family identifier" according to ISO15693-3. With this command, the AFI register is set to "Read Only". After executing this command, the value can no longer be changed. Host to Reader: 0x0B 0x00 0x01 0x00 0x02 0x08 Command Status Data length Opt_Command Checksum = 0x0B => Command "Option Tag Command" = 0x00 => dummy byte 0x00 = 0x01 0x00 => 1 byte = 0x02 => Lock AFI = 0x0B Reader to Host: 0x0B 0x00 0x00 0x00 0x0B Command Status Data length Checksum 7.9.7 = 0x0B => Command "Option Tag Command" = 0x00 => action error-free = 0x00 0x00 => 0 bytes = 0x0B Example READ DSFID – 0x03 The DSFID register sets the "Data storage format identifier" according to ISO15693-3. With this command, the value of this register is read. Host to Reader: 0x0B 0x00 0x01 0x00 0x03 0x09 Command Status Data length Opt_Command Checksum = 0x0B => Command "Option Tag Command" = 0x00 => dummy byte 0x00 = 0x01 0x00 => 1 byte = 0x03 => Read DSFID = 0x09 Reader to Host: 0x0B 0x00 0x01 0x00 0x02 0x0B Command Status Data length Data Checksum Page 42 = 0x0B => Command "Option Tag Command" = 0x00 => action error-free = 0x01 0x00 => 1 byte = 0x02 => Value of the DSFID register = 0x0C PRELIMINARY HF-RFID-READER 7.9.8 Example WRITE DSFID – 0x04 The DSFID register sets the "Data storage format identifier" according to ISO15693-3. With this command, the value of this register is written. Host to Reader: 0x0B 0x00 0x02 0x00 0x04 0x02 0x0F Command Status Data length Opt_Command Data Checksum = 0x0B => Command "Option Tag Command" = 0x00 => dummy byte 0x00 = 0x02 0x00 => 2 bytes = 0x01 => Write DSFID = 0x01 => Value that should be written to the DSFID register = 0x0F Reader to Host: 0x0B 0x00 0x00 0x00 0x0B Command Status Data length Checksum 7.9.9 = 0x0B => Command "Option Tag Command" = 0x00 => action error-free = 0x00 0x00 => 1 byte = 0x0B Example LOCK DSFID – 0x05 The DSFID register sets the "Data storage format identifier" according to ISO15693-3. With this command, the DSFID register is set to "Read Only". After executing this command, the value can no longer be changed Host to Reader: 0x0B 0x00 0x01 0x00 0x05 0x0F Command Status Data length Opt_Command Checksum = 0x0B => Command "Option Tag Command" = 0x00 => dummy byte 0x00 = 0x01 0x00 => 1 byte = 0x05 => Lock DSFID = 0x0F Reader to Host: 0x0B 0x00 0x00 0x00 0x0B Command Status Data length Checksum PRELIMINARY = 0x0B => Command "Option Tag Command" = 0x00 => action error-free = 0x00 0x00 => 0 bytes = 0x0B Page 43 HF-RFID-READER 7.9.10 LOCK BLOCK – 0x06 With the Lock Block command, the selected sectors are locked and are then read only. To set a sector or multiple sectors to Read Only, the following input is required: Start sector: Start from this sector (sector index) Sectors: The number of sectors to lock beginning with the start sector Example: Start" Sectors: 0x06 0x00 0x00 0x00 (Sector 6 is start sector) 0x02 0x00 0x00 0x00 (starting from sector 6, two sectors should be locked.) Result: After successfully executing the command, the sectors 06 and 07 are now read only. Host to Reader: 0x0B 0x00 0x09 0x00 0x06 Start: 0x00 0x00 0x00 0x00 Sectors: 0x01 0x00 0x00 0x00 0x05 Command Status Data length Opt_Command Data Checksum = 0x0B => Command "Option Tag Command" = 0x00 => dummy byte 0x00 = 0x01 0x00 => 1 byte = 0x06 => Lock Block = Start => Start sector from which Read Only should be set = Sectors => Number of sectors to lock = 0x05 Reader to Host: 0x0B 0x00 0x00 0x00 0x0B Command Status Data length Checksum Page 44 = 0x0B => Command "Option Tag Command" = 0x00 => action error-free = 0x00 0x00 => 0 bytes = 0x0B PRELIMINARY HF-RFID-READER 7.9.11 SYS-INFO – 0x0A With SYS command, card-specific information such as size, number of blocks and additional information is read. Host to Reader: 0x0B 0x00 0x01 0x00 0x0A 0x00 Command Status Data length Opt_Command Checksum = 0x0B => Command "Option Tag Command" = 0x00 => dummy byte 0x00 = 0x01 0x00 => 1 byte = 0x0A => SYS-INFO = 0x00 Reader to Host: 0x0B 0x00 0x06 0x00 0x01 0x00 0x1C 0x00 0x04 0x00 0x14 Command Status Data length Data Checksum = 0x0B => Command "Option Tag Command" = 0x00 => action error-free = 0x00 0x00 => 0 bytes = 0x01 => Chip ID (0x01 = iCode SLI SL2 ICS20) = 0x00 0x1C => number of sectors, here there are 28 sectors = 0x00 0x04 => Indicates the size of the sectors, here the size is 4 bytes per sectors = 0x00 => Reserved = 0x14 This results in the following data for the tag: Number of sectors: Sectors size: User memory on card: Manufacturer: Chip ID: PRELIMINARY 28 sectors 4 bytes 28 sectors *4 bytes per sector = 112 bytes The manufacturer can be determined from the UID, UID byte 6 Indicates the type of tag 0x01 = iCode SLI ICS20 Page 45 HF-RFID-READER 7.10 Get-ATS – 0x0C The command returns the ATS (Answer to Select) of a DESFire card. 7.10.1 From Host to RFID Reader Byte No. Number Contents Data Sent Description 1 byte CMD 0x0C command "Get-ATS" 1 byte STC 0x00 Status code for read always 0x00 2–3 2 bytes DLI 0x01, 0x00 Data length 1 byte Data 0x04 Frame Size, conform to DESFire spec. 1 byte CS 0x3E Data checksum 7.10.2 From RFID Reader to Host Byte No. Number Contents Data Sent Description 1 byte CMD 0x0C command "Get-ATS" 1 byte STC 0x00 Status code from reader, see chapter 4.3 2–3 2 bytes DLI 0x07, 0x00 Data length 4-X Variable Data 0x00, 0x01, 0x00, 0x00 ATS X +1 1 byte CS 0xFF Checksum 7.10.3 Example Host to Reader: 0x0C 0x00 0x01 0x00 0x04 0x04 Reader to Host: 0x0C 0x00 0x07 0x00 0x06 0x04 0x94 0x32 0x15 0x43 0x87 0x78 Command Status Data length Data Checksum Page 46 = 0x0C => Command "Get-ATS" = 0x00 => action error-free = 0x07 0x00 => 7 bytes = 0x06 0x04 0x94 0x32 0x15 0x43 0x87 => ATS = 0x78 PRELIMINARY HF-RFID-READER 7.11 SET-PPS – 0x0D The command indicates the ATS of a DESFire card. 7.11.1 From Host to RFID Reader Byte No. Number Contents Data Sent Description 1 byte CMD 0x0D command "Set PPS" 1 byte STC 0x00 Status code for read always 0x00 2–3 2 bytes DLI 0x02, 0x00 Data length 1 byte Data 0x00 Logic card ID 1 byte Data 0x00 Communication speed* 1 byte CS 0x3E Data checksum 7.11.2 From RFID Reader to Host Byte No. Number Contents Data Sent Description 1 byte CMD 0x0D command "Set PPS" 1 byte STC 0x00 Status code from reader, see chapter 4.3 2–3 2 bytes DLI 0x00, 0x00 Data length 1 byte CS 0x0D Checksum "Currently 0x00 (106kbs) supported only 7.11.3 Example Host to Reader: 0x0D 0x00 0x02 0x00 0x00 0x00 0x0A Command Status Data length Data Checksum PRELIMINARY = 0x0D => Command "Set PPS" = 0x00 => action error-free = 0x07 0x00 => 7 bytes = 0x00 => Card ID = 0x00 => Communication speed = 0x0A Page 47 HF-RFID-READER Reader to Host: 0x0D 0x00 0x00 0x00 0x0D Command Status Data length Checksum = 0x0D => Command "Set PPS" = 0x00 => action error-free = 0x00 0x00 => 0 bytes = 0x0D 7.12 Execute Command – 0x0E The command outputs the DESFire-conforming commands on the card 7.12.1 From Host to RFID Reader Byte No. Number Contents Data Sent Description 1 byte CMD 0x0E Command "Execute Command" 1 byte STC 0x00 Status code for read always 0x00 2–3 2 bytes DLI 0x03, 0x00 Data length 1 byte Data 0x0A Header (DESFire standard) 1 byte Data 0x00 Logic card ID 1 byte Data 0x60 CMD (0x60 = Get Version) 1 byte CS 0x67 Data checksum 7.12.2 From RFID Reader to Host Byte No. Number Contents Data Sent Description 1 byte CMD 0x0E Command "Execute Command" 1 byte STC 0x00 Status code from reader, see chapter 4.3 2–3 2 bytes DLI 0x08, 0x00 Data length 4-x Variable Data 0xAF 0x04 0x01 0x01 Data return from command X +1 1 byte CS 0x0D Checksum "Currently 0x00 (106kbs) supported only Page 48 PRELIMINARY HF-RFID-READER 7.12.3 Example Host to Reader: 0x0E 0x00 0x03 0x00 0x0A 0x00 0x60 0x67 Command Status Data length Data Checksum = 0x0D => Command "Execute Command" = 0x00 => action error-free = 0x03 0x00 => 3 bytes = 0x0A => Header according to DESFire standard = 0x00 => Card ID = 0x60 => Command (0x60 = Get Version) = 0x67 Reader to Host: 0x0D 0x00 0x08 0x00 Data: 0xAF 0x04 0x01 0x01 0x00 0x02 0x18 0x05 0x0D Command Status Data length Data Checksum PRELIMINARY = 0x0D => Command "Execute Command" = 0x00 => action error-free = 0x08 0x00 => 8 bytes = Data returned from the executed command. = 0x0D Page 49 HF-RFID-READER 7.13 SET RSSI – 0x11 Activates the return of the RSSI value. The RSSI value indicates the receiving strength of the card. During a "Scan Tag" command, the RSSI value is returned for each card. 7.13.1 From Host to RFID Reader Byte No. Number Contents Data Sent Description 1 byte CMD 0x11 Command "Set RSSI" 1 byte STC 0x00 Status code for read always 0x00 2–3 2 bytes DLI 0x01, 0x00 Data length 1 byte Data 0x00 0x00 = RSSI off, 0x01 = RSSI on 1 byte CS 0x11 Data checksum 7.13.2 From RFID Reader to Host Byte No. Number Contents Data Sent Description 1 byte CMD 0x11 Command "Set RSSI" 1 byte STC 0x00 Status code from reader, see chapter 4.3 2–3 2 bytes DLI 0x00, 0x00 Data length 1 byte CS 0x11 Checksum 7.13.3 Example Host to Reader: 0x11 0x00 0x01 0x00 0x01 0x11 Command Status Data length Data Checksum = 0x11 => Command "Set RSSI" = 0x00 => action error-free = 0x00 0x00 => 7 bytes = 0x01 => Set RSSI ON = 0x11 Reader to Host: 0x11 0x00 0x00 0x00 0x11 Command Status Data length Checksum Page 50 = 0x11 => Command "Set RSSI" = 0x00 => action error-free = 0x00 0x00 => 0 bytes = 0x11 PRELIMINARY HF-RFID-READER 8.1 Communication Process Diagram Connecting with the Reader PRELIMINARY Page 51 HF-RFID-READER 8.2 With Tag Communication Page 52 PRELIMINARY HF-RFID-READER Enumerators C enum RFE_RET_VALUE ERR_RET_SUCCESS = 0x00, ERR_RET_PARAM, ERR_RET_DATA_PUSH, ERR_RET_CMD_INVALID, ERR_RET_CRC, ERR_RET_LENGTH, ERR_RET_CMD_DATA, ERR_RET_CALIBRATE_ANENA = 0x0F, ERR_RET_TIMEOUT, ERR_RET_FIFO, ERR_RET_COLLISION, ERR_RET_EXEC_CMD, ERR_RET_CARD_NOT_SUPPORTED, ERR_RET_AUTH, }; enum ECMD CMD_READER_NAME = 0x00, CMD_PRODUCT_NAME, CMD_SOFT_VERSION, CMD_HARD_VERSION, CMD_BOOT_VERSION, CMD_CALIBRATE_ANTENNA, CMD_SCAN_CARDS, CMD_SELECT_CARD, CMD_DESELECT_CARD, CMD_READ_CARD, CMD_WRITE_CARD, CMD_OPTION_CARD, CMD_GET_ATS, CMD_SET_PPS, CMD_EXEC_DESFIRE, CMD_GPIO = 0x0F, CMD_GET_FEATURE = 0x10, CMD_SET_RSSI = 0x11, }; enum ECMD CMD_OPT_READ_AFI = 0x00, CMD_OPT_WRITE_AFI, CMD_OPT_LOCK_AFI, CMD_OPT_READ_DSFID, CMD_OPT_WRITE_DSFID, CMD_OPT_LOCK_DSFID, CMD_OPT_LOCK, CMD_OPT_WRITE_KILL, CMD_OPT_KILL, CMD_OPT_LOCK_KILL, CMD_OPT_SYS_INFO }; PRELIMINARY Page 53 HF-RFID-READER enum CARD_TYPE CARD_ISO14443A = 0x00, CARD_ISO14443B, CARD_ISO15693, CARD_UNKNOWN = 0xFF, }; enum CARD_SUBTYPE MIFARE_ULTRALIGHT = 0x00, MIFARE_MINI, MIFARE_1K, MIFARE_4K, MIFARE_PLUS, MIFARE_DES_FIRE, MIFARE_ISO14443A_4, ISO14443B_SRIX, ISO14443B_SRIX176, ISO15693_STANDARD, CARD_SUBTYPE_UNKNOW = 0xFF, }; Page 54 PRELIMINARY HF-RFID-READER 10 Declaration of Conformity 10.1 FCC Statement This device complies with Part 15 of the FCC rules. Operation is subject to the following two conditions: (1) this device may not cause harmful interference, and (2) this device must accept any interference received, including interference that may cause undesired operation. Section 15.21 Information to user Changes or modifications not expressly approved by the party responsible for compliance could void the user's authority to operate the equipment. Section 15.105 (b) Note: This equipment has been tested and found to comply with the Limits for a Class B digital device, pursuant to part 15 of the FCC Rules. These limits are designed to provide reasonable protection against harmful interference in a residential installation. This equipment generates, uses and can radiate radio frequency energy and, if not installed and used in accordance with the instructions, may cause harmful interference to radio communications. However, there is no guarantee that interference will not occur in a particular installation. If this equipment does cause harmful interference to radio or television Reception, which can be determined by turning the equipment off and on, the user is encouraged to try to correct the interference by one or more of the following measures: Reorient or relocate the receiving antenna. Increase the separation between the equipment and receiver. Connect the equipment into an outlet on a circuit different from that to which the receiver is connected. Consult the dealer or an experienced radio/TV technician for help. PRELIMINARY Page 55 HF-RFID-READER Documentation Changes Change date Page 56 Affected page(s) Chapter Note PRELIMINARY
Source Exif Data:
File Type : PDF File Type Extension : pdf MIME Type : application/pdf PDF Version : 1.5 Linearized : No Page Count : 58 Language : de-DE Tagged PDF : Yes Title : HF-RFID Reader Modul Author : SIGMATEK Creator : Microsoft® Word 2013 Create Date : 2014:08:13 09:26:57+02:00 Modify Date : 2014:08:13 09:26:57+02:00 Producer : Microsoft® Word 2013EXIF Metadata provided by EXIF.tools