3M Traffic Safety Systems IDMAX015 SPREAD SPECTRUM DEVICE User Manual USERS MANUAL

3M Traffic Safety Systems SPREAD SPECTRUM DEVICE USERS MANUAL

USERS MANUAL

 December 06, 2006   Proprietary Information  2 Revision 1.0
 December 6, 2006  Proprietary Information  3 Revision 1.0   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.   RF Exposure Warning  To comply with the FCC radiofrequency (RF) Exposure requirements, the antenna(s) used with this device must be installed to provide a minimum separation distance of 1 m from all persons     Part Number:  IDentity MaX Mobile User’s Guide    Release Date:  Dec 6, 2006    IDentity MaX Mobile Users Guide_1.1.doc
 December 06, 2006   Proprietary Information  1 Revision 1.0 Contents Contents................................................................................................................................................... 1 List of Figures ......................................................................................................................................... 2 List of Tables........................................................................................................................................... 4 List of Tables........................................................................................................................................... 4 1.0 INTRODUCTION/SCOPE............................................................................................................. 4 USING THIS MANUAL........................................................................................................................... 4 INTENDED AUDIENCE........................................................................................................................... 4 TOPICS ................................................................................................................................................. 4 2.0 MECHANICAL AND ELECTRICAL.......................................................................................... 6 2.1 MECHANICAL SPECIFICATIONS....................................................................................................... 6 2.2 ELECTRICAL SPECIFICATIONS......................................................................................................... 6 3.0 INSTALLATION AND OPERATION.......................................................................................... 8 4.0 HOST PROTOCOL...................................................................................................................... 10 4.1  PACKET FORMAT......................................................................................................................... 10 DEFINITIONS...................................................................................................................................... 11 4.2  MESSAGE FORMATS .................................................................................................................... 12 4.3  COMMANDS................................................................................................................................. 14 4.3.1  DOWNLOAD Command............................................................................................................ 14 4.3.2 DOWNLOAD Sub-Command ..................................................................................................... 15 4.3.3  PROGRAM Sub-Command........................................................................................................ 16 4.3.4  END Sub-Command.................................................................................................................... 17 4.4  SYSTEM COMMAND .................................................................................................................. 17 4.4  SYSTEM COMMAND .................................................................................................................. 18 4.4.1  SYSTEM Sub-Commands........................................................................................................... 19 4.5  CLASS 0 COMMANDS................................................................................................................... 20 4.5.1  Class 0 Sub-Commands............................................................................................................... 20 4.5.2  KILL Sub-Command................................................................................................................... 21 4.5.2.1 KILL Sub-Command Status Message ............................................................................................... 22 4.5.3     SET Sub-Command.................................................................................................................. 23 4.5.3.1  SET Sub-Command Status Message........................................................................................ 24 4.5.4  READ Sub-Command................................................................................................................. 25 4.5.4.1  READ Sub-Command Status Message .................................................................................... 26 4.5.4.2  READ Sub-Command Summary Status Message.................................................................... 27 4.6  CLASS 1 COMMANDS................................................................................................................... 28 4.6.2  KILL Sub-Command................................................................................................................... 30 4.6.2.1  KILL Sub-Command Status Message...................................................................................... 31 4.6.3  SET Sub-Command..................................................................................................................... 32 4.6.3.1 SET Sub-Command Status Message......................................................................................... 33 4.6.4  READ Sub-Command................................................................................................................. 34 4.6.4.1  READ Sub-Command Status Message .................................................................................... 35 4.6.4.2  READ Sub-Command Summary Status Message.................................................................... 36 4.6.5 SCROLL ID Sub Command......................................................................................................... 37 4.6.6 READ_ALL Sub-Command ........................................................................................................ 40 4.6.6.1 READ_ALL Sub-Command Status Message............................................................................ 41 4.6.6.2  READ_ALL Sub-Command Summary Status Message .......................................................... 42 4.6.7  PROGRAM_ID Sub-Command.................................................................................................. 43 4.6.8  VERIFY ID Sub-Command ........................................................................................................ 45 4.6.9  LOCK ID Sub-Command............................................................................................................ 48 4.6.10  ERASE ID Sub-Command........................................................................................................ 50 4.6.10.1  ERASE ID Sub-Command Status Message.................................................................................... 51
 December 6, 2006  Proprietary Information  2 Revision 1.0 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...................................................................................... 55 4.7.3  SET Sub-Command..................................................................................................................... 56 4.7.3.1 SET Sub-Command Status Message......................................................................................... 57 4.7.4  READ Sub-Command................................................................................................................. 58 4.7.4.1  READ Sub-Command Status Message .................................................................................... 59 4.7.4.2  READ Sub-Command Summary Status Message.................................................................... 60 4.7.5  PROGRAM Sub-Command........................................................................................................ 61 4.7.5.1  PROGRAM Sub-Command Status Message............................................................................ 62 4.7.6  LOCK Sub-Command................................................................................................................. 63 4.7.6.1  C1G2 LOCK Sub-Command Status Message.......................................................................... 64 5.0  TROUBLESHOOTING............................................................................................................... 65 Chapter 6 No Response from Reader..................................................................................................................... 65 Tags Will Not Read............................................................................................................................... 66 Poor Read Range/Intermittent Tag Reads............................................................................................. 67 APPENDIX A  CRC CALCULATION............................................................................................. 68 List of Figures Figure 1 Packet Format .......................................... 10 Figure 2 Command Message Field Format ............ 12 Figure 3 Response Message Field Format............. 12 Figure 4 Download Command Format.................... 14 Figure 5 PROGRAM Sub-Command Message Format  16 Figure 6 END Sub-Command Message Format..... 17 Figure 7 System Command Format........................ 18 Figure 9 Class 0 Command Format........................ 20 Figure 10 KILL Sub-Command Message Format... 21 Figure 11 KILL Sub-Command Status Message Format  22 Figure 12 SET Sub-Command Message Format ... 23 Figure 13 SET Sub-Command Status Message Format  24 Figure 14 READ Sub-Command Message Format 25 Figure 15 READ Sub-Command Status Message Format  26 Figure 16 READ Sub-Command Status Message Format  27 Figure 17 Class 1 Command Format...................... 28 Figure 18 KILL Sub-Command Message Format... 30 Figure 19 KILL Sub-Command Status Message Format  31 Figure 20 SET Sub-Command Message Format ... 32 Figure 21 SET Sub-Command Status Message Format  33 Figure 22 READ Sub-Command Message Format 34 Figure 23 READ Sub-Command Status Message Format  35 Figure 24 READ Sub-Command Status Message Format  36 Figure 25 SCROLL ID  Sub-Command Message Format  37 Figure 26 SCROLL_ID Sub-Command Status Message Format  38 Figure 27 SCROLL_ID Sub-Command Status Message Format  39 Figure 28 READ_ALL Sub-Command Message Format  40 Figure 29 READ_ALL Sub-Command Status Message Format  41 Figure 30 READ_ALL Sub-Command Status Message Format  42 Figure 31 PROGRAM_ID Sub-Command Message Format  43 Figure 32 PROGRAM_ID Sub-Command Status Message Format  44 Figure 33 VERIFY_ID Sub-Command Message Format  45
 December 6, 2006  Proprietary Information  3 Revision 1.0 Figure 34 VERIFY_ID Sub-Command Status Message Format  46 Figure 35 VERIFY_ID Sub-Command Summary Status Message Format  47 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 ... 56 Figure 44 SET Sub-Command Status Message Format  57 Figure 45 READ Sub-Command Message Format 58 Figure 46 READ Sub-Command Status Message Format  59 Figure 47 READ Sub-Command Summary Status Message Format  60 Figure 48 PROGRAM Sub-Command Message Format  61 Figure 49 PROGRAM Sub-Command Status Message Format  62 Figure 50 LOCK Sub-Command Message Format. 63 Figure 51 LOCK Sub-Command Status Message Format  64
 December 6, 2006  Proprietary Information  4 Revision 1.0 List of Tables  Table 1 IDentity MaX Mobile Reader Pin DefinitionsError! Bookmark not defined. 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... 22 Table 12 SET Sub-Command Message Format..... 23 Table 13 SET Sub-Command Status Field Definitions24 Table 14 READ Sub-Command Field Definitions... 25 Table 15 READ Sub-Command Status Field Definitions  26 Table 16 READ Sub-Command Status Field Definitions  27 Table 17 Class 1 Sub-Commands.......................... 29 Table 18 KILL Sub-Command Field Definitions...... 30 Table 19 KILL Sub-Command Status Field Definitions  31 Table 20 SET Sub-Command Field Definitions...... 32 Table 21 SET Sub-Command Status Field Definitions33 Table 22 READ Sub-Command Field Definitions... 34 Table 23 READ Sub-Command Status Field Definitions  35 Table 24 READ Sub-Command Status Field Definitions  36 Table 24 SCROLL ID Subcommand Field Definitions37 Table 25 SCROLL_ID Sub-Command Status Field Definitions  38 Table 26 SCROLL_ID Sub-Command Status Field Definitions  39 Table 27 READ_ALL Sub-Command Field Definitions  40 Table 28 READ_ALL Sub-Command Status Field Definitions 41 Table 29 READ_ALL Sub-Command Status Field Definitions 42 Table 30 PROGRAM_ID Sub-Command Field Definitions  43 Table 31 PROGRAM_ID Sub-Command Status Field Definitions  44 Table 32 VERIFY_ID Sub-Command Status Field Definitions 46 Table 33 VERIFY_ID Sub-Command Summary Status Field Definitions 47 Table 34 LOCK_ID Sub-Command Field Definitions48 Table 35 LOCK_ID Sub-Command Status Field Definitions  49 Table 36 ERASE_ID Sub-Command Status Field Definitions 51 Table 37 Class 1 Generation 2 Sub-Commands.... 53 Table 38 KILL Sub-Command Field Definitions...... 54 Table 39 KILL Sub-Command Status Field Definitions  55 Table 40 SET Sub-Command Field Definitions...... 56 Table 41 SET Sub-Command Status Field Definitions57 Table 42 READ Sub-Command Field Definitions... 58 Table 43 READ Sub-Command Status Field Definitions  59 Table 44 READ Sub-Command Summary Status Message Field Definitions  60 Table 45 PROGRAM Sub-Command Field Definitions  61 Table 46 PROGRAM Sub-Command Status Field Definitions 62 Table 47 LOCK Sub-Command Field Definitions ... 63 Table 48 LOCK Sub-Command Status Field Definitions  64
 December 06, 2006   Proprietary Information  4 Revision 1.0  1.0 Introduction/Scope Using This Manual  This User’s Guide provides instructions for installing the IDentity MaX Mobile RFID reader and for integrating the host protocol onto a PC based application.  Intended Audience  This manual is intended for use by technical personnel responsible for installing the IDentity MaX Mobile reader and writing PC applications to communicate with it:  • Electrical Engineers • Mechanical Engineers • Software Engineers • Manufacturing Engineers Topics   1  Introduction/Scope  Explains the scope of this manual and intended audience 2  Reader Mechanical and Electrical Information  Describes the physical and electrical characteristics of the reader 3  Installation and Operation  Describes the proper procedures to install and operate the reader 4 Host Protocol  Specifies the protocol used to communicate with the reader 5 Troubleshooting  Lists possible causes and remedies for operating abnormalities Appendix A  CRC Calculation  Example CRC-16 calculation and sample “C” code  Comment [h1]:
 December 6, 2006  Proprietary Information  5 Revision 1.0
 December 6, 2006  Proprietary Information  6 Revision 1.0 2.0 Mechanical and Electrical 2.1 Mechanical Specifications   Dimensions (LxWxD)  12” x 10” x 4”  (not including cables)  Weight  ~12 lbs  Cables and Connectors  Data:  6 ft. Serial Cable with DB-9S (Female) connector  Power:  6 ft. cable with attached power supply using two prong, non-polarized, North American power connector
 December 6, 2006  Proprietary Information  7 Revision 1.0 2.2 Electrical Specifications  Table 1 IDentity MaX Mobile reader Pin Definitions  Pin Number  Pin Description 1  No Connection 2  RXD – Receive Serial Data 3  TXD – Transmit Serial Data 4  No Connection 5  Ground 6  No Connection 7  No Connection 8  No Connection 9  No Connection    Input voltage  120 VAC 60 Hz / 5VDC, 2A max RF output power  30dBm Frequency  UHF band, 902 - 928 MHz Communications Protocol  Serial with CCITT CRC-16 error detection  Communications Parameters  115200 bps, 8 data bits, no parity, 1 stop bit Communications Signal Level  Serial data at RS-232 logic levels Regulatory FCC Part 15
 December 6, 2006  Proprietary Information  8 Revision 1.0 3.0 Installation and Operation  3.1 Installation  The following steps are recommended to properly install the IDentity MaX Mobile 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.  It will need to be within 6 feet of the PC that will be hosting the user application and within 6 feet of an AC power outlet. 4. Plug the attached external AC power supply of the Mobile reader into the AC power outlet. 5. Align the DB 9 connector with the serial port connector on the host PC.  Insert firmly.  Screw down the thumbscrews to ensure retention in the connector.   3.2 Operation  The following steps are required to ensure proper operation of the IDentity MaX Mobile reader:    1. Verify that all power and host PC connections are made. 2. Point the front of the IDentity MaX Mobile reader in the direction of the tags to be scanned. 3. Perform the required operations as specified by the user application and procedures. 4. After all tag transactions have been processed, power down the reader by unplugging the reader from the AC power outlet.
 December 6, 2006  Proprietary Information  9 Revision 1.0 NOTE:  The LED port on the front of the IDentity MaX Mobile reader will not illuminate during any part of the operational procedures.
 December 6, 2006  Proprietary Information  10 Revision 1.0   4.0 Host Protocol  The Host Protocol supports communications between the IDentity MaX Mobile 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 Mobile 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.1  Packet Format  The protocol is Byte Oriented (packets and messages are a sequence of bytes).  All multi-byte commands, parameters and responses are encoded MSB first.  All bit field parameters or responses are encoded left justified (MSBit in high order bit of MSByte).    Figure 1 Packet Format    MSB                                                                                                                                LSB  SOF (0x01)  Length  Message  CRC 1 byte  1 byte  1-128 bytes  2 bytes
 December 6, 2006  Proprietary Information  11 Revision 1.0 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  Proprietary Information  12 Revision 1.0 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.  Figure 2 Command Message Field Format  Response messages contain a one byte “Status” field that is common to all reader responses.  The “Status” field contains an indication of the reader status.  Following the status byte is the “Response” field that could contain zero to many responses associated with the “Status” field.   Figure 3 Response Message Field Format MSB                                                                                                                LSB  Message Command  Parameters 1 byte  127 bytes MSB                                                                                                             LSB Message Status  Response 1 byte  127 bytes
 December 6, 2006  Proprietary Information  13 Revision 1.0 The “Status” field contains the following status codes:  Table 2 Status Field Status Codes  Status  Status Code  Description STATUS_ERROR  0xFF  The command processing is complete with errors or faults detected. STATUS_COMPLETE  0x00  The command has completed with no errors or faults encountered. STATUS_IN_PROGRESS  0x01  The reader is still processing the command.  More response data is to be expected.
 December 6, 2006  Proprietary Information  14 Revision 1.0  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    4.3.1  DOWNLOAD Command  The DOWNLOAD command is used to download new application software to the reader.  Figure 4 Download Command Format    Command  Code  Description DOWNLOAD  0x00  Download new application software to the reader SYSTEM  0x01  Set system operational mode and get software versions TAG_0  0x02  Class 0 tag commands TAG_1  0x03  Class 1 tag commands TAG_G2  0x04  Class 1 Generation 2 commands MSB                                                                                                                               LSB Message Command Code  Parameters 0x00  Sub-Command Code  Parameters 1 byte  1 byte  126 bytes
 December 6, 2006  Proprietary Information  15 Revision 1.0 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  Description  Return Status Message NOTIFY  0x00 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.  If the reader receives this command it will reboot the reader and then respond Yes START  0x01 Only the reader accepts this sub-command.  Notifies the reader to erase the application area of flash memory.  During the flash erase process, the reader may return several status messages of IN_PROGRESS before returning a completion status. Yes  PROGRAM  0x02 Only the reader accepts this sub-command.  A variable length message containing data to beprogrammed into flash.  The reader will calculate a cumulative CRC of the data as it is being downloaded During the flash programming process, the reader may return several status messages of IN_PROGRESS before returning a completion status. Yes END  0x03 Only the reader accepts this sub-command.  Notifies the reader that there are no more PROGRAM messages.  Upon receipt, the reader will compare CRC values then program the application header into flash.  During the flash programming process, the reader may return several status IN_PROGRESS messages  before returning a completion status. Yes REBOOT  0x04  Both the reader and the application accept this sub-command. After responding to this command the system will reboot.    Yes
 December 6, 2006  Proprietary Information  16 Revision 1.0 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  Command Code Parameters  Sub-Command Code Parameters 0x00  0x02  Address  Data 1 byte  1 byte  4 bytes  122 bytes
 December 6, 2006  Proprietary Information  17 Revision 1.0  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.  The END sub-command contains the following message format:  Figure 6 END Sub-Command Message Format      Table 5 END Sub-Command Field Definitions     MSB                                                                                                                               LSB Message Command Code  Parameters  Sub-Command Code  Parameters 0x00  0x03  CRC  Start Address  Parameters 1 byte  1 byte  2 bytes  4 bytes  120 bytes Field  Definition CRC  2-byte CCITT CRC-16 of all program data (forward with 0xFFFF pre-load) START_ADDRESS  4-byte address at which to start code execution
 December 6, 2006  Proprietary Information  18 Revision 1.0 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.    Figure 7 System Command Format    The SYSTEM command returns the following response message:  <STATUS><LDR_SW_VER><APP_SW_VER><MODE>  Where:  <LDR_SW_VER> - The current loader software version mark (0x0000, 0xFFFF)  <APP_SW_VER> - The current application software version mark (0x0000, 0xFFFF)  <MODE> - The current MODE setting (0x01, 0x02)  The loader supports the SYSTEM command with the MODE value being ignored.  In addition to the software version marks, the loader response returns a current MODE value of 0x00.  MSB                                                                                                                               LSB  Message Command Code  Parameters 0x01  Sub-Command Code  Parameters 1 byte  1 byte  126 bytes
 December 6, 2006  Proprietary Information  19 Revision 1.0 4.4.1  SYSTEM Sub-Commands  The SYSTEM command utilizes sub-commands and parameters in the following manner:   Table 6 System Sub-Commands  Note: when coming out of STANDBY and returning to the ENABLED state, allow 200ms before sending commands to the IDentity MaX Mobile reader. Sub-Command  Code  Type Command  Description  Return Status Message NO_CHG  0x00  Mode  No change (the system mode is not changed)  Yes STANDBY  0x01  Mode  This is a system mode command: STANDBY (0x01) - Processor ON, all RF circuitry OFF  Yes ENABLED  0x02  Mode  Processor, receiver circuitry, and PLL ON, TX OFF  Yes RF_ON  0x80  Test  Turn ON the RF transmitter  Yes
 December 6, 2006  Proprietary Information  20 Revision 1.0 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    4.5.1  Class 0 Sub-Commands  The Class 0 command utilizes sub-commands and parameters in the following manner:   Table 7 Class 0 Sub-Commands  Sub-Command  Code  Description  Return Status Message KILL  0xFF  Kill Class 0 tag  Yes SET  0x00  Set read parameters  Yes READ  0x01  Read Class 0 tag IDs using the following parameters  Yes   MSB                                                                                                                               LSB Message Command Code  Parameters 0x02  Sub-Command Code  Parameters 1 byte  1 byte  1-126 bytes
 December 6, 2006  Proprietary Information  21 Revision 1.0 4.5.2  KILL Sub-Command  The KILL sub-command contains the following command message format:   Figure 9 KILL Sub-Command Message Format   Table 8 KILL Sub-Command Fiel d Definitions  Field  Definition SINGULATION_MODE  0x00 = ID0, 0x01 = ID1, or 0x02 = ID2 SINGULATION_BIT_COUNT  Number of singulation bits to follow (0x00, 0x7F) SINGULATION_BITS  Singulation bits PASSCODE  24-bit pass code   MSB                                                                                                                          LSB  Message Command  Parameters  Sub-Command  Parameters 0x02  0xFF  Singulation Mode  Singulation Bit Count  Singulation Bits  Pass Code   1 byte  1 byte  1 byte  1 byte  12 bytes  3 bytes  109 bytes
 December 6, 2006  Proprietary Information  22 Revision 1.0 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   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)   MSB                                                                                                                                 LSB  Message Status  Response Status Code  Tag Count   0x00     1 byte  1 byte  126 bytes
 December 6, 2006  Proprietary Information  23 Revision 1.0 4.5.3     SET Sub-Command  The SET sub-command changes the power level of the reader and contains the following message format:  Figure 11 SET Sub-Command Message Format     Table 10 SET Sub-Command Message Format     MSB                                                                                                                 LSB Message Command  Parameters  Sub-Command  Parameters 0x02  0x00  RF Level  Mod Depth   1 byte  1 byte  1 byte  1 byte  124 bytes Field  Definition RF power level to be used for reading Class 0 tags NO_CHG (0x00) - The current setting is to remain unchanged RF_LEVEL  Setting (0x01, 0x10) - +15 dBm to +30 dBm in 16 steps of 1 dB Modulation depth to be used for reading Class 0 tags NO_CHG (0x00) - The current setting is to remain unchanged  MOD_DEPTH Setting (0x01, 0x20) – 20 % to 95 % in steps of ~2.42 %
 December 6, 2006  Proprietary Information  24 Revision 1.0 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      Table 11 SET Sub-Command Status Field Definitions  Field  Definition STATUS CODE  This field should be set to STATUS_COMPLETE RF_LEVEL  This the Forward Power A/D target value for power control MOD_DEPTH  The current Modulation Depth setting for reading Class 0 tags MSB                                                                                                                        LSB MESSAGE Status  Response  RF Level  Mod Depth   0x00       1 byte  1 byte  1 byte  125 bytes
 December 6, 2006  Proprietary Information   25 Revision 1.0   4.5.4  READ Sub-Command  The READ sub-command is used with Class 0 (read-only capability), and when reading specific tags. The READ sub-command contains the following message format:  Figure 13 READ Sub-Command Message Format    Table 12 READ Sub-Command Field Definitions  Field  Definition SINGULATION_MODE  0x00=ID0, 0x01=ID1, or 0x02=ID2 FILTER_BIT_COUNT  Number of filter bits to follow (0x00.0x7F).  If (0x80.0xFF), treat as negative value of filter bit count and treat FILTER_BITS as ID1 data. FILTER_BITS  Holding filter bits   MSB                                                                                                                       LSB Message Command  Parameters  Sub-Command   Parameters 0x02  0x01  Singulation Mode  Filter Bit Count  Filter_Bits   1 byte  1 byte  1 byte  1 byte  16 bytes  108 bytes
 December 6, 2006  Proprietary Information      26 Revision 1.0 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   Table 13 READ Sub-Command Status Field Definitions  Field  Definition STATUS CODE  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.  The 2 high order bits of the IDs are used to determine the number of bits in the tag ID per the EPC specification.).  If either of the first two bits are a “1” then the tag is 64 bits long.  If the fifth bit is a “1” and the first two bits are “00” the tag is 64-bits long otherwise if the first two bits are “00” and the fifth bit is “0”, then the tag is 96-bits long.   If any tags are filtered and read, this command will return multiple messages.  After all tags have been reported, the reader will send a final summary message to the host. MSB                                                                                                                   LSB  Message Status  Response Status Code  Tag Count  Tag ID 0x01     1 byte  1 byte  126 bytes
 December 6, 2006  Proprietary Information      27 Revision 1.0 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   Table 14 READ Sub-Command Status Field Definitions  Field  Definition STATUS CODE  This field should be set to STATUS_COMPLETE TOTAL_TAG_COUNT  Total number of tags reported               MSB                                                                                                                               LSB  Message Status  Response Status Code Total Tag Count   0x00     1 byte  2 bytes  125 bytes
 December 6, 2006  Proprietary Information      28 Revision 1.0 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  Parameters 0x03  Sub-Command Code  Parameters 1 byte  1 byte  1-126 bytes
 December 6, 2006  Proprietary Information      29 Revision 1.0  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  Return Status Message KILL  0xFF  Kill a Class 1 tag  Yes SET  0x00  This command is used to set the RF power level and modulation depth.  Yes READ  0x01  Read Class 1 tag IDs using the following parameters.  This read utilizes the SCROLL_ALL_ID command.  Yes PROGRAM_ID  0x02  All Class 1 tags receiving this command will program the specified tag id in memory.  Yes VERIFY_ID  0x03 All tags receiving this command will reply with their CRC, followed by their entire ID code, and  their password.  A tag that has successfully executed the LOCK_ID command ignores the VERIFY_ID command. Yes LOCK_ID  0x04  This command prevents any further modification of the tag ID, CRC, and password.  Yes ERASE_ID  0x05 This 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. Yes PING_READ  0x06  Read Class 1 tag IDs using the specified parameters.  This read utilizes the PING command.  Yes SCROLL_ID  0x09  The SCROLL ID sub-command is used to search for tags in dense (very closely grouped) tag environments.   Yes READ_ALL  0x0A This command will read and report Class 1 tags that do not conform to the EPC tag data standards.   It utilizes the Scroll_All_ID tag command. Yes
 December 6, 2006  Proprietary Information      30 Revision 1.0 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.  The KILL sub-command contains the following command message format:  Figure 17 KILL Sub-Command Message Format       Table 16 KILL Sub-Command Field Definitions  Field  Definition TAG_ID_BIT_COUNT  Number in the Tag ID (64, 96,) PASSWORD  Tag 8-bit password TAG_ID  This is the Tag ID to be used in addressing a single tag that is to be killed   MSB                                                                                                                            LSB  Message Command  Parameters  Sub-Command  Parameters 0x03  0xFF  Tag Id Bit Count  Password  Tag Id   1 byte  1 byte  1 byte  1 byte  12 bytes  112 bytes
 December 6, 2006  Proprietary Information      31 Revision 1.0 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   Table 17 KILL Sub-Command Status Field Definitions  Field  Definition STATUS  This field should be set to STATUS_COMPLETE TAG_COUNT  Number of tags killed (0x00, 0x01) MSB                                                                                                                                 LSB  Message Status  Response Status Code  Tag Count   0x00     1 byte  1 byte  126 bytes
 December 6, 2006  Proprietary Information      32 Revision 1.0 4.6.3  SET Sub-Command  The SET sub-command contains the following message format:  Figure 19 SET Sub-Command Message Format   Table 18 SET Sub-Command Field Definitions     MSB                                                                                                                                 LSB Message Command  Parameters  Sub-Command  Parameters 0x03  0x00  RF Level  Mod Depth   1 byte  1 byte  1 byte  1 byte  124 bytes Field  Definition RF power level to be used for reading Class 1 tags NO_CHG (0x00) - The current RF setting is to remain unchanged RF_LEVEL Setting (0x01 . . . 0x10) - +15 dBm to +30 dBm in 16 steps of 1 dB Modulation depth to be used for reading Class 1 tags NO_CHG (0x00) - The current RF setting is to remain unchanged  MOD_DEPTH Setting (0x01 . . . 0x20) – 20 % to 95 % in steps of ~2.42 %
 December 6, 2006  Proprietary Information      33 Revision 1.0 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    Table 19 SET Sub-Command Status Field Definitions  Field  Definition STATUS CODE  This field should be set to ERR_NONE RF_LEVEL  This is the Forward Power A/D target value for power control MOD_DEPTH  This is the current Modulation Depth setting           MSB                                                                                                                               LSB Message Status  Response  RF level  Mod Depth   0x00       1 byte  1 byte  1 byte  125 bytes
 December 6, 2006  Proprietary Information      34 Revision 1.0 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.  The READ sub-command contains the following message format:  Figure 21 READ Sub-Command Message Format   Table 20 READ Sub-Command Field Definitions  Field  Definition FILTER_BIT_COUNT  Number of filter bits to follow (0..96).  Filter bit count of 0 indicates no filter bits. FILTER_BITS  Holding filter bits  If any tags are filtered and read, this command will return multiple messages.  MSB                                                                                                                               LSB Message Command  Parameters  Sub-Command   Parameters 0x03  0x01  Filter Bit Count  Filter_Bits   1 byte  1 byte  1 byte  16 bytes  109 bytes
 December 6, 2006  Proprietary Information      35 Revision 1.0 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   Table 21 READ Sub-Command Status Field Definitions  Field  Definition STATUS CODE  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.  The 2 high order bits of the IDs are used to determine the number of bits in the tag ID per the EPC specification.).  If either of the first two bits are a “1” then the tag is 64 bits long.  If the fifth bit is a “1” and the first two bits are “00” the tag is 64-bits long otherwise if the first two bits are “00” and the fifth bit is “0”, then the tag is 96-bits long.  If any tags are singulated and read, this command will return multiple messages.  After all tags have been reported, the reader will send a final summary message to the host.   MSB                                                                                                                               LSB Message Status  Response Status Code  Tag Count  Tag Id 0x01     1 byte  1 byte  126 bytes
 December 6, 2006  Proprietary Information      36 Revision 1.0 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    Table 22 READ Sub-Command Status Field Definitions  Field  Definition STATUS CODE  This field should be set to STATUS_COMPLETE TOTAL_TAG_COUNT  Total number of tags reported       MSB                                                                                                                               LSB Message Status  Response Status Code Total Tag Count   0x00     1 byte  2 bytes  125 bytes
 December 6, 2006  Proprietary Information      37 Revision 1.0 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.  The Scroll ID sub-command status message contains the following message format:  Figure 24 SCROLL ID  Sub-Command Message Format   Table 23 SCROLL ID Subcommand Field Definitions Field Definition MSB                                                                                                                                                         LSB  Message Command  Parameters  Sub-Command   Parameters 0x03  0x09  Filter Bit Count  Filter_Bits   1 byte  1 byte  1 byte  16 byte  109 bytes Field  Definition FILTER_BIT_COUNT  Number of filter bits to follow (0..96). Filter bit 0 indicates no filter bits. FILTER_BITS  Holding filter bits.
 December 6, 2006  Proprietary Information      38 Revision 1.0 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    Table 24 SCROLL_ID Sub-Command Status Field Definitions  Field  Definition STATUS CODE  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.  The 2 high order bits of the IDs are used to determine the number of bits in the tag ID per the EPC specification.).  If either of the first two bits are a “1” then the tag is 64 bits long.  If the fifth bit is a “1” and the first two bits are “00” the tag is 64-bits long otherwise if the first two bits are “00” and the fifth bit is “0”, then the tag is 96-bits long.  If any tags are singulated and read, the SCROLL_ID command will return multiple messages. MSB                                                                                                                               LSB Message Status  Response Status Code  Tag Count  Tag ID 0x01     1 byte  1 byte  126 bytes
 December 6, 2006  Proprietary Information      39 Revision 1.0 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   Table 25 SCROLL_ID Sub-Command Status Field Definitions  Field  Definition STATUS CODE  This field should be set to STATUS_COMPLETE TOTAL_TAG_COUNT  Total number of tags reported  MSB                                                                                                                               LSB Message Status  Response Status Code Total Tag Count   0x00     1 byte  2 bytes  125 bytes
 December 6, 2006  Proprietary Information      40 Revision 1.0 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. The READ_ALL sub-command contains the following message format:    Figure 27 READ_ALL Sub-Command Message Format   Table 26 READ_ALL Sub-Command Field Definitions  Field  Definition FILTER_BIT_COUNT  Number of filter bits to follow (0..96).  Filter bit count of 0 indicates no filter bits. FILTER_BITS  Holding filter bits   MSB                                                                                                                               LSB Message Command  Parameters  Sub-Command   Parameters 0x03  0x0A  Filter Bit Count  Filter_Bits   1 byte  1 byte  1 byte  16 bytes  109 bytes
 December 6, 2006  Proprietary Information      41 Revision 1.0 4.6.6.1 READ_ALL Sub-Command Status Message    The READ_ALL sub-command status message contains the following message format:  Figure 28 READ_ALL Sub-Command Status Message Format   Table 27 READ_ALL Sub-Command Status Field Definitions  Field  Definition STATUS CODE  This field should be set to IN_PROGRESS TAG_COUNT  The number of tags reported in this message Tag ID Length - Tag ID A sequence of 1 or more tag lengths combined with tag IDs.  The first byte will contain the length of the tag ID that follows, whether 64 or 96 bit (0x40 or 0x60), and the bytes that follow will contain the Tag ID up to the length specified in the first byte.  Subsequent tag IDs will follow this same pattern.  If any tags are singulated and read, this command will return multiple messages.  After all tags have been reported, the reader will send a final summary message to the host.   MSB                                                                                                                               LSB Message Status  Response Status Code  Tag Count  Tag ID Length - Tag ID 0x01     1 byte  1 byte  126 bytes
 December 6, 2006  Proprietary Information      42 Revision 1.0  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    Table 28 READ_ALL Sub-Command Status Field Definitions  Field  Definition STATUS CODE  This field should be set to STATUS_COMPLETE TOTAL_TAG_COUNT  Total number of tags reported        MSB                                                                                                                               LSB Message Status  Response Status Code Total Tag Count   0x00     1 byte  2 bytes  125 bytes
 December 6, 2006  Proprietary Information      43 Revision 1.0 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.  The reader will determine if the tag ID values were properly programmed and report any errors.  Figure 30 PROGRAM_ID Sub-Command Message Format     Table 29 PROGRAM_ID Sub-Command Field Definitions  Field  Definition Tag ID Bit Count  This field should be set to the number of bits in the tag id PASSWORD  This field contains the password received from the EPC tag, MSB first TAG ID  This field contains the EPC tag ID code (up to 96 bits), MSB first MSB                                                                                                                                 LSB  Message Command  Parameters  Sub-Command  Parameters 0x03  0x02  Tag ID Bit Count  Password  Tag ID   1 byte  1 byte  1 byte  1 byte  12 bytes  112 bytes
 December 6, 2006  Proprietary Information      44 Revision 1.0 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.  Otherwise, an error status message is sent indicating any of the following error conditions upon programming a tag:   ERR_PROG_ID_FAIL ERR_TAG_READ_FAIL  Figure 31 PROGRAM_ID Sub-Command Status Message Format    Table 30 PROGRAM_ID Sub-Command Status Field Definitions  Field  Definition STATUS CODE  This field should be set to STATUS_COMPLETE 0x00 ERR_PROG_ID_FAIL  This field would be set to 0xEB ERR_TAG_READ_FAIL  This field would be set to 0xEA    MSB                                                                                                                               LSB Message Status  Response Status Code   0x00   1 byte  127 bytes
 December 6, 2006  Proprietary Information      45 Revision 1.0 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.  But since they will only return 64-bits, the reader will misinterpret this and return an error.    The VERIFY_ID sub-command contains the following message format:  Figure 32 VERIFY_ID Sub-Command Message Format  MSB                                                                                                                                 LSB Message Command  Parameters  Sub-Command  Parameters 0x03  0x03   1 byte  1 byte  126 bytes
 December 6, 2006  Proprietary Information      46 Revision 1.0 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.  The VERIFY ID sub-command status message contains the following message format:  Figure 33 VERIFY_ID Sub-Command Status Message Format     Table 31 VERIFY_ID Sub-Command Status Field Definitions   Upon error, an ERR_TAG_READ_FAIL status message ( 0xEA) is sent to the host.  MSB                                                                                                                               LSB Message Status  Response 0x00  Tag Count  EPC ID Code  Password  CRC   1 byte  1 byte  12 bytes  1 byte  2 bytes  111 bytes Field  Definition STATUS CODE  This field should be set to STATUS_COMPLETE TAG COUNT  This field indicates the number of tags to be reported in this message EPC ID CODE  This field contains the EPC tag ID code (up to 96 bits), MSB first PASSWORD  This field contains the 8-bit password received from the EPC tag, MSB first CRC  This field contains the 16-bit CRC response from the tag, MSB first
 December 6, 2006  Proprietary Information      47 Revision 1.0 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   Table 32 VERIFY_ID Sub-Command Summary Status Field Definitions  Field  Definition STATUS CODE  This field should be set to STATUS_COMPLETE TOTAL_TAG_COUNT  Total number of tags reported  MSB                                                                                                                               LSB  Message Status  Response Status Code Total Tag Count   0x00     1 byte  2 byte  125 bytes
 December 6, 2006  Proprietary Information      48 Revision 1.0 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.  If the reader gets the CRC, Tag ID, and Password from the tag, the LOCK_ID command failed.  No response signifies a successful LOCK_ID command execution.  Failure to lock a tag is reported back with the appropriate status error code.   Figure 35 LOCK_ID Sub-Command Message Format     Table 33 LOCK_ID Sub-Command Field Definitions  Field  Definition PASSWORD  8-bit Password MSB                                                                                                                                 LSB Message Command  Parameters  Sub-Command  Parameters 0x03  0x04  Password   1 byte  1 byte  1 byte  125 bytes
 December 6, 2006  Proprietary Information      49 Revision 1.0 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.  Otherwise, an error status message is sent indicating any of the following error conditions upon locking a tag:  ERR_TAG_READ_FAIL ERR_LOCK_ID_FAIL  Figure 36 LOCK_ID Sub-Command Status Message Format   Table 34 LOCK_ID Sub-Command Status Field Definitions  Field  Definition STATUS CODE  This field should be set to STATUS_COMPLETE 0x00 ERR_INVALID_PARAM  This will return a 0xFD ERR_TAG_READ_FAIL  This will return a 0xEA ERR_LOCK_ID_FAIL  This will return a 0xE8  MSB                                                                                                                               LSB Message Status  Response Status Code   0x00   1 byte  127 bytes
 December 6, 2006  Proprietary Information      50 Revision 1.0 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.  If the reader receives non-zero values for the CRC, Tag ID, and Password from the tag, the ERASE_ID command failed.  A successful ERASE_ID command execution is defined as a tag response of all zeros in the CRC, Tag ID, and Password fields.  Failure to erase a tag is reported back with the appropriate status error code.   Figure 37 ERASE_ID Sub-Command Message Format   MSB                                                                                                                                 LSB Message Command  Parameters  Sub-Command  Parameters 0x03  0x05   1 byte  1 byte  126 bytes
 December 6, 2006  Proprietary Information      51 Revision 1.0 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.  Otherwise, an error status message is sent indicating any of the following error conditions upon erasing a tag:   ERR_ERASE_ID_FAIL ERR_TAG_READ_FAIL  Figure 38 ERASE_ID Sub-Command Status Message     Table 35 ERASE_ID Sub-Command Status Field Definitions         MSB                                                                                                                               LSB Message Status  Response Status Code   0x00   1 byte  127 bytes Field  Definition STATUS CODE  This field should be set to STATUS_COMPLETE ERR_ERASE_ID_FAIL  This field will return a 0xE9 ERR_TAG_READ_FAIL  This field will return a 0xEA
 December 6, 2006  Proprietary Information      52 Revision 1.0 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  Parameters 0x04  Sub-Command Code  Parameters 1 byte  1 byte  1-126 bytes
 December 6, 2006  Proprietary Information      53 Revision 1.0    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  Return Status Message KILL  0xFF  Kill a Class 1 Generation 2 tag  Yes SET  0x00  This command is used to set the RF power level and modulation depth.  Yes READ  0x01  Read Class 1 Generation 2 tags   Yes PROGRAM  0x02  All Class 1 Generation 2 tags receiving this command will program the specified tag id in memory.  Yes LOCK  0x03  This command prevents any further modification of the data stored on the tag  Yes
 December 6, 2006  Proprietary Information      54 Revision 1.0  4.7.2  KILL Sub-Command  The KILL sub-command is used to render tags non-operational.  The KILL sub-command contains the following message format:  Figure 40 KILL Sub-Command Message Format     Table 37 KILL Sub-Command Field Definitions  Field  Definition Q Value  Q Value for interrogation session with tags  Tag ID Bit Count  This field should be set to the number of bits in the tag id Kill Password  The KILL password that is programmed onto the tag to be killed TAG_ID  This is the Tag ID bits to be used in addressing a single tag that is to be killed  MSB                                                                                                                               LSB Message Command  Parameters  Sub-Command   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
 December 6, 2006  Proprietary Information      55 Revision 1.0 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   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)  MSB                                                                                                                                 LSB  Message Status  Response Status Code  Tag Count   0x00     1 byte  2 bytes  126 bytes
 December 6, 2006  Proprietary Information      56 Revision 1.0 4.7.3  SET Sub-Command  The SET sub-command contains the following message format:  Figure 42 SET Sub-Command Message Format   Table 39 SET Sub-Command Field Definitions   MSB                                                                                                                                 LSB Message Command  Parameters  Sub-Command  Parameters 0x04  0x00  RF Level  Mod Depth   1 byte  1 byte  1 byte  1 byte  124 bytes 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 unchanged RF_LEVEL Setting (0x01 . . . 0x10) - +15 dBm to +30 dBm in 16 steps of 1 dB Modulation depth to be used for reading Class 1 Generation 2 tags NO_CHG (0x00) - The current RF setting is to remain unchanged MOD_DEPTH Setting (0x01 . . . 0x20) – 20 % to 95 % in steps of ~2.42 %
 December 6, 2006  Proprietary Information      57 Revision 1.0 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    Table 40 SET Sub-Command Status Field Definitions  Field  Definition STATUS CODE  This field should be set to ERR_NONE RF_LEVEL  This is the Forward Power A/D target value for power control MOD_DEPTH  This is the current Modulation Depth setting     MSB                                                                                                                               LSB Message Status  Response  RF level  Mod Depth   0x00       1 byte  1 byte  1 byte  125 bytes
 December 6, 2006  Proprietary Information      58 Revision 1.0  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     Table 41 READ Sub-Command Field Definitions  Field  Definition Q Value  Q Value for interrogation session with tags FILTER_BIT_COUNT  Number of filter bits to follow (0..96).  Filter bit count of 0 indicates no filter bits. FILTER_BITS  Holding filter bits, based on Filter_Bit_Count    MSB                                                                                                                               LSB Message Command  Parameters  Sub-Command   Parameters 0x04  0x01  Q value  Filter Bit Count  Filter_Bits   1 byte  1 byte  1 byte  1 byte  32 bytes  92 bytes
 December 6, 2006  Proprietary Information      59 Revision 1.0 4.7.4.1  READ Sub-Command Status Message   Figure 45 READ Sub-Command Status Message Format    Table 42 READ Sub-Command Status Field Definitions  Field  Definition STATUS CODE  This field should be set to IN_PROGRESS TAG_COUNT  The number of tags reported in this message Tag ID Length - Tag ID A sequence of 1 or more tag lengths combined with tag IDs.  The first byte will contain the length of the tag ID that follows, whether 64 or 96 bit (0x40 or 0x60), and the bytes that follow will contain the Tag ID up to the length specified in the first byte.  Subsequent tag IDs will follow this same pattern.  If any tags are singulated and read, this command will return multiple messages.  After all tags have been reported, the reader will send a final summary message to the host.     MSB                                                                                                                               LSB Message Status  Response Status Code  Tag Count  Tag ID Length - Tag ID 0x01     1 byte  1 byte  126 bytes
 December 6, 2006  Proprietary Information      60 Revision 1.0 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.  Figure 46 READ Sub-Command Summary Status Message Format   Table 43 READ Sub-Command Summary Status Message Field Definitions  Field  Definition STATUS CODE  This field should be set to STATUS_COMPLETE TOTAL_TAG_COUNT  Total number of tags reported    MSB                                                                                                                               LSB Message Status  Response Status Code Total Tag Count   0x00     1 byte  2 bytes  125 bytes
 December 6, 2006  Proprietary Information      61 Revision 1.0 4.7.5  PROGRAM Sub-Command  The PROGRAM sub-command is used to program an EPC ID into a Class 1 generation 2 tag.  The PROGRAM sub-command contains the following message format:  Figure 47 PROGRAM Sub-Command Message Format     Table 44 PROGRAM Sub-Command Field Definitions  Field  Definition Q Value  Q Value for interrogation session with tags Tag ID Bit Count  This field should be set to the number of bits in the tag id Kill Password  The KILL password to be programmed onto the tag to allow it to be killed in the future TAG_ID  This is the Tag ID to be programmed into the tag  MSB                                                                                                                               LSB Message Command  Parameters  Sub-Command   Parameters 0x04  0x02  Q value  Tag ID Bit Count  Kill Password  Tag ID   1 byte  1 byte  1 byte  1 byte  4 bytes  32 bytes  88 bytes
 December 6, 2006  Proprietary Information      62 Revision 1.0 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   Table 45 PROGRAM Sub-Command Status Field Definitions  Field  Definition STATUS  This field should be set to STATUS_COMPLETE TAG_COUNT  Number of tags programmed   MSB                                                                                                                                 LSB  Message Status  Response Status Code  Tag Count   0x00     1 byte  2 bytes  126 bytes
 December 6, 2006  Proprietary Information      63 Revision 1.0 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 sub-command contains the following message format:  Figure 49 LOCK Sub-Command Message Format     Table 46 LOCK Sub-Command Field Definitions  Field  Definition Q Value  Q Value for interrogation session with tags Tag ID Bit Count  This field holds the number of bits in the tag id TAG_ID  This is the ID of the tag to be locked   MSB                                                                                                                               LSB Message Command  Parameters  Sub-Command   Parameters 0x04  0x03  Q value  Tag ID Bit Count  Tag ID   1 byte  1 byte  1 byte  1 byte  32 bytes  92 bytes
 December 6, 2006  Proprietary Information      64 Revision 1.0 4.7.6.1  C1G2 LOCK Sub-Command Status Message   Figure 50 LOCK Sub-Command Status Message Format    Table 47 LOCK Sub-Command Status Field Definitions  Field  Definition STATUS CODE  This field should be set to STATUS_COMPLETE TAG_COUNT  The number of tags locked MSB                                                                                                                               LSB Message Status  Response Status Code  Tag Count   0x00     1 byte  1 byte  126 bytes
 December 6, 2006  Proprietary Information     65 Revision 1.0 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  Solution Check that the external power supply is plugged into a 120 VAC 60 Hz outlet   Check physical  connection to serial port of the Host PC   Check that  serial communications parameters are correct (115200bps, 8 data bits, no parity, 1 stop bit)   Check that serial commands are properly constructed  Correct voltage problem.      Correct any connection issue at serial interface connector.   Correct settings of serial communications port.    Correct commands to conform to serial protocol as specified in Section 4
 December 6, 2006  Proprietary Information     66 Revision 1.0 Tags Will Not Read  Checklist  Solution Check that the external power supply is plugged into a 120 VAC 60 Hz outlet   Check for proper reader response to commands    Check reader response to serial commands for error codes   Check serial command to reader for proper command   Check for working tags in read zone    Check tag environment    Correct voltage problem.      If reader does not respond per serial protocol as specified in Section 4, perform “No Response” troubleshooting.  If Status field of reader response is “FF”, look up error code in Response field in section 4    Correct command (i.e., Make sure to use Class 0 read command for Class 0 tags).  Make sure tags are functional, and making contact with the top of the reader.  UHF tags will not function well in some environments, such as in close proximity to metal.
 December 6, 2006  Proprietary Information     67 Revision 1.0 Intermittent Tag Reads  Checklist  Solution  Check for working tags in read zone   Check tag environment    Make sure tags are functional, and in contact with the top of the reader.  UHF tags will not function well in some environments, such as in close proximity to metal.
 December 6, 2006  Proprietary Information     68 Revision 1.0 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.  A typical command string, the Notify Command, with this CRC Calculated follows:  01 05 00 00 27 6C  Where the 01 is the SOF byte, the 05 is the length and 00 00 is the command for the Notify Command with the 276C as the correctly calculated CRC.  Here is a “C” language listing that shows the CCITT CRC-16 calculation.  // *************************************************************************************************** // // CRC_Calc // Calculates CCITT-CRC for IDentity MaX Mobile RFID reader  // // Version 1.0 // // This routine calculates the two byte CCITT-CRC for command and data messages for the IDentity MaX Mobile reader UHF RFID // Reader. // // Inputs: Place the entire message to be transmitted including SOH and two empty bytes for CRC into an array. // In this demo case CommandArray and the total length of the command in the length variable, CommandLength // are passed. These are passed into "bytearray[]" and "arraylength" variables of the routine. // // Outputs: This routine will return the value of the two-byte CRC which is calculated in the variable "crc". // // The routine begins with array index [1], and goes to array length -2. You will have to move the two bytes returned // into the last two bytes of the array before transmitting the command.  You can also use it to verify received  // commands by checking the entire length, i.e. set your length to two more than the actual length of the command.  If  // the returned, the CRC is "0000" then the command is valid // // ****************************************************************************************************  #include <stdio.h> #include <stdlib.h>  unsigned short CRC_Calc(char bytearray[256],int arraylength) {   unsigned short crc = 0xFFFF;         // Preload to FFFF  unsigned short tempresults;     // Just a temporary results holder  unsigned short bitindex;     // 0 - 7   unsigned short byteindex;          // The byte pointer into the byte  // array that holds
 December 6, 2006  Proprietary Information     69 Revision 1.0 // the command to be checked.                unsigned char  placeholder;          // A place to put the byte while we          // work on it.    for (byteindex = 1; byteindex <= (arraylength - 3); byteindex++)  // begin checking after SOH and          // before CRC bytes  {   placeholder = bytearray[byteindex];     for(bitindex = 0; bitindex <= 7; bitindex++)         {         tempresults = (crc >> 15) ^ (placeholder >> 7);    // Shift CRC right 15 bits then do a          // bitwise XOR         crc <<= 1;           // Shift CRC left one bit and store it          // in CRC         if(tempresults)             {             crc ^= 0x1021;                         // Standard CCITT Polynomial // X16+X12+X5+1             }         placeholder <<= 1;         }  }   return crc;            // Returns the CRC calculated in          // the variable crc }

Navigation menu