.. _header-n3118:
Frame Examples
==============
Interrogator Module Configuration
---------------------------------
0x03 Get Interrogator module information
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Get module information: hardware version, software version or
manufacturer information.
Instruction Code: 0x03
Command Parameter:
- Hardware version: 0x00
- Software version: 0x01
- Manufacturer: 0x02
Response Parameter:
- First byte will be the same as the command parameter.
- Next bytes will be the hardware module name and version in ASCII
encoding.
.. _header-n61:
Command to get the hardware version
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
== ==== === ===== ========= === ===
H Type CMD PL Parameter CRC End
== ==== === ===== ========= === ===
BB 00 03 00 01 00 04 7E
== ==== === ===== ========= === ===
.. _header-n79:
Successful Response
^^^^^^^^^^^^^^^^^^^
== ==== === ===== ================================ === ===
H Type CMD PL Parameter CRC End
== ==== === ===== ================================ === ===
BB 01 03 00 0B 00 4D 31 30 30 20 56 31 2E 30 30 22 7E
== ==== === ===== ================================ === ===
The response parameter starts with 0x00, corresponding to the command
parameter. The next bytes are 4D 31 30 30 20 56 31 2E 30 30, which is
ASCII code of "M100 V1.00"
0x11 Set communication baud rate
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The baud rate in the parameter is the actual baud rate divided by 100.
For this example, the target baud rate is 19200, so the value is 19200 /
100 = 192 = 0xC0.
.. _header-n894:
Command
^^^^^^^
== ==== === ===== ========= === ===
H Type CMD PL Baud rate CRC End
== ==== === ===== ========= === ===
BB 00 11 00 02 00 C0 D3 7E
== ==== === ===== ========= === ===
.. _header-n912:
No Response Frame
^^^^^^^^^^^^^^^^^
There is no response frame for this instruction. After the Interrogator
has changed the communication baud rate, the Host Computer will need to
reconnect to the Interrogator with the new baud rate.
0x17 Module Sleep
~~~~~~~~~~~~~~~~~
The module sleep command allows the Interrogator to maintain a low-power
sleep mode. The Host Computer can wake the Interrogator up by sending
any byte through the serial port, but the data will be discarded.
The first command received after the module sleeps will not respond
because the first character of the first command will Was abandoned.
This command will reset the M100/QM100 chip after power-off. After the
module wakes up, it will re-download the firmware to the M100/QM100 chip
and reset some parameters to the module (these parameters include the
power, frequency, and frequency hopping configured before sleep Mode,
sleep time, receiver demodulator parameters, excluding Select mode,
Select parameters, etc.), so some parameters may need to be reset. The
instructions are as follows:
Command
^^^^^^^
== ==== === ===== === ===
H Type CMD PL CRC End
== ==== === ===== === ===
BB 00 17 00 00 17 7E
== ==== === ===== === ===
Response
^^^^^^^^
== ==== === ===== ========= === ===
H Type CMD PL Parameter CRC End
== ==== === ===== ========= === ===
BB 01 17 00 01 00 19 7E
== ==== === ===== ========= === ===
0x1D Module Idle sleep time
~~~~~~~~~~~~~~~~~~~~~~~~~~~
This command can set how long the module will automatically enter the
sleep state after no operation. After the module sleeps, it can wake up
by sending any character through the serial port. After the module
sleeps, the first command received will not respond because the first
character of the first command will be discarded. This command will
reset the M100/QM100 chip. After the module wakes up, it will
re-download the firmware to the M100/QM100 chip and reset some
parameters to the module (these parameters include the power, frequency,
and frequency hopping mode configured before sleep. Sleep time, receiver
demodulator parameters, excluding Select mode, Select parameters, etc.),
so some parameters may need to be reset.
The parameter define number of minutes of inactivity before sleep. The
range is 1 to 30 minutes. 0x00 means no sleep.
.. _header-n1769:
Command
^^^^^^^
To set the idle sleep time to two minutes:
== ==== === ===== ========= === ===
H Type CMD PL Parameter CRC End
== ==== === ===== ========= === ===
BB 00 1D 00 01 02 20 7E
== ==== === ===== ========= === ===
.. _header-n1788:
Successful Response
^^^^^^^^^^^^^^^^^^^
== ==== === ===== ========= === ===
H Type CMD PL Parameter CRC End
== ==== === ===== ========= === ===
BB 01 1D 00 01 02 21 7E
== ==== === ===== ========= === ===
.. _header-n1806:
0x04 Module Idle mode
~~~~~~~~~~~~~~~~~~~~~
This command allows the module to enter IDLE working mode. In IDLE mode,
except for the digital part and communication interface, all other
analog and RF parts of the power supply are turned off to reduce power
consumption when not working. After the module enters the IDLE mode, it
can still communicate with the module normally, the set parameters are
still saved, and the module can normally respond to the instructions of
the Host Computer. After entering IDLE mode, the first inventory (or
instructions that require interaction with tags such as reading or
writing tag data) will restore the module to its normal state, but the
first inventory may be successful due to the unstable power state of the
RF part The rate drops, and subsequent inventory and other operations
can return to normal.
First parameter: 0x00: Exit Idle Mode, 0x01: Enter Idle Mode
Second Parameter: Reserved as 0x01
Idle Mode Time: Number of minutes before entering Idle mode. The value
ranges from 0x00 to 0x1E (30 Minutes). 0x00 means never enter Idle mode.
.. _header-n1811:
Command
^^^^^^^
To set the idle mode time to three minutes:
== ==== === ===== ===== ======== ========= === ===
H Type CMD PL Enter Reserved Idle Time CRC End
== ==== === ===== ===== ======== ========= === ===
BB 00 04 00 03 01 01 03 20 7E
== ==== === ===== ===== ======== ========= === ===
.. _header-n1834:
Successful Response
^^^^^^^^^^^^^^^^^^^
== ==== === ===== ========= === ===
H Type CMD PL Parameter CRC End
== ==== === ===== ========= === ===
BB 01 04 00 01 00 06 7E
== ==== === ===== ========= === ===
Inventory Commands
------------------
0x22 Single Inventory
~~~~~~~~~~~~~~~~~~~~~
Complete an inventory operation in the EPC Class1 Gen2 protocol. The
instruction does not include the Select operation. The power amplifier
will be turned on and off automatically before and after each inventory
command is executed. In the single inventory command, the Query
operation parameter is configured by another command, and the initial
value is already in the firmware.
.. _header-n100:
Command
^^^^^^^
== ==== === ===== === ===
H Type CMD PL CRC End
== ==== === ===== === ===
BB 00 22 00 00 22 7E
== ==== === ===== === ===
.. _header-n116:
Notification
^^^^^^^^^^^^
After the Interrogator receives a single inventory command, if it can
read the tag with the correct CRC check, the Interrogator will return
the data including RSSI, PC, EPC and CRC.
The Interrogator will return one notification frame for each of the
successfully read Tag.
+----+------+-----+-------+------+-------+-------------------------------------+-------+-----+-----+
| H | Type | CMD | PL | RSSI | PC | EPC | CRC | CRC | End |
+====+======+=====+=======+======+=======+=====================================+=======+=====+=====+
| BB | 02 | 22 | 00 11 | C9 | 34 00 | 30 75 1F EB 70 5C 59 04 E3 D5 0D 70 | 3A 76 | EF | 7E |
+----+------+-----+-------+------+-------+-------------------------------------+-------+-----+-----+
The RSSI value reflects the size of the signal at the input of the chip,
excluding antenna gain and directional coupler attenuation. RSSI is the
signal strength at the input end of the chip, signed in hexadecimal, and
the unit is dBm. In the above example, the RSSI is 0xC9, which means the
signal strength at the input of the chip is -55dBm.input end of the
chipinput end of the chip
.. _header-n143:
0x15 Error Response
^^^^^^^^^^^^^^^^^^^
If no tag is detected or the data CRC error is detected, the parameter
value will be error code 0x15:
== ==== === ===== ========= === ===
H Type CMD PL Parameter CRC End
== ==== === ===== ========= === ===
BB 01 FF 00 01 15 16 7E
== ==== === ===== ========= === ===
.. _header-n162:
0x27 Multiple Inventory
~~~~~~~~~~~~~~~~~~~~~~~
.. _header-n163:
Command
^^^^^^^
Inventory multiple times, and the number of polling times is limited to
0-65535. If the number of polling is 10000 times, the command is as
follows:
== ==== === ===== ======== ===== === ===
H Type CMD PL Reserved CNT CRC End
== ==== === ===== ======== ===== === ===
BB 00 27 00 03 22 27 10 83 7E
== ==== === ===== ======== ===== === ===
0x2710 = 10,000.
.. _header-n185:
Notification
^^^^^^^^^^^^
The multiple inventory response frame is the same as the single
inventory response frame:
+----+------+-----+-------+------+-------+-------------------------------------+-------+-----+-----+
| H | Type | CMD | PL | RSSI | PC | EPC | CRC | CRC | End |
+====+======+=====+=======+======+=======+=====================================+=======+=====+=====+
| BB | 02 | 22 | 00 11 | C9 | 34 00 | 30 75 1F EB 70 5C 59 04 E3 D5 0D 70 | 3A 76 | EF | 7E |
+----+------+-----+-------+------+-------+-------------------------------------+-------+-----+-----+
.. _header-n210:
0x15 Error Response
^^^^^^^^^^^^^^^^^^^
If no tag is detected or the data CRC error is detected, the parameter
value will be error code 0x15:
== ==== === ===== ========= === ===
H Type CMD PL Parameter CRC End
== ==== === ===== ========= === ===
BB 01 FF 00 01 15 16 7E
== ==== === ===== ========= === ===
.. _header-n229:
0x28 Stop multiple inventory
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This instruction stops the multiple inventory in process.
Command
^^^^^^^
== ==== === ===== === ===
H Type CMD PL CRC End
== ==== === ===== === ===
BB 00 28 00 00 28 7E
== ==== === ===== === ===
Success Response Frame
^^^^^^^^^^^^^^^^^^^^^^
== ==== === ===== ========= === ===
H Type CMD PL Parameter CRC End
== ==== === ===== ========= === ===
BB 01 28 00 01 00 2A 7E
== ==== === ===== ========= === ===
.. _header-n265:
Select Commands
---------------
The parameters of this select commands are explained in 6.3.2.12.1
Select commands.
.. _header-n3378:
0x0C Set Select
~~~~~~~~~~~~~~~
.. _header-n266:
**Command:**
^^^^^^^^^^^^
Set the Select parameter and set the Select mode to 0x02 at the same
time (Send the Select command before inventory the label). In the case
of multiple tags, you can only inventory, read and write operations for
specific tags based on the Select parameter. E.g:
+----+------+-----+-------+----------+---------+---------+----------+-------+-----+-----+
| H | Type | CMD | PL | SelParam | Pointer | MaskLen | Truncate | Mask | CRC | End |
+====+======+=====+=======+==========+=========+=========+==========+=======+=====+=====+
| BB | 00 | 0C | 00 13 | 01 | 00 00 | 60 | 00 | 30 75 | AD | 7E |
| | | | | | 00 20 | | | 1F EB | | |
| | | | | | | | | 70 5C | | |
| | | | | | | | | 59 04 | | |
| | | | | | | | | E3 D5 | | |
| | | | | | | | | 0D 70 | | |
+----+------+-----+-------+----------+---------+---------+----------+-------+-----+-----+
| **SelParam:** 0x01 (Target: 0b000, Action: 0b000, MemBank: 0b01)
| SelParam has a total of 1 Byte, of which Target occupies the highest 3
bits, Action occupies the middle 3 bits, and MemBank occupies the last
2 bits.
- | **Target**
| Refer to EPC Gen2 Protocol
- | **Action**
| Refer to EPC Gen2 Protocol
- | **Membank**
| The meaning of MemBank is as follows:
- 0b00: Reserved Memory Bank
- 0b01: EPC Memory Bank
- 0b10: TID Memory Bank
- 0b11: User Memory Bank
**Pointer**: 0x00000020 (in bits, not words) Starting from the EPC
Memory Bank
**MaskLen**: 0x60 (6 words, 96 bits) )
**Whether Truncate**: 0x00 (0x00 is Disable truncation, 0x80 is Enable
truncation)
When the Select Mask length is greater than 80 bits (5 words), sending
the Select command will first set all tags in the field to Inventoried
Flag as A and SL Flag as ~SL, and then operate according to the selected
Action. When the Select Mask length is less than 80 bits (5 words), the
label status will not be set to Inventoried Flag A and SL Flag ~SL
through the Select command in advance.
**Mask**: 0x30751FEB705C5904E3D50D70
**Success Response:**
== ==== === ===== ==== === ===
H Type CMD PL Data CRC End
== ==== === ===== ==== === ===
BB 01 0C 00 01 00 0E 7E
== ==== === ===== ==== === ===
.. _header-n332:
0x0B Get Select
~~~~~~~~~~~~~~~
.. _header-n333:
**Command:**
^^^^^^^^^^^^
== ==== === ===== === ===
H Type CMD PL CRC End
== ==== === ===== === ===
BB 00 0B 00 00 0B 7E
== ==== === ===== === ===
.. _header-n349:
**Response:**
^^^^^^^^^^^^^
+----+------+-----+-------+--------+--------+--------+--------+--------+-----+-----+
| H | Type | CMD | PL | Se | P | M | Tr | Mask | CRC | End |
| | | | | lParam | ointer | askLen | uncate | | | |
+====+======+=====+=======+========+========+========+========+========+=====+=====+
| BB | 01 | 0B | 00 13 | 01 | 00 00 | 60 | 00 | 30 75 | AD | 7E |
| | | | | | 00 20 | | | 1F EB | | |
| | | | | | | | | 70 5C | | |
| | | | | | | | | 59 04 | | |
| | | | | | | | | E3 D5 | | |
| | | | | | | | | 0D 70 | | |
+----+------+-----+-------+--------+--------+--------+--------+--------+-----+-----+
**SelParam**: 0x01 (Target: 3'b000, Action: 3'b000, MemBank: 2'b01)
Pointer: 0x00000020 (in bits, not words) Starting from the EPC Memory
Bank
**MaskLen**: 0x60 (6 words, 96 bits) )
**Whether** Truncate: 0x00 (0x00 is Disable truncation, 0x80 is Enable
truncation)
.. _header-n379:
0x12 Set Select mode
~~~~~~~~~~~~~~~~~~~~
.. _header-n380:
**Command:**
^^^^^^^^^^^^
If the Select parameter has been set, execute this command to set the
Select mode. For example, if you want to cancel the Select command:
== ==== === ===== ==== === ===
H Type CMD PL Mode CRC End
== ==== === ===== ==== === ===
BB 00 12 00 01 01 14 7E
== ==== === ===== ==== === ===
| Select Mode Mode:
| 0x00: Send the Select command in advance to select a specific label
before all operations on the label.
| 0x01: Do not send the Select command before operating on the label.
| 0x02: Only send the Select command before the tag operation except
Inventory, such as
| Before Read, Write, Lock, Kill, select a specific label through
Select.
.. _header-n400:
**Success Response:**
^^^^^^^^^^^^^^^^^^^^^
== ==== === ===== ==== === ===
H Type CMD PL Data CRC End
== ==== === ===== ==== === ===
BB 01 0C 00 01 00 0E 7E
== ==== === ===== ==== === ===
RFID Tag Commands
-----------------
0x39 Read Tag memory
~~~~~~~~~~~~~~~~~~~~
Read the data of the specified address and length in the memory Bank of
a tag. This instruction takes four parameters:
- Access Password
- MemBank
- WordPtr
- WordCount
Before this instruction, the Select parameter should be set to select
the specified tag to read the tag data area. If the Access Password is
all zeros, no Access command is sent.
.. _header-n431:
Command
^^^^^^^
This command reads from 2 words (4 bytes) starting from address 0x00 of
User Memory Bank using 0x0000FFFF as Access Password.
== ==== === ===== =============== ======= ======= ========= === ===
H Type CMD PL Access Password MemBank WordPtr WordCount CRC End
== ==== === ===== =============== ======= ======= ========= === ===
BB 00 39 00 09 00 00 FF FF 03 00 00 00 02 45 7E
== ==== === ===== =============== ======= ======= ========= === ===
.. _header-n456:
Successful Response
^^^^^^^^^^^^^^^^^^^
+----+------+-----+-------+---------+-------+---------+---------+-----+-----+
| H | Type | CMD | PL | PC + | PC | EPC | Read | CRC | End |
| | | | | EPC | | | Data | | |
| | | | | Length | | | | | |
+====+======+=====+=======+=========+=======+=========+=========+=====+=====+
| BB | 01 | 39 | 00 13 | 0E | 34 00 | 30 75 | 12 34 | B0 | 7E |
| | | | | | | 1F EB | 56 78 | | |
| | | | | | | 70 5C | | | |
| | | | | | | 59 04 | | | |
| | | | | | | E3 D5 | | | |
| | | | | | | 0D 70 | | | |
+----+------+-----+-------+---------+-------+---------+---------+-----+-----+
.. _header-n480:
0x09 Read Fail Response
^^^^^^^^^^^^^^^^^^^^^^^
== ==== === ===== ========== === ===
H Type CMD PL Error Code CRC End
== ==== === ===== ========== === ===
BB 01 FF 00 01 09 0A 7E
== ==== === ===== ========== === ===
0x09 error code means the tag is not in range, or there is an error of
the EPC code.
.. _header-n499:
0x16 Wrong Access Password Error
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+----+------+-----+-------+---------+---------+-------+---------+-----+-----+
| H | Type | CMD | PL | Error | PC + | PC | EPC | CRC | End |
| | | | | Code | EPC | | | | |
| | | | | | Length | | | | |
+====+======+=====+=======+=========+=========+=======+=========+=====+=====+
| BB | 01 | FF | 00 10 | 16 | 0E | 34 00 | 30 75 | 75 | 7E |
| | | | | | | | 1F EB | | |
| | | | | | | | 70 5C | | |
| | | | | | | | 59 04 | | |
| | | | | | | | E3 D5 | | |
| | | | | | | | 0D 70 | | |
+----+------+-----+-------+---------+---------+-------+---------+-----+-----+
.. _header-n524:
0xA3 EPC Gen2 Error Response:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+----+------+-----+-------+---------+---------+-------+---------+-----+-----+
| H | Type | CMD | PL | Error | PC + | PC | EPC | CRC | End |
| | | | | Code | EPC | | | | |
| | | | | | Length | | | | |
+====+======+=====+=======+=========+=========+=======+=========+=====+=====+
| BB | 01 | FF | 00 10 | A3 | 0E | 34 00 | 30 75 | 02 | 7E |
| | | | | | | | 1F EB | | |
| | | | | | | | 70 5C | | |
| | | | | | | | 59 04 | | |
| | | | | | | | E3 D5 | | |
| | | | | | | | 0D 70 | | |
+----+------+-----+-------+---------+---------+-------+---------+-----+-----+
Error Code 0xA3 means that this is an EPC Gen2 error code 0x03: Memory
Overrun.
.. _header-n551:
0x49 Write Tag memory
~~~~~~~~~~~~~~~~~~~~~
Before this instruction, the Select parameter should be set first to
select the specific tag to write to. If the Access Password is all
zeros, no Access command is sent.
The WordCount should not exceed 32 words (64 Bytes = 512 bits).
Command
^^^^^^^
+----+------+-----+-------+-----------------+---------+---------+-----------+-------------+-----+-----+
| H | Type | CMD | PL | Access Password | MemBank | WordPtr | WordCount | Data | CRC | End |
+====+======+=====+=======+=================+=========+=========+===========+=============+=====+=====+
| BB | 00 | 49 | 00 0D | 00 00 FF FF | 03 | 00 00 | 00 02 | 12 34 56 78 | 6D | 7E |
+----+------+-----+-------+-----------------+---------+---------+-----------+-------------+-----+-----+
Successful Response
^^^^^^^^^^^^^^^^^^^
+----+------+-----+-------+---------+-------+---------+---------+-----+-----+
| H | Type | CMD | PL | PC + | PC | EPC | Pa | CRC | End |
| | | | | EPC | | | rameter | | |
| | | | | Length | | | | | |
+====+======+=====+=======+=========+=======+=========+=========+=====+=====+
| BB | 01 | 49 | 00 10 | 0E | 34 00 | 30 75 | 00 | A9 | 7E |
| | | | | | | 1F EB | | | |
| | | | | | | 70 5C | | | |
| | | | | | | 59 04 | | | |
| | | | | | | E3 D5 | | | |
| | | | | | | 0D 70 | | | |
+----+------+-----+-------+---------+-------+---------+---------+-----+-----+
Parameter 0x00 means that the instruction is executed successfully.
.. _header-n605:
0x10 Error Response
^^^^^^^^^^^^^^^^^^^
== ==== === ===== ===== === ===
H Type CMD PL Error CRC End
== ==== === ===== ===== === ===
BB 01 FF 00 01 10 0A 7E
== ==== === ===== ===== === ===
0x10 error code means the tag is not in range, or there is an error of
the EPC code.
.. _header-n625:
0x16 Wrong Access Password Error
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+----+------+-----+-------+-------+---------+-------+---------+-----+-----+
| H | Type | CMD | PL | Error | PC + | PC | EPC | CRC | End |
| | | | | | EPC | | | | |
| | | | | | Length | | | | |
+====+======+=====+=======+=======+=========+=======+=========+=====+=====+
| BB | 01 | FF | 00 10 | 16 | 0E | 34 00 | 30 75 | 75 | 7E |
| | | | | | | | 1F EB | | |
| | | | | | | | 70 5C | | |
| | | | | | | | 59 04 | | |
| | | | | | | | E3 D5 | | |
| | | | | | | | 0D 70 | | |
+----+------+-----+-------+-------+---------+-------+---------+-----+-----+
.. _header-n650:
0xB3 EPC Gen2 Error Response
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+----+------+-----+-------+-------+---------+-------+---------+-----+-----+
| H | Type | CMD | PL | Error | PC + | PC | EPC | CRC | End |
| | | | | | EPC | | | | |
| | | | | | Length | | | | |
+====+======+=====+=======+=======+=========+=======+=========+=====+=====+
| BB | 01 | FF | 00 10 | B3 | 0E | 34 00 | 30 75 | 12 | 7E |
| | | | | | | | 1F EB | | |
| | | | | | | | 70 5C | | |
| | | | | | | | 59 04 | | |
| | | | | | | | E3 D5 | | |
| | | | | | | | 0D 70 | | |
+----+------+-----+-------+-------+---------+-------+---------+-----+-----+
Error code 0xB3 means that this is an EPC Gen2 error code 0x03: Memory
Overrun.
.. _header-n677:
0x82 Lock Tag Memory
~~~~~~~~~~~~~~~~~~~~
Change lock status of a memory bank of the specified tag. Before this
instruction, the Select parameter should be set to target the specified
tag.
.. _header-n679:
Command
^^^^^^^
== ==== === ===== =============== ======== === ===
H Type CMD PL Access Password LD CRC End
== ==== === ===== =============== ======== === ===
BB 00 82 00 07 00 00 FF FF 02 00 80 09 7E
== ==== === ===== =============== ======== === ===
In this command, the LD is 0x020008.
0x020080 = 0b0000 0b0010 0b0000 0b0000 0b1000 0b0000
The upper 4 bits of the LD is reserved to 0b0000 because the EPC Gen2
Lock-Command Payload only requires 20 bits of data. (Refer to section
6.3.2.11.3.5 of EPC Gen2 Protocol v2.0.1)
Only actions whose mask bits are 1 are going to be executed.
In this 0x020080 example, the mask bits of Access Password is 01 and the
action of Access Password is 01. Thus, the access password will be
permanently readable and writable.
.. _header-n707:
Successful Response
^^^^^^^^^^^^^^^^^^^
+----+------+-----+-------+---------+-------+---------+---------+-----+-----+
| H | Type | CMD | PL | PC + | PC | EPC | Pa | CRC | End |
| | | | | EPC | | | rameter | | |
| | | | | Length | | | | | |
+====+======+=====+=======+=========+=======+=========+=========+=====+=====+
| BB | 01 | 82 | 00 10 | 0E | 34 00 | 30 75 | 00 | E2 | 7E |
| | | | | | | 1F EB | | | |
| | | | | | | 70 5C | | | |
| | | | | | | 59 04 | | | |
| | | | | | | E3 D5 | | | |
| | | | | | | 0D 70 | | | |
+----+------+-----+-------+---------+-------+---------+---------+-----+-----+
.. _header-n731:
0x13 Error Response
^^^^^^^^^^^^^^^^^^^
== ==== === ===== ========= === ===
H Type CMD PL Parameter CRC End
== ==== === ===== ========= === ===
BB 01 FF 00 01 13 14 7E
== ==== === ===== ========= === ===
0x13 error code means the tag is not in range, or there is an error of
the EPC code.
.. _header-n750:
0x16 Wrong Access Password Error
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+----+------+-----+-------+---------+---------+-------+---------+-----+-----+
| H | Type | CMD | PL | Error | PC + | PC | EPC | CRC | End |
| | | | | Code | EPC | | | | |
| | | | | | Length | | | | |
+====+======+=====+=======+=========+=========+=======+=========+=====+=====+
| BB | 01 | FF | 00 10 | 16 | 0E | 34 00 | 30 75 | 75 | 7E |
| | | | | | | | 1F EB | | |
| | | | | | | | 70 5C | | |
| | | | | | | | 59 04 | | |
| | | | | | | | E3 D5 | | |
| | | | | | | | 0D 70 | | |
+----+------+-----+-------+---------+---------+-------+---------+-----+-----+
.. _header-n775:
0xC4 EPC Gen2 Error Response
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+----+------+-----+-------+---------+---------+-------+---------+-----+-----+
| H | Type | CMD | PL | Error | PC + | PC | EPC | CRC | End |
| | | | | Code | EPC | | | | |
| | | | | | Length | | | | |
+====+======+=====+=======+=========+=========+=======+=========+=====+=====+
| BB | 01 | FF | 00 10 | C4 | 0E | 34 00 | 30 75 | 23 | 7E |
| | | | | | | | 1F EB | | |
| | | | | | | | 70 5C | | |
| | | | | | | | 59 04 | | |
| | | | | | | | E3 D5 | | |
| | | | | | | | 0D 70 | | |
+----+------+-----+-------+---------+---------+-------+---------+-----+-----+
Error Code 0xC4 means that this is an EPC Gen2 error code 0x04: Memory
Locked.
.. _header-n802:
0x65 Kill Tag
~~~~~~~~~~~~~
Before this instruction, the Select parameter should be set first to
select the specific tag to kill.
.. _header-n804:
Command
^^^^^^^
== ==== === ===== ============= === ===
H Type CMD PL Kill Password CRC End
== ==== === ===== ============= === ===
BB 00 65 00 04 00 00 FF FF 67 7E
== ==== === ===== ============= === ===
.. _header-n822:
Successful Response
^^^^^^^^^^^^^^^^^^^
+----+------+-----+-------+---------+-------+---------+---------+-----+-----+
| H | Type | CMD | PL | PC + | PC | EPC | Pa | CRC | End |
| | | | | EPC | | | rameter | | |
| | | | | Length | | | | | |
+====+======+=====+=======+=========+=======+=========+=========+=====+=====+
| BB | 01 | 65 | 00 10 | 0E | 34 00 | 30 75 | 00 | C5 | 7E |
| | | | | | | 1F EB | | | |
| | | | | | | 70 5C | | | |
| | | | | | | 59 04 | | | |
| | | | | | | E3 D5 | | | |
| | | | | | | 0D 70 | | | |
+----+------+-----+-------+---------+-------+---------+---------+-----+-----+
.. _header-n846:
0x12 Error Response
^^^^^^^^^^^^^^^^^^^
== ==== === ===== ========= === ===
H Type CMD PL Parameter CRC End
== ==== === ===== ========= === ===
BB 01 FF 00 01 12 13 7E
== ==== === ===== ========= === ===
0x12 error code means the tag is not in range, or there is an error of
the EPC code.
.. _header-n865:
0xD0 EPC Gen2 Error Response
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+----+------+-----+-------+---------+---------+-------+---------+-----+-----+
| H | Type | CMD | PL | Error | PC + | PC | EPC | CRC | End |
| | | | | Code | EPC | | | | |
| | | | | | Length | | | | |
+====+======+=====+=======+=========+=========+=======+=========+=====+=====+
| BB | 01 | FF | 00 10 | D0 | 0E | 34 00 | 30 75 | 2F | 7E |
| | | | | | | | 1F EB | | |
| | | | | | | | 70 5C | | |
| | | | | | | | 59 04 | | |
| | | | | | | | E3 D5 | | |
| | | | | | | | 0D 70 | | |
+----+------+-----+-------+---------+---------+-------+---------+-----+-----+
Error Code 0xD0 means that this is an EPC Gen2 error code 0x00: Other
error. This may be because the kill password of the tag hasn't been set.
0xD3 BlockPermalock / 0xD4 Read Permalock Status
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This instruction can permanently lock certain blocks in the user area,
or read the lock status of the block. Before this instruction, the
Select parameter should be set to the targeted tag.
According to section 6.3.2.12.3.9 of EPCglobal Gen2 Specification
v2.0.1:
A BlockPermalock may permalock between zero and 4080 memory blocks.
The block size, which is predefined by the Tag manufacturer, is fixed
at between one and 1024 words, is the same for all files, and is the
same for block permalocking and file allocation. The memory blocks
specified by a BlockPermalock need not be contiguous.
..
A Tag shall only execute a BlockPermalock in the secured state.
A BlockPermalock differs from a Lock in that BlockPermalock
permanently locks individual blocks of File\ *N, N>0 of User memory
in an unwriteable state whereas Lock reversibly or permanently locks
the kill and/or access password, the EPC memory bank, the TID memory
bank, and/or File*\ 0 of User memory in a writeable or un-writeable
state. Table 6.55 specifies how a Tag shall behave upon receiving a
BlockPermalock targeting File_0 that follows a prior Lock, or vice
versa (assuming Read/Lock=1).
+-----------------+------------+-------------------------------------+
| Parameter | Length | Explanation |
+=================+============+=====================================+
| Access Password | 4 Bytes | Access password of the tag |
+-----------------+------------+-------------------------------------+
| Read / Lock | 1 Byte | 0x00: Read
0x01: Write |
+-----------------+------------+-------------------------------------+
| MemBank | 1 Byte | Should be 0x03 (User memory) |
+-----------------+------------+-------------------------------------+
| BlockPtr | 2 Byte | BlockPtr specifies the starting |
| | | address for Mask, in units of 16 |
| | | blocks |
+-----------------+------------+-------------------------------------+
| BlockRange | 1 Byte | BlockRange specifies the range of |
| | | Mask, starting at BlockPtr and |
| | | ending (16×BlockRange)–1 blocks |
| | | later. |
+-----------------+------------+-------------------------------------+
| Mask | 0 / 2 Byte | If the instruction is to read (0x00 |
| | | for Read/Lock Parameter), this |
| | | parameter is omitted |
+-----------------+------------+-------------------------------------+
Command
^^^^^^^
To permanently lock the blocks 5, 6, 7:
+----+------+-----+-------+--------+--------+--------+--------+--------+-------+-----+-----+
| H | Type | CMD | PL | Access | Read / | M | Bl | Bloc | Mask | CRC | End |
| | | | | Pa | Lock | emBank | ockPtr | kRange | | | |
| | | | | ssword | | | | | | | |
+====+======+=====+=======+========+========+========+========+========+=======+=====+=====+
| BB | 00 | D3 | 00 0B | 00 00 | 01 | 03 | 00 00 | 01 | 07 00 | E8 | 7E |
| | | | | FF FF | | | | | | | |
+----+------+-----+-------+--------+--------+--------+--------+--------+-------+-----+-----+
0xD3 Read Successful Response
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+----+------+-----+-------+--------+-------+--------+--------+--------+-----+-----+
| H | Type | CMD | PL | PC + | PC | EPC | Bloc | Block | CRC | End |
| | | | | EPC | | | kRange | Per | | |
| | | | | Length | | | | malock | | |
+====+======+=====+=======+========+=======+========+========+========+=====+=====+
| BB | 01 | D3 | 00 12 | 0E | 30 00 | E2 00 | 01 | 07 00 | CD | 7E |
| | | | | | | 30 16 | | | | |
| | | | | | | 66 06 | | | | |
| | | | | | | 00 69 | | | | |
| | | | | | | 11 60 | | | | |
| | | | | | | 9F 94 | | | | |
+----+------+-----+-------+--------+-------+--------+--------+--------+-----+-----+
0xD4 Write Successful Response
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+----+------+-----+-------+---------+-------+---------+---------+-----+-----+
| H | Type | CMD | PL | PC + | PC | EPC | Pa | CRC | End |
| | | | | EPC | | | rameter | | |
| | | | | Length | | | | | |
+====+======+=====+=======+=========+=======+=========+=========+=====+=====+
| BB | 01 | D4 | 00 10 | 0E | 30 00 | E2 00 | 00 | C4 | 7E |
| | | | | | | 30 16 | | | |
| | | | | | | 66 06 | | | |
| | | | | | | 00 69 | | | |
| | | | | | | 11 60 | | | |
| | | | | | | 9F 94 | | | |
+----+------+-----+-------+---------+-------+---------+---------+-----+-----+
0x14 Tag Not Found Error
^^^^^^^^^^^^^^^^^^^^^^^^
== ==== === ===== ========= === ===
H Type CMD PL Parameter CRC End
== ==== === ===== ========= === ===
BB 01 FF 00 01 14 15 7E
== ==== === ===== ========= === ===
0xE3 EPC Gen2 Error Response
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+----+------+-----+-------+-------+---------+-------+---------+-----+-----+
| H | Type | CMD | PL | Error | PC + | PC | EPC | CRC | End |
| | | | | | EPC | | | | |
| | | | | | Length | | | | |
+====+======+=====+=======+=======+=========+=======+=========+=====+=====+
| BB | 01 | FF | 00 10 | E3 | 0E | 30 00 | E2 00 | D2 | 7E |
| | | | | | | | 30 16 | | |
| | | | | | | | 66 06 | | |
| | | | | | | | 00 69 | | |
| | | | | | | | 11 60 | | |
| | | | | | | | 9F 94 | | |
+----+------+-----+-------+-------+---------+-------+---------+-----+-----+
Error Code 0xE3 means that this is an EPC Gen2 error code 0x03: Memory
Overrun.
0x16 Wrong Access Password Error
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+----+------+-----+-------+---------+---------+-------+---------+-----+-----+
| H | Type | CMD | PL | Error | PC + | PC | EPC | CRC | End |
| | | | | Code | EPC | | | | |
| | | | | | Length | | | | |
+====+======+=====+=======+=========+=========+=======+=========+=====+=====+
| BB | 01 | FF | 00 10 | 16 | 0E | 30 00 | E2 00 | 05 | 7E |
| | | | | | | | 30 16 | | |
| | | | | | | | 66 06 | | |
| | | | | | | | 00 69 | | |
| | | | | | | | 11 60 | | |
| | | | | | | | 9F 94 | | |
+----+------+-----+-------+---------+---------+-------+---------+-----+-----+
Query Commands
--------------
Query command is documented on section 6.3.2.12.2 of EPC Gen2 Protocol
v2.0.1.
The parameters for communication between the Host Computer and the
Interrogator is documented in the table below with the data represented
in binary:
============== ============ =====================================
Description Length (bit) Description
============== ============ =====================================
DR 1 0 = 8
M 2 00 = 1, 01 = 2, 10 = 4, 11 = 8
TRext 1 0 = No pilot tone, 1 = Use pilot tone
Sel 2 00 = All, 01 = All, 10 = ~SL, 11 = SL
Session 2 00 = S0, 01 = S1, 10 = S2, 11 = S3
Target 1 0 = A, 1 = B
Q (slot-count) 4 Decimal 0-15 according to the value
Padding 3 000
============== ============ =====================================
.. _header-n955:
0x0D Get Query parameters
~~~~~~~~~~~~~~~~~~~~~~~~~
.. _header-n956:
Command
^^^^^^^
== ==== === ===== === ===
H Type CMD PL CRC End
== ==== === ===== === ===
BB 00 0D 00 00 0D 7E
== ==== === ===== === ===
.. _header-n972:
Successful Response
^^^^^^^^^^^^^^^^^^^
== ==== === ===== ========= === ===
H Type CMD PL Parameter CRC End
== ==== === ===== ========= === ===
BB 01 0D 00 02 10 20 40 7E
== ==== === ===== ========= === ===
The parameter is 2 bytes, and the following specific parameters are
spliced bit by bit. The response parameter corresponding to the above
response frame is 0x1020 = 0b0001000000100000
Refer to section 6.3.2.12.2.1 EPC Gen2 Protocol v2.0.1
In the table below, the data are reresented in binary.
============== ============ ==== ==================
Description Length (bit) Data Description
============== ============ ==== ==================
DR 1 0 0 = 8
M 2 00 00 = 1
TRext 1 1 1 = Use pilot tone
Sel 2 00 00 = All
Session 2 00 00 = S0
Target 1 0 0 = A
Q (slot-count) 4 0100 4
Padding 3 000
============== ============ ==== ==================
DR=8, M=1, TRext=Use pilot tone, Sel=All, Session=S0, Target=A, Q=4
.. _header-n1040:
0x0E Set Query parameters
~~~~~~~~~~~~~~~~~~~~~~~~~
.. _header-n1041:
Command
^^^^^^^
== ==== === ===== ========= === ===
H Type CMD PL Parameter CRC End
== ==== === ===== ========= === ===
BB 00 0E 00 02 10 20 40 7E
== ==== === ===== ========= === ===
This command set the Query parameters to the same value as the previous
get Query parameters instruction example.
.. _header-n1060:
Successful Response
^^^^^^^^^^^^^^^^^^^
== ==== === ===== ========= === ===
H Type CMD PL Parameter CRC End
== ==== === ===== ========= === ===
BB 01 0E 00 01 00 10 7E
== ==== === ===== ========= === ===
.. _header-n1078:
Radio Frequency
---------------
Radio frequency of the Interrogator is determined by the region and the
frequency channel listed below.
+----------------+--------------+----------------+----------------+
| Frequency | Region Index | Frequency | CH_INDEX |
| Region | | Channel in MHz | |
+================+==============+================+================+
| 920++ MHz | 01 | (CH_Index \* | (Freq_CH - |
| Based | | 0.25 + | 920.125) / |
| | | 920.125) MHz | 0.25 |
+----------------+--------------+----------------+----------------+
| United States | 02 | (CH_Index \* | (Freq_CH - |
| | | 0.5 + 902.25) | 902.25) / 0.5 |
| | | MHz | |
+----------------+--------------+----------------+----------------+
| Europe | 03 | (CH_Index \* | (Freq_CH - |
| | | 0.2 + 865.1) | 865.1) / 0.2 |
| | | MHz | |
+----------------+--------------+----------------+----------------+
| 840++ MHz | 04 | (CH_Index \* | (Freq_CH - |
| Based | | 0.25 + | 840.125) / |
| | | 840.125) MHz | 0.25 |
+----------------+--------------+----------------+----------------+
| Korea | 06 | (CH_Index \* | (Freq_CH - |
| | | 0.2 + 917.1) | 917.1) / 0.2 |
| | | MHz | |
+----------------+--------------+----------------+----------------+
.. _header-n1111:
0x07 Set Frequency Region
~~~~~~~~~~~~~~~~~~~~~~~~~
To set the Frequency Region 920++ MHz Based, set the Region Index to
0x01.
.. _header-n1113:
Command
^^^^^^^
== ==== === ===== ============ === ===
H Type CMD PL Region Index CRC End
== ==== === ===== ============ === ===
BB 00 07 00 01 01 09 7E
== ==== === ===== ============ === ===
.. _header-n1131:
Successful Response
^^^^^^^^^^^^^^^^^^^
== ==== === ===== ========= === ===
H Type CMD PL Parameter CRC End
== ==== === ===== ========= === ===
BB 01 07 00 01 00 09 7E
== ==== === ===== ========= === ===
.. _header-n1149:
0x08 Get Frequency Region
~~~~~~~~~~~~~~~~~~~~~~~~~
.. _header-n1150:
Command
^^^^^^^
== ==== === ===== === ===
H Type CMD PL CRC End
== ==== === ===== === ===
BB 00 08 00 00 08 7E
== ==== === ===== === ===
.. _header-n1166:
Successful Response
^^^^^^^^^^^^^^^^^^^
== ==== === ===== ============ === ===
H Type CMD PL Region Index CRC End
== ==== === ===== ============ === ===
BB 01 08 00 01 01 09 7E
== ==== === ===== ============ === ===
The region index is 01, so the frequency region is 920++ MHz Based.
.. _header-n1185:
0xAB Set Frequency Channel
~~~~~~~~~~~~~~~~~~~~~~~~~~
If it is the 900++ MHz Based, to set the frequency channel of the reader
to 920.375 MHz, set the CH_Index to: (920.375 - 920.125) / 0.25 = 01.
.. _header-n1187:
Command
^^^^^^^
== ==== === ===== ======== === ===
H Type CMD PL CH_Index CRC End
== ==== === ===== ======== === ===
BB 00 AB 00 01 01 AD 7E
== ==== === ===== ======== === ===
.. _header-n1205:
Successful Response
^^^^^^^^^^^^^^^^^^^
== ==== === ===== ========= === ===
H Type CMD PL Parameter CRC End
== ==== === ===== ========= === ===
BB 01 AB 00 01 00 AD 7E
== ==== === ===== ========= === ===
.. _header-n1223:
0xAA Get Frequency Channel
~~~~~~~~~~~~~~~~~~~~~~~~~~
.. _header-n1224:
Command
^^^^^^^
== ==== === ===== === ===
H Type CMD PL CRC End
== ==== === ===== === ===
BB 00 AA 00 00 AA 7E
== ==== === ===== === ===
.. _header-n1240:
Successful Response
^^^^^^^^^^^^^^^^^^^
== ==== === ===== ======== === ===
H Type CMD PL CH_Index CRC End
== ==== === ===== ======== === ===
BB 01 AA 00 01 00 AC 7E
== ==== === ===== ======== === ===
If the frequency region is 920++ MHz based, the CH_Index 0x00 means the
frequency channel is: (0 \* 0.25 + 920.125) MHz = 920.125 MHz.
.. _header-n1259:
0xAD Set automatic frequency hopping
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In the automatic frequency hopping mode, if the user executes the
instruction to insert the working channel, the reader will randomly
select the channel frequency hopping from the channel list set by the
user, otherwise, the channel frequency hopping will be randomly selected
according to the internal preset channel list.
Possible parameter for the command is:
- 0x00: Disable automatic frequency hopping
- 0xFF: Enable automatic frequency hopping
.. _header-n1267:
Command
^^^^^^^
== ==== === ===== ========= === ===
H Type CMD PL Parameter CRC End
== ==== === ===== ========= === ===
BB 00 AD 00 01 FF AD 7E
== ==== === ===== ========= === ===
.. _header-n1285:
Successful Response
^^^^^^^^^^^^^^^^^^^
== ==== === ===== ========= === ===
H Type CMD PL Parameter CRC End
== ==== === ===== ========= === ===
BB 01 AD 00 01 00 AF 7E
== ==== === ===== ========= === ===
.. _header-n1303:
0xA9 Insert working channel
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Inserting the working channel allows the user to independently set the
frequency hopping channel list. After executing this command, the reader
will randomly select the channel hopping frequency from the channel list
set by the user. The command is defined as follows:
.. _header-n1305:
Command
^^^^^^^
== ==== === ===== ======== ============== === ===
H Type CMD PL CH Count CH List CRC End
== ==== === ===== ======== ============== === ===
BB 00 A9 00 06 05 01 02 03 04 05 C3 7E
== ==== === ===== ======== ============== === ===
.. _header-n1325:
Successful Response
^^^^^^^^^^^^^^^^^^^
== ==== === ===== ========= === ===
H Type CMD PL Parameter CRC End
== ==== === ===== ========= === ===
BB 01 A9 00 01 00 AB 7E
== ==== === ===== ========= === ===
.. _header-n1343:
0xB7 Get transmit power
~~~~~~~~~~~~~~~~~~~~~~~
.. _header-n1344:
Command
^^^^^^^
== ==== === ===== === ===
H Type CMD PL CRC End
== ==== === ===== === ===
BB 00 B7 00 00 B7 7E
== ==== === ===== === ===
.. _header-n1360:
Response
^^^^^^^^
== ==== === ===== ===== === ===
H Type CMD PL Power CRC End
== ==== === ===== ===== === ===
BB 01 B7 00 02 07 D0 91 7E
== ==== === ===== ===== === ===
Power: 0x07D0 = Decimal 2000 = 20 dBm
.. _header-n1379:
0xB6 Set Transmit Power
~~~~~~~~~~~~~~~~~~~~~~~
.. _header-n1380:
Command
^^^^^^^
== ==== === ===== ===== === ===
H Type CMD PL Power CRC End
== ==== === ===== ===== === ===
BB 00 B6 00 02 07 D0 8F 7E
== ==== === ===== ===== === ===
.. _header-n1398:
Successful Response
^^^^^^^^^^^^^^^^^^^
== ==== === ===== ========= === ===
H Type CMD PL Parameter CRC End
== ==== === ===== ========= === ===
BB 01 B6 00 01 00 B8 7E
== ==== === ===== ========= === ===
.. _header-n1416:
0xB0 Set to transmit continuous wave
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Parameter:
- 0x00: Disable Continuous Wave
- 0xFF: Enable Continuous Wave
.. _header-n1423:
Command
^^^^^^^
== ==== === ===== ========= === ===
H Type CMD PL Parameter CRC End
== ==== === ===== ========= === ===
BB 00 B0 00 01 FF B0 7E
== ==== === ===== ========= === ===
.. _header-n1441:
Successful Response
^^^^^^^^^^^^^^^^^^^
== ==== === ===== ========= === ===
H Type CMD PL Parameter CRC End
== ==== === ===== ========= === ===
BB 01 B0 00 01 00 B2 7E
== ==== === ===== ========= === ===
.. _header-n1459:
0xF1 Get receiver demodulator parameters
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Includes: Mixer gain, IF AMP gain and signal demodulation threshold.
.. _header-n1461:
Command
^^^^^^^
== ==== === ===== === ===
H Type CMD PL CRC End
== ==== === ===== === ===
BB 00 F1 00 00 F1 7E
== ==== === ===== === ===
.. _header-n1477:
Response
^^^^^^^^
== ==== === ===== ======= ==== ========= === ===
H Type CMD PL Mixer_G IF_G Threshold CRC End
== ==== === ===== ======= ==== ========= === ===
BB 01 F1 00 04 03 06 01 B0 B0 7E
== ==== === ===== ======= ==== ========= === ===
Mixer gain Mixer_G: 0x03 (Mixer gain is 9dB)
IF amplifier gain IF_G: 0x06 (IF AMP gain is 36dB)
Signal demodulation threshold Thrd: 0x01B0 (the smaller the signal
demodulation threshold, the lower the return RSSI of the demodulated
tag, but the more unstable it is. It cannot be demodulated at all if the
value is lower than a certain value; on the contrary, the larger the
threshold, the demodulated tag return signal RSSI The larger the
distance, the more stable. 0x01B0 is the recommended minimum)
.. _header-n1502:
0xF0 Set the receiver demodulator parameters
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
================ =====================
Mixer Gain Index Mixer Gain Value (dB)
================ =====================
0x00 0
0x01 3
0x02 6
0x03 9
0x04 12
0x05 15
0x06 16
================ =====================
================= ======================
IF AMP Gain Index IF AMP Gain Value (dB)
================= ======================
0x00 12
0x01 18
0x02 21
0x03 24
0x04 27
0x05 30
0x06 36
0x07 40
================= ======================
.. _header-n1556:
Command
^^^^^^^
== ==== === ===== ================ ================= ========= === ===
H Type CMD PL Mixer Gain Index IF AMP Gain Index Threshold CRC End
== ==== === ===== ================ ================= ========= === ===
BB 00 F0 00 04 03 06 01 B0 AE 7E
== ==== === ===== ================ ================= ========= === ===
.. _header-n1578:
Successful Response
^^^^^^^^^^^^^^^^^^^
== ==== === =========== === ===
H Type CMD PLParameter CRC End
== ==== === =========== === ===
BB 01 F0 00 01 F2 7E
== ==== === =========== === ===
.. _header-n1594:
0xF2 Test the blocking signal at the RF input
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Testing the blocking signal at the RF input Scan Jammer is used to
detect the magnitude of the blocking signal of each channel of the
reader antenna in the current area.
.. _header-n1596:
Command
^^^^^^^
== ==== === ===== === ===
H Type CMD PL CRC End
== ==== === ===== === ===
BB 00 F2 00 00 F2 7E
== ==== === ===== === ===
.. _header-n1612:
Response
^^^^^^^^
+----+------+-----+-------+------+------+-------------+-----+-----+
| H | Type | CMD | PL | CH_L | CH_H | JMR | CRC | End |
+====+======+=====+=======+======+======+=============+=====+=====+
| BB | 01 | F2 | 00 16 | 00 | 13 | F2 F1 F0 EF | EA | 7E |
| | | | | | | EC EA E8 EA | | |
| | | | | | | EC EE F0 F1 | | |
| | | | | | | F5 F5 F5 F6 | | |
| | | | | | | F5 F5 F5 F5 | | |
+----+------+-----+-------+------+------+-------------+-----+-----+
If there are a total of 20 channels in the 900MHz frequency band in
China, and the scanning of the radio frequency input blocking signal
Scan Jammer channel is executed correctly
Test start channel CH_L: 0x00 (Test start channel Index is 0)
Test end channel CH_H: 0x13 (Test end channel Index is 19)
| Channel blocking signal JMR:
0xF2F1F0EFECEAE8EAECEEF0F1F5F5F5F6F5F5F5F5 (blocking signal for each
channel
| JMR is represented by a signed Byte, where 0xF2 is -14dBm).
.. _header-n1638:
0xF3 Test channel RSSI
~~~~~~~~~~~~~~~~~~~~~~
.. _header-n1639:
Command
^^^^^^^
== ==== === ===== === ===
H Type CMD PL CRC End
== ==== === ===== === ===
BB 00 F3 00 00 F3 7E
== ==== === ===== === ===
.. _header-n1655:
Response
^^^^^^^^
+----+------+-----+-------+------+------+-------------+-----+-----+
| H | Type | CMD | PL | CH_L | CH_H | RSSI | CRC | End |
+====+======+=====+=======+======+======+=============+=====+=====+
| BB | 01 | F3 | 00 16 | 00 | 13 | BA BA BA BA | A5 | 7E |
| | | | | | | BA BA BA BA | | |
| | | | | | | BA BA BA BA | | |
| | | | | | | BA BA BA BA | | |
| | | | | | | BA BA BA BA | | |
+----+------+-----+-------+------+------+-------------+-----+-----+
If there are 20 channels in 900MHz Based Frequency, this is the returned
RSSI for each channel.
Each channel RSSI is represented by a signed Byte, where 0xBA is -70
dBm.
NXP Custom Commands
-------------------
0xE1 NXP ReadProtect/Reset ReadProtect Command
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NXP G2X tags support ReadProtect/Reset ReadProtect commands. When the
tag executes the ReadProtect command successfully, the ProtectEPC and
ProtectTID bits of the tag will be set to '1' and the tag will enter the
data protection state. If the label returns to the normal state from the
data protection state, the Reset ReadProtect command needs to be
executed. Before this instruction, the Select parameter should be set to
select the specified label for operation.
+-----------------+---------+----------------------------------------+
| Parameter | Length | Explanation |
+=================+=========+========================================+
| Access Password | 4 Bytes | Access Password of the RFID Tag |
+-----------------+---------+----------------------------------------+
| Set / Reset | 1 Byte | 0x00: Set Read Protect
0x01: |
| | | Reset Read Protect |
+-----------------+---------+----------------------------------------+
Command
^^^^^^^
To set read protect to the selected tag with 0x0000FFFF access password:
== ==== === ===== =============== =========== === ===
H Type CMD PL Access Password Set / Reset CRC End
== ==== === ===== =============== =========== === ===
BB 00 E1 00 05 00 00 FF FF 00 E4 7E
== ==== === ===== =============== =========== === ===
Successful Response
^^^^^^^^^^^^^^^^^^^
+----+------+-----+-------+---------+-------+---------+---------+-----+-----+
| H | Type | CMD | PL | PC + | PC | EPC | Pa | CRC | End |
| | | | | EPC | | | rameter | | |
| | | | | Length | | | | | |
+====+======+=====+=======+=========+=======+=========+=========+=====+=====+
| BB | 01 | E1 | 00 10 | 0E | 30 00 | 30 75 | 00 | 3D | 7E |
| | | | | | | 1F EB | | | |
| | | | | | | 70 5C | | | |
| | | | | | | 59 04 | | | |
| | | | | | | E3 D5 | | | |
| | | | | | | 0D 70 | | | |
+----+------+-----+-------+---------+-------+---------+---------+-----+-----+
Successful Reset Read Protect Response
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+----+------+-----+-------+---------+-------+---------+---------+-----+-----+
| H | Type | CMD | PL | PC + | PC | EPC | Pa | CRC | End |
| | | | | EPC | | | rameter | | |
| | | | | Length | | | | | |
+====+======+=====+=======+=========+=======+=========+=========+=====+=====+
| BB | 01 | E2 | 00 10 | 0E | 30 00 | 30 75 | 00 | 3E | 7E |
| | | | | | | 1F EB | | | |
| | | | | | | 70 5C | | | |
| | | | | | | 59 04 | | | |
| | | | | | | E3 D5 | | | |
| | | | | | | 0D 70 | | | |
+----+------+-----+-------+---------+-------+---------+---------+-----+-----+
0x2A Tag Not Found when Setting Read Protect
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
== ==== === ===== ========= === ===
H Type CMD PL Parameter CRC End
== ==== === ===== ========= === ===
BB 01 FF 00 01 2A 2B 7E
== ==== === ===== ========= === ===
0x2A error code means the tag is not in range, or there is an error of
the EPC code.
0x2B Tag not Detected when Resetting Read Protect
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
== ==== === ===== ========= === ===
H Type CMD PL Parameter CRC End
== ==== === ===== ========= === ===
BB 01 FF 00 01 2B 2C 7E
== ==== === ===== ========= === ===
0x16 Wrong Access Password Error
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+----+------+-----+-------+---------+---------+-------+---------+-----+-----+
| H | Type | CMD | PL | Error | PC + | PC | EPC | CRC | End |
| | | | | Code | EPC | | | | |
| | | | | | Length | | | | |
+====+======+=====+=======+=========+=========+=======+=========+=====+=====+
| BB | 01 | FF | 00 10 | 16 | 0E | 34 00 | 30 75 | 75 | 7E |
| | | | | | | | 1F EB | | |
| | | | | | | | 70 5C | | |
| | | | | | | | 59 04 | | |
| | | | | | | | E3 D5 | | |
| | | | | | | | 0D 70 | | |
+----+------+-----+-------+---------+---------+-------+---------+-----+-----+
0xE3 NXP Change EAS
~~~~~~~~~~~~~~~~~~~
NXP G2X tags support the Change EAS command. When the tag executes the
Change EAS command successfully, the PSF bit of the tag will change to
'1' or '0' accordingly. When the PSF position of the tag is '1', the tag
will respond to the EAS\ *Alarm instruction, otherwise the tag will not
respond to the EAS*\ Alarm instruction. Before this instruction, the
Select parameter should be set to select the specified label for
operation.
Command
^^^^^^^
To set PSF bit to 1 (Tag will response to EAS_Alarm):
== ==== === ===== =============== === === ===
H Type CMD PL Access Password PSF CRC End
== ==== === ===== =============== === === ===
BB 00 E3 00 05 00 00 FF FF 01 E7 7E
== ==== === ===== =============== === === ===
Successful Response
^^^^^^^^^^^^^^^^^^^
+----+------+-----+-------+---------+-------+---------+---------+-----+-----+
| H | Type | CMD | PL | PC + | PC | EPC | Pa | CRC | End |
| | | | | EPC | | | rameter | | |
| | | | | Length | | | | | |
+====+======+=====+=======+=========+=======+=========+=========+=====+=====+
| BB | 01 | E3 | 00 10 | 0E | 30 00 | 30 75 | 00 | 3F | 7E |
| | | | | | | 1F EB | | | |
| | | | | | | 70 5C | | | |
| | | | | | | 59 04 | | | |
| | | | | | | E3 D5 | | | |
| | | | | | | 0D 70 | | | |
+----+------+-----+-------+---------+-------+---------+---------+-----+-----+
0x1B Tag Not Found Error
^^^^^^^^^^^^^^^^^^^^^^^^
== ==== === ===== ========= === ===
H Type CMD PL Parameter CRC End
== ==== === ===== ========= === ===
BB 01 FF 00 01 1B 1C 7E
== ==== === ===== ========= === ===
0x16 Wrong Access Password Error
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+----+------+-----+-------+---------+---------+-------+---------+-----+-----+
| H | Type | CMD | PL | Error | PC + | PC | EPC | CRC | End |
| | | | | Code | EPC | | | | |
| | | | | | Length | | | | |
+====+======+=====+=======+=========+=========+=======+=========+=====+=====+
| BB | 01 | FF | 00 10 | 16 | 0E | 34 00 | 30 75 | 75 | 7E |
| | | | | | | | 1F EB | | |
| | | | | | | | 70 5C | | |
| | | | | | | | 59 04 | | |
| | | | | | | | E3 D5 | | |
| | | | | | | | 0D 70 | | |
+----+------+-----+-------+---------+---------+-------+---------+-----+-----+
0xE4 NXP EAS_Alarm
~~~~~~~~~~~~~~~~~~
Tags with PSF bit set to 1 will respond to this instruction by returning
64-bit EAS Alarm code.
Command
^^^^^^^
== ==== === ===== === ===
H Type CMD PL CRC End
== ==== === ===== === ===
BB 00 E4 00 00 E4 7E
== ==== === ===== === ===
Successful Response
^^^^^^^^^^^^^^^^^^^
== ==== === ===== ======================= === ===
H Type CMD PL EAS Alarm Code CRC End
== ==== === ===== ======================= === ===
BB 01 E4 00 08 69 0A EC 7C D2 15 D8 F9 80 7E
== ==== === ===== ======================= === ===
0x1D No Tag Responding
^^^^^^^^^^^^^^^^^^^^^^
== ==== === ===== ========= === ===
H Type CMD PL Parameter CRC End
== ==== === ===== ========= === ===
BB 01 FF 00 01 1D 1E 7E
== ==== === ===== ========= === ===
0xE0 NXP ChangeConfig
~~~~~~~~~~~~~~~~~~~~~
Some series of NXP G2X tags (such as G2iM and G2iM+) support the
ChangeConfig command, which can be used to read or modify the 16bits
Config-Word of NXP G2X tags. The Config-Word of the NXP G2X tag is
located at the address 20h (word address) of EPC Memory Bank and can be
read by a normal Read command. When the tag is in the Secured state
(safe state), the Config-Word of the tag can be rewritten. It should be
noted that rewriting Config-Word means flipping the corresponding data
bit of Config-Word, that is, writing the corresponding bit of '1'
flipping ('1 'Becomes '0', '0' becomes '1'), the corresponding bit
written in '0' remains unchanged. Before this instruction, the Select
parameter should be set to select the specified label for operation.
Config parameter: when 0x0000 means read.
Command
^^^^^^^
== ==== === ===== =============== ====== === ===
H Type CMD PL Access Password Config CRC End
== ==== === ===== =============== ====== === ===
BB 00 E0 00 06 00 00 FF FF 00 00 E4 7E
== ==== === ===== =============== ====== === ===
Successful Response
^^^^^^^^^^^^^^^^^^^
+----+------+-----+-------+---------+-------+---------+--------+-----+-----+
| H | Type | CMD | PL | PC + | PC | EPC | Config | CRC | End |
| | | | | EPC | | | | | |
| | | | | Length | | | | | |
+====+======+=====+=======+=========+=======+=========+========+=====+=====+
| BB | 01 | E0 | 00 11 | 0E | 30 00 | 30 75 | 00 41 | 7E | 7E |
| | | | | | | 1F EB | | | |
| | | | | | | 70 5C | | | |
| | | | | | | 59 04 | | | |
| | | | | | | E3 D5 | | | |
| | | | | | | 0D 70 | | | |
+----+------+-----+-------+---------+-------+---------+--------+-----+-----+
0x1A No Tag Responding
^^^^^^^^^^^^^^^^^^^^^^
== ==== === ===== ========= === ===
H Type CMD PL Parameter CRC End
== ==== === ===== ========= === ===
BB 01 FF 00 01 1A 1B 7E
== ==== === ===== ========= === ===
0x16 Wrong Access Password Error
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+----+------+-----+-------+---------+---------+-------+---------+-----+-----+
| H | Type | CMD | PL | Error | PC + | PC | EPC | CRC | End |
| | | | | Code | EPC | | | | |
| | | | | | Length | | | | |
+====+======+=====+=======+=========+=========+=======+=========+=====+=====+
| BB | 01 | FF | 00 10 | 16 | 0E | 34 00 | 30 75 | 75 | 7E |
| | | | | | | | 1F EB | | |
| | | | | | | | 70 5C | | |
| | | | | | | | 59 04 | | |
| | | | | | | | E3 D5 | | |
| | | | | | | | 0D 70 | | |
+----+------+-----+-------+---------+---------+-------+---------+-----+-----+
Impinj Monza Custom Commands
----------------------------
0xE5 Impinj Monza QT Command
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Impinj Monza 4 QT tags support the QT command, which can modify the QT
Control word of the tag. Setting the QT\ *SR bit can shorten the
operation distance of the tag in the Open and Secured states or when it
is about to enter the Open and Secured states. Modifying the QT*\ MEM
bit can switch the label to use Public Memory Map (Public Memory Map) or
Private Memory Map (Private Memory Map). Before this instruction, the
Select parameter should be set to select the specified label for
operation.
+-----------------+---------+----------------------------------------+
| Parameter | Length | Explanation |
+=================+=========+========================================+
| Access Password | 4 Bytes | Access password of the tag |
+-----------------+---------+----------------------------------------+
| Read / Write | 1 Byte | 0x00: Read
0x01: Write |
+-----------------+---------+----------------------------------------+
| Persistence | 1 Byte | 0x00: Write to volatile memory
0x01: Write to NVM memory |
+-----------------+---------+----------------------------------------+
| Payload | 2 Byte | QT Control: QT\ *SR and QT*\ MEM |
+-----------------+---------+----------------------------------------+
Command
^^^^^^^
To write to NVM memory with QT\ *SR 0x40 and QT*\ MEM 0x00:
+----+------+-----+-------+-----------------+--------------+-------------+---------+-----+-----+
| H | Type | CMD | PL | Access Password | Read / Write | Persistence | Payload | CRC | End |
+====+======+=====+=======+=================+==============+=============+=========+=====+=====+
| BB | 00 | E5 | 00 08 | 00 00 FF FF | 01 | 01 | 40 00 | 2D | 7E |
+----+------+-----+-------+-----------------+--------------+-------------+---------+-----+-----+
0xE5 Read Successful Response
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+----+------+-----+-------+---------+-------+---------+---------+-----+-----+
| H | Type | CMD | PL | PC + | PC | EPC | QT | CRC | End |
| | | | | EPC | | | Control | | |
| | | | | Length | | | | | |
+====+======+=====+=======+=========+=======+=========+=========+=====+=====+
| BB | 01 | E5 | 00 11 | 0E | 30 00 | 30 75 | 00 00 | 42 | 7E |
| | | | | | | 1F EB | | | |
| | | | | | | 70 5C | | | |
| | | | | | | 59 04 | | | |
| | | | | | | E3 D5 | | | |
| | | | | | | 0D 70 | | | |
+----+------+-----+-------+---------+-------+---------+---------+-----+-----+
0xE6 Write Successful Response
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+----+------+-----+-------+---------+-------+---------+---------+-----+-----+
| H | Type | CMD | PL | PC + | PC | EPC | Pa | CRC | End |
| | | | | EPC | | | rameter | | |
| | | | | Length | | | | | |
+====+======+=====+=======+=========+=======+=========+=========+=====+=====+
| BB | 01 | E6 | 00 10 | 0E | 30 00 | 30 75 | 00 | 42 | 7E |
| | | | | | | 1F EB | | | |
| | | | | | | 70 5C | | | |
| | | | | | | 59 04 | | | |
| | | | | | | E3 D5 | | | |
| | | | | | | 0D 70 | | | |
+----+------+-----+-------+---------+-------+---------+---------+-----+-----+
0x2E Tag Not Found Error
^^^^^^^^^^^^^^^^^^^^^^^^
== ==== === ===== ========= === ===
H Type CMD PL Parameter CRC End
== ==== === ===== ========= === ===
BB 01 FF 00 01 2E 2F 7E
== ==== === ===== ========= === ===
0x16 Wrong Access Password Error
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+----+------+-----+-------+---------+---------+-------+---------+-----+-----+
| H | Type | CMD | PL | Error | PC + | PC | EPC | CRC | End |
| | | | | Code | EPC | | | | |
| | | | | | Length | | | | |
+====+======+=====+=======+=========+=========+=======+=========+=====+=====+
| BB | 01 | FF | 00 10 | 16 | 0E | 34 00 | 30 75 | 75 | 7E |
| | | | | | | | 1F EB | | |
| | | | | | | | 70 5C | | |
| | | | | | | | 59 04 | | |
| | | | | | | | E3 D5 | | |
| | | | | | | | 0D 70 | | |
+----+------+-----+-------+---------+---------+-------+---------+-----+-----+