CAEN UHF RFID READERS COMMUNICATION PROTOCOL Technical Information Manual Revision n.
Scope of Manual The goal of this manual is to provide the basic information to work with the CAEN UHF RFID READERS Communication Protocol. Reference Document [RD1] Reader Protocol 1.0 – Working Draft Version of 25 August 2004 – Document revision 33 - EPCGlobal [RD2] EPC Radio Frequency Identity Protocols Class-1 Generation-2 UHF RFID Protocol for Communications at 860MHz – 960MHz – Version 1.0.
Index Scope of Manual .......................................................................................................................... 2 Reference Document ................................................................................................................... 2 Index.......................................................................................................................................... 3 List of Tables ...................................................................
1 Introduction 4 CAEN UHF RFID Readers Communication Protocol – Technical Information Manual
General Information This document describes the message format of the communication protocol used by the host and the reader in order to issuing commands and reply with responses. The protocol is based on the Attribute Value Pair (AVP) schema and foresees a message header in order to identify the message scope. The command set and the firmware architecture draw inspiration from the Reader Protocol 1.
2 Protocol Specification 6 CAEN UHF RFID Readers Communication Protocol – Technical Information Manual
CAEN UHF RFID Reader protocol uses two logical communication channels: one for synchronous commands and one for asynchronous notifications. Command channel is mandatory and, at now, it is implemented on top of a TCP/IP socket (port 1000) and on RS232 while notification channels are implemented only with sockets. All the messages (commands, responses and notifications) are composed by a header and a body. In all cases the body of the message is a list of attribute-value pairs.
Attribute types Code 0x01 0x02 0x0E 0x0F Description CommandName: the command to be executed. All the commands are specified in the relevant table. Attribute value is 2 bytes long. ResultCode: a code representing an indication on the result of the command. All the commands are specified in the relevant table. Attribute value is 2 bytes long. EventType: the type of the notified event.
Code 0x53 0x54 0x56 0x57 0x58 0x59 0x5A 0x5B 0x5C 0x5D 0x5E 0x5F 0x60 0x61 0x62 0x63 0x64 0x65 Description RESERVED. Protocol: a value representing the air protocol. Attribute value is 4 bytes long and can assume the following values: 0x00 = ISO18000-6B 0x01 = EPCC1G1 0x02 = ISO18000-6A 0x03 = EPCC1G2 ReadPointStatus: a value representing the antenna’s status. Attribute value is 4 bytes long and can assume the following values: 0x00 = Good: antenna is well connected.
Code 0x66 0x67 0x68 0x69 0x6A 0x6B 0x6C 0x6D 0x6E 0x6F 0x70 0x71 0x72 0x73 0x74 0x75 0x76 10 Description SelUnselOp: a value representing the tag selection operation defined by the ISO18000-6B protocol.
Code 0x77 0x78 0x7A 0x96 0xFB Description RFRegulation: a value representing the RF regulation to use. Attribute value is 2 bytes long and can assume the following values: 0x00 = ETSI EN 302 208 0x01 = ETSI EN 300 220 0x02 = FCC 0x03 = Malaysia 0x04 = Japan 0x05 = Korea 0x06 = Australia 0x07 = China Note: not all the value are supported by all the readers. For the list of RF regulation supported by each reader please refer to the reader’s user manual.
Command codes Code 0x12 Description RawReadIDs: permits to get all the tag’s Ids that are under the RF field of the selected source (Deprecated). Parameters: SourceNameIn: [in] the name of the source to use. SourceNameOut: [out] the name of the source used. ReadPointName: [out] the name of the readpoint. TimeStamp: [out] the time at which the tags are detected. TagIDLen: [out] the ID length of the tags detected. ListOfIDs: [out] the list of Ids detected from the source. ResultCode: [out] the result code.
Code 0x49 0x4A 0x53 0x54 0x5D 0x5E 0x5F Description AllocateTrigger: permits to create a new trigger. Parameters: TriggerName: [in] the name of the trigger. TriggerType: [in] the type of the trigger. ResultCode: [out] the result code. DeallocateTrigger: permits to destroy an existing trigger. A928EU A948EU Parameters: TriggerName: [in] the name of the trigger. ResultCode: [out] the result code. AllocateChannel: permits to create a notification channel.
Code 0x6F 0x70 0x71 Description WriteTagData: permits to write data to the tag memory. Parameters: SourceName: [in] the name of the source to use. TagIDLen: [in] the ID length of the tag. TagID: [in] the ID of the tag. TagAddress: [in] the address where to write the data. Length: [in] the number of bytes to write. TagValue: [in] the data to write to the tag memory. ResultCode: [out] the result code. LockTag: permits to lock data into the tag memory.
Code 0x78 Description CheckReadPointInSource: permits to verify if a readpoint belongs to a givens source. Parameters: ReadPointName: [in] the name of the readpoint. SourceName: [in] the name of the source. Value: [out] a Boolean value meaning the belonging to the source. ResultCode: [out] the result code. GetProtocol: permits to get the protocol in use. Parameters: Protocol: [out] the protocol in use. ResultCode: [out] the result code. 0x79 Comp.
Code 0x7F 0x80 Description KillTag: permits to kill a EPC Class 1 Gen 1 tag. Parameters: SourceName: [in] the name of the source. TagIDLen: [in] the ID length of the tag. TagID: [in] the ID of the tag. EPCPWD: [in] the EPC password. ResultCode: [out] the result code. RFOnOff: permits to start/stop the generation of a continuous wave. Used only for test and measurements purposes. Parameters: RFOnOff: [in] = 0 stop; != 0 start ResultCode: [out] the result code.
Code 0x85 Description GroupSelectUnselect: permits to execute the tag selection commands defined by the ISO18000-6B protocol. Parameters: SourceName: [in, optional] the name of the source to use. Operation: [in] the tag selection operation. Bytemask: [in] the byte mask as defined by the protocol. TagAddress: [in] the address where to compare the data. TagValue: [in] the data to compare with the tag memory. TagID: [out] the ID of the tag. ResultCode: [out] the result code.
Code 0x8C 0x8D 0x8E 0x8F 0x90 A928EU A948EU Parameters: NoOfChannels: [out] the number of allocated channels. ListOfChannelNames: [in] a list containing the names of the allocated channels. ResultCode: [out] the result code. CheckSourceInTrigger: permits to verify if the specified logical source is associated to the specified trigger. A928EU A948EU Parameters: SourceName: [in] the name of the source. TriggerName: [in] the name of the trigger. Boolean: [out] 0 if they are associated, ≠0 if not.
Code 0x95 Description G2ProgramID: permits to write the EPC in a Class 1 Gen 2 tag. Parameters: SourceName: [in] the name of the source to use. TagIDLen: [in] the ID length of the tag (must be an even number). TagID: [in] the EPC to write into the tag memory. G2NSI: [in] the EPC numbering system. G2Password: [in] the EPC Access password (optional). ResultCode: [out] the result code. Comp.
Code 0x9B Description G2SetQ: permits to change the initial value of the Q parameter used in the Gen2 anticollision algorithm. Parameters: QParameter: [in] the value of the Q parameter. ResultCode: [out] the result code. G2GetQ: permits to read the initial value of the Q parameter used in the Gen2 anticollision algorithm. 0x9C Parameters: QParameter: [out] the value of the Q parameter. ResultCode: [out] the result code.
Code 0xA2 Description GetRFRegulation: permits to read the RF regulation used by the reader. Parameters: RFRegulation: [out] the desired RF regulation. ResultCode: [out] the result code. SetRFChannel: permits to set the RF channel where the reader emits the RF field. 0xA3 Parameters: RFChannel: [in] the RF channel. ResultCode: [out] the result code. GetRFChannel: permits to read the RF channel currently in use. 0xA4 0xFFFF Parameters: RFChannel: [out] the RF channel.
3 ASYNCHRONOUS NOTIFICATION: PROTOCOL SPECIFICATION 22 CAEN UHF RFID Readers Communication Protocol – Technical Information Manual
The notification channels are implemented only with sockets. All the messages notifications are composed by a header and a body. In all cases the body of the message is a list of attribute-value pairs. The first AVP of the body is fixed and called NotifyMessage. All the packets for notification channel share the same header format of other packet as described at § 3. The first AVP (NotifyMessage) is followed by a list of AVPs, the number of which depends on how many tags should be notified.
4 DEFAULT CONFIGURATION 24 CAEN UHF RFID Readers Communication Protocol – Technical Information Manual
CAEN A928EUEU and A948EUEU UHF RFID Reader protocol has various configuration parameters; in the following table are summarized the default values. Parameter IP Address IP Netmask IP Gateway Sources Readpoints Baud Rate Data Bits Stop Bits Parity Flow Control Default value 192.168.0.125 255.255.255.0 192.168.0.1 “Source_0”, “Source_1”, “Source_2”, “Source_3” “Ant0”, “Ant1”, “Ant2”, “Ant3” 115200 8 1 None None Tab. 4.
5 EXAMPLES
Set Protocol Command Action: Set Reader Protocol to EPC C1G2 Result: Reader select EPC C1G2 protocol.
Inventory Command Action: Execute an inventory cycle on the logical source Source0 Result: Two EPCC1G2 tags are returned as being inventory by the reader on Ant0.
0x536F757263655F3000 (AVP Value) 0x0000 0x000B 0x0022 0x416E743000 (Reserved) (AVP Length) (AVP Type = ReadPointName) (AVP Value = “Ant0”) 0x0000 0x000E 0x0010 0x00000578 0x00000000 (Reserved) (AVP Length) (AVP Type = TimeStamp) (AVP Value = Thu Jan 1 01:23:20 1970) (AVP Value) 0x0000 0x0008 0x0012 0x0003 (Reserved) (AVP Length) (AVP Type = TagType) (AVP Value = EPCC1G2) 0x0000 0x0008 0x000F 0x000C (Reserved) (AVP Length) (AVP Type = TagIDLen) (AVP Value = 96 bit) 0x0000 (Reserved) 0x0012 (AVP Len