UHF+RFID+Reader+UHFReader18+User's+Manual+V2 0
UHF+RFID+Reader+UHFReader18+User's+Manual+V2 0
UHF+RFID+Reader+UHFReader18+User's+Manual+V2 0
The reader communicates with host (MCU,MPU,Controller) using serial communication interface RS232 or
RS485 and complete corresponding operation according to the host command. The communication parameter is
57600bps 1 start bit, 8 data bits, 1 stop bit without parity check bit. In the process of serial communication, the
least significant bit of one byte is transmitted first and the least significant byte of command data sequence is
transmitted first.
2. PROTOCOL DESCRIPTION
A communication procedure is sponsored by the host sending commands and data to the reader and the
reader returns the result status and data to host after command execution.
Reader receives a command executes a command, only the reader complete the implementation of a
command, to receive the next command. During the implementation of the command in the reader, if sending
commands to the reader, the command will be lost.
The following table shows the process of the host computer command:
HOST DIRECTION READER
Command Data Block →
The interval between two consecutive bytes in the command data block should be less than 15ms. During
command data block sending, synchronization will lost if the host receives any data from the reader and the host
should stop command sending and restart the communication after 15ms.
The reader completes command execution in inventory ScanTime (not including host sending data time)
except inventory command after receiving host command and returns the results. During the period, it doesn’t
process any host data. The feedback of command execution results is as follows:
READER DIRECTION HOST
Command Data Block →
The interval between two consecutive bytes in the response data block should be less than 15ms.
4
UHFREADER18 UHF RFID Reader User's Manual V2.0
The default value of the reader address is 0x00. The host may change it by using reader-defined command
5
UHFREADER18 UHF RFID Reader User's Manual V2.0
“Write Adr”.
Cyclic Redundancy Check (CRC) computation includes all data from Len. A reference CRC computation
program is presented as follow:
C-Example:
#define PRESET_VALUE 0xFFFF
#define POLYNOMIAL 0x8408
unsigned int uiCrc16Cal(unsigned char const * pucY, unsigned char ucX)
{
unsigned char ucI,ucJ;
unsigned short int uiCrcValue = PRESET_VALUE;
4.1 EPC C1 G2
G2((ISO18000-6C)COMMAND
ISO18000-6C)
6
UHFREADER18 UHF RFID Reader User's Manual V2.0
7
UHFREADER18 UHF RFID Reader User's Manual V2.0
8
UHFREADER18 UHF RFID Reader User's Manual V2.0
9
UHFREADER18 UHF RFID Reader User's Manual V2.0
10
UHFREADER18 UHF RFID Reader User's Manual V2.0
11
UHFREADER18 UHF RFID Reader User's Manual V2.0
12
UHFREADER18 UHF RFID Reader User's Manual V2.0
will be attached beginning at address 20h, and if the Tag implements Extended Protocol Control (XPC) then either
one or two XPC word(s) beginning at address 210h.
TID memory shall contain an 8-bit ISO/IEC 15963 allocation class identifier at memory locations 00h to
07h. TID memory shall contain sufficient identifying information above 07h for an Interrogator to uniquely
identify the custom commands and/or optional features that a Tag supports.
User memory is optional. This area of different manufacturers is different. There is no user area in G2 tag of
Inpinj Company. There are 28 words in Philips Company.
Can write protect in four distinct banks. It means this memory is never writeable or not writeable under the
non-safe state; only password area can set unreadable.
B. 18000-6B TAG
6B tag has a memory space, the minimum 8 bytes (byte 0- 7) is UID of the tag, and can't be rewritten.
Following byte all can be rewritten, can be locked too, but once locking, can't rewrite and unblock again.
The reader supports three kinds of command, one kind is the ISO/IEC 18000-6 protocol command, another
kind is reader-defined command, and also one kind is the transparent command.
If the host input of the command is an unrecognized command, such as the command does not support, or
CRC error in the command, then the return value is as follows:
Len Adr reCmd Status CRC-16
0x05 0xXX 0x00 0xFE LSB MSB
If the length of command operands doesn’t conform to the command request, the return value is as follows:
Len Adr reCmd Status CRC-16
0x05 0xXX 0xXX 0xFD LSB MSB
Two kinds of command reader cannot respond:
1. The reader’s address error.
2. The command is incomplete, namely the command Len is longer than the actual command length.
8.2.1 Inventory
The command function is used to inventory tags in the effective field and get their EPC or TID values. The
reader executes an Inventory command and gets tag’s EPC before any other operation.
The user may accord need to establish this command the first biggest running time (Inventory scan time),
before the command enquires. The reader completes command execution in inventory ScanTime (not including
host sending data time) except inventory command after receiving host command and returns the results.
The default value is 0x0A (corresponding to 10*100ms=1s). The value range is 0x03~0xFF (corresponding to
13
UHFREADER18 UHF RFID Reader User's Manual V2.0
3*100ms~255*100ms). In various environments, the actual inventory scan time may be 0~75ms longer than the
InventoryScanTime defined.
If the inventory scan time establishes excessively short, possibly will inventory no tag appear in inventory
scan time.
Command:
Data[]
Len Adr Cmd CRC-16
AdrTID LenTID
0xXX 0xXX 0x01 0xXX 0xXX LSB MSB
Parameter Connect:
AdrTID: One byte. It specifies the starting word address for the TID memory read. For example, AdrTID =
00h specifies the first 16-bit memory word, AdrTID = 01h specifies the second 16-bit memory word, etc.
LenTID: One byte. It specifies the number of 16-bit words to be read. The value is less then 16, otherwise, it
returns the parameters error message.
Notes: It will get tags’ EPC values when the AdrTID and LenTID vacant. Otherwise, get tags’ TID values.
TID-inventory function is only available for reader with firmware version V2.36 and above.
Respond::
Respond
Data[]
Len Adr reCmd Status CRC-16
Num EPC ID
0xXX 0xXX 0x01 0xXX 0xXX EPC-1, EPC-2, EPC-3… LSB MSB
Parameter Connect:
Table::
Status Table
Status Connect
0x01 Command over, and return inventoried tag’s EPC (TID).
The reader does not get all G2 tags’ EPC/TID before user-defined Inventory-ScanTime
0x02
overflows. Command force quit, and returns inventoried tags’ EPC (TID).
The reader executes an Inventory command and gets many G2 tags’ EPC (TID). Data
0x03
can not be completed within in a message, and then send in multiple.
The reader executes an Inventory command and gets G2 tags’ EPC (TID) too much,
0x04
more than the storage capacity of reader, and returns inventoried tags’ EPC (TID).
Num: The number of tag detected.
Num
The command is used to read part or all of a Tag’s Password, EPC, TID, or User memory. To the word as a
unit, start to read data from the designated address.
14
UHFREADER18 UHF RFID Reader User's Manual V2.0
Command:
Len Adr Cmd Data[] CRC-16
0xXX 0xXX 0x02 —— LSB MSB
Data as follows:
Data[]
ENum EPC Mem WordPtr Num Pwd MaskAdr MaskLen
0xXX Variable 0xXX 0xXX 0xXX 4Byte 0xXX 0xXX
Parameter Connect:
ENum:: EPC length,in word units. The length of EPC is less than 15 words, can be 0 or 15. Otherwise, it
ENum
returns the parameters error message.
EPC:: Be operated tag’s EPC number. EPC length according to the decision of the EPC number, EPC
EPC
numbers in word units, and must be an integer number of lengths. High word first, the high byte of each word first.
Requirement given here is a complete EPC number.
Mem:: One byte. It specifies whether the Read accesses Password, EPC, TID, or User memory. 0x00:
Mem
Password memory; 0x01: EPC memory; 0x02; TID memory; 0x03: User memory. Other values reserved. Other
value when error occurred.
WordPtr:: One byte. It specifies the starting word address for the memory read. For example, WordPtr = 00h
WordPtr
specifies the first 16-bit memory word, WordPtr = 01h specifies the second 16-bit memory word, etc.
Num:: One byte. It specifies the number of 16-bit words to be read. The value is less then 120, can not be 0.
Num
Otherwise, it returns the parameters error message.
Pwd:: Four bytes, they are Access Password. The most significant word of Access Password is first, the most
Pwd
significant byte of word is first. The first bit of 32-bit access password is left, and the last bit of 32-bit access
password is right. Only done the memory set to lock and the Tag’s Access Password is not zero, it needs right PwdPwd.
In other cases, Pwd can be zero.
MaskAdr:: One byte, it specifies the starting byte address for the memory mask. For example, MaskAdr =
MaskAdr
0x00 specifies the first EPC bytes, MaskAdr = 0x01 specifies the second EPC bytes, etc.
MaskLen:: One byte, it is the mask length. That a Tag compares against the memory location that begins at
MaskLen
MaskAdr and ends MaskLen bytes later. MaskAdr + MaskLen must be less the length of ECP number.
Otherwise, it returns the parameters error message.
Notes: That a tag compares against complete EPC number when the MaskAdr and MaskLen vacant.
Respond:
Len Adr reCmd Status Data[] CRC-16
0xXX 0xXX 0x02 0x00 Word1,Word2,… LSB MSB
15
UHFREADER18 UHF RFID Reader User's Manual V2.0
Parameter Connect:
Word1, Word2
Word2… ….: In word units, one word is two bytes. High byte is first. Word1 is the word which
reads from the start address, Word2 is the word which reads from the second address, etc.
The command is used to write several words in a Tag’s Reserved, EPC, TID, or User memory.
Command:
Len Adr Cmd Data[] CRC-16
0xXX 0xXX 0x03 —— LSB MSB
Data as follows:
Data[]
WNum ENum EPC Mem WordPtr Wdt Pwd MaskAdr MaskLen
0xXX 0xXX Variable 0xXX 0xXX Variable 4Byte 0xXX 0xXX
Parameter Connect:
WNum:: One byte. It specifies the number of 16-bit words to be written. The value can not be 0. Otherwise, it
WNum
returns the parameters error message.
ENum:: EPC length,in word units. The length of EPC is less than 15 words, can be 0 or 15. Otherwise, it
ENum
returns the parameters error message.
EPC:: Be operated tag’s EPC number. EPC length according to the decision of the EPC number, EPC
EPC
numbers in word units, and must be an integer number of lengths. High word first, the high byte of each word first.
Requirement given here is a complete EPC number.
Mem:: One byte. It specifies whether the Write accesses Password, EPC, TID, or User memory. 0x00:
Mem
Password memory; 0x01: EPC memory; 0x02; TID memory; 0x03: User memory. Other values reserved. Other
value when error occurred.
WordPtr:: One byte. It specifies the starting word address for the memory write. For example, WordPtr = 00h
WordPtr
specifies the first 16-bit memory word, WordPtr = 01h specifies the second 16-bit memory word, etc.
Wdt:: Be written words. The most significant byte of each word is first. Wdt specifies the array of the word
Wdt
to be written. For example, WordPtr equal 0x02, then the first word in Data write in the address 0x02 of
designated Mem, the second word write in 0x03, etc.
Pwd:: Four bytes, they are Access Password. The most significant word of Access Password is first, the most
Pwd
significant byte of word is first. The first bit of 32-bit access password is left, and the last bit of 32-bit access
password is right. Only done the memory set to lock and the Access Password is not zero, it needs Pwd Pwd. In other
cases, Pwd can be zero.
MaskAdr:: One byte, it specifies the starting byte address for the memory mask. For example, MaskAdr =
MaskAdr
16
UHFREADER18 UHF RFID Reader User's Manual V2.0
0x00 specifies the first EPC bytes, MaskAdr = 0x01 specifies the second EPC bytes, etc.
MaskLen:: One byte, it is the mask length. That a Tag compares against the memory location that begins at
MaskLen
MaskAdr and ends MaskLen bytes later. MaskAdr + MaskLen must be less the length of ECP number.
Otherwise, it returns the parameters error message.
Notes: That a tag compares against complete EPC number when the MaskAdr and MaskLen vacant.
Respond:
Len Adr reCmd Status Data[] CRC-16
0x05 0xXX 0x03 0x00 —— LSB MSB
The command is used to write EPC number in a Tag’s EPC memory. Random write one tag in the effective
field.
Command:
Data[]
Len Adr Cmd CRC-16
ENum Pwd WEPC
0xXX 0xXX 0x04 0xXX 4Byte Variable LSB MSB
Parameter Connect:
ENum:: One byte, it specifies the array of the word to be written EPC length,in word units. The length of
ENum
EPC is not more than 15 words, can’t be 0. Otherwise, it returns the parameters error message.
Pwd
Pwd:: Four bytes, they are Access Password. The most significant word of Access Password is first, the most
significant byte of word is first. The first bit of 32-bit access password is left, and the last bit of 32-bit access
password is right. Only done the memory set to lock and the Access Password is not zero, it needs Pwd Pwd. In other
cases, Pwd can be zero.
WEPC: Be written EPC value. WEPC is not more than 15 words, can’t be 0. Otherwise, it returns the
parameters error message.
Respond:
Len Adr reCmd Status Data[] CRC-16
0x05 0xXX 0x04 0x00 —— LSB MSB
The command is used to kill tag. After the tag killed, it never process command.
Command:
Len Adr Cmd Data[] CRC-16
0xXX 0xXX 0x05 —— LSB MSB
17
UHFREADER18 UHF RFID Reader User's Manual V2.0
Data as follows:
Data[]
ENum EPC Killpwd MaskAdr MaskLen
0xXX Variable 4Byte 0xXX 0xXX
Parameter Connect:
ENum:: EPC length,in word units. The length of EPC is less than 15 words, can be 0 or 15. Otherwise, it
ENum
returns the parameters error message.
EPC:: Be operated tag’s EPC number. EPC length according to the decision of the EPC number, EPC
EPC
numbers in word units, and must be an integer number of lengths. High word first, the high byte of each word first.
Requirement given here is a complete EPC number.
Killpwd:: Four bytes, they are Kill Password. The most significant word of Kill Password is first, the most
Killpwd
significant byte of word is first. The first bit of 32-bit Kill Password is left, and the last bit of 32-bit Kill Password
is right. Tag’s whose Kill Password is zero do not execute a kill operation; if such a Tag receives a Kill command
it ignores the command and backscatters an error code
MaskAdr:: One byte, it specifies the starting byte address for the memory mask. For example, MaskAdr =
MaskAdr
0x00 specifies the first EPC bytes, MaskAdr = 0x01 specifies the second EPC bytes, etc.
MaskLen:: One byte, it is the mask length. That a Tag compares against the memory location that begins at
MaskLen
MaskAdr and ends MaskLen bytes later. MaskAdr + MaskLen must be less the length of ECP number.
Otherwise, it returns the parameters error message.
Notes: That a tag compares against complete EPC number when the MaskAdr and MaskLen vacant.
Respond:
Len Adr reCmd Status Data[] CRC-16
0x05 0xXX 0x05 0x00 —— LSB MSB
8.2.6 Lock
The Lock command Lock reversibly or permanently locks a password or an entire EPC, TID, or User memory
bank in a readable/writeable or unreadable/unwriteable state.
Once tag’s password memory establishes to forever may be readable and writable or unreadable and
unwriteable, then later cannot change its read-write protection again. Tag’s EPC memory, TID memory or user
memory, if establishes to forever may be writeable or unwriteable, then later cannot change its read-write
protection again. If sends the command to want forcefully to change the above several states, then the tag will
return to the error code.
When the tag’s memory established in a readable/writeable state, the command must give the Access
Password, so tag’s Access Password is not zero.
18
UHFREADER18 UHF RFID Reader User's Manual V2.0
Command:
Len Adr Cmd Data[] CRC-16
0xXX 0xXX 0x06 —— LSB MSB
Data as follows:
Data[]
ENum EPC Select SetProtect Pwd MaskAdr MaskLen
0xXX Variable 0xXX 0xXX 4Byte 0xXX 0xXX
Parameter Connect:
ENum:: EPC length,in word units. The length of EPC is less than 15 words, can be 0 or 15. Otherwise, it
ENum
returns the parameters error message.
EPC:: Be operated tag’s EPC number. EPC length according to the decision of the EPC number, EPC
EPC
numbers in word units, and must be an integer number of lengths. High word first, the high byte of each word first.
Requirement given here is a complete EPC number.
SetProtect::
SetProtect
When Select is 0x00 or 0x01, SetProtect means as follows:
0x00: readable and writeable from any state.
0x01: permanently readable and writeable.
0x02: readable and writeable from the secured state.
0x03: never readable and writeable
When Select is 0x02, 0x03 or 0x04, SetProtect means as follows:
0x00: writeable from any state.
0x01: permanently writeable.
0x02: writeable from the secured state.
0x03: never writeable.
Other value when error occurred.
Pwd:: Four bytes, they are Access Password. The most significant word of Access Password is first, the most
Pwd
significant byte of word is first. The first bit of 32-bit access password is left, and the last bit of 32-bit access
password is right. Pwd must be right Access Password.
MaskAdr:: One byte, it specifies the starting byte address for the memory mask. For example, MaskAdr =
MaskAdr
0x00 specifies the first EPC bytes, MaskAdr = 0x01 specifies the second EPC bytes, etc.
19
UHFREADER18 UHF RFID Reader User's Manual V2.0
MaskLen:: One byte, it is the mask length. That a Tag compares against the memory location that begins at
MaskLen
MaskAdr and ends MaskLen bytes later. MaskAdr + MaskLen must be less the length of ECP number.
Otherwise, it returns the parameters error message.
Notes: That a tag compares against complete EPC number when the MaskAdr and MaskLen vacant.
Respond:
Len Adr reCmd Status Data[] CRC-16
0x05 0xXX 0x06 0x00 —— LSB MSB
8.2.7 BlockErase
The command is used to erase multiple words in a Tag’s Password, EPC, TID, or User memory.
Command:
Len Adr Cmd Data[] CRC-16
0xXX 0xXX 0x07 —— LSB MSB
Data as follows:
Data[]
ENum EPC Mem WordPtr Num Pwd MaskAdr MaskLen
0xXX Variable 0xXX 0xXX 0xXX 4Byte 0xXX 0xXX
Parameter Connect:
ENum:: EPC length,in word units. The length of EPC is less than 15 words, can be 0 or 15. Otherwise, it
ENum
returns the parameters error message.
EPC:: Be operated tag’s EPC number. EPC length according to the decision of the EPC number, EPC
EPC
numbers in word units, and must be an integer number of lengths. High word first, the high byte of each word first.
Requirement given here is a complete EPC number.
Mem
Mem:: One byte. It specifies whether the Erase accesses Password, EPC, TID, or User memory. 0x00:
Password memory; 0x01: EPC memory; 0x02; TID memory; 0x03: User memory. Other values reserved. Other
value when error occurred.
WordPtr:: One byte. It specifies the starting word address for the memory block erase. For example, WordPtr
WordPtr
= 00h specifies the first 16-bit memory word, WordPtr = 01h specifies the second 16-bit memory word, etc.
WordPtr must be bigger than 0x00 when it erases EPC memory.
Num: One byte. It specifies the number of 16-bit words to be erased. If Num = 0x00, it returns the
parameters error message.
Pwd:: Four bytes, they are Access Password. The most significant word of Access Password is first, the most
Pwd
significant byte of word is first. The first bit of 32-bit access password is left, and the last bit of 32-bit access
password is right. Only done the memory set to lock and the Access Password is not zero, it needs Pwd Pwd. In other
cases, Pwd can be zero.
20
UHFREADER18 UHF RFID Reader User's Manual V2.0
MaskAdr:: One byte, it specifies the starting byte address for the memory mask. For example, MaskAdr =
MaskAdr
0x00 specifies the first EPC bytes, MaskAdr = 0x01 specifies the second EPC bytes, etc.
MaskLen:: One byte, it is the mask length. That a Tag compares against the memory location that begins at
MaskLen
MaskAdr and ends MaskLen bytes later. MaskAdr + MaskLen must be less the length of ECP number.
Otherwise, it returns the parameters error message.
Notes: That a tag compares against complete EPC number when the MaskAdr and MaskLen vacant.
Respond:
Len Adr reCmd Status Data[] CRC-16
0x05 0xXX 0x07 0x00 —— LSB MSB
The command is used to set designated tag read protection. After the tag protected, it never process command.
Even if inventory tag, reader can not get the EPC number. The read protection can be removed by executing Reset
ReadProtect. Only NXP's UCODE EPC G2X tags valid.
Command:
Len Adr Cmd Data[] CRC-16
0xXX 0xXX 0x08 —— LSB MSB
Data as follows:
Data[]
ENum EPC Pwd MaskAdr MaskLen
0xXX Variable 4Byte 0xXX 0xXX
Parameter Connect:
ENum
ENum:: EPC length,in word units. The length of EPC is less than 15 words, can be 0 or 15. Otherwise, it
returns the parameters error message.
EPC:: Be operated tag’s EPC number. EPC length according to the decision of the EPC number, EPC
EPC
numbers in word units, and must be an integer number of lengths. High word first, the high byte of each word first.
Requirement given here is a complete EPC number.
Pwd:: Four bytes, they are Access Password. The most significant word of Access Password is first, the most
Pwd
significant byte of word is first. The first bit of 32-bit access password is left, and the last bit of 32-bit access
password is right. Tags’ Access Password can not be zero.
MaskAdr:: One byte, it specifies the starting byte address for the memory mask. For example, MaskAdr =
MaskAdr
0x00 specifies the first EPC bytes, MaskAdr = 0x01 specifies the second EPC bytes, etc.
MaskLen:: One byte, it is the mask length. That a Tag compares against the memory location that begins at
MaskLen
21
UHFREADER18 UHF RFID Reader User's Manual V2.0
MaskAdr and ends MaskLen bytes later. MaskAdr + MaskLen must be less the length of ECP number.
Otherwise, it returns the parameters error message.
Notes: That a tag compares against complete EPC number when the MaskAdr and MaskLen vacant.
Respond:
Len Adr reCmd Status Data[] CRC-16
0x05 0xXX 0x08 0x00 —— LSB MSB
The command is used to random set random one tag read protection in the effective field. The tag must be
having the same access password. Only NXP's UCODE EPC G2X tags valid.
Command:
Data[]
Len Adr Cmd CRC-16
Pwd
0x08 0xXX 0x09 4Byte LSB MSB
Parameter Connect:
Pwd:: Four bytes, they are Access Password. The most significant word of Access Password is first, the most
Pwd
significant byte of word is first. The first bit of 32-bit access password is left, and the last bit of 32-bit access
password is right. Tags’ Access Password can not be zero.
Respond:
Len Adr reCmd Status Data[] CRC-16
0x05 0xXX 0x09 0x00 —— LSB MSB
The command is used to remove only one tag read protection in the effective field. The tag must be having
the same access password. Only NXP's UCODE EPC G2X tags valid.
Command:
Data[]
Len Adr Cmd CRC-16
Pwd
0x08 0xXX 0x0a 4Byte LSB MSB
Parameter Connect:
Pwd:: Four bytes, they are Access Password. The most significant word of Access Password is first, the most
Pwd
significant byte of word is first. The first bit of 32-bit access password is left, and the last bit of 32-bit access
password is right. Pwd must be right tag’s Access Password.
Respond:
Len Adr reCmd Status Data[] CRC-16
0x05 0xXX 0x0a 0x00 —— LSB MSB
Notes: If a tag does not support the command, is unlocked.
22
UHFREADER18 UHF RFID Reader User's Manual V2.0
The command is used to check only one tag in the effective field, whether the tag is protected. It can not
check the tag whether the tag support protection setting. Only NXP's UCODE EPC G2X tags valid.
Command:
Len Adr Cmd Data[] CRC-16
0x04 0xXX 0x0b —— LSB MSB
Respond:
Len Adr reCmd Status Data[] CRC-16
0x06 0xXX 0x0b 0x00 ReadPro LSB MSB
Parameter Connect:
ReadPro Connect
0x00 Tag is protected.
0x01 Tag is unprotected.
Notes: If a tag does not support the command, is unprotected.
The function is used to set or reset the EAS status bit of designated tag. Only NXP's UCODE EPC G2X tags
valid.
Command:
Len Adr Cmd Data[] CRC-16
0xXX 0xXX 0x0c —— LSB MSB
Data as follows:
Data[]
ENum EPC Pwd EAS MaskAdr MaskLen
0xXX Variable 4Byte 0xXX 0xXX 0xXX
Parameter Connect:
ENum
ENum:: EPC length,in word units. The length of EPC is less than 15 words, can be 0 or 15. Otherwise, it
returns the parameters error message.
EPC:: Be operated tag’s EPC number. EPC length according to the decision of the EPC number, EPC
EPC
numbers in word units, and must be an integer number of lengths. High word first, the high byte of each word first.
Requirement given here is a complete EPC number.
Pwd:: Four bytes, they are Access Password. The most significant word of Access Password is first, the most
Pwd
significant byte of word is first. The first bit of 32-bit access password is left, and the last bit of 32-bit access
password is right. Tags’ Access Password can not be zero.
EAS:: One byte. Bit0=0 means reset the EAS state, Bit0=1 means set the EAS state.Bit1~Bit7 default 0.
EAS
23
UHFREADER18 UHF RFID Reader User's Manual V2.0
MaskAdr:: One byte, it specifies the starting byte address for the memory mask. For example, MaskAdr =
MaskAdr
0x00 specifies the first EPC bytes, MaskAdr = 0x01 specifies the second EPC bytes, etc.
MaskLen:: One byte, it is the mask length. That a Tag compares against the memory location that begins at
MaskLen
MaskAdr and ends MaskLen bytes later. MaskAdr + MaskLen must be less the length of ECP number.
Otherwise, it returns the parameters error message.
Notes: That a tag compares against complete EPC number when the MaskAdr and MaskLen vacant.
Respond:
Len Adr reCmd Status Data[] CRC-16
0x05 0xXX 0x0c 0x00 —— LSB MSB
The function is used to check EAS status bit of any tag in the effective field. Only NXP's UCODE EPC G2X
tags valid.
Command:
Len Adr Cmd Data[] CRC-16
0x04 0xXX 0x0d —— LSB MSB
Respond:
Len Adr reCmd Status Data[] CRC-16
0x05 0xXX 0x0d 0x00 —— LSB MSB
It returns "no tag actionable" message when No EAS alarm
The command is used to permanently lock the designated data in designated tag’s user memory. Block Lock
command supports an additional locking mechanism, which allows the locking of individual 32 bit blocks (rows)
in the 224 bit User Memory. Once locked these locks cannot be unlocked. Only NXP's UCODE EPC G2X tags
valid.
Command:
Len Adr Cmd Data[] CRC-16
0xXX 0xXX 0x0e —— LSB MSB
Data as follows:
Data[]
ENum EPC pwd WrdPointer MaskAdr MaskLen
0xXX Variable 4Byte 0xXX 0xXX 0xXX
Parameter Connect:
ENum:: EPC length,in word units. The length of EPC is less than 15 words, can be 0 or 15. Otherwise, it
ENum
returns the parameters error message.
24
UHFREADER18 UHF RFID Reader User's Manual V2.0
EPC:: Be operated tag’s EPC number. EPC length according to the decision of the EPC number, EPC
EPC
numbers in word units, and must be an integer number of lengths. High word first, the high byte of each word first.
Requirement given here is a complete EPC number.
Pwd:: Four bytes, they are Access Password. The most significant word of Access Password is first, the most
Pwd
significant byte of word is first. The first bit of 32-bit access password is left, and the last bit of 32-bit access
password is right. Pwd must be right tag’s Access Password.
WrdPointer:: Each EEPROM row can be addressed by either of the two related WordPointers:
WrdPointer
Either of two WordPointers can address one single User Memory row
WrdPointer User EEPROM row
0 or 1 0
2 or 3 1
4 or 5 2
6 or 7 3
8 or 9 4
10 or 11 5
12 or 13 6
MaskAdr
MaskAdr:: One byte, it specifies the starting byte address for the memory mask. For example, MaskAdr =
0x00 specifies the first EPC bytes, MaskAdr = 0x01 specifies the second EPC bytes, etc.
MaskLen:: One byte, it is the mask length. That a Tag compares against the memory location that begins at
MaskLen
MaskAdr and ends MaskLen bytes later. MaskAdr + MaskLen must be less the length of ECP number.
Otherwise, it returns the parameters error message.
Notes: That a tag compares against complete EPC number when the MaskAdr and MaskLen vacant.
Respond:
Len Adr reCmd Status Data[] CRC-16
0x05 0xXX 0x0e 0x00 —— LSB MSB
Command:
Len Adr Cmd Data[] CRC-16
0x04 0xXX 0x0f —— LSB MSB
Respond::
Respond
Data[]
Len Adr reCmd Status CRC-16
Num EPC ID
25
UHFREADER18 UHF RFID Reader User's Manual V2.0
ID: Inventoried tag’s EPC data, EPC-1 is the first tag EPC Len + EPC data. The most significant word
EPC ID
(EPC C1 G2 data in word units) of EPC is transmitted first and the most significant byte of word is transmitted
first. EPC Len is one byte.
The command is used to write multiple words in a Tag’s Reserved, EPC, TID, or User memory.
Command:
Len Adr Cmd Data[] CRC-16
0xXX 0xXX 0x10 —— LSB MSB
Data as follows:
Data[]
WNum ENum EPC Mem WordPtr Wdt Pwd MaskAdr MaskLen
0xXX 0xXX Variable 0xXX 0xXX Variable 4Byte 0xXX 0xXX
Parameter Connect:
WNum:: One byte. It specifies the number of 16-bit words to be written. The value can not be 0. Otherwise, it
WNum
returns the parameters error message.
ENum:: EPC length,in word units. The length of EPC is less than 15 words, can be 0 or 15. Otherwise, it
ENum
returns the parameters error message.
EPC
EPC:: Be operated tag’s EPC number. EPC length according to the decision of the EPC number, EPC
numbers in word units, and must be an integer number of lengths. High word first, the high byte of each word first.
Requirement given here is a complete EPC number.
Mem:: One byte. It specifies whether the Write accesses Password, EPC, TID, or User memory. 0x00:
Mem
Password memory; 0x01: EPC memory; 0x02; TID memory; 0x03: User memory. Other values reserved. Other
value when error occurred.
WordPtr:: One byte. It specifies the starting word address for the memory write. For example, WordPtr = 00h
WordPtr
specifies the first 16-bit memory word, WordPtr = 01h specifies the second 16-bit memory word, etc.
Wdt:: Be written words. The most significant byte of each word is first. Wdt specifies the array of the word
Wdt
to be written. For example, WordPtr equal 0x02, then the first word in Data write in the address 0x02 of
designated Mem, the second word write in 0x03, etc.
Pwd:: Four bytes, they are Access Password. The most significant word of Access Password is first, the most
Pwd
significant byte of word is first. The first bit of 32-bit access password is left, and the last bit of 32-bit access
password is right. Only done the memory set to lock and the Access Password is not zero, it needs Pwd Pwd. In other
cases, Pwd can be zero.
26
UHFREADER18 UHF RFID Reader User's Manual V2.0
MaskAdr:: One byte, it specifies the starting byte address for the memory mask. For example, MaskAdr =
MaskAdr
0x00 specifies the first EPC bytes, MaskAdr = 0x01 specifies the second EPC bytes, etc.
MaskLen:: One byte, it is the mask length. That a Tag compares against the memory location that begins at
MaskLen
MaskAdr and ends MaskLen bytes later. MaskAdr + MaskLen must be less the length of ECP number.
Otherwise, it returns the parameters error message.
Notes: That a tag compares against complete EPC number when the MaskAdr and MaskLen vacant.
Respond:
Len Adr reCmd Status Data[] CRC-16
0x05 0xXX 0x10 0x00 —— LSB MSB
8.3.1Inventory Signal 6B
The command is used to Inventory only one tag in the effective field and get their ID values. If more than
one tag in the effective field at the same time, reader may be get nothing.
Command:
Len Adr Cmd CRC-16
0x04 0xXX 0x50 LSB MSB
Respond:
Len Adr reCmd Status Data[] CRC-16
0x0d 0xXX 0x50 0x00 ID LSB MSB
Parameter Connect:
ID:: 8 bytes, it is 6B tag’s UID. The low byte is fist.
ID
The command is used to according to the given conditions Inventory tags in the effective field and get their
ID values.
Command:
Data[]
Len Adr Cmd CRC-16
Condition Address Mask Word_data
0x0f 0xXX 0x51 0xXX 0xXX 0xXX 8 Bytes LSB MSB
Parameter Connect:
Condition:: The condition of detecting tags.
Condition
0x00: equal condition.
0x01: unequal condition.
0x02: greater than condition.
0x03: lower than condition.
27
UHFREADER18 UHF RFID Reader User's Manual V2.0
Mask: It pointed to the data is used to compare. Highest bit in the mask correspond with the far-left byte in
the Condition Content. The corresponding bit in the mask is 1 to compare the bit in the Condition Content with the
corresponding byte in the tag. The corresponding bit in the mask is 0, not compare.
Respond:
Len Adr reCmd Status Num Data[] CRC-16
0xXX 0xXX 0x51 0xXX 0xXX UID1, UID2… LSB MSB
Parameter Connect:
Status Table
Table::
Status Connect
0x15 Command over, and return inventoried tag’s UID.
The reader does not get all 6B tags’ UID before user-defined Inventory-ScanTime
0x16
overflows. Command force quit, and returns inventoried tags’ UID.
The reader executes an Inventory command and gets many 6B tags’ UID. Data can not
0x17
be completed within in a message, and then send in multiple.
The reader executes an Inventory command and gets 6B tags’ UID too much, more
0x18
than the storage capacity of reader, and returns inventoried tags’ UID.
Num: The number of tag detected.
Num
[]:: UID. Each UID length is 8 bytes. The least significant byte of UID is transmitted first.
Data []
The command is used to start to read several bytes from the designated address.
Command
Command:
Data[]
Len Adr Cmd CRC-16
Address ID Num
0x0e 0xXX 0x52 0xXX 8 Bytes 0xXX LSB MSB
Parameter Connect:
Address: The tag’s start byte address to read. The range is 0~223. Otherwise, it returns the parameters error
message.
Num:: In byte units. It specifies the number of 8-bit bytes to be read. The value range is 1~32, and Address +
Num
Num must be less than 224. Otherwise, it returns the parameters error message.
Respond:
Len Adr reCmd Status Data[] CRC-16
0x05 0xXX 0x52 0x00 Data LSB MSB
28
UHFREADER18 UHF RFID Reader User's Manual V2.0
The command is used to start to write several bytes from the designated address.
Command:
Data[]
Len Adr Cmd CRC-16
Address ID Wdata
0xXX 0xXX 0x53 0xXX 8 Bytes Variable LSB MSB
Parameter Connect:
Address: The tag’s start byte address to write. The range is 8~223. Otherwise, it returns the parameters error
message.
Respond:
Len Adr reCmd Status Data[] CRC-16
0x05 0xXX 0x53 0x00 Data LSB MSB
Respond:
Len Adr reCmd Status Data[] CRC-16
0x06 0xXX 0x54 0x00 LockState LSB MSB
LockState::
LockState
0x00: Unlocked
0x01: locked
29
UHFREADER18 UHF RFID Reader User's Manual V2.0
8.3.6 Lock 6B
Respond:
Len Adr reCmd Status Data[] CRC-16
0x05 0xXX 0x55 0x00 —— LSB MSB
Adr
The host sends this command to get the reader’s information including reader’s address (Adr
Adr), firmware
Type
version, reader’s type (Type Tr_Type
Type), supported protocol (Tr_Type
Tr_Type), reader power, work frequency, and
InventoryScanTime value.
Command:
Len Adr Cmd Data[] CRC-16
0x04 0xXX 0x21 —— LSB MSB
Respond:
Len Adr reCmd Status Data[] CRC-16
Version,Type,Tr_Type,DMaxFre,
0x0d 0xXX 0x21 0x00 LSB MSB
DMinFre,Power,Scntm
Parameter Connect:
Parameter Length (Byte)
Length(Byte) Connect
The first byte is version number; the second byte is sub-version
Version 2
number.
Type 1 The reader type byte. 0x09 lines on UHFREADER18
One byte supported protocol information. Bit1 is 1 for18000-6C
Tr_Type 1
protocol; Bit0 is 1 for 18000-6B protocol.
Bit7-Bit6 indicates Frequency Band and Bit5-Bit0 indicates the
DMaxFre 1
reader current maximum frequency.
30
UHFREADER18 UHF RFID Reader User's Manual V2.0
The host sends this command to change the current region of the reader. The value is stored in the reader’s
inner EEPROM and is nonvolatile after reader powered off.
Command:
Data[]
Len Adr Cmd CRC-16
MaxFre MinFre
0x06 0xXX 0x22 0xXX 0xXX LSB MSB
Parameter Connect:
MaxFre:: One byte, Bit7-Bit6 indicates Frequency Band and Bit5-Bit0 indicates the reader current maximum
MaxFre
frequency.
MinFre:: One byte, Bit7-Bit6 indicates Frequency Band and Bit5-Bit0 indicates the reader current minimum
MinFre
frequency (maximum frequency >= minimum frequency).
Frequency Band:
MaxFre(Bit7) MaxFre(Bit6) MinFre(Bit7) MinFre(Bit6) FreqBand
0 0 0 0 User band
0 0 0 1 Chinese band2
0 0 1 0 US band
0 0 1 1 Korean band
0 1 0 0 RFU
0 1 0 1 RFU
… … … … …
1 1 1 1 RFU
31
UHFREADER18 UHF RFID Reader User's Manual V2.0
Respond:
Len Adr reCmd Status Data[] CRC-16
0x05 0xXX 0x22 0x00 —— LSB MSB
Various frequency bands formula:
User band: Fs = 902.6 + N * 0.4 (MHz), N∈ [0, 62].
Chinese band2: Fs = 920.125 + N * 0.25 (MHz), N∈ [0, 19].
US band: Fs = 902.75 + N * 0.5 (MHz), N∈ [0, 49].
Korean band: Fs = 917.1 + N * 0.2 (MHz), N∈ [0, 31].
Adr
The host sends this command to change the address (Adr
Adr) of the reader. The address data is stored in the
reader’s inner EEPROM and is nonvolatile after reader powered off. The default value of Adr is 0x00. The range
of Adr is 0x00~0xFE. When the host tries to write 0xFF to Adr Adr, the reader will set the value to 0x00
automatically.
Command:
Data[]
Len Adr Cmd CRC-16
Address
0x05 0xXX 0x24 0xXX LSB MSB
Respond:
Len Adr reCmd Status Data[] CRC-16
0x05 0xXX 0x24 0x00 —— LSB MSB
Notes
otes: The Adr is old address, not new address.
The host sends this command to change the value of InventoryScanTime of the reader. The value is stored in
the reader’s inner EEPROM and is nonvolatile after reader powered off.
Command:
Data[]
Len Adr Cmd CRC-16
Scantime
0x05 0xXX 0x25 0xXX LSB MSB
Parameter Connect:
Scantime: Inventory Scan Time. The default value is 0x0A (corresponding to 10*100ms=1s). The value
range is 0x03~0xFF (corresponding to 3*100ms~255*100ms). When the host tries to set value 0x00~0x02 to
InventoryScanTime, the reader will set it to 0x0A automatically. In various environments, the actual inventory
scan time may be 0~75ms longer than the InventoryScanTime defined.
Respond:
Len Adr reCmd Status Data[] CRC-16
0x05 0xXX 0x25 0x00 —— LSB MSB
32
UHFREADER18 UHF RFID Reader User's Manual V2.0
The host sends this command to change the value of band rate of the reader. The value is stored in the
reader’s inner EEPROM and is nonvolatile after reader powered off.
Command:
Data[]
Len Adr Cmd CRC-16
BaudRate
0x05 0xXX 0x28 0xXX LSB MSB
Parameter Connect:
BaudRate:: The serial port baud rate default value is 57600 bps. Defined as follows:
BaudRate
BaudRate Bps
0 9600bps
1 19200 bps
2 38400 bps
5 57600 bps
6 115200 bps
Respond:
Len Adr reCmd Status Data[] CRC-16
0x05 0xXX 0x28 0x00 —— LSB MSB
Notes: The response of the baud rate for the original baud rate, and next command uses the new band rate.
The host sends this command to change the power of the reader. The value is stored in the reader’s inner
EEPROM and is nonvolatile after reader powered off.
Command:
Data[]
Len Adr Cmd CRC-16
Pwr
0x05 0xXX 0x2F 0xXX LSB MSB
Parameter Connect:
Pwr
Pwr:: New power. The default value is 30(about 30dBm), it range is 0~30.
Respond:
Len Adr reCmd Status Data[] CRC-16
0x05 0xXX 0x2F 0x00 —— LSB MSB
33
UHFREADER18 UHF RFID Reader User's Manual V2.0
The host sends this command to control the LED lights flash and buzzer tweet.
Command:
Data[]
Len Adr Cmd CRC-16
ActiveT SilentT Times
Respond:
Len Adr reCmd Status Data[] CRC-16
0x05 0xXX 0x33 0x00 —— LSB MSB
The host sends this command to change Wiegand parameter of the reader. The value is stored in the reader’s
inner EEPROM and is nonvolatile after reader powered off.
Command:
Data[]
Len Adr Cmd Wg_mo Wg_Data_I Wg_Pulse_Wi Wg_Pulse_In CRC-16
de nteval dth teval
0x08 0xXX 0x34 0xXX 0xXX 0xXX 0xXX LSB MSB
Parameter Connect:
Wg_mode:: Bit0: Select Wiegand format interface.
Wg_mode
=0 Wiegand 26bits format interface.
=1 Wiegand 34bits format interface.
Bit1: High-bit first or Low-bit first.
=0 High-bit first.
=1 Low-bit first.
Bit2~Bit7: RFU. Default value is zero.
Wg_Pulse_Inteval:: Data pulse interval width (1 ~255)*100us, the default value is 15.
Wg_Pulse_Inteval
34
UHFREADER18 UHF RFID Reader User's Manual V2.0
Respond:
Len Adr reCmd Status Data[] CRC-16
0x05 0xXX 0x34 0x00 —— LSB MSB
The host sends this command to set the reader’s in Scan Mode or Trigger Mode. The host can also use this
command to define the reader’s output data content and format.
In Scan Mode or Trigger Mode, the reader can still accept commands from the host. But it will only respond
to reader-defined commands. Other commands can not be executed when the reader in Scan Mode or Trigger
Mode.
Command:
Data[]
Len Adr Cmd CRC-16
Parameter
Respond:
Len Adr reCmd Status Data[] CRC-16
0x05 0xXX 0x35 0x00 —— LSB MSB
Note: Scan Mode configuration words Parameter will be stored in reader’s EEPROM and be effective until
changed explicitly. Defined as follows:
Byte1 Byte2 Byte3 Byte4 Byte5 Byte6
Read_mode Mode_state Mem_Inven First_Adr Word_Num Tag_Time
Parameter Connect:
Read_mode::
Read_mode
Bit1 Bit0 Work Mode
0 0 Answer Mode
0 1 Scan Mode
1 0 Trigger Mode(Low)
1 1 Trigger Mode(High)
Bit2~Bit7: RFU. Default value is zero.
Notes: Answer mode, the following parameter is invalid.
35
UHFREADER18 UHF RFID Reader User's Manual V2.0
=1 RS232/RS485 output.
Bit2: Beep Enable.
=0 on
=1 off
Bit3: Wiegand output, 18000-6C protocol. First_Adr is byte address or word address.
=0 word address.
=1 bytes address.
Bit4: Syris485 Enable. It is invalid when Bit1 is zero.
=0 Common 485
=1 Syris 485
When Bit4 = 1:
Validity: 18000-6C protocol: Read accesses Password, EPC, TID, User memory, Inventory
Single.
18000-6B protocol: validity.
Mem_Inven:: It is valid when the reader supports 18000-6C protocol. It specifies whether the Read accesses
Mem_Inven
Password, EPC, TID, User memory, Inventory multiple, Inventory Single, EAS Alarm. 0x00: Password memory;
0x01: EPC memory; 0x02; TID memory; 0x03: User memory; 0x04 Inventory multiple; 0x05 Inventory Single;
0x06: EAS Alarm. Otherwise, it returns the parameters error message.
First_Adr:: It specifies the starting data address for the memory read.
First_Adr
Support 18000-6C: First_Adr = 0x00 specifies the first 16-bit memory word, First_Adr = 0x01
specifies the second 16-bit memory word, etc.
Support 18000-6B: First_Adr = 0x00 specifies the first 8-bit memory byte, First_Adr = 0x01
specifies the second 8-bit memory byte, etc.
Word_Num
Word_Num:: Only RS232 RS232/RS485 output, it is valid. It specifies the number of word for the memory
read. The value range is 1~32. Syris 485 Mode, the value range is 1~4.
Tag_Time: Read Single Tag Delay (0 ~255)*1s. The default value is zero.
Validity: 18000-6C protocol: Read accesses Password, EPC, TID, User memory, Inventory Single.
18000-6B protocol: validity.
Output Format Connect In The Scan Mode Or Trigger Mode:
0x00~0x03::
1.18000-6C Protocol, Mem_Inven is 0x00~0x03
Len Adr reCmd Status Data[] CRC-16
36
UHFREADER18 UHF RFID Reader User's Manual V2.0
Parameter Connect:
Word1, Word2
Word2… ….: In word units, one word is two bytes. High-byte is first. Word1 is the word which
reads from the start address, Word2 is the word which reads from the second address, etc.
4.18000-6B Protocol:
Len Adr reCmd Status Data[] CRC-16
The host sends this command to get the reader’s information including reader’s Wiegand parameter,
WorkMode parameter.
Command:
Len Adr Cmd Data[] CRC-16
0x04 0xXX 0x36 —— LSB MSB
Respond:
Len Adr reCmd Status Data[] CRC-16
Wg_mode,Wg_Data_Inteval,
Wg_Pulse_Width,Wg_Pulse_Inteval,
0x11 0xXX 0x36 0x00 Read_mode,Mode_state,Mem_Inven, LSB MSB
First_Adr,Word_Num,Tag_Time,
accuracy,OffsetTime
Parameter Connect:
Wg_mode
Wg_mode,, Wg_Data_Inteval
Wg_Data_Inteval,, Wg_Pulse_Width
Wg_Pulse_Width,, Wg_Pulse_Inteval
Wg_Pulse_Inteval:: Wiegand parameters.
37
UHFREADER18 UHF RFID Reader User's Manual V2.0
Read_mode,, Mode_state
Read_mode Mode_state,, Mem_Inven
Mem_Inven,, First_Adr
First_Adr,, Word_Num
Word_Num,, Tag_Time: Work Mode parameters.
8.4.111 SetEasAccuracy
8.4.1
Respond:
Len Adr reCmd Status Data[] CRC-16
0x05 0xXX 0x37 0x00 —— LSB MSB
8.4.1
8.4.122 Syris Response Offset
The host sends this command to set Syris485 response offset time.
Command:
Data[]
Len Adr Cmd CRC-16
OffsetTime
0x05 0xXX 0x38 0xXX LSB MSB
OffsetTime: Syris485 response offset time (0 ~100)*1ms, the default value is 0.
Respond:
Len Adr reCmd Status Data[] CRC-16
0x05 0xXX 0x38 0x00 —— LSB MSB
The host sends this command to set Trigger offset time. This function is only available for reader with
firmware version V2.36 and above.
Command:
Data[]
Len Adr Cmd CRC-16
TriggerTime
38
UHFREADER18 UHF RFID Reader User's Manual V2.0
Respond:
Len Adr reCmd Status Data[] CRC-16
0x05 0xXX 0x3b 0x00 TriggerTime LSB MSB
TriggerTime: Current Trigger offset time (0 ~254)*1s.
39