December 06, 2006 Revision 1.
This equipment complies with FCC Part 15.247 and Industry Canada RSS-210 rules. Any changes or modifications not expressly approved by SIRIT could void the user’s authority to operate the equipment. To maintain compliance, the IDentity MaX Desktop reader must be used with the power supply that was supplied with the reader.
Contents Contents................................................................................................................................................... 1 List of Figures ......................................................................................................................................... 2 List of Tables........................................................................................................................................... 4 List of Tables...................
4.7 CLASS 1 GENERATION 2 COMMANDS .......................................................................................... 52 4.7.1 Class 1 Generation 2 Sub-Commands ......................................................................................... 53 4.7.2 KILL Sub-Command................................................................................................................... 54 4.7.2.1 KILL Sub-Command Status Message ......................................................................
Figure 34 VERIFY_ID Sub-Command Status Message Format 46 Figure 35 VERIFY_ID Sub-Command Summary Status Message Format Figure 36 LOCK_ID Sub-Command Message Format48 Figure 37 LOCK_ID Sub-Command Status Message Format 49 Figure 38 ERASE_ID Sub-Command Message Format 50 Figure 39 ERASE_ID Sub-Command Status Message 51 Figure 40 Class 1 Generation 2 Command Format 52 Figure 41 KILL Sub-Command Message Format ... 54 Figure 42 KILL Sub-Command Status Message Format 55 Figure 43 SET Sub-Command Message Format ..
List of Tables Table 1 IDentity MaX Desktop Reader Pin Definitions7 Table 2 Status Field Status Codes ......................... 13 Table 4 Command Field Command Codes ............ 14 Table 5 Download Sub-Commands........................ 15 Table 6 END Sub-Command Field Definitions ....... 17 Table 7 System Sub-Commands............................ 19 Table 9 Class 0 Sub-Commands............................ 20 Table 10 KILL Sub-Command Field Definitions...... 21 Table 11 Sub-Command Status Field Definitions..
1.0 Introduction/Scope Using This Manual This User’s Guide provides instructions for installing the IDentity MaX Desktop RFID reader and for integrating the host protocol onto a PC based application.
December 6, 2006 Revision 1.
2.0 Mechanical and Electrical 2.1 Mechanical Specifications Dimensions (LxWxD) 5.75” x 3.25” x 2.25” (not including cables) Weight 1 lb, 7 oz. Cables and Connectors Data: 6 ft. Serial Cable with DB-9S (Female) connector Power: 6 ft. cable with attached power supply using a two prong, non-polarized, North American power connector December 6, 2006 Revision 1.
2.2 Electrical Specifications Table 1 IDentity MaX Desktop reader UHF RFID Reader Pin Definitions Pin Number 1 2 3 4 5 6 7 8 9 Pin Description No Connection RXD – Receive Serial Data TXD – Transmit Serial Data No Connection Ground No Connection DTR – Data Terminal Ready No Connection No Connection Input voltage RF output power Frequency Communications Protocol Communications Parameters Communications Signal Level Regulatory December 6, 2006 Revision 1.
3.0 Installation and Operation 3.1 Installation The following steps are recommended to properly install the IDentity MaX Desktop reader. 1. Unpack the contents of the shipping container. 2. Inspect the shipping container and contents for damage. If damaged, notify the carrier and Sirit. Keep all shipping materials for inspection by the carrier. 3. Determine the location of the reader.
NOTE: To avoid erroneous tag reads, keep all RFID tags other than the one being processed at least 1ft. away from the IDentity MaX Desktop reader. 6. Perform the required operations as specified by the user application and procedures. 7. After all tag transactions have been processed, flip the toggle switch on the front of the reader to the OFF (down) position. December 6, 2006 Revision 1.
4.0 Host Protocol The Host Protocol supports communications between the IDentity MaX Desktop reader and a Host. The following sections define this protocol by breaking down the different fields and layers of the packet protocol. This interface uses the serial port on the IDentity MaX Desktop reader. The serial port interface will be configured to transfer data at 115,200 bps, 8 data bits, no parity, and 1 stop bit. 4.
DEFINITIONS CRC: Two bytes, CCITT CRC-16 calculated over the LENGTH field through the end of MESSAGE field in the FORWARD direction with a PRELOAD of 0xFFFF. If the CRC is calculated incorrectly, the reader will not respond. See Appendix A. LENGTH: Number of bytes in the packet from the LENGTH byte through the end of the CRC, excluding the SOF MESSAGE: Commands or responses SOF: 0x01 Start-Of-Frame, byte field used to indicate the start of a packet boundary December 6, 2006 Revision 1.
4.2 Message Formats The MESSAGE portion of a packet is used to transport both commands from the host to the reader and responses from the reader to the host. The reader will not send autonomous (unsolicited) responses. Command messages contain a one byte “Command” field. Following the command byte field is the “Parameter” field that could contain zero to many parameters associated with the command field.
The “Status” field contains the following status codes: Table 2 Status Field Status Codes STATUS_ERROR Status Code 0xFF STATUS_COMPLETE 0x00 STATUS_IN_PROGRESS 0x01 Status December 6, 2006 Revision 1.0 Description The command processing is complete with errors or faults detected. The command has completed with no errors or faults encountered. The reader is still processing the command. More response data is to be expected.
4.3 Commands The following table shows all the commands that are supported for command processing on the reader: Table 3 Command Field Command Codes Command Code Description DOWNLOAD 0x00 Download new application software to the reader SYSTEM 0x01 TAG_0 0x02 Set system operational mode and get software versions Class 0 tag commands TAG_1 0x03 Class 1 tag commands TAG_G2 0x04 Class 1 Generation 2 commands 4.3.
4.3.2 DOWNLOAD Sub-Command The DOWNLOAD command further utilizes sub-commands and parameters to support the download process in the reader. Table 4 Download Sub-Commands Sub-Command Code NOTIFY 0x00 START 0x01 PROGRAM 0x02 END 0x03 REBOOT 0x04 December 6, 2006 Revision 1.0 Description Both the reader and the application accept this command. If the application receives this command it will respond and reboot into the application into the reader.
4.3.3 PROGRAM Sub-Command The PROGRAM sub-command contains the following message format for programming the flash. The DATA field will contain one or more bytes of data that needs to be programmed. Figure 5 PROGRAM Sub-Command Message Format MSB LSB Message Parameters Command Code 0x00 SubCommand Code 0x02 Address Data 1 byte 1 byte 4 bytes 122 bytes December 6, 2006 Revision 1.
4.3.4 END Sub-Command The END sub-command notifies the reader that there are no more PROGRAM messages, compares the CRC values, and programs the application header into flash.
4.4 SYSTEM Command The SYSTEM command is used to set system operational mode and get software versions. The SYSTEM command is also used for manufacturing test and is supported with Test type system commands.
4.4.
4.5 Class 0 Commands The following section describes the command messages used to support Class 0 tags. Class 0 tags are read-only and cannot be written. . The Command Code 0x02 is for TAG_0 (Class 0) tag commands. Figure 8 Class 0 Command Format MSB LSB Message Command Code 0x02 1 byte Parameters Sub-Command Code 1 byte Parameters 1-126 bytes 4.5.
4.5.
4.5.2.1 KILL Sub-Command Status Message The KILL sub-command status message contains the following message format: Figure 10 KILL Sub-Command Status Message Format MSB LSB Message Status Status Code Response Tag Count 0x00 1 byte 1 byte 126 bytes Table 9 Sub-Command Status Field Definitions Field Definition STATUS This field should be set to STATUS_COMPLETE TAG_COUNT Number of tags singulated and killed (0x00, 0x01) December 6, 2006 Revision 1.
4.5.
4.5.3.1 SET Sub-Command Status Message The SET sub-command status message contains the following message format: Figure 12 SET Sub-Command Status Message Format MSB LSB MESSAGE Status Response RF Level Mod Depth 1 byte 1 byte 0x00 1 byte 125 bytes Table 11 SET Sub-Command Status Field Definitions Field STATUS CODE RF_LEVEL MOD_DEPTH December 6, 2006 Revision 1.
4.5.4 READ Sub-Command The READ sub-command is used with Class 0 (read-only capability), and when reading specific tags.
4.5.4.1 READ Sub-Command Status Message The READ sub-command status message contains the following command message format: Figure 14 READ Sub-Command Status Message Format MSB LSB Message Status Status Code Response Tag Count Tag ID 1 byte 126 bytes 0x01 1 byte Table 13 READ Sub-Command Status Field Definitions Field STATUS CODE TAG_COUNT TAG_ID Definition This field should be set to IN_PROGRESS The number of tags reported in this message A sequence of 1 or more tag IDs.
4.5.4.2 READ Sub-Command Summary Status Message After all tags have been reported, the reader will send a final summary status message to the host. Figure 15 READ Sub-Command Status Message Format MSB LSB Message Status Status Code Response Total Tag Count 0x00 1 byte 2 bytes 125 bytes Table 14 READ Sub-Command Status Field Definitions Field STATUS CODE Definition This field should be set to STATUS_COMPLETE TOTAL_TAG_COUNT Total number of tags reported December 6, 2006 Revision 1.
4.6 Class 1 Commands The following section describes the command messages used to support Class 1 tags. Class 1 tags may be read or written. The Command Code 0x03 is for TAG_1 (Class 1) tag commands. Figure 16 Class 1 Command Format MSB LSB Message Command Code 0x03 1 byte December 6, 2006 Revision 1.
4.6.1 Class 1 Sub-Commands The Class 1 command utilizes sub-commands and parameters in the following manner. Table 15 Class 1 Sub-Commands Sub-Command Code Description KILL 0xFF SET 0x00 READ 0x01 Kill a Class 1 tag This command is used to set the RF power level and modulation depth. Read Class 1 tag IDs using the following parameters. This read utilizes the SCROLL_ALL_ID command. All Class 1 tags receiving this command will program the specified tag id in memory.
4.6.2 KILL Sub-Command Tags with IDs matching the singulation bits are permanently deactivated and will no longer respond to or execute reader commands. The password is used to enable this functionality. This “self-destruct” command renders the tag inactive forever.
4.6.2.1 KILL Sub-Command Status Message The KILL sub-command status message contains the following message format: Figure 18 KILL Sub-Command Status Message Format MSB LSB Message Status Status Code Response Tag Count 0x00 1 byte 1 byte 126 bytes Table 17 KILL Sub-Command Status Field Definitions Field STATUS TAG_COUNT December 6, 2006 Revision 1.
4.6.3 SET Sub-Command The SET sub-command contains the following message format: Figure 19 SET Sub-Command Message Format MSB LSB Message Command Parameters SubCommand Parameters 0x03 0x00 RF Level Mod Depth 1 byte 1 byte 1 byte 1 byte 124 bytes Table 18 SET Sub-Command Field Definitions Field Definition RF power level to be used for reading Class 1 tags NO_CHG (0x00) - The current RF setting is to remain unchanged Setting (0x01 . . .
4.6.3.1 SET Sub-Command Status Message The SET sub-command status message contains the following command message format: Figure 20 SET Sub-Command Status Message Format MSB LSB Message Status Response RF level Mod Depth 1 byte 1 byte 0x00 1 byte 125 bytes Table 19 SET Sub-Command Status Field Definitions Field STATUS CODE RF_LEVEL MOD_DEPTH December 6, 2006 Revision 1.
4.6.4 READ Sub-Command The READ sub-command is used to read tags. The SCROLL_ALL_ID command is used to search for tags during the interrogation process. During this process, the reader listens for the loudest tag, responds, and “quiets” that tag in order to hear the next loudest tag.
4.6.4.1 READ Sub-Command Status Message The READ sub-command status message contains the following message format: Figure 22 READ Sub-Command Status Message Format MSB LSB Message Status Status Code Response Tag Count Tag Id 1 byte 126 bytes 0x01 1 byte Table 21 READ Sub-Command Status Field Definitions Field STATUS CODE Definition This field should be set to IN_PROGRESS TAG_COUNT The number of tags reported in this message TAG_ID A sequence of 1 or more tag IDs.
4.6.4.2 READ Sub-Command Summary Status Message After all tags have been reported, the reader will send a final summary status message to the host. Figure 23 READ Sub-Command Status Message Format MSB LSB Message Status Status Code Response Total Tag Count 0x00 1 byte 2 bytes 125 bytes Table 22 READ Sub-Command Status Field Definitions Field STATUS CODE Definition This field should be set to STATUS_COMPLETE TOTAL_TAG_COUNT Total number of tags reported December 6, 2006 Revision 1.
4.6.5 SCROLL ID Sub Command The SCROLL ID sub-command is used to search for tags in dense (very closely grouped) tag environments. Using Scroll ID for tag singulation requires more time to execute than the standard READ sub-command. Therefore, it is not recommended for low density tag environments.
4.6.5.1 SCROLL ID Sub-Command Status Message The SCROLL_ID sub-command status message contains the following message format: Figure 25 SCROLL_ID Sub-Command Status Message Format MSB LSB Message Status Status Code Response Tag Count Tag ID 1 byte 126 bytes 0x01 1 byte Table 24 SCROLL_ID Sub-Command Status Field Definitions Field Definition STATUS This field should be set to IN_PROGRESS CODE TAG_COUNT The number of tags reported in this message A sequence of 1 or more tag IDs.
4.6.5.2 SCROLL ID Sub-Command Summary Status Message After all tags have been reported, the reader will send a final summary status message to the host. Figure 26 SCROLL_ID Sub-Command Status Message Format MSB LSB Message Status Status Code Response Total Tag Count 0x00 1 byte 2 bytes 125 bytes Table 25 SCROLL_ID Sub-Command Status Field Definitions Field STATUS CODE TOTAL_TAG_COUNT December 6, 2006 Revision 1.
4.6.6 READ_ALL Sub-Command The READ_ALL sub-command is used to read tags. The SCROLL_ALL_ID command is used to search for tags during the interrogation process. During this process, the reader listens for the loudest tag, responds, and “quiets” that tag in order to hear the next loudest tag. This version of the read command will not filter out tag IDs that do not conform to the EPC tag data standards, as the standard READ command does.
4.6.6.
4.6.6.2 READ_ALL Sub-Command Summary Status Message After all tags have been reported, the reader will send a final summary status message to the host. Figure 29 READ_ALL Sub-Command Status Message Format MSB LSB Message Status Status Code Response Total Tag Count 0x00 1 byte 2 bytes 125 bytes Table 28 READ_ALL Sub-Command Status Field Definitions Field STATUS CODE Definition This field should be set to STATUS_COMPLETE TOTAL_TAG_COUNT Total number of tags reported December 6, 2006 Revision 1.
4.6.7 PROGRAM_ID Sub-Command The PROGRAM_ID sub-command will program all Class 1 tags. The PROGRAM_ID message contains the Tag ID Bit Count, Password, and the Tag ID to be used in programming the tag. In order to implement the PROGRAM_ID command, the reader sends a PROGRAM_ID command to the tag to program the tag ID and password. The reader further verifies the PROGRAM_ID command execution by sending a VERIFY_ID command.
4.6.7.1 PROGRAM_ID Sub-Command Status Message Once the tag has been programmed with the correct CRC, Tag ID, and Password, a status complete message will be sent to the host indicating the command execution result. A status complete message indicates the tag was programmed successfully.
4.6.8 VERIFY ID Sub-Command All tags receiving the VERIFY_ID command will reply with their CRC, followed by their entire ID (MSB of the identifier first), followed by their Password. A tag that has successfully executed the LOCK_ID command ignores this command. It should be noted that an all “0” or totally blank 64-bit tags cannot be read successfully by the VERIFY_ID sub-command. Because the tags are blank, they will be erroneously identified as 96-bit tags.
4.6.8.1 VERIFY ID Sub-Command Status Message The VERIFY ID sub-command status message will contain a CRC, EPC ID Code and Password.
4.6.8.2 VERIFY_ID Sub-Command Summary Status Message After all tags have been reported, the reader will send a final summary status message to the host. Figure 34 VERIFY_ID Sub-Command Summary Status Message Format MSB LSB Message Status Status Code Response Total Tag Count 0x00 1 byte 2 byte 125 bytes Table 32 VERIFY_ID Sub-Command Summary Status Field Definitions Field STATUS CODE TOTAL_TAG_COUNT December 6, 2006 Revision 1.
4.6.9 LOCK ID Sub-Command The LOCK_ID command prevents any further modification of the tag ID, CRC, and Password. In order to implement the LOCK_ID command, the Reader first sends a VERIFY_ID command to the tag in order to retrieve the CRC, Tag ID, and Password information. The Reader then sends a LOCK_ID command to the tag to lock the tag information. The Reader further verifies the LOCK_ID command execution by sending a VERIFY_ID command.
4.6.9.1 LOCK ID Sub-Command Status Message Once the tag has been locked a status message will be sent to the host indicating the command execution result. A status complete status message indicates the tag was locked successfully.
4.6.10 ERASE ID Sub-Command The ERASE_ID command sets all bits of the tag ID, CRC, and Password to '0'. A tag that has successfully executed the LOCK_ID command ignores the ERASE_ID command. In order to implement the ERASE_ID command, the Reader sends an ERASE_ID command to the tag to erase all tag information. The Reader further verifies the ERASE_ID command execution by sending a VERIFY_ID command.
4.6.10.1 ERASE ID Sub-Command Status Message Once the tag has been erased a status message will be sent to the host indicating the command execution result. A STATUS_COMPLETE status message indicates the tag was erased successfully.
4.7 Class 1 Generation 2 Commands The following section describes the command messages used to support Class 1 Generation 2 tags. Class 1 Generation 2 tags may be read and written. The Command Code 0x04 is for TAG_2 (Class 1 Generation 2) tag commands. Figure 39 Class 1 Generation 2 Command Format MSB LSB Message Command Code 0x04 1 byte December 6, 2006 Revision 1.
4.7.1 Class 1 Generation 2 Sub-Commands The Class 1 Generation 2 command utilizes sub-commands and parameters in the following manner. Table 36 Class 1 Generation 2 Sub-Commands Sub-Command Code Description KILL 0xFF SET 0x00 Kill a Class 1 Generation 2 tag This command is used to set the RF power level and modulation depth. READ 0x01 PROGRAM 0x02 LOCK 0x03 December 6, 2006 Revision 1.
4.7.2 KILL Sub-Command The KILL sub-command is used to render tags nonoperational. The KILL sub-command contains the following message format: Figure 40 KILL Sub-Command Message Format MSB LSB Message Command Parameters SubCommand Parameters 0x04 0xFF Q value Tag ID Bit Count Kill Password Tag ID 1 byte 1 byte 1 bytes 1 byte 4 bytes 32 bytes 88 bytes Table 37 KILL Sub-Command Field Definitions Field Q Value Tag ID Bit Count Kill Password TAG_ID December 6, 2006 Revision 1.
4.7.2.1 KILL Sub-Command Status Message The KILL sub-command status message contains the following message format: Figure 41 KILL Sub-Command Status Message Format MSB LSB Message Status Status Code Response Tag Count 0x00 1 byte 2 bytes 126 bytes Table 38 KILL Sub-Command Status Field Definitions Field Definition STATUS This field should be set to STATUS_COMPLETE TAG_COUNT Number of tags killed (0x0000 or more, MSB first) December 6, 2006 Revision 1.
4.7.3 SET Sub-Command The SET sub-command contains the following message format: Figure 42 SET Sub-Command Message Format MSB LSB Message Command Parameters SubCommand Parameters 0x04 0x00 RF Level Mod Depth 1 byte 1 byte 1 byte 1 byte 124 bytes Table 39 SET Sub-Command Field Definitions Field Definition RF power level to be used for reading Class 1 Generation 2 tags NO_CHG (0x00) - The current RF setting is to remain RF_LEVEL unchanged Setting (0x01 . . .
4.7.3.1 SET Sub-Command Status Message The SET sub-command status message contains the following command message format: Figure 43 SET Sub-Command Status Message Format MSB LSB Message Status Response RF level Mod Depth 1 byte 1 byte 0x00 1 byte 125 bytes Table 40 SET Sub-Command Status Field Definitions Field STATUS CODE RF_LEVEL MOD_DEPTH December 6, 2006 Revision 1.
4.7.4 READ Sub-Command The READ sub-command is used to read tags. The READ sub-command contains the following message format: Figure 44 READ Sub-Command Message Format MSB LSB Message Command Parameters SubCommand Parameters 0x04 0x01 Q value Filter Bit Count Filter_Bits 1 byte 1 byte 1 byte 1 byte 32 bytes 92 bytes Table 41 READ Sub-Command Field Definitions Field Q Value FILTER_BIT_COUNT FILTER_BITS December 6, 2006 Revision 1.
4.7.4.1 READ Sub-Command Status Message Figure 45 READ Sub-Command Status Message Format MSB LSB Message Status Status Code Response Tag Count Tag ID Length - Tag ID 1 byte 126 bytes 0x01 1 byte Table 42 READ Sub-Command Status Field Definitions Field STATUS CODE Definition This field should be set to IN_PROGRESS TAG_COUNT The number of tags reported in this message A sequence of 1 or more tag lengths combined with tag IDs.
4.7.4.2 READ Sub-Command Summary Status Message After all tags have been reported, the reader will send a final summary status message to the host.
4.7.5 PROGRAM Sub-Command The PROGRAM sub-command is used to program an EPC ID into a Class 1 generation 2 tag.
4.7.5.1 PROGRAM Sub-Command Status Message The PROGRAM sub-command status message contains the following message format: Figure 48 PROGRAM Sub-Command Status Message Format MSB LSB Message Status Status Code Response Tag Count 0x00 1 byte 2 bytes 126 bytes Table 45 PROGRAM Sub-Command Status Field Definitions Field STATUS TAG_COUNT December 6, 2006 Revision 1.
4.7.6 LOCK Sub-Command The LOCK sub-command prevents further modification of the EPC ID and the Kill password stored on a tag. The LOCK subcommand contains the following message format: Figure 49 LOCK Sub-Command Message Format MSB LSB Message Command Parameters SubCommand Parameters 0x04 0x03 Q value Tag ID Bit Count Tag ID 1 byte 1 byte 1 byte 1 byte 32 bytes 92 bytes Table 46 LOCK Sub-Command Field Definitions Field Q Value Tag ID Bit Count TAG_ID December 6, 2006 Revision 1.
4.7.6.1 C1G2 LOCK Sub-Command Status Message Figure 50 LOCK Sub-Command Status Message Format MSB LSB Message Status Status Code Response Tag Count 0x00 1 byte 1 byte 126 bytes Table 47 LOCK Sub-Command Status Field Definitions Field STATUS CODE Definition This field should be set to STATUS_COMPLETE TAG_COUNT The number of tags locked December 6, 2006 Revision 1.
5.0 Troubleshooting This section is intended to help you identify and correct some common problems that can occur. For additional information or assistance with any query, please call SIRIT at 1-877-492-0101, ext. 2550. No Response from Reader Checklist Check that the external power supply is plugged into a 120 VAC 60 Hz outlet Solution Correct voltage problem. Check physical connection to serial port of the Host PC Correct any connection issue at serial interface connector.
Tags Will Not Read Checklist Check that the external power supply is plugged into a 120 VAC 60 Hz outlet Solution Correct voltage problem. Check for proper reader response to commands If reader does not respond per serial protocol as specified in Section 4, perform “No Response” troubleshooting.
Intermittent Tag Reads Checklist Solution Check for working tags in read zone Make sure tags are functional, and in contact with the top of the reader. Check tag environment UHF tags will not function well in some environments, such as in close proximity to metal. December 6, 2006 Revision 1.
Appendix A CRC Calculation This section shows how to calculate the CCITT CRC-16 over the entire body of the message. The CCITT CRC-16 is calculated starting with the LENGTH byte and continuing through the length -2. The final two CRC bytes are not included in the calculation but should be checked against the CCITT CRC-16 for a match.
// the command to be checked. unsigned char placeholder; // A place to put the byte while we // work on it.