SC UHF Reader 控制协议UART通信波特率:1152008个数据位,没有奇偶校验位,1个停止位。
(8 N 1)RCP(Reader Control Protocol) 协议格式Payload End Mask CRC-16 Preamble Message Type Code Payload Length(unit of byte : N)1 BYTE 1 BYTE 1 BYTE2 BYTE N BYTE 1 BYTE 2 BYTERCP 协议中,同一域段里,高字节在前。
Preamble为最先发送字节,CRC-16的低字节为最后发送的字节。
Preamble and End Mark fieldPreamble 的值为0xBB.(不参与计算CRC)End mark 的值为0x7E. (参与计算CRC)在Payload中也可能包括,0xBB与0x7E。
因此不能以0xBB,0x7E判断帧的开始与结束。
Message type fieldCommand :用户发送到读写器的信息。
Response 和notification :读写器返回给用户的信息。
Code value (HEX)Command 0x00Response 0x01Notification 0x02Command and responseCommand:用户发送到读写器的命令。
Response:读写器响应用户的命令,每一条命令都会有相应的响应。
Notification读写器主动返回的信息,如:查询标签命令发送后,当有标签在读写器范围内时,读写器将会返回标签的EPC号。
Message code fieldMessage code Message type Code Get Region 0x00 / 0x01 0x06 Set Region 0x00 / 0x01 0x07 Set System Reset 0x00 / 0x01 0x08 Get Type C A/I Select Parameters 0x00 / 0x01 0x0B Set Type C A/I Select Parameters 0x00 / 0x01 0x0C Get Type C A/I Query Related Parameters 0x00 / 0x01 0x0D Set Type C A/I Query Related Parameters 0x00 / 0x01 0x0E Get current RF Channel 0x00 / 0x01 0x11 Set current RF Channel 0x00 / 0x01 0x12 Get FH and LBT Parameters 0x00 / 0x01 0x13 Set FH and LBT Parameters 0x00 / 0x01 0x14 Read Type C UII 0x00 / 0x01 0x22 Start Auto Read 0x00 / 0x01 / 0x02 0x27 Stop Auto Read 0x00 / 0x01 0x28 Read Type C Tag Data 0x00 / 0x01 0x29 Get Frequency Hopping Table 0x00 / 0x01 0x30 Set Frequency Hopping Table 0x00 / 0x01 0x31 Get Modulation 0x00 / 0x01 0x32 Set Modulation 0x00 / 0x01 0x33 Start Auto Read2 0x00 / 0x01 / 0x02 0x36 Stop Auto Read2 0x00 / 0x01 0x37 Write Type C Tag Data 0x00 / 0x01 0x46 BlockWrite Type C Tag Data 0x00 / 0x01 0x47 BlockErase Type C Tag Data 0x00 / 0x01 0x48 Kill/Recom Type C Tag 0x00 / 0x01 0x65 Lock Type C Tag 0x00 / 0x01 0x82 Get RSSI 0x00 / 0x01 0xC5 Update Registry 0x00 / 0x01 0xD2 Command Failure 0x01 0xFF1.Get Region (6)2.Set Region (7)3.Get Type C A/I Select Parameters (8)4.Set Type C A/I Select Parameters (9)5.Get Type C A/I Query Parameters (10)6.Set Type C A/I Query Parameters (11)7.Get current RF Channel (12)8.Set current RF Channel (13)9.Get FH and LBT Parameters (14)10.Set FH and LBT Parameters (15)11.Read Type C UII (16)12.Start Auto Read (17)13.Stop Auto Read (19)14.Start Auto Read2 (20)15.Read Type C Tag Data (22)16.Get Frequency Hopping Table (23)17.Set Frequency Hopping Table (24)18.Get Modulation Mode (25)19.Set Modulation Mode (27)20.Write Type C Tag Data (29)21.BlockWrite Type C Tag Data (30)22.BlockErase Type C Tag Data (31)23.BlockPermalock Type C Tag (32)24.Kill Type C Tag (33)25.Lock Type C Tag (34)26.Get RSSI (35)27.Update Registry(Save all setting) (36)mand failure (37)CRC GeneralThe Command and Response use the same CRC-16 for verify a purity of message bits. The 16-bit CRC shall be calculated on all the message bits from the message type field to the end mark field . The Polynomial used to calculate the CRC is X16+X12+X5+1 (initial value is 0xFFFF). The resulting CRC value shall be attached to the end of the packet (after End Mark filed) and transmitted. The most significant byte shall be transmitted first. The most significant bit of each byte shall be transmitted first.unsigned short crc16_ccitt_tableH[256]={0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7,0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef,0x1231, 0x0210, 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c, 0xf3ff, 0xe3de,0x2462, 0x3443, 0x0420, 0x1401, 0x64e6, 0x74c7, 0x44a4, 0x5485,0xa56a, 0xb54b, 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6, 0x5695, 0x46b4,0xb75b, 0xa77a, 0x9719, 0x8738, 0xf7df, 0xe7fe, 0xd79d, 0xc7bc,0x48c4, 0x58e5, 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969, 0xa90a, 0xb92b,0x5af5, 0x4ad4, 0x7ab7, 0x6a96, 0x1a71, 0x0a50, 0x3a33, 0x2a12,0xdbfd, 0xcbdc, 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03, 0x0c60, 0x1c41,0xedae, 0xfd8f, 0xcdec, 0xddcd, 0xad2a, 0xbd0b, 0x8d68, 0x9d49,0x7e97, 0x6eb6, 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a, 0x9f59, 0x8f78,0x9188, 0x81a9, 0xb1ca, 0xa1eb, 0xd10c, 0xc12d, 0xf14e, 0xe16f,0x1080, 0x00a1, 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c, 0xe37f, 0xf35e,0x02b1, 0x1290, 0x22f3, 0x32d2, 0x4235, 0x5214, 0x6277, 0x7256,0xb5ea, 0xa5cb, 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405,0xa7db, 0xb7fa, 0x8799, 0x97b8, 0xe75f, 0xf77e, 0xc71d, 0xd73c,0x26d3, 0x36f2, 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9, 0xb98a, 0xa9ab,0x5844, 0x4865, 0x7806, 0x6827, 0x18c0, 0x08e1, 0x3882, 0x28a3,0xcb7d, 0xdb5c, 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0, 0x2ab3, 0x3a92,0xfd2e, 0xed0f, 0xdd6c, 0xcd4d, 0xbdaa, 0xad8b, 0x9de8, 0x8dc9,0x7c26, 0x6c07, 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba, 0x8fd9, 0x9ff8,0x6e17, 0x7e36, 0x4e55, 0x5e74, 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0};unsigned short do_crcH(unsigned short crcInit, unsigned char *message, unsigned int len) {unsigned short int crc = crcInit;while(len--){crc = (crc<<8) ^ crc16_ccitt_tableH[((crc>>8) ^ *message++) & 0xff];}return crc;}Get the current region.CommandMessage Type: Command (0x00)Code: Get Region (0x06)Arguments- NonePreamble Msg Type Code PL (MSB) PL (LSB) End Mark CRC-160xBB 0x00 0x06 0x00 0x00 0x7E 0xNNNNResponseMessage Type: Response (0x01)Code: Get Region (0x06)- Korea (0x11)- US (0x21)- Europe (0x31)- Japan (0x41)- China (0x52)Preamble Msg Type Code PL(MSB) PL (LSB) Arg End Mark CRC-16 0xBB 0x01 0x06 0x00 0x01 0x31 0x7E 0xNNNNSet the current region.CommandMessage Type: Command (0x00)Code: Set Region (0x07)Arguments- Korea (0x11)- US (0x21)- Europe (0x31)- Japan (0x41)- China (0x52)Preamble Msg Type Code PL(MSB) PL (LSB) Arg End Mark CRC-16 0xBB 0x00 0x07 0x00 0x01 0x31 0x7E 0xNNNNResponseMessage Type: Response (0x01)Code: Set Region (0x07)Arguments- Success (0x00)Preamble Msg Type Code PL(MSB) PL (LSB) Arg End Mark CRC-16 0xBB 0x01 0x07 0x00 0x01 0x00 0x7E 0xNNNNGet 18000-6C air interface protocol command ‘Select’parameters.CommandMessage Type: Command (0x00)Code: Get Type C A/I Select Parameters (0x0B)Arguments- NonePreamble M sg Type Code PL (MSB) PL (LSB) End Mark CRC-160xBB 0x00 0x0B 0x00 0x00 0x7E 0xNNNNResponseMessage Type: Response (0x01)Code: Get Type C A/I Select Parameters (0x0B)Arguments- Target (3-bit): S0 (000), S1 (001), S2 (010), S3 (011), SL (100)- Action (3-bit): Refer to ISO18000-6C.- Memory Bank (2-bit): 00 RFU, 01 EPC, 10 TID, 11 User- Pointer (32-bit): Starting mask address- Length (8-bit): mask length bits- Truncate (1-bit): Enable (1) and Disable (0)- Reserve (7-bit): Reserved 0000000 value should be placed here.- Mask (0~255 bits): Mask valueExample)Target=S0, Action=assert SL or inventoried - > A, MB=User, Pointer = 0x000000FF,Length =0x20, T=0, Mask = 11111111111111110000000000000000Preamble Msg Type Code PL(MSB) PL (LSB) T A M Ptr(MSB)0xBB 0x01 0x0B 0x00 0x0B 000 000 11 0x00 0x00 Ptr (LSB) Length T Reserve Mask(MSB)0x00 0xFF 0x20 0 0000000 0xFF 0xFF 0x00 0x00 End Mark CRC-160x7E 0xNNNNSet 18000-6C air interface protocol command ‘Select’parameters.CommandMessage Type: Command (0x00)Code: Set Type C A/I Select Parameters (0x0C)Arguments- Target (3-bit): S0 (000), S1 (001), S2 (010), S3 (011), SL (100)- Action (3-bit): Refer to ISO18000-6C.- Memory Bank (2-bit): RFU (00), EPC (01), TID (10), User (11)- Pointer (32-bit): Starting mask address- Length (8-bit): mask length bits- Truncate (1-bit): Enable (1) and Disable (0)- Reserve (7-bit): Reserved 0000000 value should be placed here.- Mask (0~255 bits): Mask valueExample)Target=S0 where C, Action=assert SL ors inventoried - > A, MB=User, Pointer =0x000000FF Length=0x20, T=0, Mask=11111111111111110000000000000000Preamble Msg Type Code PL(MSB) PL (LSB) T A M Ptr(MSB)0xBB 0x00 0x0C 0x00 0x0B 000 000 11 0x00 0x00 Ptr (LSB) Length T Reserve Mask(MSB)0x00 0xFF 0x20 0 0000000 0xFF 0xFF 0x00 0x00 End Mark CRC-160x7E 0xNNNNResponseMessage Type: Response (0x01)Code: Set Type C A/I Select Parameters (0x0C)Arguments- Success (0x00)Example)SuccessPreamble Msg Type Code PL(MSB) PL (LSB) Arg End Mark CRC-160xBB 0x01 0x0C 0x00 0x01 0x00 0x7E 0xNNNNGet 18000-6C air interface protocol command ‘Query’parameters.CommandMessage Type: Command (0x00)Code: Get Type C A/I Query Parameters (0x0D)Arguments- NonePreamble M sg Type Code PL (MSB) PL (LSB) End Mark CRC-160xBB 0x00 0x0D 0x00 0x00 0x7E 0xNNNNResponseMessage Type: Response (0x01)Code: Get Type C A/I Query Parameters (0x0D)Arguments- DR (1-bit): DR=8 (0), DR=64/3 (1)- M (2-bit): M=1 (00), M=2 (01), M=4 (10), M=8 (11)- TRext (1-bit): No pilot tone (0), Use pilot tone (1)- Sel (2-bit): All (00 or 01), ~SL (10), SL (11)- Session (2-bit): S0 (00), S1 (01), S2 (10), S3 (11)- Target (1-bit): A (0), B (1)- Q (4-bit): 0-15; the number of slots in the round.Example)DR=8, M=1, TRext=Use pilot tone, Sel=All, Session=S0, Target=A, Q=4, No change to Q Preamble Msg Type Code PL (MSB) PL (LSB) DR M TR Sel S 0xBB 0x01 0x0D 0x00 0x02 0 00 1 00 00 T Q RSV EndMark CRC-160 0100 000 0x7E 0xNNNN6.Set Type C A/I Query ParametersSet 18000-6C air interface protocol command ‘Query’parameters.CommandMessage Type: Command (0x00)Code: Set Type C A/I Query Parameters (0x0E)Arguments- DR (1-bit): DR=8 (0), DR=64/3 (1)- M (2-bit): M=1 (00), M=2 (01), M=4 (10), M=8 (11)- TRext (1-bit): No pilot tone (0), Use pilot tone (1)- Sel (2-bit): All (00 or 01), ~SL (10), SL (11)- Session (2-bit): S0 (00), S1 (01), S2 (10), S3 (11)- Target (1-bit): A (0), B (1)- Q (4-bit): 0-15; the number of slots in the round.Example)DR=8, M=1, TRext=Use pilot tone, Sel=All, Session=S0, Target=A, Q=4, No change to Q Preamble Msg Type Code PL (MSB) PL (LSB) DR M TR Sel S 0xBB 0x01 0x0E 0x00 0x02 0 00 1 00 00 T Q RSV EndMark CRC-160 0100 000 0x7E 0xNNNNResponseMessage Type: Response (0x01)Code: Set Type C A/I Query Parameters (0x0E)Arguments- Success (0x00)Example)SuccessPreamble Msg Type Code PL(MSB) PL (LSB) Arg End Mark CRC-160xBB 0x01 0x0E 0x00 0x01 0x00 0x7E 0xNNNNGet RF channel. This command is valid only for non-FH mode.CommandMessage Type: Command (0x00)Code: Get current RF Channel (0x11)Arguments- NoneExample)Get current RF channelPreamble M sg Type Code PL (MSB) PL (LSB) End Mark CRC-16 0xBB 0x00 0x11 0x00 0x00 0x7E 0xNNNNResponseMessage Type: Response (0x01)Code: Get current RF Channel (0x11)Arguments- CN (8-bit): Channel Number. The range of channel number depends on regional settings - CNO (8-bit): Channel number offset for miller subcarrier.Example)Channel Number = 10Preamble M sg Type Code PL (MSB) PL (LSB) CN CNO0xBB 0x01 0x11 0x00 0x02 0x0A 0x00 End Mark CRC-160x7E 0xNNNNSet RF channel. This command is valid only for non-FHSS mode.CommandMessage Type: Command (0x00)Code: Set current RF Channel (0x12)Arguments- CN (8-bit): Channel number. The range of channel number depends on regional settings - CNO (8-bit): Channel number offset for miller subcarrier.Example)Channel Number = 10, Channel Number Offset = 0Preamble M sg Type Code PL (MSB) PL (LSB) CN CNO0xBB 0x00 0x12 0x00 0x02 0x0A 0x00End Mark CRC-160x7E 0xNNNNResponseMessage Type: Response (0x01)Code: Set current RF Channel (0x12)Arguments- NoneExample)SuccessPreamble Msg Type Code PL(MSB) PL (LSB) Arg End Mark CRC-16 0xBB 0x01 0x12 0x00 0x01 0x00 0x7E 0xNNNNGet FH and LBT controlCommandMessage Type: Command (0x00)Code: Get FH and LBT Parameters (0x13)Arguments- NoneExample)Preamble M sg Type Code PL (MSB) PL (LSB) End Mark CRC-16 0xBB 0x00 0x13 0x00 0x00 0x7E 0xNNNNResponseMessage Type: Response (0x01)Code: Get FH and LBT Parameters (0x13)Arguments- RT (16-bit): Read Time (1 = 1ms)- IT (16-bit): Idle Time (1 = 1ms)- CST (16-bit): Carrier Sense Time (1 = 1ms)- RFL (16-bit): Target RF power level (-dBm x 10)- FH (8-bit): enable (0x01 or over) / disable (0x00)- LBT (8-bit): enable (0x01 or over) / disable (0x00)- CW (8-bit): enable (0x01) / disable (0x00)Example)Success, FH disable, LBT enable, RT 400ms, IT 100ms, CST 10ms, RFL -630 (-63.0 dBm) Preamble M sg Type Code PL (MSB) PL (LSB) RT MSB RT (LSB) 0xBB 0x01 0x13 0x00 0x0B 0x01 0x90IT (MSB) IT (LSB) CST(MSB) CST (LSB) RFL(MSB) RFL (LSB) FH0x00 0x64 0x00 0x0A 0xFD 0x8A 0x00 LBT CW End Mark CRC-160x01 0x00 0x7E 0xNNNNSet FH and LBT ParametersCommandMessage Type: Command (0x00)Code: Set FH and LBT Parameters (0x14)Arguments- RT (16-bit): Read Time (1 = 1ms)- IT (16-bit): Idle Time (1 = 1ms)- CST (16-bit): Carrier Sense Time (1 = 1ms)- RFL (16-bit): Target RF power level (-dBm x 10)- FH (8-bit): enable (0x01 or over) / disable (0x00)- LBT (8-bit): enable (0x01 or over) / disable (0x00)- CW (8-bit): enable (0x01) / disable (0x00)Example1)FH enable (with LBT feature), RT 400ms, IT 100ms, CST 10ms, RFL -740 (-74.0 dBm) Preamble M sg Type Code PL (MSB) PL (LSB) RT MSB RT (LSB) 0xBB 0x00 0x14 0x00 0x0B 0x01 0x90IT (MSB) IT (LSB) CST(MSB) CST (LSB) RFL(MSB) RFL (LSB) FH0x00 0x64 0x00 0x0A 0xFD 0x8A 0x01LBT CW End Mark CRC-160x01 0x00 0x7E 0xNNNNExample2)LBT enable (with FH feature), RT 400ms, IT 100ms, CST 10ms, RFL -740 (-74.0 dBm) Preamble M sg Type Code PL (MSB) PL (LSB) RT MSB RT (LSB) 0xBB 0x00 0x14 0x00 0x0B 0x01 0x90IT (MSB) IT (LSB) CST(MSB) CST (LSB) RFL(MSB) RFL (LSB) FH0x00 0x64 0x00 0x0A 0xFD 0x8A 0x01LBT CW End Mark CRC-160x02 0x00 0x7E 0xNNNNResponseMessage Type: Response (0x01)Code: Set FH and LBT Parameters (0x14)Arguments- NoneExample)SuccessPreamble Msg Type Code PL(MSB) PL (LSB) Arg End Mark CRC-16 0xBB 0x01 0x14 0x00 0x01 0x00 0x7E 0xNNNN11.Read Type C UIIRead a EPC Block (PC + EPC)CommandMessage Type: Command (0x00)Code: Read Type C UII (0x22)Arguments- NoneExample)Preamble M sg Type Code PL (MSB ) PL (LSB) End Mark CRC-16 0xBB 0x00 0x22 0x00 0x00 0x7E 0xNNNNResponseMessage Type: Response (0x01)Code: Read Type C UII (0x22)Arguments- EPC Block (PC + EPC)Example)PC = 0x3000, EPC = 0xE2003411B802011383258566Preamble M sg Type Code PL (MSB) PL (LSB) PC (MSB) PC (LSB) 0xBB 0x01 0x22 0x00 0x0E 0x30 0x00 EPC(MSB)0xE2 0x00 0x34 0x11 0xB8 0x02 0x01EPC (LSB) End Mark CRC-16 0x13 0x83 0x25 0x85 0x66 0x7E 0xNNNN12.Start Auto ReadStart an automatic tag read operation during the inventory round, tag IDs are sent back to user though notification packet.CommandMessage Type: Command (0x00)Code: Start Auto Read (0x27)Arguments- Command Code (0x22)- RC (16-bit): Repeat cycle (how many times reader perform inventory round)Example)Repeat Cycle = 100Preamble M sg Type Code PL (MSB) PL (LSB) Reserve RC (MSB) 0xBB 0x00 0x27 0x00 0x03 0x22 0x00RC (LSB) End Mark CRC-160x64 0x7E 0xNNNNResponseMessage Type: Response (0x01)Code: Start Auto Read (0x27)Arguments- Success (0x00)Example)SuccessPreamble Msg Type Code PL(MSB) PL (LSB) Arg End Mark CRC-16 0xBB 0x01 0x27 0x00 0x01 0x00 0x7E 0xNNNNNotification 1:Message Type: Notification (0x02)Code: Read Type C UII (0x22)Arguments- EPC Block (PC + EPC)Example)PC = 0x3000, EPC = 0xE2003411B802011383258566Preamble M sg Type Code PL (MSB) PL (LSB) PC (MSB) PC (LSB) 0xBB 0x02 0x22 0x00 0x0E 0x30 0x00EPC(MSB)0xE2 0x00 0x34 0x11 0xB8 0x02 0x01EPC (LSB) End Mark CRC-160x13 0x83 0x25 0x85 0x66 0x7E 0xNNNNNotification 2:Message Type: Notification (0x02)Code: Start Auto Read (0x27)Arguments- Read complete (0x1F)Preamble Msg Type Code PL(MSB) PL (LSB) Arg End Mark CRC-16 0xBB 0x02 0x27 0x00 0x01 0x1F 0x7E 0xNNNNStop an automatic tag read operation.CommandMessage Type: Command (0x00)Code: Stop Auto Read (0x28)Arguments- NoneExample)Preamble Msg Type Code PL(MSB) PL (LSB) End Mark CRC-160xBB 0x00 0x28 0x00 0x00 0x7E 0xNNNNResponseMessage Type: Response (0x01)Code: Stop Auto Read (0x28)Arguments- Success (0x00)Example)SuccessPreamble Msg Type Code PL(MSB) PL (LSB) Arg End Mark CRC-16 0xBB 0x01 0x28 0x00 0x01 0x00 0x7E 0xNNNNStart an automatic tag read operation, tag IDs are sent back to user though notification packet. CommandMessage Type: Command (0x00)Code: Start Auto Read2 (0x36)Arguments- Reserve: type B tag (0x01), type C Tag (0x02)- MTNU: maximum number of tag to read- MTIME: maximum elapsed time to tagging (sec)- RC (16-bit): Repeat cycle (how many times reader perform inventory round).Example)MTNU = 0, MTIME = 0, Repeat Cycle = 100Preamble M sg Type Code PL (MSB) PL (LSB) Reserve MTNU0xBB 0x00 0x36 0x00 0x05 0x02 0x00 MTIME RC(MSB) RC(LSB) End Mark CRC-160x00 0x00 0x64 0x7E 0xNNNNResponseMessage Type: Response (0x01)Code: Start Auto Read2 (0x36)Arguments- Success (0x00)Example)SuccessPreamble Msg Type Code PL(MSB) PL (LSB) Arg End Mark CRC-16 0xBB 0x01 0x36 0x00 0x01 0x00 0x7E 0xNNNNNotification 1:Message Type: Notification (0x02)Code: Read Type C UII (0x22)Arguments- EPC Block (PC + EPC)Example)PC = 0x3000, EPC = 0xE2003411B802011383258566Preamble M sg Type Code PL (MSB) PL (LSB) PC(MSB) PC(LSB) 0xBB 0x02 0x22 0x00 0x0E 0x30 0x00EPC(MSB)0xE2 0x00 0x34 0x11 0xB8 0x02 0x01EPC (LSB) End Mark CRC-160x13 0x83 0x25 0x85 0x66 0x7E 0xNNNN Notification 2:Message Type: Notification (0x02)Code: Start Auto Read2 (0x36)Arguments- Read complete (0x1F)Preamble Msg Type Code PL(MSB) PL (LSB) Arg End Mark CRC-16 0xBB 0x02 0x36 0x00 0x01 0x1F 0x7E 0xNNNN15.Read Type C Tag DataRead Type C tag data from specified memory bank.CommandMessage Type: Command (0x00)Code: Read Type C Tag Memory (0x29)Arguments- AP (32-bit): Access Password if target memory bank was password protected. Otherwise, set AP filed to 0x00000000.- UL (16-bit): Target tag’s EPC length- EPC (variable): Target tag’s EPC- MB (8-bit): Target memory bank; RFU (0x00), EPC (0x01), TID (0x02), User (0x03)- SA (16-bit): Starting Address word pointer- DL (16-bit): Data Length (Word Count)Example)Access Password = 0x 00000000, UL = 12 (0x0C) byte,EPC = 0xE2003411B802011526370494, Target memory bank = RFU,Start Address = 0x0000, Length = 4 wordPreamble M sg Type Code PL (MSB) PL (LSB) AP (MSB)0xBB 0x00 0x29 0x00 0x17 0x00 0x00 AP (LSB) UL (MSB) UL (LSB) EPC(MSB)0x00 0x00 0x00 0x0C 0xE2 0x00 0x340x11 0xB8 0x02 0x01 0x15 0x26 0x37 EPC (LSB) MB SA (MSB) SA (LSB) DL (MSB) DL (LSB) 0x04 0x94 0x00 0x00 0x00 0x00 0x04End Mark CRC-160x7E 0xNNNNResponseMessage Type: Response (0x01)Code: Read Type C Tag Memory (0x29)Arguments- Tag memory contents (variable)Example)RFU memory bank = 0x0000000000000000Preamble Msg Type Code PL(MSB) PL (LSB) Argument0xBB 0x01 0x29 0x00 0x08 0x00 0x00 0x00 Argument End Mark C RC-160x00 0x00 0x00 0x00 0x00 0x7E 0xNNNNGet current frequency hopping table.CommandMessage Type: Command (0x00)Code: Get Frequency Hopping Table (0x30)Arguments- NoneExample)Preamble M sg Type Code PL (MSB) PL (LSB) End Mark CRC-16 0xBB 0x00 0x30 0x00 0x00 0x7E 0xNNNNResponseMessage Type: Response (0x01)Code: Get Frequency Hopping Table (0x30)Arguments- Table Size (8-bit)- Channel Number (variable)Example)Table Size = 6, channel numbers = 47, 19, 20, 23, 46, 16Preamble Msg Type Code PL(MSB) PL (LSB) Table Size Argument0xBB 0x01 0x30 0x00 0x07 0x06 0x2F 0x13 Argument End Mark CRC-160x14 0x17 0x2E 0x10 0x7E 0xNNNNSet current frequency hopping table.CommandMessage Type: Command (0x00)Code: Set Frequency Hopping Table (0x31)Arguments- Table Size (8-bit)- Channel Numbers (variable)Example)Table Size = 6, channel numbers 47, 19, 20, 23, 46, 16Preamble Msg Type Code PL(MSB) PL (LSB) Table Size Argument 0xBB 0x00 0x31 0x00 0x07 0x06 0x2F 0x13 Argument End Mark CRC-160x14 0x17 0x2E 0x10 0x7E 0xNNNNResponseMessage Type: Response (0x01)Code: Set Frequency Hopping Table (0x31)Arguments- Success (0x00)Example)SuccessPreamble Msg Type Code PL(MSB) PL (LSB) Arg End Mark CRC-16 0xBB 0x01 0x31 0x00 0x01 0x00 0x7E 0xNNNN18.Get Modulation ModeGet current modulation mode. The modulation mode is combination Rx modulation type and BLF.CommandMessage Type: Command (0x00)Code: Get Modulation Mode (0x32)Arguments- NoneExample)Preamble M sg Type Code PL (MSB) PL (LSB) End Mark CRC-16 0xBB 0x00 0x32 0x00 0x00 0x7E 0xNNNNResponseMessage Type: Response (0x01)Code: Get Modulation Mode (0x32)Arguments- BLF (16-bit): backscatter link frequency- RxMod (8-bit): data rate and modulation format- DR (8-bit): divide ratioBLF RxMod DR40KH, FM0, DR=8 0x0028 0x00 0x0080KH, FM0, DR=8 0x0050 0x00 0x00160KH, FM0, DR=64/3 0x00A0 0x00 0x01320KH, FM0, DR=64/3 0x0140 0x00 0x01640KH, FM0, DR=64/3 0x0280 0x00 0x0140KH, M2, DR=8 0x0028 0x01 0x0080KH, M2, DR=8 0x0050 0x01 0x00160KH, M2, DR=64/3 0x00A0 0x01 0x01320KH, M2, DR=64/3 0x0140 0x01 0x01640KH, M2, DR=64/3 0x0280 0x01 0x0140KH, M4, DR=8 0x0028 0x02 0x0080KH, M4, DR=8 0x0050 0x02 0x00160KH, M4, DR=64/3 0x00A0 0x02 0x01320KH, M4, DR=64/3 0x0140 0x02 0x01640KH, M4, DR=64/3 0x0280 0x02 0x0140KH, M8, DR=8 0x0028 0x03 0x0080KH, M8, DR=8 0x0050 0x03 0x00160KH, M8, DR=64/3 0x00A0 0x03 0x01320KH, M8, DR=64/3 0x0140 0x03 0x01640KH, M8, DR=64/3 0x0280 0x03 0x01Example)BLF = 160KHz, RxMod = M8, DR = 64/3Preamble M sg Type Code PL (MSB) PL (LSB) BLF(MSB) BLF (LSB) 0xBB 0x01 0x32 0x00 0x04 0x00 0xA0 RxMod DR End Mark CRC-160x03 0x01 0x7E 0xNNNN19.Set Modulation ModeSet current modulation mode. The modulation mode is combination Rx modulation type and BLF.CommandMessage Type: Command (0x00)Code: Set Modulation Mode (0x33)Arguments- Modulation Mode (8-bit): High Sensitivity (0x00), High Speed (0x01), Manual (0xFF)- BLF (16-bit), RxMod (8-bit), DR (8-bit): only available when modulation mode is manual.BLF RxMod DR40KH, FM0, DR=8 0x0028 0x00 0x0080KH, FM0, DR=8 0x0050 0x00 0x00160KH, FM0, DR=64/3 0x00A0 0x00 0x01320KH, FM0, DR=64/3 0x0140 0x00 0x01640KH, FM0, DR=64/3 0x0280 0x00 0x0140KH, M2, DR=8 0x0028 0x01 0x0080KH, M2, DR=8 0x0050 0x01 0x00160KH, M2, DR=64/3 0x00A0 0x01 0x01320KH, M2, DR=64/3 0x0140 0x01 0x01640KH, M2, DR=64/3 0x0280 0x01 0x0140KH, M4, DR=8 0x0028 0x02 0x0080KH, M4, DR=8 0x0050 0x02 0x00160KH, M4, DR=64/3 0x00A0 0x02 0x01320KH, M4, DR=64/3 0x0140 0x02 0x01640KH, M4, DR=64/3 0x0280 0x02 0x0140KH, M8, DR=8 0x0028 0x03 0x0080KH, M8, DR=8 0x0050 0x03 0x00160KH, M8, DR=64/3 0x00A0 0x03 0x01320KH, M8, DR=64/3 0x0140 0x03 0x01640KH, M8, DR=64/3 0x0280 0x03 0x01Example)Normal modePreamble Msg Type Code PL(MSB) PL (LSB) Arg End Mark CRC-16 0xBB 0x00 0x33 0x00 0x01 0x00 0x7E 0xNNNNExample)Manual, BLF = 160KHz, RxMod = M8, DR = 64/3Preamble M sg Type Code PL (MSB) PL (LSB) Mod Mode BLF(MSB) 0xBB 0x00 0x33 0x00 0x05 0xFF 0x00BLF (LSB) RxMod DR End Mark CRC-160xA0 0x03 0x01 0x7E 0xNNNNResponseMessage Type: Response (0x01)Code: Set Modulation Mode (0x33)Arguments- NoneExample)SuccessPreamble Msg Type Code PL(MSB) PL (LSB) Arg End Mark CRC-16 0xBB 0x01 0x33 0x00 0x01 0x00 0x7E 0xNNNN20.Write Type C Tag DataWrite type C tag data.CommandMessage Type: Command (0x00)Code: Write Type C User Data (0x46)Arguments- AP (32-bit): Access Password if target memory bank was password protected. Otherwise, set AP filed to 0x00000000.- UL (16-bit): Target tag’s EPC length- EPC (variable): Target tag’s EPC- MB (8-bit): Target memory bank; 0x00 Reserved, 0x01 EPC, 0x02 TID, 0x03 User- SA (16-bit): Starting Address word pointer- DL (16-bit): Data Length to write (Word Count)- DT (variable): Data to writeExample)Access Password = 0x 00000000, UL = 12 (0x0C),EPC = 0xE2003411B802011526370494,Target memory bank = RFU, Start Address = 0x0000, Data Length = 4 word,Data to write = 0x1234567800000000Preamble Msg Type Code PL(MSB) PL (LSB) AP(MSB)0xBB 0x00 0x46 0x00 0x1F 0x00 0x00 0x00 AP (LSB) U L(MSB) UL(LSB) EPC(MSB)0x00 0x00 0x0C 0xE2 0x00 0x34 0x11 0xB8EPC(LSB) MB 0x02 0x01 0x15 0x26 0x37 0x04 0x94 0x00 SA(MSB) SA (LSB) DL (MSB) DL (LSB) DT(MSB)0x00 0x00 0x00 0x04 0x12 0x34 0x56 0x78DT (LSB) E nd Mark CRC-160x00 0x00 0x00 0x00 0x7E 0xNNNNResponseMessage Type: Response (0x01)Code: Write Type C User Data (0x46)Arguments- Success (0x00)Example)SuccessPreamble Msg Type Code PL(MSB) PL (LSB) Arg End Mark CRC-160xBB 0x01 0x46 0x00 0x01 0x00 0x7E 0xNNNN21.BlockWrite Type C Tag DataBlockwrite type C tag data.CommandMessage Type: Command (0x00)Code: BlockWrite Type C User Data (0x47)Arguments- AP (32-bit): Access Password if target memory bank was password protected. Otherwise, set AP filed to 0x00000000.- UL (16-bit): Target tag’s EPC length- EPC (variable): Target tag’s EPC- MB (8-bit): Target memory bank; 0x00 Reserved, 0x01 EPC, 0x02 TID, 0x03 User- SA (16-bit): Starting Address word pointer- DL (16-bit): Data Length to write (Word Count)- DT (variable): Data to writeExample)Access Password = 0x 00000000, UL = 12 (0x0C),EPC = 0xE2003411B802011526370494,Target memory bank = RFU, Start Address = 0x0000, Data Length = 4 word,Data to write = 0x1234567800000000Preamble M sg Type Code PL (MSB) PL (LSB) AP (MSB)0xBB 0x00 0x47 0x00 0x1F 0x00 0x00 AP (LSB) UL (MSB) UL (LSB) EPC(MSB)0x00 0x00 0x00 0x0C 0xE2 0x00 0x340x11 0xB8 0x02 0x01 0x15 0x26 0x37 EPC (LSB) MB SA (MSB) SA (LSB) DL (MSB) DL (LSB) 0x04 0x94 0x00 0x00 0x00 0x00 0x04DT (MSB)0x12 0x34 0x56 0x78 0x00 0x00 0x00DT (LSB) End Mark CRC-160x00 0x7E 0xNNNNResponseMessage Type: Response (0x01)Code: BlockWrite Type C User Data (0x47)Arguments- Success (0x00)Example)SuccessPreamble Msg Type Code PL(MSB) PL (LSB) Arg End Mark CRC-16 0xBB 0x01 0x47 0x00 0x01 0x00 0x7E 0xNNNNBlock erases type C tag data.CommandMessage Type: Command (0x00)Code: BlockErase Type C Tag Data (0x48)Arguments- AP (32-bit): Access Password if target memory bank was password protected. Otherwise, set AP filed to 0x00000000.- UL (16-bit): Target tag’s EPC length- EPC (variable): Target tag’s EPC- MB (8-bit): Target memory bank; 0x00 RFU, 0x01 EPC, 0x02 TID, 0x03 User- SA (16-bit): Starting Address word pointer- DL (16-bit): Data Length (Word Count)Example)Access Password = 0x 00000000, UL = 12 (0x0C) byte,EPC = 0xE2003411B802011526370494,Target memory bank = RFU, Start Address = 0x0000, Length = 4 wordPreamble M sg Type Code PL (MSB) PL (LSB) AP (MSB)0xBB 0x00 0x48 0x00 0x17 0x00 0x00 AP (LSB) UL (MSB) UL (LSB) EPC(MSB)0x00 0x00 0x00 0x0C 0xE2 0x00 0x340x11 0xB8 0x02 0x01 0x15 0x26 0x37 EPC (LSB) MB SA (MSB) SA (LSB) DL (MSB) DL (LSB) 0x04 0x94 0x00 0x00 0x00 0x00 0x04End Mark CRC-160x7E 0xNNNNResponseMessage Type: Response (0x01)Code: BlockErase Type C Tag Data (0x48)Arguments- SuccessExample)SuccessPreamble Msg Type Code PL(MSB) PL (LSB) Arg End Mark CRC-16 0xBB 0x01 0x48 0x00 0x01 0x00 0x7E 0xNNNN。