Electronic tags (Tags, referred to as tags) and Readers (readers) that conform to the EPC Class 1 Gen2 (G2) protocol V109 should have the following characteristics.
Q1: Which areas of the tag memory are divided?
A: Tag memory is divided into four independent storage blocks (Bank): Reserved (reserved), EPC (electronic product code), TID (tag identification number) and User (user).
Reserved area: Stores Kill Password and Access Password.
EPC area: Stores EPC numbers, etc.
TID area: Stores the tag identification number, and each TID number should be unique.
User area: Stores user-defined data.
In addition, there are also units of storage properties used for the Lock status bits of each block.
Q2: What are the statuses of the label?
A: After receiving continuous wave (CW) illumination, ie, Power-up, the tag can be in Ready, Arbitrate, Reply, Acknowledged, Open, Secured. (Protection), Killed (inactivated) one of seven states.
1. The Ready state is the state in which the uninactivated tag is powered on, ready to respond to the command.
2, in the Arbitrate state, mainly waiting for a response to Query and other commands.
3. After responding to the Query, enter the Reply state and further send the EPC number back in response to the ACK command.
4. After sending back the EPC number, enter the Acknowledged state and further respond to the Req_RN command.
5. If the Access Password is not 0, you can enter the Open state and perform read and write operations here.
6, known Access Password can enter the Secured state, read, write, lock and other operations.
7. The tag entering the Killed state will remain in the same state and will never generate a modulation signal to activate the RF field, thus permanently failing. The inactivated tag should remain in the Killed state in all environments and will be inactivated upon power up. The inactivation operation is irreversible.
To get a tag into a certain state, a set of legal commands in a proper order is generally required. In turn, each command can only be valid when the tag is in the appropriate state, and the tag will also go to other states after responding to the command.
Q3: What are the categories of commands?
A: From the perspective of command architecture and scalability, it is divided into Mandatory (required), Optional (optional), Proprietary (proprietary) and Custom (customized).
From the point of view of the function, it is divided into three categories: label Select, Inventory and Access.
In addition, for future command extensions, different lengths of code are reserved for use.
Q4: What are the Mandatory commands?
A: Labels and readers that conform to the G2 protocol should have 11 mandatory commands: Select, Query, QueryAdjust, QueryRep, ACK (EPC Reply) , NAK (turning to cut), Req_RN (random number request), Read (read), Write (write), Kill (inactivated), Lock (lock).
Q5: What are the optional (Optional) commands?
A: Labels and readers that conform to the G2 protocol. There are three options that support or can not support optional commands: Access, BlockWrite, BlockErase.
Q6: What is the proprietary (Proprietary) command?
A: Proprietary commands are generally used for manufacturing purposes, such as internal testing of tags. Such commands should be permanently disabled after shipment.
Q7: What are the custom (Custom) commands?
A: It can be a command that the manufacturer defines and opens to the user. For example, Philips provides: BlockLock (block lock), ChangeEAS (change EAS status), EASAlarm (EAS alarm) and other commands (EAS is the commodity electronic theft system). Electronic Article Surveillance).
Q8: What are the Select class commands?
A: There is only one: Select, which is a must.
Tags have a variety of attributes, based on user-set criteria and policies, using the Select command, changing certain attributes and flags to manually select or delineate a specific tag group, you can only perform inventory recognition or access operations on them, so Conducive to reducing conflicts and repeated identification, speed up recognition.
Q9: What are the Inventory commands?
A: There are five: Query, QueryAdjust, QueryRep, ACK, NAK, are all necessary.
1. After the tag receives a valid Query command, each tag selected according to the set criteria generates a random number (similar to a dice), and each tag with a random number of zero will generate an echo (return the temporary password RN16). -- a 16-bit random number) and move to the Reply state; tags that meet other criteria will change certain attributes and flags, thus exiting the above tag group, which helps to reduce duplicate recognition.
2. After the tag receives the valid QueryAdjust command, each tag only generates a new random number (like a re-dice), and the other is the same as Query.
3. After the tag receives the valid QueryRep command, it only reduces the original random number of each tag in the tag group by one, and the other is the same as Query.
4. Only a singular tag can receive a valid ACK command (using the above RN16, or Handle--a 16-bit random number that temporarily represents the tag identity. This is a security mechanism!), sent back after receipt The content in the EPC area is the most basic function of the EPC protocol.
5. After the tag receives the valid NAK command, it will go to the Arbitrate state except that it is in the original state of Ready and Killed.
Q10: What are the access class commands?
A: There are five essentials: Req_RN, Read, Write, Kill, Lock, and three optional: Access, BlockWrite, BlockErase.
1. After the tag receives the valid Req_RN (with RN16 or Handle) command, it sends back the handle, or the new RN16, depending on the state.
2. After the tag receives the valid Read(with Handle) command, it sends back the error type code, or the content and handle of the requested block.
3. After receiving the valid Write(with RN16 & Handle) command, the tag sends back the error type code, or sends the handle back if the write succeeds.
4. After receiving the valid Kill (with Kill Password, RN16 & Handle) command, the tag sends back the error type code, or sends the handle back if the inactivation succeeds.
5. After the tag receives the valid Lock(with Handle) command, it sends back the error type code, or sends the handle back if the lock is successful.
6. After the tag receives the valid Access (with Access Password, RN16 & Handle) command, it sends back the handle.
7. After the tag receives the valid BlockWrite (with Handle) command, it sends back the error type code, or sends the handle back if the block is successfully written.
8. After the tag receives the valid BlockErase (with Handle) command, it sends back the error type code, or the block erases the handle successfully.
Q11: What is the so-called conflict (collisions) and how to fight conflict? What mechanism does G2 use to fight conflict?
A: As mentioned in the above Q9 solution, when more than one random number zero tag is sent back to different RN16, they will have different RN16 waveform superposition on the receiving antenna, which is called collision. Therefore, it cannot be decoded correctly. There are a variety of anti-collision mechanisms to avoid waveform superposition deformation, such as trying to (time-division) only one label "speak" at a certain moment, and then singularization, can identify and read each of the multiple labels.
The above three Q prefix commands reflect the anti-collision mechanism of G2: a tag with a random number of zero can be sent back to RN16. If multiple tag random numbers are zero at the same time, but cannot be decoded correctly, the Q word is strategically retransmitted. The command or combination of the headers is given to the selected tag group until it is correctly decoded.
Q12: Should the Tag Identification Number (TID) be unique? How to achieve?
A: Tag identifier (TID identifier) is a sign of the identity difference between tags (can be analogized to the number of banknotes). From the perspective of security and anti-counterfeiting, any two G2 tags should not be identical, and the tags should be unique. From the above Q1 solution, we know that the four storage blocks of the tags are useful, and some can be rewritten at any time after leaving the factory. Only TID should also be responsible for this, so the TID of the tag should be unique.
The manufacturer of the G2 chip before leaving the factory should use the Lock command or other means to act on the TID to make it permanently locked; and the manufacturer or the organization concerned should ensure that the TID of the appropriate length of each G2 chip is unique, and there will be no Two identical TIDs, even if a G2 tag is in the Killed state, will not be activated and reused, and its TID (still in this tag) will not appear in another G2 tag.
Thus, since the TID is unique, although the EPC code on the label can be copied to another label, it can be distinguished by the TID on the label, thereby clearing the source. This architecture and method is simple and feasible, but care must be taken to ensure a unique logical chain.
For the TID specification of the V1 version of the V109, only 32-bit (including 8-bit tag class-designer identifier, 12-bit tag model number) is required. For more bits, Such as SNR (serial number serial number), said "Tags may contain", not "should". However, since the EPC number is designed to be used to distinguish between individual items, 32-bit is probably not enough and should have SNR. The G2 protocol revision or Class 2 will consider these.
Q13: What is the effect of the Kill command in the G2 protocol? Can I reuse the inactivated label?
A: The G2 protocol sets the Kill command and is controlled by a 32-bit password. After the Kill command is effectively used, the tag will never generate a modulated signal to activate the RF field, thus permanently failing. But the original data may still be in the tag. If you want to read them is not completely impossible, you can consider improving the meaning of the Kill command - with the data erased. If this is the case, people should be completely relieved.
In addition, for a certain period of time, due to the cost of G2 label use or other reasons, it will take into account the fact that the label can be reused (such as the user to use the labeled tray, box, the corresponding EPC number after the content is replaced, User area) The content should be rewritten; the replacement or re-labeling is expensive and inconvenient; etc.), the command that can be rewritten even if the content of the label is permanently locked, because of the effect of different locking states, only Write or BlockWrite The BlockErase command may not be able to rewrite the EPC number, User content, or Password (if the tag's EPC number is locked so that it cannot be overwritten, or is not locked but forgets the Access Password of this tag and cannot rewrite the EPC number). This creates a requirement that requires a straightforward Erase command -- except for the TID field and its Lock status bit (the TID cannot be overwritten after the tag leaves the factory), other EPC numbers, Reserved areas, User area contents, and other Lock states. Bits, even if they are permanently locked, will all be erased for rewriting.
In comparison, the improved Kill command and the added Erase command function are basically the same (including the use of Kill Password), the only difference is that the former Kill command does not generate a modulation signal, so that it can be uniformly assigned to the parameter RFU with the Kill command. Different values are considered.
Q14: Commands such as Access in G2 are optional. What should I do if the tag or reader does not support the optional command?
A: If the BlockWrite or BlockErase command is not supported, it can be replaced by the Write command (write 16-bit at a time) several times, because the erase can be regarded as writing 0, the former block write, block erase block is several times 16-bit, other conditions of use are similar.
If the Access command is not supported, only the Access Password is 0, you can enter the Secured state to use the Lock command. You can change the Access Password in the Open or Secured state, and then use the Lock command to lock or permanently lock the Access Password (pwd-read/write bit is 1, permalock bit is 0 or 1, refer to the attached table), then the tag is no longer You can't enter the Secured state, and you can't use the Lock command to change any lock state.
If the Access command is supported, it is possible to use the corresponding command to freely enter all the various states. In addition to the tag being permanently locked or permanently unlocked and refused to execute certain commands and in the Killed state, it is also possible to effectively execute each command.
The Access command specified by the G2 protocol is Optional optional, but if the Access command becomes mandatory or the manufacturer can support the Access command for G2 tags and readers in the future, the control and use will be more flexible and comprehensive.