1. 通信與協(xié)議說明
串口配置(8位數據位):
波特率 | 19200 |
校驗 | 1位偶校驗 |
停止位 | 1位 |
系統(tǒng)可配置內容:(16進制通信)
- 天線開關和應答模式,(從機主動發(fā)送)模式時讀卡器讀到卡后會主動往總線發(fā)讀卡數據;(主從模式)時讀卡器不會主動返回數據,等到主機訪問才回復數據。(此配置數據斷電不保存,需要每次上電進行一次配制)(16進制通信)
主機發(fā)送命令 | 配置內容 | 讀卡器返回 | 備注 |
02 06 00 00 00 03 C9 F8 | 天線開,從機主動發(fā)送 | 02 06 00 00 00 03 C9 F8 | 通常應用在一主一從的通信中 |
02 06 00 00 00 02 08 38 | 天線開,主從模式 | 02 06 00 00 00 02 08 38 |
|
02 06 00 00 00 01 48 39 | 天線關,從機主動發(fā)送 | 02 06 00 00 00 01 48 39 |
|
02 06 00 00 00 00 89 F9 | 天線關,主從模式 | 02 06 00 00 00 00 89 F9 |
|
- 卡片的后帶數據長度和讀卡器地址。后帶數據指的是有些卡片發(fā)送數據除了卡號和國家代號外,后面還帶有其他數據,當前產品支持訪問20個字節(jié)的數據(160位)。此配置數據保存,斷電不丟失。(16進制通信)
主機發(fā)送命令 | 配置內容 | 讀卡器返回 | 備注 |
02 06 00 01 A0 02 21 F8 | A0(160)個位。地址0x02 (范圍:1-247) | 02 06 00 01 A0 02 21 F8 | 讀取后帶數據160位,地址配置為0x02 |
02 06 00 01 00 02 59 F8 | 無后加數據(范圍:0-160),地址0x02 (范圍:1-247) | 02 06 00 01 00 02 59 F8 | 配置值不在范圍時,返回值正常,但系統(tǒng)不理會。 |
讀取數據:(16進制通信)
- 讀取天線開關和應答模式信息。(16進制通信)
主機發(fā)送命令 | 配置內容 | 讀卡器返回 | 備注 |
02 03 00 00 00 01 84 39 | 回讀0x00地址信息 | 02 03 02 00 03 BC 45 | 天線開,從機主動發(fā)送 |
2、讀取后帶數據長度、地址、版本號信息。(16進制通信)
主機發(fā)送命令 | 配置內容 | 讀卡器返回 | 備注 |
02 03 00 01 00 04 15 FA | 回讀0x01-0x04地址信息 | 02 03 08 A0 02 17 05 B1 FA 00 01 BA C1 | 后帶數據長0xA0,地址:0x02,版本信息: 17 05 B1 FA 00 01 |
3、讀取系統(tǒng)調諧狀態(tài)信息(16進制通信)
主機發(fā)送命令 | 配置內容 | 讀卡器返回 | 備注 |
02 03 00 05 00 09 95 FE | 回讀0x05-0x0D地址信息 | 02 03 12 B5 3F 50 62 81 9C B9 B6 98 8A 70 60 52 4A 41 3C 37 05 26 AA | 系統(tǒng)調諧狀態(tài)信息,用于查看模塊工作狀態(tài),平常不用讀取 |
4、讀卡數據讀取:(16進制通信)
主機發(fā)送命令 | 配置內容 | 讀卡器返回 | 備注 |
02 03 00 0E 00 07 65 F8 | 回讀0x0E-0x15地址信息,長度為0x07 | 02 03 0E 02 62 07 B6 60 CB 53 00 80 00 00 00 00 3E DC F6 | 讀取到卡號等卡片信息 |
02 03 00 0E 00 11 E4 36 | 回讀0x0E-0x1F地址信息,長度為0x11 | 02 03 22 02 62 07 B6 60 CB 53 80 80 00 00 00 11 11 11 11 22 22 22 22 33 33 24 55 25 25 45 53 55 84 53 43 FF 20 D5 CF | 讀取到卡號信息和后帶數據信息 |
讀卡數據讀取的長度可以從0x07-0x11(就是說回讀信息地址可以從(0x0E-0x15)到(0x0E-0x1F))。
發(fā)送命令分析(02 03 00 0E 00 07 65 F8)
02: 從機地址;
03: 讀取功能(MODBUS-RTU);
000E:讀取寄存器地址;
0007:讀取數據長度(7個字14 Bytes);
65F8:前面所有數據(02 03 00 0E 00 07)的CRC檢驗值,低字節(jié)先發(fā)。
接收命令分析:(02 03 0E 02 62 07 B6 60 CB 53 00 80 00 00 00 00 3E DC F6)
02:從機地址;
03: 讀取功能(MODBUS-RTU);
0E:回讀數據長度(14 Bytes);
0262:國家代號(10進制610)
07B660CB53:卡號數據(10進制33124567891)
00:0000 0000低位代表后加數據是否有效(0無效、1有效),其他7位是未定義數據。
80:1000 0000高位代表動物標志,其他7位是未定義數據。
000000:卡內其他數據,未定義數據。
00:數據傳輸補充夠偶數字節(jié)(14 Bytes),無意義
3E: 當前數據的讀卡時間(0x3E*0.2s) 證明是12.4s 前讀到的,多計算到51s前。
DCF6:前面整個數據包(02 03 0E 02 62 07 B6 60 CB 53 00 80 00 00 00 00 3E)的CRC檢驗。DC為低字節(jié),F(xiàn)6為高字節(jié)。
接收命令分析:(02 03 22 02 62 07 B6 60 CB 53 80 80 00 00 00 11 11 11 11 22 22 22 22 33 33 24 55 25 25 45 53 55 84 53 43 FF 20 D5 CF)
02 03 22 02 62 07 B6 60 CB 53 80 80 00 00 00:和以上分析*。
11 11 11 11 22 22 22 22 33 33 24 55 25 25 45 53 55 84 53 43:20字節(jié)的后加數據。
FF:數據傳輸補充夠偶數字節(jié)(34 Bytes),無意義。
20:當前數據的讀卡時間(0x20*0.2s) 證明是6.4s 前讀到的,多計算到51s前。
D5CF: 前面整個數據包的CRC檢驗,D5為低字節(jié),CF為高字節(jié)。
從機主動發(fā)信息的方式:機器讀到卡會馬上發(fā)一幀數據,如果卡片一直不離開數據不會重復發(fā)送,如果卡離開0.2s以上再進入機器會再發(fā)一幀數據(每次卡片進入都會實時往總線發(fā)送一幀數據)
當將讀卡器配置為從機主動發(fā)送模式后,讀卡器讀到卡就馬上往總線上發(fā)卡號信息,信息的長度可以配置,比如我們將后加數據長度配置為30位(16位以下不發(fā)送后帶數據,后帶數據從16-160有效),35位為4個字節(jié)3位需要5個字節(jié)來發(fā)送,所以字符串數據長度為12(卡號信息長度)+5=17字節(jié),但是由于數據長度數要偶數(字),所以后面要補個隨機數,即18個。所以字符串的構成就是0xxx(從機地址)+0x03(功能)+0x12(18個字節(jié))+18個字節(jié)數據+2字節(jié)CRC。總共23個字節(jié)。(后加數據如果沒有需要時配0,有利于數據傳輸)
例如后加數據配置A0(160位、20字節(jié))。卡片有后加數據時收到的數據為:
03 03 20 02 62 07 B6 60 CB 53 01 80 00 00 00 11 11 11 11 22 22 22 22 33 33 24 55 25 25 45 53 55 84 53 43 C1 26
03:從機地址;
03: 讀取功能(MODBUS-RTU);
20:回讀數據長度(32 Bytes);
0262:國家代號(10進制610)
07B660CB53:卡號數據(10進制33124567891)
:王