Introduction
Protocol-control and extended protocol-control bitfields define some key characteristics of a tag. The information stored here includes tag EPC length and user memory characteristics.
Protocol-control (PC) word
PC is located in the second word of EPC memory. The difference between StoredPC and PackedPC is the implementation of L bits for EPC length. The tag can be instructed to reply with TID instead of EPC, and the tag modifies the L bits to match the length of TID.
StoredPC
StoredPC has the following information:
MSB |
|
|
|
|
|
|
|
|
|
|
|
|
|
| LSB |
10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 1A | 1B | 1C | 1D | 1E | 1F |
L4 | L3 | L2 | L1 | L0 | RUM | XI | T | RFU | RFU | RFU | RFU | RFU | RFU | RFU | RFU |
where
10 is the most significant bit.
1F is the least significant bit.
L0 – L4 (EPC length field) indicates the length of EPC in 16 bit words (0 – 31 words).
RUM (Read user memory indicator) indicates whether the tag has memory allocated to File_0 in the user memory bank.
XI (XPC_W1 indicator) indicates whether the tag has implemented XPC1 and that the XPC1 contains data.
T (Numbering system identifier toggle) indicates whether the tag follows the GS1 EPCglobal Application standard (T=0) or the ISO/IEC 15961 standard (T=1). Note that this document covers only elements related to the GS1 standard.
RFU Reserved for future use
PacketPC
PacketPC differs from StoredPC only by backscattering different EPC length (L0-L4 field) when commanded to return TID instead of EPC.
Extended protocol control (XPC) words
Extended protocol control words contain more information about the tag. XPC_W1 exists and contains a non-zero value if the XI bit in PC is 1.
XPC_W2 exists and contains data if the XEB bit in XPC_W1 is 1.
XPC_W1
XPC word 1 contains the following data:
MSB |
|
|
|
|
|
|
|
|
|
|
|
|
|
| LSB |
210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 21A | 21B | 21C | 21D | 21E | 21F |
XEB | RFU | RFU | RFU | SA | SS | FS | SN | B | C | SLI | TN | U | K | NR | H |
where
210 is the most significant bit.
21F is the least significant bit.
XEB (XPC_W2 indicator) XEB = 1 if XPC_W2 word exists and contains non-zero data.
RFU Reserved for future use
SA (Sensor Alarm indicator) has value 1 if the tag reports an alarm condition. If SA=0, the tag does not implement sensor alarm or the sensor alarm is not reported.
SS (Simple Sensor indicator) is 1 if the tag has a simple sensor.
FS (Full Function Sensor indicator) is 1 if the tag has a full function sensor.
SN (Snapshot Sensor indicator) is 1 if the tag has a snapshot sensor.
B (Battery-Assisted Passive indicator) is 1 if the tag is battery-assisted. B=0 if the tag doesn’t support the B flag or is passive.
C (Computed Response indicator) is 1 if ResponseBuffer contains a response. C=0 if the tag doesn’t implement the C flag or ResponseBuffer is empty.
SLI (SL indicator) is 1 if the tag has asserted the SL flag. SLI=0 if the tag has deasserted the SL flag or does not support SLI.
TN (Notification indicator) is 1 if the tag asserts a notification. TN=0 if the tag does not assert a notification or does not support the TN flag.
U (Untraceable indicator) is 1 if the tag is untraceable. U=0 if the tag is traceable or does not implement the U flag.
K (Killable indicator) is 1 if the tag is killable. K=0 if the tag is not killable with the kill command or does not support the K flag.
NR (Non-removable indicator) is 1 if the tag is non-removable from its host item. NR=0 if the tag is removable or does not support the NR flag.
H (Hazmat indicator) is 1 if the tagged item is hazardous material. H=0 if the tagged item is not hazardous material or the tag does not support the H bit.
Note that the default setting for Nordic ID NurApi item
public bool EnableXPCRemoval
is true. This means that both XPC_W1 and XPC_W2 are stripped from EPC and cannot be read. To read XPCs – if available – the value must be set to false with the command
hNur.XPCRemoval = false;
If XPC_W1 / XPC_W2 are available these will be added to the beginning of EPC.
Example 1 (EnableXPCRemoval = false, XPC_W1 and XPC_W2 present):
Nordic ID RFID module responds with EPC = 81040C00E280B1202000000110024E7A
- XPC1_W1 = 0x8104
- XPC2_W1 = 0x0C00
- EPC = E280B1202000000110024E7A
Example 2 (EnableXPCRemoval = false, XPC_W1 present, XPC_W2 absent):
Nordic ID RFID module responds with EPC = 0104E280B1202000000110024E79
- XPC_W1 = 0x0104
- EPC = E280B1202000000110024E79
Example 3 (EnableXPCRemoval = true, XPCs stripped away even if present):
Nordic ID RFID module responds with EPC = E280B1202000000110024E7A
- E280B1202000000110024E7A
IMPORTANT: If the XPC is present and it is not removed, any tag operations (read, write, lock, kill, etc.) that require the EPC will fail.
XPC_W2
XPC_W2 can be used to get snapshot sensor values. There are three ways to initiate snapshot sensor measurements. A tag can support one or more methods.
- Tag-initiated measurement triggered by tag power-up. The snapshot sensor information is available starting from the first inventory round that includes the Tag.
- Reader-initiated measurement using the Select command to XPC2_W2. The snapshot sensor information is available starting from the next inventory round that includes the Tag if it remains energized. See |1| for details.
- Reader-initiated measurement using the Write or BlockWrite command to XPC2_W2. The snapshot sensor information is available for a subsequent Read of XPC_W2 and/or starting from the next inventory round that includes the Tag. The reader can initiate a measurement regardless of the lock or permalock status of EPC memory. See |1| for details.
XPC_W2 bit assignments for methods 2 and 3:
MSB |
|
|
|
|
|
|
|
|
|
|
|
|
|
| LSB |
220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 22A | 22B | 22C | 22D | 22E | 22F |
Sensor Command | Sensor type = 1110 | Sensor type = 1101 | Sensor type = 1100 | Sensor type = 1011 | Sensor type = 1010 | Sensor type = 1001 | Sensor type = 1000 | Sensor type = 0111 | Sensor type = 0110 | Sensor type = 0101 | Sensor type = 0100 | Sensor type = 0011 | Sensor type = 0010 | Sensor type = 0001 | Sensor type = 0000 |
The meaning of the values:
Sensor Command | When used by the Select command: 0: The Tag must not initiate measurements for any Selected Sensors. 1: The Tag must initiate a measurement for all Selected Sensors that are implemented by the Tag, if this method is supported by the selected Snapshot Sensor.
When used by the Write or BlockWrite command: 0: Vendor defined command. 1: The Tag must initiate a measurement for all Selected Sensors that are implemented by the Tag, if this method is supported by the selected Snapshot Sensor. |
Sensor Type | When used by the Select command: The Tag is considered matching when any of the Selected Sensor types are implemented on the Tag. The Tag is considered non-matching if either there are no selected Sensor Types or none of the Selected Sensor types are implemented on the Tag.
When used by the Write or BlockWrite command: If Sensor Command = 0 then it is a vendor defined command and the meaning of these bits are vendor defined. If Sensor Command = 1 then the Tag must initiate a measurement for all Selected Sensors that are implemented by the Tag, if this method is supported by the selected Snapshot Sensor. |
Sensor types and measurement units are defined here:
Sensor type | Sensor | Units |
0000 | Tag Vendor Defined | VenDef |
0001 | Temperature | °C |
0010 | Relative Humidity | % |
0011 | Barometric Pressure | hPa (mbar) |
0100 | Light | lux |
0101 | Voltage | V |
0110 | Magnetic Field | mT (10G) |
0111 | Angular Position | ° |
1000 | Rotational Speed | rpm |
1001 | Weight | kg |
1010 | Liquid Flow | ml/min |
1011 | Gas Flow | l/min |
1100 | Accelerometer | G (9.81 m/s²) |
1101 | Gyroscope | °/s |
1110 | Magnetometer | µT |
1111 | Tag Vendor Supplemental Data | N/A |
For detailed information about sensor data see table 8.1. and about data values table 8.2. in |1|.
References
|1| EPC® Radio-Frequency Identity Generation-2 UHF RFID Standard
https://ref.gs1.org/standards/gen2/