CAEN RFID srl CAENRFID003 A528 - OEM UHF multiregional Compact Reader User Manual CAEN UHF RFID Readers Communication Protocol

CAEN RFID srl A528 - OEM UHF multiregional Compact Reader CAEN UHF RFID Readers Communication Protocol

User Manual 2

Technical
Information
Manual
CAEN RFID UHF
READERS
02 April 2008
Revision n. 5
COMMUNICATION
PROTOCOL
NPO:
00117/03:PROTx.MUTx/05
Document type: Title: Revision date: Revision:
User's Manual (MUT) CAEN UHF RFID Readers Communication Protocol 02/04/2008 5
NPO: Filename: Number of pages: Page:
00117/03:PROTx.MUTx/05 EASY2READ_PROTOCOL_REV5.DOC 32 2
INDEX
1. INTRODUCTION ..................................................................................................................................................3
1.1. CAEN RFID UHF RFID READER NAMING CONVENTIONS ...............................................................................3
2. PROTOCOL SPECIFICATION ..........................................................................................................................4
3. ASYNCHRONOUS NOTIFICATION: PROTOCOL SPECIFICATION .....................................................28
4. DEFAULT CONFIGURATION .........................................................................................................................29
5. SAMPLES .............................................................................................................................................................31
6. REFERENCES .....................................................................................................................................................32
LIST OF TABLES
TABLE 1.1: CAEN RFID NAME ABBREVIATION ........................................................................................................3
TABLE 2.1: ATTRIBUTE TYPES...................................................................................................................................5
TABLE 2.2: COMMAND CODES.................................................................................................................................11
TABLE 3.1: ATTRIBUTE TYPES: NOTIFICATION AVP LIST. ......................................................................................28
TABLE 4.1: A928 AND A948 CONFIGURATION PARAMETERS DEFAULT VALUES......................................................29
TABLE 4.2: A928 AND A948 DEFAULT COMPOSITION OF SOURCES .........................................................................29
TABLE 4.3: A828, A829, A829, A946 AND A949 CONFIGURATION PARAMETERS DEFAULT VALUES.....................30
TABLE 4.4: A828, A829, A946 AND A949 DEFAULT COMPOSITION OF SOURCES ...................................................30
Document type: Title: Revision date: Revision:
User's Manual (MUT) CAEN UHF RFID Readers Communication Protocol 02/04/2008 5
NPO: Filename: Number of pages: Page:
00117/03:PROTx.MUTx/05 EASY2READ_PROTOCOL_REV5.DOC 32 3
1. Introduction
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.0 specification draft from EPCGlobal but, at now, this protocol is not fully
compatible with the same last specifications.
Message fields are described left to right, with the most significant byte on the left and
the least on the right.
1.1. CAEN RFID UHF RFID Reader Naming conventions
The following table describes CAEN RFID reader name abbreviation used in the
following paragraph
Table 1.1: CAEN RFID name abbreviation
Name Abbreviation CAEN RFID Reader
A528 A528 - OEM UHF multiregional Compact Reader
A828 A828EU - OEM UHF compact reader (ETSI EN 300 220)
A828US - OEM UHF compact reader (FCC Part 15)
A828A A828AEU - OEM UHF enhanced compact reader (ETSI EN 300 220)
A829 A829EU - Fully integrated UHF compact reader (ETSI EN 300 220)
A829US - Fully integrated UHF compact reader (FCC Part 15)
A941 A941MEI - IP65 UHF stand alone reader (ETSI EN 302 208)
A941MEO - OEM UHF stand alone reader (ETSI EN 302 208)
A941MUI - IP65 UHF stand alone reader (FCC Part 15)
A941MUO - OEM UHF stand alone reader (FCC Part 15)
A949 A949EU - IP65 UHF stand alone reader (ETSI EN 302 208)
A946 A946EU - OEM UHF stand alone reader (ETSI EN 302 208)
A928 A928EU - UHF long range reader (ETSI EN 300 220)
A948 A948EU - UHF long range reader (ETSI EN 302 208)
A948EU - UHF long range reader DRM (ETSI EN 302 208)
A948US - UHF long range reader (FCC part 15)
A948EU - UHF long range reader HS (ETSI EN 302 208)
Document type: Title: Revision date: Revision:
User's Manual (MUT) CAEN UHF RFID Readers Communication Protocol 02/04/2008 5
NPO: Filename: Number of pages: Page:
00117/03:PROTx.MUTx/05 EASY2READ_PROTOCOL_REV5.DOC 32 4
2. Protocol specification
CAEN RFID 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.
Responses always echo the Command AVP sent by the host.
All the packets for the control and notification channel share a common header format:
1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-------------------------------+------------------------------+
| FIXED | Message ID |
+-------------------------------+------------------------------+
| Vendor ID |
+-------------------------------+------------------------------+
| Length |
+-------------------------------+
FIXED: Must be 0x8001 for commands and 0x0001 for responses.
Message ID: Id of the message. It is a sequence number used to map requests to its
responses: a request and its corresponding response have the same message ID (the id
is local to the channel).
Vendor ID: Must be 21336: the IANA “SMI Network Management Private Enterprise
Code” assigned to CAEN SpA.
Length: Encodes the length of the message (in bytes) including the header.
The header is followed by a list of AVPs the number of which depends on the command.
Each AVP have the following format:
1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-------------------------------+------------------------------+
| RESERVED | Length |
+-------------------------------+------------------------------+
| Attribute Type | Attribute Value ……… |
+-------------------------------+------------------------------+
| ………[ until length is reached ]……… |
+--------------------------------------------------------------+
RESERVED: The first 16 bits are reserved for future extensions. All reserved bits must
be set to 0 on outgoing messages and ignored on incoming messages.
Length: Encodes the length of the AVP packet including the length and the reserved
fields.
Attribute type: A 2 byte code identifying the attribute type.
Attribute value: The actual attribute value according to the type. It follows immediately
after the Attribute Type field and runs for the remaining bytes indicated in the Length (i.e.
Length minus 6 bytes of header).
Document type: Title: Revision date: Revision:
User's Manual (MUT) CAEN UHF RFID Readers Communication Protocol 02/04/2008 5
NPO: Filename: Number of pages: Page:
00117/03:PROTx.MUTx/05 EASY2READ_PROTOCOL_REV5.DOC 32 5
Table 2.1: Attribute types
Code Description
0x01 CommandName: the command to be executed. All the commands are
specified in the relevant table. Attribute value is 2 bytes long.
0x02
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.
0x0E
EventType: the type of the notified event. Attribute value is 4 bytes long
and can assume the following values:
0x00 = Unknown Event
0x01 = Tag glimpsed
0x02 = Tag New
0x03 = Tag Observed
0x04 = Tag Lost
0x05 = Tag Purged
0x0F TagIDLen: the length of the tag ID. Attribute value is 2 bytes long.
0x10
TimeStamp: an indication of the time. Attribute is 8 bytes long and must
be interpreted as follow:
- the 4 least significant bytes are the seconds elapsed from the 1
January 1970.
- the 4 most significant bytes are the micro-seconds.
0x11
TagID: the ID read from the tag. Attribute value has a maximum length of
12 bytes. For ISO18000 tags only the first 8 bytes are significant while for
EPC tags all the 12 bytes are significant.
0x1E ChannelName: the name of the notification channel. Attribute value has a
maximum length of 30 bytes.
0x1F ChannelAddress: the address of the notification channel. Attribute value
has a maximum length of 30 bytes.
0x20 TriggerName: the name of the trigger. Attribute value has a maximum
length of 30 bytes.
0x21 TriggerType: the type of the trigger. Attribute value has a maximum
length of 30 bytes.
Document type: Title: Revision date: Revision:
User's Manual (MUT) CAEN UHF RFID Readers Communication Protocol 02/04/2008 5
NPO: Filename: Number of pages: Page:
00117/03:PROTx.MUTx/05 EASY2READ_PROTOCOL_REV5.DOC 32 6
Code Description
0x22
ReadPointName: a string representing the name of the read point.
Attribute value has a maximum length of 5 bytes and can assume the
following values:
“Ant0”, “Ant1”, “Ant2”, “Ant3”
0x4D TagValue: data read from the tag memory (when applicable). Attribute
value has a maximum length of 128 bytes.
0x4E TagAddress: the memory location address of the tag where read or write
data (when applicable). Attribute value is 2 bytes long.
0x4F RESERVED.
0x50 Length: a value representing the length of a parameter. Attribute value is 2
bytes long.
0x51
BitRate: a value representing the RF BitRate. Attribute value is 2 bytes
long and can assume the following values:
0x0 – Transmit = 10kbit, Receive = 10kbit
0x1 – Transmit = 10kbit, Receive = 40kbit
0x2 – Transmit = 40kbit, Receive = 40kbit
0x3 – Transmit = 40kbit, Receive = 160kbit
0x52 PowerGet: a value representing the RF power. Attribute value is 4 bytes
long. (used for read the current setting)
0x53 RESERVED.
0x54
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
0x56
ReadPointStatus: a value representing the antenna’s status. Attribute value
is 4 bytes long and can assume the following values:
0x00 = Bad: antenna is not connected or broken.
0x01 = Poor: antenna has a low quality connection.
0x02 = Good: antenna is well connected.
Document type: Title: Revision date: Revision:
User's Manual (MUT) CAEN UHF RFID Readers Communication Protocol 02/04/2008 5
NPO: Filename: Number of pages: Page:
00117/03:PROTx.MUTx/05 EASY2READ_PROTOCOL_REV5.DOC 32 7
Code Description
0x57
Boolean: a value representing a boolean data. Attribute value is 2 bytes
long and can assume the following values:
0x00 = FALSE.
Not 0x00 = TRUE.
0x58
IPAddress: a string representing an IP address formatted with the standard
IP dotted decimal format. Attribute value has a maximum length of 30
bytes.
0x59
IPNetMask: a string representing an IP netmask formatted with the
standard IP dotted decimal format. Attribute value has a maximum length
of 30 bytes.
0x5A
IPGateway: a string representing an IP address formatted with the standard
IP dotted decimal format. Attribute value has a maximum length of 30
bytes.
0x5B
DESBEnable: used to enable/disable the Data Exchange Status Bit
handling for ISO18000-6b and EPC 1.19 anti-collision algorithm. Attribute
value is 2 bytes long and can assume the following values:
0x00 = Disable the DESB handling.
Not 0x00 = Enable the DESB handling.
0x5C FWRelease: a string representing the device’s firmware revision. Attribute
value has a maximum length of 200 bytes.
0x5D
DESBStatus: used to check the Data Exchange Status Bit handling for
ISO18000-6b and EPC 1.19 anti-collision algorithm. Attribute value is 2
bytes long and can assume the following values:
0x00 = DESB handling is not enabled.
Not 0x00 = DESB handling is enabled.
0x5E EPCPWD: a value representing an EPC tag password. Attribute value is 2
bytes long.
0x5F
RFOnOff: used to start the generation of a continuous wave for test
purposes. Attribute value is 2 bytes long and can assume the following
vaules:
0x00 = Stop the wave generation.
Not 0x00 = Start the wave generation.
0x60 BaudRate: a value representing the baudrate setting of serial port.
Attribute value is 4 bytes long.
Document type: Title: Revision date: Revision:
User's Manual (MUT) CAEN UHF RFID Readers Communication Protocol 02/04/2008 5
NPO: Filename: Number of pages: Page:
00117/03:PROTx.MUTx/05 EASY2READ_PROTOCOL_REV5.DOC 32 8
Code Description
0x61 DataBits: a value representing the databits setting of serial port. Attribute
value is 4 bytes long.
0x62 StopBits: a value representing the stopbits setting of serial port. Attribute
value is 4 bytes long.
0x63
Parity: a value representing the parity setting of serial port. Attribute value
is 4 bytes long and can assume the following values:
0x00 = No parity
0x01 = Odd parity
0x02 = Even parity
0x64
FlowCtrl: a value representing the flow control setting of serial port.
Attribute value is 4 bytes long and can assume the following values:
0x00 = No flow control
0x01 = Hardware flow control
0x02 = Software flow control (not yet implemented)
0x65
DateTime: a value representing a date and time. Attribute value has a
maximum length of 30 bytes. The data format is:
YYYY–MM–DD HH:MM:SS
0x66
SelUnselOp: a value representing the tag selection operation defined by the
ISO18000-6B protocol. Attribute value is 2 bytes long and can assume the
following values:
0x00 = select equal
0x01 = select not equal
0x02 = select greater than
0x03 = select lower than
0x04 = unselect equal
0x05 = unselect not equal
0x06 = unselect greater than
0x07 = unselect lower than
0x67
Bitmask: a value representing the bitmask parameter of tag selection
operations defined by the ISO18000-6B protocol. Attribute value is 2 bytes
long (only 8 least significant bits are used).
0x68 REESERVED.
Document type: Title: Revision date: Revision:
User's Manual (MUT) CAEN UHF RFID Readers Communication Protocol 02/04/2008 5
NPO: Filename: Number of pages: Page:
00117/03:PROTx.MUTx/05 EASY2READ_PROTOCOL_REV5.DOC 32 9
Code Description
0x69
IORegister: a value representing the status of the I/O lines of the reader.
Where input lines are separated from output ones, input lines are mapped
on the less significant bits while outputs are mapped on the most
significant. Attribute value is 4 bytes long (effective used bits depend on
the reader model).
0x6A
ConfigParameter: a value representing a configuration parameter.
Attribute value is 4 bytes long and can assume the following values:
0x00 = ReadCycle configuration
0x01 = Observed Threshold configuation
0x02 = Lost Threshold configuration
0x6B ConfigValue: a value for the configuration parameter. Attribute value is 4
bytes long.
0x6C NoOfTriggers: a value representing the number of triggers. Attribute value
is 2 bytes long.
0x6D NoOfChannels: a value representing the number of channels. Attribute
value is 2 bytes long.
0x6E
EventMode: a value representing the event handling mode. Attribute value
is 2 bytes long and can assume the following values:
0x00 = ReadCycle mode
0x01 = Time Mode
0x02 = No Event Mode
0x6F
UpgradeType: a value representing the type of upgrade to perform.
Attribute value is 2 bytes long and can assume the following values:
0x01 = TFTP firmware upgrade.
0x70
UpgradeArgument: a value representing the argument for the requested
upgrade. Attribute value has a maximum length of 255 bytes.
For TFTP upgrade (code 0x01) the string has the form:
‘<tftpserverip>:<filename>’.
Document type: Title: Revision date: Revision:
User's Manual (MUT) CAEN UHF RFID Readers Communication Protocol 02/04/2008 5
NPO: Filename: Number of pages: Page:
00117/03:PROTx.MUTx/05 EASY2READ_PROTOCOL_REV5.DOC 32 10
Code Description
0x71
MemoryBank: a value representing the memory bank of a EPC Class 1
Generation 2 tag. Attribute value is 2 bytes long and can assume the
following values:
0x00 = Reserved Memory Bank
0x01 = EPC Memory Bank
0x02 = TID Memory Bank
0x03 = User Memory Bank
0x72
Payload: a value representing the payload parameter for the EPC Class 1
Gen 2 lock command (see the EPC Gen2 specification for details).
Attribute value is 4 bytes long.
0x73
G2Password: a value representing the password parameter for the EPC
Class 1 Gen 2 kill command (see the EPC Gen2 specification for details).
Attribute value is 4 bytes long.
0x74
G2NSI: a value representing the numbering system identifier for the EPC
Class 1 Gen 2 tags’ id (see the EPC Gen2 specification for details).
Attribute value is 2 bytes long.
0x75
QParameter: a value representing the initial value for the Q parameter
involved in the EPC Class 1 Gen 2 anticollision algorithm (see the EPC
Gen2 specification for details). Attribute value is 2 bytes long.
0x76 ReaderInfo: a string indicating the model and the serial number of the
reader.
0x77
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
0x78
RFChannel: a value representing the RF channel to use. Attribute value is
2 bytes long and can assume values in the range 0 … 9. Channels are
referred to the ETSI EN 302 208 regulation.
0x96
PowerSet: a value representing the RF power emitted during the
communication with tags. Attribute value is 4 bytes long. (used to set a new
current value).
Document type: Title: Revision date: Revision:
User's Manual (MUT) CAEN UHF RFID Readers Communication Protocol 02/04/2008 5
NPO: Filename: Number of pages: Page:
00117/03:PROTx.MUTx/05 EASY2READ_PROTOCOL_REV5.DOC 32 11
Code Description
0xFB
SourceName: a string representing the name of the data source. Attribute
value has a maximum length of 30 bytes and can assume the following
values:
“Source_0”, “Source_1”, “Source_2”, “Source_3”
Table 2.2: Command codes
Code Description Comp.
0x12
RawReadIDs: permits to get all the tag’s Ids that are under the RF
field of the selected source.
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.
Note: out parameters are repeated for each readpoint in the source.
A928
A948
A528
A828
A828A
A829
A941
A946
A949
0x3F
AddReadTrigger: permits to add a trigger to a source.
Parameters:
SourceName: [in] the name of the source.
TriggerName: [in] the name of the trigger.
ResultCode: [out] the result code.
A928
A948
0x40
AddNotifyTrigger: permits to add a trigger to a notification channel.
Parameters:
ChannelName: [in] the name of the channel.
TriggerName: [in] the name of the trigger.
ResultCode: [out] the result code.
A928
A948
0x41
RemoveReadTrigger: permits to remove a trigger from a source.
Parameters:
SourceName: [in] the name of the source.
TriggerName: [in] the name of the trigger.
ResultCode: [out] the result code.
A928
A948
Document type: Title: Revision date: Revision:
User's Manual (MUT) CAEN UHF RFID Readers Communication Protocol 02/04/2008 5
NPO: Filename: Number of pages: Page:
00117/03:PROTx.MUTx/05 EASY2READ_PROTOCOL_REV5.DOC 32 12
Code Description Comp.
0x42
RemoveNotifyTrigger: permits to remove a trigger from a notification
channel.
Parameters:
ChannelName: [in] the name of the channel.
TriggerName: [in] the name of the trigger.
ResultCode: [out] the result code.
A928
A948
0x49
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.
A928
A948
0x4A
DeallocateTrigger: permits to destroy an existing trigger.
Parameters:
TriggerName: [in] the name of the trigger.
ResultCode: [out] the result code.
A928
A948
0x53
AllocateChannel: permits to create a notification channel.
Parameters:
ChannelName: [in] the name of the channel.
ChannelAddress: [in] the address of the channel.
ResultCode: [out] the result code.
A928
A948
0x54
DeallocateChannel: permits to destroy a notification channel.
Parameters:
ChannelName: [in] the name of the channel.
ResultCode: [out] the result code.
A928
A948
0x5D
AddSourceToChannel: permits to add a source to a notification
channel.
Parameters:
SourceName: [in] the name of the source.
ChannelName: [in] the name of the channel.
ResultCode: [out] the result code.
A928
A948
Document type: Title: Revision date: Revision:
User's Manual (MUT) CAEN UHF RFID Readers Communication Protocol 02/04/2008 5
NPO: Filename: Number of pages: Page:
00117/03:PROTx.MUTx/05 EASY2READ_PROTOCOL_REV5.DOC 32 13
Code Description Comp.
0x5E
RemoveSourceFromChannel: permits to remove a source from a
notification channel.
Parameters:
SourceName: [in] the name of the source.
ChannelName: [in] the name of the channel.
ResultCode: [out] the result code.
A928
A948
0x5F
AddReadPointToSource: permits to add a readpoint to a source.
Parameters:
SourceName: [in] the name of the source.
ReadPointName: [in] the name of the readpoint.
ResultCode: [out] the result code.
A928
A948
0x60
RemoveReadPointFromSource: permits to remove a readpoint from a
source.
Parameters:
SourceName: [in] the name of the source.
ReadPointName: [in] the name of the readpoint.
ResultCode: [out] the result code.
A928
A948
0x64
SetPower: permits to set the RF power level.
Parameters:
PowerSet: [in] the power level to set.
ResultCode: [out] the result code.
A928
A948
A941
A946
A949
0x6E
ReadTagData: permits to read data from 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 from which read the data.
Length: [in] the number of bytes to read.
TagValue: [out] the data read from the tag memory.
ResultCode: [out] the result code.
A928
A948
A528
A828
A828A
A829
A941
A946
A949
Document type: Title: Revision date: Revision:
User's Manual (MUT) CAEN UHF RFID Readers Communication Protocol 02/04/2008 5
NPO: Filename: Number of pages: Page:
00117/03:PROTx.MUTx/05 EASY2READ_PROTOCOL_REV5.DOC 32 14
Code Description Comp.
0x6F
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.
A928
A948
A528
A828
A828A
A829
A941
A946
A949
0x70
LockTag: permits to lock data into 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.
ResultCode: [out] the result code.
A928
A948
A528
A828
A828A
A829
A941
A946
A949
0x71 RESERVED
0x72
SetBitRate: permits to set the BitRate to use.
Parameters:
BitRate: [in] the BitRate to set.
ResultCode: [out] the result code.
A928
A948
A528
A828
A828A
A829
A941
A946
A949
0x73
GetPower: permits to get the current RF power level.
Parameters:
PowerGet: [out] the current power level.
ResultCode: [out] the result code.
A928
A948
A941
A946
A949
Document type: Title: Revision date: Revision:
User's Manual (MUT) CAEN UHF RFID Readers Communication Protocol 02/04/2008 5
NPO: Filename: Number of pages: Page:
00117/03:PROTx.MUTx/05 EASY2READ_PROTOCOL_REV5.DOC 32 15
Code Description Comp.
0x74
SetProtocol: permits to set the protocol to use.
Parameters:
Protocol: [in] the protocol to use.
ResultCode: [out] the result code.
A928
A948
A528
A828
A828A
A829
A941
A946
A949
0x75 RESERVED
0x76
CheckReadPointStatus: permits to check the quality of the antenna
connection.
Parameters:
ReadPointName: [in] the name of the readpoint.
ReadPointStatus: [out] the quality of the connection.
ResultCode: [out] the result code.
A928
A948
A941
A946
A949
0x77
CheckSourceInChannel: permits to verify if a source is assigned to a
notify channel.
Parameters:
SourceName: [in] the name of the source.
ChannelName: [in] the name of the channel.
Value: [out] a Boolean value meaning the belonging to the source.
ResultCode: [out] the result code.
A928
A948
0x78
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.
A928
A948
A941
A946
A949
Document type: Title: Revision date: Revision:
User's Manual (MUT) CAEN UHF RFID Readers Communication Protocol 02/04/2008 5
NPO: Filename: Number of pages: Page:
00117/03:PROTx.MUTx/05 EASY2READ_PROTOCOL_REV5.DOC 32 16
Code Description Comp.
0x79
GetProtocol: permits to get the protocol in use.
Parameters:
Protocol: [out] the protocol in use.
ResultCode: [out] the result code.
A928
A948
A528
A828
A828A
A829
A941
A946
A949
0x7A
SetNetwork: permits to set up the network configuration.
Parameters:
IPAddress: [in] the IP address to set.
IPNetMask: [in] the IP netmask to set.
IPGateway: [in] the IP gateway to set.
ResultCode: [out] the result code.
A928
A948
0x7B
SetDESB: permits to enable or disable the “Data Exchange Status Bit”
handling during the anti-collision algorithm when ISO 18000-6b air
protocol is in use.
Parameters:
DESBEnable: [in] enable/disable value.
ResultCode: [out] the result code.
A928
A948
A528
A828
A828A
A829
A941
A946
A949
0x7C
GetFirmwareRelease: permits to get the firmware revision.
Parameters:
FWRelease: [in] the firmware release.
ResultCode: [out] the result code.
A928
A948
A528
A828
A828A
A829
A941
A946
A949
Document type: Title: Revision date: Revision:
User's Manual (MUT) CAEN UHF RFID Readers Communication Protocol 02/04/2008 5
NPO: Filename: Number of pages: Page:
00117/03:PROTx.MUTx/05 EASY2READ_PROTOCOL_REV5.DOC 32 17
Code Description Comp.
0x7D
GetDESB: permits to get the current setting of the “Data Exchange
Status Bit” handling.
Parameters:
DESBStatus: [in] enabled/disabled value.
ResultCode: [out] the result code.
A928
A948
A528
A828
A828A
A829
A941
A946
A949
0x7E
ProgramID: permits to program the ID in the EPC Class 1 Gen 1 tags.
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 to set.
Lock: [in] a Boolean value; TRUE = lock the ID. FALSE = do not lock.
ResultCode: [out] the result code.
A928
A948
0x7F
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.
A928
A948
0x80
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.
A928
A948
A528
A828
A828A
A829
A941
A946
A949
Document type: Title: Revision date: Revision:
User's Manual (MUT) CAEN UHF RFID Readers Communication Protocol 02/04/2008 5
NPO: Filename: Number of pages: Page:
00117/03:PROTx.MUTx/05 EASY2READ_PROTOCOL_REV5.DOC 32 18
Code Description Comp.
0x81
GetBitRate: permits to get the BitRate in use.
Parameters:
BitRate: [out] the BitRate in.
ResultCode: [out] the result code.
A928
A948
A528
A828
A828A
A829
A941
A946
A949
0x82
BlockWriteTag: permits to write data to the tag memory. This function
uses the ISO18000-6b Write4Byte command to speed up the writing of
large amount of data at one time.
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.
A928
A948
A528
A828
A828A
A829
A941
A946
A949
0x83
SetRS232: permits to modify the settings of the serial port.
Parameters:
Baudrate: [in] the baud rate value.
Databits: [in] the data bits setting.
Stopbits: [in] the stop bits setting.
Parity: [in] the parity setting.
Flowctrl: [in] the flow control setting.
ResultCode: [out] the result code.
A928
A948
A528
A828
A828A
A829
A941
A946
A949
Document type: Title: Revision date: Revision:
User's Manual (MUT) CAEN UHF RFID Readers Communication Protocol 02/04/2008 5
NPO: Filename: Number of pages: Page:
00117/03:PROTx.MUTx/05 EASY2READ_PROTOCOL_REV5.DOC 32 19
Code Description Comp.
0x84
SetDateTime: permits to modify date and time.
Parameters:
Datetime: [in] the date and time to set up.
ResultCode: [out] the result code.
A928
A948
A528
A828
A828A
A829
A941
A946
A949
0x85
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.
A928
A948
A528
A828
A828A
A829
A941
A946
A949
0x86
GetIO: permits to read the current status of the I/O lines.
Parameters:
IORegister: [out] the status of the I/O lines.
ResultCode: [out] the result code.
A928
A948
A528
A828
A828A
A829
A941
A946
A949
Document type: Title: Revision date: Revision:
User's Manual (MUT) CAEN UHF RFID Readers Communication Protocol 02/04/2008 5
NPO: Filename: Number of pages: Page:
00117/03:PROTx.MUTx/05 EASY2READ_PROTOCOL_REV5.DOC 32 20
Code Description Comp.
0x87
SetIO: permits to set the level of the output lines.
Parameters:
IORegister: [in] the value to set to the output lines.
ResultCode: [out] the result code.
A928
A948
A528
A828
A828A
A829
A941
A946
A949
0x88
SetIODirection: permits to define the direction of the I/O lines.
(0 = input; 1 = output)
Parameters:
IORegister: [in] the direction to set to the I/O lines.
ResultCode: [out] the result code.
A528
A828
A828A
A829
A941
A946
A949
0x89
GetIODirection: permits to read the current status of the I/O lines. (0 =
input; 1 = output)
Parameters:
IORegister: [out] the direction of the I/O lines.
ResultCode: [out] the result code.
A528
A828
A828A
A829
A941
A946
A949
0x8A
SetSourceConfig: permits to set a configure parameter for a logical
source.
Parameters:
SourceName: [in] the name of the source to configure.
ConfigParameter: [in] the code of the parameter.
ConfigValue: [in] the value for the parameter.
ResultCode: [out] the result code.
A928
A948
Document type: Title: Revision date: Revision:
User's Manual (MUT) CAEN UHF RFID Readers Communication Protocol 02/04/2008 5
NPO: Filename: Number of pages: Page:
00117/03:PROTx.MUTx/05 EASY2READ_PROTOCOL_REV5.DOC 32 21
Code Description Comp.
0x8B
GetSourceConfig: permits to read a configure parameter for a logical
source.
Parameters:
SourceName: [in] the name of the source to configure.
ConfigParameter: [in] the code of the parameter.
ConfigValue: [out] the value for the parameter.
ResultCode: [out] the result code.
A928
A948
0x8C
GetTriggers: permits to read the names of the allocated triggers.
Parameters:
NoOfTriggers: [out] the number of allocated triggers.
ListOfTriggerNames: [in] a list containing the names of the allocated
triggers.
ResultCode: [out] the result code.
A928
A948
0x8D
GetChannels: permits to read the names of the allocated notification
channels.
Parameters:
NoOfChannels: [out] the number of allocated channels.
ListOfChannelNames: [in] a list containing the names of the allocated
channels.
ResultCode: [out] the result code.
A928
A948
0x8E
CheckSourceInTrigger: permits to verify if the specified logical
source is associated to the specified trigger.
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.
ResultCode: [out] the result code.
A928
A948
0x8F
CheckTriggerInChannel: permits to verify if the specified trigger is
associated to the specified channel.
Parameters:
ChannelName: [in] the name of the source.
TriggerName: [in] the name of the trigger.
Boolean: [out] 0 if they are associated, 0 if not.
ResultCode: [out] the result code.
A928
A948
Document type: Title: Revision date: Revision:
User's Manual (MUT) CAEN UHF RFID Readers Communication Protocol 02/04/2008 5
NPO: Filename: Number of pages: Page:
00117/03:PROTx.MUTx/05 EASY2READ_PROTOCOL_REV5.DOC 32 22
Code Description Comp.
0x90
CheckChannelInTrigger: permits to verify if the specified channel is
associated to the specified trigger.
Parameters:
ChannelName: [in] the name of the source.
TriggerName: [in] the name of the trigger.
Boolean: [out] 0 if they are associated, 0 if not.
ResultCode: [out] the result code.
A928
A948
0x91
SetEventMode: permits to set the event generation mode for the reader
notification channels.
Parameters:
EventMode: [in] the event mode.
ResultCode: [out] the result code.
A928
A948
0x92
GetEventMode: permits to read the event generation mode for the
reader notification channels.
Parameters:
EventMode: [out] the event mode.
ResultCode: [out] the result code.
A928
A948
0x93
FirmwareUpgrade: permits to upgrade the reader firmware.
Parameters:
UpgradeType: [in] the type of the upgrade.
UpgradeArg: [in] the argument needed by the upgrade procedure.
ResultCode: [out] the result code.
A928
A948
0x94
E119ProgramID: permits to write the EPC into a EPC1.19 tag.
Parameters:
SourceName: [in] the name of the source to use.
TagID: [in] the old EPC of the tag.
TagValue: [in] the EPC to write into the tag memory.
ResultCode: [out] the result code.
A928
A948
A528
A828
A828A
A829
A941
A946
A949
Document type: Title: Revision date: Revision:
User's Manual (MUT) CAEN UHF RFID Readers Communication Protocol 02/04/2008 5
NPO: Filename: Number of pages: Page:
00117/03:PROTx.MUTx/05 EASY2READ_PROTOCOL_REV5.DOC 32 23
Code Description Comp.
0x95
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.
ResultCode: [out] the result code.
A928
A948
A528
A828
A828A
A829
A941
A946
A949
0x96
G2Read: permits to read data from anyone of the Gen2 tag memory
banks.
Parameters:
SourceName: [in, optional] the name of the source to use.
TagIDLen: [in] the ID length of the tag.
TagID: [in] the ID of the tag.
MemoryBank: [in] the memory bank.
TagAddress: [in] the address where to read the data.
Length: [in] the number of bytes to read (must be an even number).
TagValue: [out] the data read from the tag memory.
ResultCode: [out] the result code.
A928
A948
A528
A828
A828A
A829
A941
A946
A949
0x97
G2Write: permits to write data into anyone of the Gen2 tag memory
banks.
Parameters:
SourceName: [in, optional] the name of the source to use.
TagIDLen: [in] the ID length of the tag.
TagID: [in] the ID of the tag.
MemoryBank: [in] the memory bank.
TagAddress: [in] the address where to write the data.
Length: [in] the number of bytes to write (must be an even number).
TagValue: [in] the data to write to the tag memory.
ResultCode: [out] the result code.
A928
A948
A528
A828
A828A
A829
A941
A946
A949
Document type: Title: Revision date: Revision:
User's Manual (MUT) CAEN UHF RFID Readers Communication Protocol 02/04/2008 5
NPO: Filename: Number of pages: Page:
00117/03:PROTx.MUTx/05 EASY2READ_PROTOCOL_REV5.DOC 32 24
Code Description Comp.
0x98
G2Lock: permits to execute the tag lock command defined by the EPC
Class 1 Gen 2 protocol.
Parameters:
SourceName: [in, optional] the name of the source to use.
TagIDLen: [in] the ID length of the tag.
TagID: [in] the ID of the tag.
G2Payload: [in] the lock payload.
ResultCode: [out] the result code.
A928
A948
A528
A828
A828A
A829
A941
A946
A949
0x99
G2Kill: permits to execute the tag kill command defined by the EPC
Class 1 Gen 2 protocol.
Parameters:
SourceName: [in, optional] the name of the source to use.
TagIDLen: [in] the ID length of the tag.
TagID: [in] the ID of the tag.
G2Password: [in] the kill password.
ResultCode: [out] the result code.
A928
A948
A528
A828
A828A
A829
A941
A946
A949
0x9A
G2Query: permits to execute the tag query command defined by the
EPC Class 1 Gen 2 protocol. If a tag is in the field result code is
ERROR_SUCCESS (0x00) else result code is
ERROR_TAGNOTPRESENT (0xCA).
Parameters:
SourceName: [in] the name of the source to use.
ResultCode: [out] the result code.
A928
A948
A528
A828
A828A
A829
A941
A946
A949
Document type: Title: Revision date: Revision:
User's Manual (MUT) CAEN UHF RFID Readers Communication Protocol 02/04/2008 5
NPO: Filename: Number of pages: Page:
00117/03:PROTx.MUTx/05 EASY2READ_PROTOCOL_REV5.DOC 32 25
Code Description Comp.
0x9B
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.
A928
A948
A528
A828
A828A
A829
A941
A946
A949
0x9C
G2GetQ: permits to read the initial value of the Q parameter used in
the Gen2 anticollision algorithm.
Parameters:
QParameter: [out] the value of the Q parameter.
ResultCode: [out] the result code.
A928
A948
A528
A828
A828A
A829
A941
A946
A949
0x9D
G2QueryAck: permits to execute the tag query and ack command
defined by the EPC Class 1 Gen 2 protocol. If a tag is in the field result
code is ERROR_SUCCESS (0x00) and the command returns the EPC
code stored in the tag else the result code is
ERROR_TAGNOTPRESENT (0xCA).
Parameters:
SourceName: [in] the name of the source to use.
TagID: [out] the ID of the tag.
ResultCode: [out] the result code.
A928
A948
A528
A828
A828A
A829
A941
A946
A949
Document type: Title: Revision date: Revision:
User's Manual (MUT) CAEN UHF RFID Readers Communication Protocol 02/04/2008 5
NPO: Filename: Number of pages: Page:
00117/03:PROTx.MUTx/05 EASY2READ_PROTOCOL_REV5.DOC 32 26
Code Description Comp.
0x9E
GetReaderInfo: permits to read some information about the reader
itself.
Parameters:
ReaderInfo: [out] a string with information about the reader.
ResultCode: [out] the result code.
A928
A948
A528
A828
A828A
A829
A941
A946
A949
0x9F
SetLBTMode: permits to enable or disable the Listen Before Talk
capability on ETSI EN 302 208 compatible readers.
Parameters:
Boolean: [in] 0 to disable LBT and 0 to enable LBT.
ResultCode: [out] the result code.
A941
A946
A948
A949
0xA0
GetLBTMode: permits to read the current setting for the Listen Before
Talk capability on ETSI EN 302 208 compatible readers.
Parameters:
Boolean: [out] 0 if LBT is disabled, 0 if LBT is enabled.
ResultCode: [out] the result code.
A941
A946
A948
A949
0xA1
SetRFRegulation: permits to change the RF regulation used by the
reader.
Parameters:
RFRegulation: [in] the desired RF regulation.
ResultCode: [out] the result code.
A941
A946
A948
A949
0xA2
GetRFRegulation: permits to read the RF regulation used by the
reader.
Parameters:
RFRegulation: [out] the desired RF regulation.
ResultCode: [out] the result code.
A941
A946
A948
A949
0xA3
SetRFChannel: permits to set the RF channel where the reader emits
the RF field.
Parameters:
RFChannel: [in] the RF channel.
ResultCode: [out] the result code.
A941
A946
A948
A949
Document type: Title: Revision date: Revision:
User's Manual (MUT) CAEN UHF RFID Readers Communication Protocol 02/04/2008 5
NPO: Filename: Number of pages: Page:
00117/03:PROTx.MUTx/05 EASY2READ_PROTOCOL_REV5.DOC 32 27
Code Description Comp.
0xA4
GetRFChannel: permits to read the RF channel currently in use.
Parameters:
RFChannel: [out] the RF channel.
ResultCode: [out] the result code.
A941
A946
A948
A949
0xFFFF RESERVED
Document type: Title: Revision date: Revision:
User's Manual (MUT) CAEN UHF RFID Readers Communication Protocol 02/04/2008 5
NPO: Filename: Number of pages: Page:
00117/03:PROTx.MUTx/05 EASY2READ_PROTOCOL_REV5.DOC 32 28
3. Asynchronous Notification: Protocol specification
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. Each AVP has the same format of the
AVP described in § 3.
The NotifyMessage has the following fixed format:
1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-------------------------------+------------------------------+
| RESERVED | 8 |
+-------------------------------+------------------------------+
| CommandName | ReportBuffer |
+-------------------------------+------------------------------+
After the NotifyMessage AVP we can receive:
a) a list of AVPs (as described in table 3) followed by an AVP with ‘Attribute Type’
ResultCode
b) a single AVP called KillMessage with the following fixed format:
1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-------------------------------+------------------------------+
| RESERVED | 8 |
+-------------------------------+------------------------------+
| KillCommand | KillCommand |
+-------------------------------+------------------------------+
Table 3.1: Attribute types: Notification AVP List.
Description
TimeStamp: the timestamp of the notification
TagIDLen: the ID length of the tag.
TagID: the ID of the tag.
SourceName: the name of the source to use.
EventType: the type of the notified event
Document type: Title: Revision date: Revision:
User's Manual (MUT) CAEN UHF RFID Readers Communication Protocol 02/04/2008 5
NPO: Filename: Number of pages: Page:
00117/03:PROTx.MUTx/05 EASY2READ_PROTOCOL_REV5.DOC 32 29
4. Default configuration
CAEN A928 and A948E UHF RFID Reader protocol has various configuration
parameters; in the following table are summarized the default values.
Table 4.1: A928 and A948 Configuration parameters default values
Parameter Default value
IP Address 192.168.0.125
IP Netmask 255.255.255.0
IP Gateway 192.168.0.1
Sources “Source_0”, “Source_1”, “Source_2”, “Source_3”
Readpoints “Ant0”, “Ant1”, “Ant2”, “Ant3”
Baud Rate 115200
Data Bits 8
Stop Bits 1
Parity None
Flow Control None
The default composition of sources for A928E and A948 reader is the following:
Table 4.2: A928 and A948 Default composition of sources
Source Readpoints
Source_0 Ant0
Source_1 Ant1
Source_2 Ant2
Source_3 Ant3
CAEN A828, A829, A946 and A949 UHF RFID Reader protocol has various configuration
parameters; in the following table are summarized the default values.
Document type: Title: Revision date: Revision:
User's Manual (MUT) CAEN UHF RFID Readers Communication Protocol 02/04/2008 5
NPO: Filename: Number of pages: Page:
00117/03:PROTx.MUTx/05 EASY2READ_PROTOCOL_REV5.DOC 32 30
Table 4.3: A828, A829, A829, A946 and A949 Configuration parameters default values
Parameter Default value
Sources “Source_0”
Readpoints “Ant0”
Baud Rate 115200
Data Bits 8
Stop Bits 1
Parity None
Flow Control None
The default composition of sources for the A828, A829, A946 and A949 reader is the
following:
Table 4.4: A828, A829, A946 and A949 Default composition of sources
Source Readpoints
Source_0 Ant0
Document type: Title: Revision date: Revision:
User's Manual (MUT) CAEN UHF RFID Readers Communication Protocol 02/04/2008 5
NPO: Filename: Number of pages: Page:
00117/03:PROTx.MUTx/05 EASY2READ_PROTOCOL_REV5.DOC 32 31
5. Samples
In the following sample a RawReadIDs command is examined together with the
response coming from the reader.
Command sent:
0x8001 (Fixed)
0x0000 (Message ID)
0x00005358 (Vendor ID = CAEN SpA)
0x0021 (Message Length)
0x0000 (Reserved)
0x0008 (AVP Length)
0x0001 (AVP Type = CommandName)
0x0012 (AVP Value = RawReadIDs)
0x0000 (Reserved)
0x000F (AVP Length)
0x00FB (AVP Type = SourceName)
“Source_0” (AVP Value)
Response received:
0x0001 (Fixed)
0x0000 (Message ID)
0x00005358 (Vendor ID = CAEN SpA)
0x0066 (Message Length)
0x0000 (Reserved)
0x0008 (AVP Length)
0x0001 (AVP Type = CommandName)
0x0012 (AVP Value = RawReadIDs)
0x0000 (Reserved)
0x000F (AVP Length)
0x00FB (AVP Type = SourceName)
“Source_0” (AVP Value)
0x0000 (Reserved)
0x000B (AVP Length)
0x0022 (AVP Type = ReadPointName)
“Ant0” (AVP Value)
0x0000 (Reserved)
0x000E (AVP Length)
0x0010 (AVP Type = TimeStamp)
0x00000578 (AVP Value = Thu Jan 1 01:23:20 1970)
0x00000000 (AVP Value)
0x0000 (Reserved)
0x0008 (AVP Length)
0x000F (AVP Type = TagIDLen)
0x0008 (AVP Value)
0x0000 (Reserved)
0x000E (AVP Length)
0x0011 (AVP Type = TagID)
0x05629FFF (AVP Value)
0xC0113001 (AVP Value)
0x0000 (Reserved)
0x000E (AVP Length)
0x0011 (AVP Type = TagID)
0xE0040F0E (AVP Value)
0x06010000 (AVP Value)
0x0000 (Reserved)
0x0008 (AVP Length)
0x0002 (AVP Type = ResultCode)
0x0000 (AVP Value = Success)
Document type: Title: Revision date: Revision:
User's Manual (MUT) CAEN UHF RFID Readers Communication Protocol 02/04/2008 5
NPO: Filename: Number of pages: Page:
00117/03:PROTx.MUTx/05 EASY2READ_PROTOCOL_REV5.DOC 32 32
6. References
Reader Protocol 1.0 – Working Draft Version of 25 August 2004 – Document revision
33 - EPCGlobal
EPC Radio Frequency Identity Protocols Class-1 Generation-2 UHF RFID Protocol
for Communications at 860MHz – 960MHz – Version 1.0.9 – EPCGlobal
ISO/IEC FDIS 18000-6:2003(E) – Information technology automatic identification and
data capture techniques – Radio frequency identification for item management air
interface – Part 6: Parameters for air interface communication at 860-960 MHz

Navigation menu