2. Electrical specification 2.1 Absolute maximum ratings Stresses beyond the absolute maximum ratings listed in the table below may cause permanent damage to the device. These are stress ratings only, and do not refer to the functional operation of the device that should follow the recommended operating conditions.
3. Installation The RS485 RFID Reader must be connected to the RS485 bus using a dedicated cable. Pinout of the connectors is described below. The connector used on the Reader is 10 pin MOLEX 5015681007. Devices can be connected in a chain, so one device can be connected to another one. The maximum number of devices in a chain is four.
4. Communication interface 4.1 Overview The RS485 RFID Reader can be controlled using a simple binary protocol available over RS485. This binary protocol was designed to be as simple as possible to implement on the host side whilst still providing robust communication.
4.3 CRC calculation CRC is a 16-bit CRC-CCITT with a polynomial equal to 0x1021. The initial value is set to 0xFFFF, the input data and the output CRC is not negated. In addition, no XOR is performed on the output value. Example C code is shown below.
4.4 Automatic addressing The device provides automatic addressing for boards connected together in the chain. The procedure requires modified tags with information containing the address and RS485 line termination information. It’s recommended to enable termination on the last reader in the chain. The procedure is as below: 1.
5. Commands list Commands are exchanged with the module using the protocol described above. All frames contain a command byte and command arguments. Depending upon the command, arguments can be optional, so a command length can be in the range from 1-1024 bytes. 5.1 Generic commands 5.1.1 Acknowledge frame (0x00) This is the response message from the module to the host.
Error list: 0x01 - No reply received, e.g. PICC removal 0x02 - Wrong CRC or parity detected 0x03 - A collision occurred 0x04 - Attempt to write beyond buffer size 0x05 - Invalid frame format 0x06 - Received response violates protocol 0x07 - Authentication error 0x08 - A Read or Write error occurred in RAM/ROM or Flash 0x09 - The RC sensors signal over heating...
5.1.4 Get tag count (0x02) The command send to the module to read how many TAGS are in range of the antenna no matter which technology of tag, so it returns the total amount present of all supported tag types. The maximum number for this standard discovery loop is 5.
5.1.7 Halt (0x05) The Halt command takes no arguments. It halts the tag and turns off the RF field. It must be executed at the end of each operation on a tag to disable the antenna and reduce the power consumption. Command description Argument Size...
5.1.9 Save keys (0x07) This command should be called if the user wants to save keys changed using the SET_KEY command in the module non-volatile memory. Saved keys will be automatically loaded after power up or reboot. Command description Argument Size Value Description Command ID...
Bus address Bus address byte. Default value is 0x80 0x00 – termination disabled Termination 0x01 – termination enabled Short name Four ASCII bytes with device description Response description 0x00 Command ID 0x0B SET_COMM_SETTINGS Example: HOST=>READER: 0x0B – SET_COMM_SETTINGS 0x05 – baudrate 115200 0x81 –...
5.1.15 Reset to factory defaults (0x0D) This command resets settings to factory default. The reader sends an ACK using the old settings, then reboots. The host application should wait at least 1000ms before sending another command. Command description Argument Size Value Description Command ID 0x0D...
5.2 Firmware commands The reader supports firmware upgrades. To perform a firmware upgrade, the user must execute the following commands. 5.2.1 Jump to bootloader (0xF1) This command should be executed as the first frame in a firmware upgrade sequence. When the device receives this command, it reboots and stays in the bootloader application.
5.2.3 Firmware frame (0xF4) When the device is running the bootloader application and FIRMWARE START has already been executed, the host application can upload binary firmware file in chunks that are 256 bytes long (the last frame can be smaller). Command description Argument Size...
5.3 MIFARE Classics commands This set of commands should be performed on MIFARE Classics tags. 5.3.1 Read block (0x20) The read block command should be used to read data from the tag. It takes as arguments the block number of the first block to read, the number of blocks to read, the key A or B parameter, and the key number in key storage.
Command description Argument Size Value Description Command ID 0x21 MF_WRITE_BLOCK Block number Number of blocks 0x0A – Key A should be selected from key storage Key A/B parameter 0x0B – Key B should be selected from key storage Key number Key number in key storage Bytes to write.
Example: HOST=>READER: 0x22 – MF_READ_VALUE 0x02 – block number 2 0x0A – key A should be selected from key storage 0x00 – first key should be selected from key storage READER=>HOST: 0x00 – ACK byte 0x22 – related command code MF_READ_BLOCK 0x00 0x00 0x00 0x01 –...
Command description Argument Size Value Description Command ID 0x24 MF_INCREMENT_VALUE Block number 0x0A – Key A should be selected from key storage Key A/B parameter 0x0B – Key B should be selected from key storage Key number Key number in key storage Delta value Signed 32-bit value (LSB first) 0x00 –...
5.3.7 Restore value (0x26) This command should be used to restore a value to a volatile register on the tag from the block being addressed. It takes as arguments the block number where the value is stored, the key A or B parameter, key number in key storage.
Page 28
Example: HOST=>READER: 0x27 – MF_TRANSFER_RESTORE_VALUE 0x02 – source block number 2 0x03 – destination block number 3 0x0A – key A should be selected from key storage 0x00 – first key should be selected from key storage READER=>HOST: 0x00 – ACK byte 0x27 –...
5.4 MIFARE Ultralight commands This set of commands should be performed on MIFARE Ultralight tags. 5.4.1 Read page (0x40) The read page command should be used to read data stored in tag pages. It takes as arguments the page number of the first page to be read, and the number of pages to be read. The returned ACK answer contains data read from the specified tag memory.
HOST=>READER: 0x41 – MFU_WRITE_PAGE 0x02 – page number 2 0x02 – two pages to write 0x31 0x35 0x3a 0x33 0x35 0x3a 0x30 0x33 – 32 bytes to write READER=>HOST: 0x00 – ACK byte 0x41 – related command code MFU_WRITE_PAGE 5.4.3 Get version (0x42) This command requests a version string from the TAG.
5.4.5 Write signature (0x44) This command writes the signature information to the MIFARE Ultralight Nano TAG. It takes as arguments relative page location of the signature part to be written and four bytes of signature value to be written. Command description Argument Size Value Description...
5.5 MIFARE DESFire commands This set of commands should be performed on MIFARE DESFire tags. 5.5.1 Get version (0x60) This command requests version information from the tag. The returned ACK answer contains 28-bytes with version information. Command description Argument Size Value Description Command ID 0x60...
5.5.3 List application IDs (0x62) This command requests lists application IDs from the TAG. The returned ACK answer contains the bytes with application IDs. Every ID is 3-bytes long. Command description Argument Size Value Description Command ID 0x62 MFDF_LIST_APP_IDS Response description 0x00 Command ID 0x62...
5.5.5 Authenticate (0x64) This command tries to authenticate the MIFARE DESFire using the password stored in the key storage. It takes as an argument one byte with the key number in the key storage, and one byte with the key number on the card.
5.5.7 Authenticate AES (0x66) This command tries to authenticate the MIFARE DESFire using the key stored in the key storage, and one byte with the key number on the card. It takes as an argument one byte with the key number in the key storage. This command can be used with AES128 keys.
5.5.9 Delete application (0x68) This command tries to delete an application from the tag. It takes one argument with the application ID. Command description Argument Size Value Description Command ID 0x68 MFDF_DELETE_APP Application ID Application ID bytes Response description 0x00 Command ID 0x68 MFDF_DELETE_APP...
5.5.11 Get key settings (0x6A) This command gets the key settings bytes from the tag. This command does not require any arguments but an application must be selected and authorized. Command description Argument Size Value Description Command ID 0x6A MFDF_GET_KEY_SETTINGS Response description 0x00 Command ID...
Access rights Please refer to the NXP documentation for more information File size file size, LSB first 0x00 – Standard file Backup file 0x01 – Backup file Response description 0x00 Command ID 0x6C MFDF_CREATE_DATA_FILE Example: HOST=>READER: 0x6C – MFDF_CREATE_DATA_FILE 0x01 – file number 0xEE 0xEE –...
Command description Argument Size Value Description Command ID 0x6E MFDF_READ_DATA File number File number inside application File offset file offset, 3-bytes LSB value Data length Read data length, 3-bytes LSB value Response description 0x00 Command ID 0x6E MFDF_READ_DATA Example: HOST=>READER: 0x6E –...
5.5.17 Get value (0x70) This command returns the value stored in a value file on the TAG. The returned ACK response contains 4 bytes of signed value, LSB-first. Command description Argument Size Value Description Command ID 0x70 MFDF_GET_VALUE File number File number inside application Response description 0x00...
Command description Argument Size Value Description Command ID 0x74 MFDF_CREATE_RECORD_FILE File number File number inside application Access rights Please refer to the NXP documentation for more information Record size Record size, 16-bits LSB value Number of records Number of records, 16-bits LSB value If cyclic file is full: Cyclic flag 0x00 - further writing is not possible unless it is cleared...
Command description Argument Size Value Description Command ID 0x76 MFDF_READ_RECORD File number File number inside application Record number Record number, 2-bytes LSB value Data length Read data length, 2-bytes LSB value Response description 0x00 Command ID 0x76 MFDF_READ_RECORD Example: HOST=>READER: 0x76 –...
Example: HOST=>READER: 0x78 – MFDF_DELETE_FILE 0x01 – file number READER=>HOST: 0x00 – ACK byte 0x78 – related command code MFDF_DELETE_FILE 5.5.26 Get free memory (0x79) This command returns a value corresponding to the amount of free memory available on the TAG. No arguments are required.
Command description Argument Size Value Description Command ID 0x7B MFDF_COMMIT_TRANSACTION Response description 0x00 Command ID 0x7B MFDF_COMMIT_TRANSACTION Example: HOST=>READER: 0x7B – MFDF_COMMIT_TRANSACTION READER=>HOST: 0x00 – ACK byte 0x7B – related command code MFDF_COMMIT_TRANSACTION 5.5.29 Abort transaction (0x7C) This command invalidates all previous write access on backup data files, value files and record files within one application.
5.6 ICODE (ISO15693) commands This set of commands should be performed on ICODE (ISO15693) TAGs. 5.6.1 Inventory start (0x90) This command starts the inventory procedure on ISO 15693 TAGs. It activates the first TAG detected during collision resolution. If no TAGs are detected, then an error with a timeout flag is returned. This command takes one argument AFI - Application Family Identifier.
Command description Argument Size Value Description Command ID 0x91 ICODE_INVENTORY_NEXT Application Family Identifier Response description 0x00 Command ID 0x91 ICODE_INVENTORY_NEXT Unique identifier DSFID Data Storage Format Identifier 0x00 – no more cards in range of antenna More cards flag 0x01 – more cards in range of antenna Example: HOST=>READER: 0x91 –...
Command description Argument Size Value Description Command ID 0x93 ICODE_READ_BLOCK Block number Block count Number of block to read Response description 0x00 Command ID 0x93 ICODE_READ_BLOCK Read data Bytes read from the tag. Example: HOST=>READER: 0x93 – ICODE_READ_BLOCK 0x02 – block number 2 0x01 –...
Command description Argument Size Value Description Command ID 0x95 ICODE_LOCK_BLOCK Block number Response description 0x00 Command ID 0x95 ICODE_LOCK_BLOCK Example: HOST=>READER: 0x95 – ICODE_LOCK_BLOCK 0x02 – block number 2 READER=>HOST: 0x00 – ACK byte 0x95 – related command code ICODE_LOCK_BLOCK 5.6.7 Write AFI (0x96) This command performs a write to Application Family Identifier value inside the TAG memory.
Example: HOST=>READER: 0x96 – ICODE_LOCK_AFI READER=>HOST: 0x00 – ACK byte 0x96 – related command code ICODE_LOCK_AFI 5.6.9 Write DSFID (0x98) This command performs a write to Data Storage Format Identifier value inside the TAG memory. This command takes a one-byte argument representing the DSFID value. Command description Argument Size...
Command description Argument Size Value Description Command ID 0x9C ICODE_PASSWORD_PROTECT_AFI Response description 0x00 Command ID 0x9C ICODE_PASSWORD_PROTECT_AFI Example: HOST=>READER: 0x9C – ICODE_PASSWORD_PROTECT_AFI READER=>HOST: 0x00 – ACK byte 0x9C – related command code ICODE_PASSWORD_PROTECT_AFI 5.6.14 Read EPC (0x9D) This command reads EPC data from the TAG. The ACK response contains 12-bytes of EPC data. Please refer to the NXP documentation for more information.
Example: HOST=>READER: 0x9E – ICODE_GET_NXP_SYSTEM_INFORMATION READER=>HOST: 0x00 – ACK byte 0x9E – related command code ICODE_GET_NXP_SYSTEM_INFORMATION 0x0F 0x04 0x8F 0x7F 0x0A 0x01 0x24 0x16 0xE0 0x00 0x00 0x33 0x03 0x02 – result bytes 5.6.16 Get random number (0x9F) This command requests a random number from the ICODE TAG. No arguments are required. The ACK response contains a 16-bit random number.
READER=>HOST: 0x00 – ACK byte 0xA3 – related command code ICODE_PAGE_PROTECT 5.6.21 Lock page protection (0xA4) This command permanently locks the protection status of a page. Note that the related passwords have to be transmitted before with ref ICODE_SET_PASSWORD if the page is not public. Command description Argument Size...
5.6.23 Destroy (0xA6) This command permanently destroys the label (tag). The destroy password hasto be transmitted before with ICODE_SET_PASSWORD. This command is irreversible and the label will never respond to any command again. This command can take the XOR password argument for the ICODE products that requires this argument. The XOR password calculation method is described in the ICODE_SET_PASSWORD description.
Response description 0x00 Command ID 0xA8 ICODE_ENABLE_64BIT_PASSWORD Example: HOST=>READER: 0xA8 – ICODE_ENABLE_64BIT_PASSWORD READER=>HOST: 0x00 – ACK byte 0xA8 – related command code ICODE_ENABLE_64BIT_PASSWORD 5.6.26 Read signature (0xA9) This command reads the signature bytes from the TAG. No arguments are required. The ACK response contains bytes containing the signature bytes.
Example: HOST=>READER: 0xAA – ICODE_READ_CONFIG 0x00 – starting block number 0x02 – number of blocks to read READER=>HOST: 0x00 – ACK byte 0xAA – related command code ICODE_READ_CONFIG 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 – result bytes 5.6.28 Write config (0xAB) This command writes configuration bytes to addressed block data from the selected configuration block address.
Page 63
Example: HOST=>READER: 0xAB – ICODE_PICK_RANDOM_ID READER=>HOST: 0x00 – ACK byte 0xAB – related command code ICODE_PICK_RANDOM_ID 63 | P a g e www.eccel.co.uk...
C. The Host device must be affixed with a permanent label that is clearly visible and states the following: “Contains FCC ID: 2ALHY-000537”. Contains IC: 22592-000537”. Please see FCC KDB 784748 D01 Labelling Part 15 &18 Guidelines v08 section 8 and RSP-100 Issue 11 section 3.2 for further details on labelling requirements.
7. Labelling 1. The board will have silk screen printed on it at the top “10xGenomics RFID Reader v1.1”. 2. The label contains “FCC ID: 2ALHY-000537”, “IC: 22592-000537” and “HVIN: 1.1” text strings and FCC, PSE and CE Mark logos.
8. Mechanical dimensions All dimensions in millimetres. Figure 8-1. Mechanical dimensions 66 | P a g e www.eccel.co.uk...
Page 67
MIFARE, MIFARE Ultralight, MIFARE Plus, MIFARE Classic, and MIFARE DESFire are trademarks of NXP B.V. No responsibility is taken for the method of integration or final use of the RS485 RFID readers More information about the RS485 RFID reader and other products can be found at the Internet site: http://www.eccel.co.uk or alternatively contact ECCEL Technology (IB Technology) by e-mail at: sales@eccel.co.uk...
Need help?
Do you have a question about the 000537 and is the answer not in the manual?
Questions and answers