15693協議相關內容紀要
一、從VCD to VICC的一次請求;
請求格式:
1.1 請求標志位


下文出現請求標志eg:
0x07——雙載波/高速率/無AFI域/16個slots
0x17——雙載波/高速率/有AFI域/16個slots
0x23——雙載波/高速率/請求尋址帶UID
0x63——雙載波/高速率/請求尋址帶UID/選擇權標志置位
1.2 命令編碼

二、從VICC to VCD的一次響應;
響應格式:
2.1響應標志位

當上表中錯誤標志被VICC置位,將包含錯誤碼域,並提示出現的錯誤信息錯誤碼在表 7 中定義。假如 VICC 不支持表 7 中列出的規定錯誤碼, VICC 將以錯誤碼 '0F' 應答( "不給出錯誤信息")。

三、命令格式說明+示例;
1、清卡指令 "01"
| VCD TO VICC |
標志(1B)+命令編碼(1B)+可選AFI(1B)+MASK長度(1B)+mask值(1B)+CRC16(2B) |
| 17 01 00 00 82 32 (帶AFI的清卡指令) 07 01 00 11 53 |
|
| VICC TO VCD |
標志(1B)+DSFID(1B)+UID(8B)+CRC16(2B) |
| 00 00 5F 02 1F 9E 50 01 04 E0 C8 F4 00 11 AA 9C 37 59 50 01 04 E0 3D F8 |
2、讀單個塊指令 "20"
| VCD TO VICC |
標志(1B)+命令編碼(1B)+UID(8B)+數據(塊數量1B)+CRC16(2B) |
| 63 20 1D 9F 37 59 50 01 04 E0 0A 08 99 |
|
| VICC TO VCD |
標志(1B)+塊狀態(1B)+數據(4B)+CRC16(2B) |
| 00 00 00 00 00 00 8F F7 00 00 11 22 33 44 FC 06 |
3、寫單個塊指令 "21"
| VCD TO VICC |
標志(1B)+命令編碼(1B)+UID(8B)+塊數量(1B)+數據(塊長度4B)+CRC16(2B) (塊被鎖定之后寫指令返回錯誤狀態) |
| 23 21 1D 9F 37 59 50 01 04 E0 0A 11 22 33 44 4A 18 23 21 1D 9F 37 59 50 01 04 E0 0B 55 66 77 88 24 3F 23 21 1D 9F 37 59 50 01 04 E0 0C 99 AA BB CC 06 6B |
|
| VICC TO VCD |
標志(1B)+ CRC16(2B) |
| 00 78 F0 |
4、鎖定塊 "22"
| VCD TO VICC |
標志(1B)+命令編碼(1B)+UID(8B)+塊序號(1B)+CRC16(2B) (鎖定之后為永久鎖定,能讀不能寫,二次鎖定返回錯誤狀態) |
| 23 22 AA 9C 37 59 50 01 04 E0 0A 0B A3 |
|
| VICC TO VCD |
標志(1B)+ CRC16(2B) |
| 00 78 F0 |
5、讀多個快 "23"
| VCD TO VICC |
標志(1B)+命令編碼(1B)+UID(8B)+數據(首塊序號+塊數量)(2B)+CRC16(2B) (塊數量為0表示讀單個塊) |
| 63 23 1D 9F 37 59 50 01 04 E0 0A 01 93 93 63 23 1D 9F 37 59 50 01 04 E0 0A 02 08 A1 |
|
| VICC TO VCD |
標志(1B)+[塊狀態(1B)+數據(4B)]*(塊數量+1)+CRC16(2B) |
| 00 00 11 22 33 44 00 55 66 77 88 22 B1 00 00 11 22 33 44 00 55 66 77 88 00 99 AA BB CC 00 00 |
6、寫多個塊 "24"
| VCD TO VICC |
標志(1B)+命令編碼(1B)+UID(8B)+首塊序號(1B)+塊數量(1B)+數據(塊長度NB)+CRC16(2B) (一直返回error未找到原因) |
| 23 24 1D 9F 37 59 50 01 04 E0 09 05 01 01 01 01 02 02 02 02 03 03 03 03 04 04 04 04 05 05 05 05 B3 81 |
|
| VICC TO VCD |
數據(塊長度NB)+CRC16(2B) |
| 01 0F 68 EE |
【notice】:關於讀寫多個塊指令不同廠商自定義,有出現讀多個塊數據回復循環且多於要讀數量,無法接收到CRC校驗值;寫多個塊也有寫不成功的情況出現,不同的VICC卡情況不同,需注意,大多數情況下,寫單個塊和讀單個塊滿足需求,基於穩定性考慮,這兩條指令使用需測試。
7、選擇 "25"
| VCD TO VICC |
標志(1B)+命令編碼(1B)+UID(8B)+CRC16(2B) |
| 23 25 1D 9F 37 59 50 01 04 E0 A3 05 |
|
| VICC TO VCD |
標志(1B)+CRC16(2B) |
| 00 78 F0 |
8、復位准備 "26"
| VCD TO VICC |
標志(1B)+命令編碼(1B)+UID(8B)+CRC16(2B) |
| 23 26 1D 9F 37 59 50 01 04 E0 A4 D3 |
|
| VICC TO VCD |
標志(1B)+CRC16(2B) |
| 00 78 F0 |
9、寫AFI "27"
| VCD TO VICC |
標志(1B)+命令編碼(1B)+UID(8B)+AFI值(1B)+CRC16(2B) (AFI被鎖定后二次寫入返回錯誤狀態) |
| 23 27 1D 9F 37 59 50 01 04 E0 00 A2 3F |
|
| VICC TO VCD |
標志(1B)+CRC16(2B) |
| 00 78 F0 |
10、鎖定AFI "28"
| VCD TO VICC |
標志(1B)+命令編碼(1B)+UID(8B)+CRC16(2B) (AFI被鎖定后二次鎖定返回錯誤狀態) |
| 23 28 1D 9F 37 59 50 01 04 E0 71 08 |
|
| VICC TO VCD |
標志(1B)+CRC16(2B) |
| 00 78 F0 |
11、寫DSFID命令 "29"
| VCD TO VICC |
標志(1B)+命令編碼(1B)+UID(8B)+DSFID值(1B)+CRC16(2B) (DSFID被鎖定后二次寫入返回錯誤狀態) |
| 23 29 1D 9F 37 59 50 01 04 E0 11 51 BF |
|
| VICC TO VCD |
標志(1B)+CRC16(2B) |
| 00 78 F0 |
12、鎖定DSFID命令 "2A"
| VCD TO VICC |
標志(1B)+命令編碼(1B)+UID(8B)+CRC16(2B) (DSFID被鎖定后二次鎖定返回錯誤狀態) |
| 23 2A 1D 9F 37 59 50 01 04 E0 8B 93 |
|
| VICC TO VCD |
標志(1B)+CRC16(2B) |
| 00 78 F0 |
13、獲取系統信息 "2B"
| VCD TO VICC |
標志(1B)+命令編碼(1B)+UID(8B)+CRC16(2B) |
| 23 2B 1D 9F 37 59 50 01 04 E0 76 DE |
|
| VICC TO VCD |
標志(1B)+信息標志(1B)+UID(8B)+DSFID(1B)+afi(1B)+信息域(2B)+CRC16(2B) |
| 00 0F 1D 9F 37 59 50 01 04 E0 11 00 1B 03 01 51 00 00 0F C7 C2 37 59 50 01 04 E0 00 00 1B 03 01 33 00 |
14、獲取多個塊安全狀態 "2C"
| VCD TO VICC |
標志(1B)+命令編碼(1B)+UID(8B)+首塊序號(1B)+塊數量(1B)+CRC16(2B) (返回狀態數量等於塊數量加一) |
| 23 2C 1D 9F 37 59 50 01 04 E0 09 06 68 86 |
|
| VICC TO VCD |
標志(1B)+塊安全狀態(NB)+CRC16(2B) |
| 00 00 00 00 00 00 00 00 73 83 |
15、靜默 "02"
| VCD TO VICC |
標志(1B)+命令編碼(1B)+UID(8B) +CRC16(2B) |
| 23 02 AA 9C 37 59 50 01 04 E0 72 09 |
|
| VICC TO VCD |
無 |
| 無 |
防碰撞部分待整理。
在讀卡過程中出現一張卡會回復兩個UID情況,暫時未查明原因。
