Host-to-Reader通信框架
Header | Data Length | Command Code | Data | CRC-16 |
---|---|---|---|---|
1字节,必须是 0xFF | 1字节, 数据字段的字节数 | 1字节 | 数据字段,高字节在前 | 2字节循环冗余码,高字节在前 |
Reader-to-Host通信框架
Header | Data Length | Command Code | Status Code | Data | CRC-16 |
---|---|---|---|---|---|
1字节,必须是 0xFF | 1字节, 数据字段的字节数 | 1字节 | 2个字节,状态码,0表示操作成功,非零值表示操作失败 | 数据字段,高字节在前 | 2字节循环冗余码,高字节在前 |
#define MSG_CRC_INIT 0xFFFF #define MSG_CCITT_CRC_POLY 0x1021 void CRC_calcCrc8(uint16 *crcReg, uint16 poly, uint16 u8Data) { uint16 i; uint16 xorFlag; uint16 bit; uint16 dcdBitMask = 0x80; for(i=0; i<8; i++) { xorFlag = *crcReg & 0x8000; *crcReg <<= 1; bit = ((u8Data & dcdBitMask) == dcdBitMask); *crcReg |= bit; if(xorFlag) { *crcReg = *crcReg ^ poly; } dcdBitMask >>= 1; } } uint16 CalcCRC(uint8 *msgbuf,uint8 msglen) { uint16 calcCrc = MSG_CRC_INIT; uint8 i; for (i = 1; i < msglen; ++i) CRC_calcCrc8(&calcCrc, MSG_CCITT_CRC_POLY, msgbuf[i]); return calcCrc; }
命令分类和工作流程
命令集名称 | 描述 |
---|---|
Bootloader命令 | 读写器Bootloader阶段时可以执行的任何命令都称为Bootloader命令。 |
标签盘存命令 | 与盘存操作相关的命令 |
标签访问命令 | 与标签访问操作相关的命令 |
设置命令 | 设置相关的命令 |
获取命令 | 获取相关的命令 |
特别提示