UHF電子標簽讀寫器UHFREADER18 用戶手冊v2.0
一、通訊接口規格
讀寫器通過RS232或者RS485接口與上位機串行通訊,按上位機的命令要求完成相應操作。串行通訊接口的數據幀為一個起始位,8個數據位,一個停止位,無奇偶校驗位,缺省波特率57600。在串行通訊過程中,每個字節的最低有效位最先傳輸。
二、協議描述
通訊過程由上位機發送命令及參數給讀寫器,然后讀寫器將命令執行結果狀態和數據返回給上位機。讀寫器接收一條命令執行一條命令,只有在讀寫器執行完一條命令后,才能接收下一條命令。在讀寫器執行命令期間,如果向讀寫器發送命令,命令將丟失。
上位機發送過程如下:
上位機 |
數據傳遞方向 |
讀寫器 |
命令數據塊 |
→ |
|
說明:上位機發送的數據流中,每兩個相鄰字節之間的發送時間間隔必須小于15ms。在上位機的命令數據流發送過程中,如果相鄰字符間隔大于15ms,則之前接收到的數據均被當作無效數據丟棄,然后從下一個字節開始,重新接收。
讀寫器接收到正確命令后,在不超過詢查時間的范圍內 (不包括數據發送過程,僅僅是讀寫器執行命令的時間),會返回給讀寫器一個響應。
讀寫器發送過程如下:
讀寫器 |
數據傳遞方向 |
上位機 |
響應數據塊 |
→ |
|
說明:讀寫器發送響應數據期間,相鄰字節之間的發送時間間隔小于15ms
完整的一次通訊過程是:上位機發送命令給讀寫器,并等待讀寫器返回響應;讀寫器接收命令后,開始執行命令,然后返回響應;之后上位機接收讀寫器的響應。一次通訊結束。
三、數據的格式
1. 上位機命令數據塊
Len |
Adr |
Cmd |
Data[] |
LSB-CRC16 |
MSB-CRC16 |
數據各部分說明如下:
|
長度(字節) |
說明 |
Len |
1 |
命令數據塊的長度,但不包括Len本身。即數據塊的長度等于4加Data[]的長度。Len允許的最大值為96,最小值為4。 |
Adr |
1 |
讀寫器地址。地址范圍:0x00~0xFE,0xFF為廣播地址,讀寫器只響應和自身地址相同及地址為0xFF的命令。讀寫器出廠時地址為0x00。 |
Cmd |
1 |
命令代碼。 |
Data[] |
不定 |
參數域。在實際命令中,可以不存在。 |
LSB-CRC16 |
1 |
CRC16低字節。CRC16是從Len到Data[]的CRC16值 |
MSB-CRC16 |
1 |
CRC16高字節。 |
2. 讀寫器響應數據塊
Len |
Adr |
reCmd |
Status |
Data[] |
LSB-CRC16 |
MSB-CRC16 |
數據各部分說明如下:
|
長度(字節) |
說明 |
Len |
1 |
響應數據塊的長度,但不包括Len本身。即數據塊的長度等于5加Data[]的長度。 |
Adr |
1 |
讀寫器地址。 |
reCmd |
1 |
指示該響應數據塊是哪個命令的應答。如果是對不可識別的命令的應答,則reCmd為0x00。 |
Status |
1 |
命令執行結果狀態值。 |
Data[] |
不定 |
數據域,可以不存在。 |
LSB-CRC16 |
1 |
CRC16低字節。CRC16是從Len到Data[]的CRC16值。 |
MSB-CRC16 |
1 |
CRC16高字節。 |
CRC16的C語言算法:
#define PRESET_VALUE 0xFFFF
#define POLYNOMIAL 0x8408
unsigned int uiCrc16Cal(unsigned char const * pucY, unsigned char ucX)
{
unsigned char ucI,ucJ;
unsigned short int uiCrcValue = PRESET_VALUE;
for(ucI = 0; ucI < ucX; ucI++)
{
uiCrcValue = uiCrcValue ^ *(pucY + ucI);
for(ucJ = 0; ucJ < 8; ucJ++)
{
if(uiCrcValue & 0x0001)
本文來源于 廣州網源電子設備有限公司 http://www.521gu.com 主營:門禁 梯控 一卡通 RFID讀卡器 遠距離讀卡器
- 上一篇:======關于開具增值稅專用發票的說明====== 2018/3/10
- 下一篇:【視頻】M29D如何發卡刪除卡及恢愎 2017/4/25