M1卡做電子錢包使用時,要將某個塊按規定格式初始化爲數值塊
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
數值 |
數值 |
數值 |
Adr |
Adr |
Adr |
Adr |
0字節是數值最低字節。
初始數值塊是用寫命令把數據寫到塊,例如第8塊初始化爲數值塊,數值爲0,用寫塊命令寫入
0×00 0×00 0×00 0×00 0xff 0xff 0xff 0xff 0×00 0×00 0×00 0×00 0×08 0xf7 0×08 0xf7
然後可以用DECREMENT INCREMENT TRANSFER RESTORE命令對數值塊進行操作。
INCREMENT 對存儲在數值塊中的數值做加法操作,並將結果存到臨時數據寄存器
DECREMENT 對存儲在數值塊中的數值做減法操作,並將結果存到臨時數據寄存器
TRANSFER 將臨時數據寄存器的內容寫入數值塊
RESTORE 將數值塊內容存入臨時數據寄存器
電子錢包增值函數流程
詢卡-防衝突-選卡-密碼驗證-增值-傳送-掛起
電子錢包減值函數流程
詢卡-防衝突-選卡-密碼驗證-減值-傳送-掛起
RESTORE命令是在一個扇區內數值塊進行拷貝時用的,一般錢包數據需要備份在同一扇區的不同塊中,則備份和恢復時都要用到RESTORE命令。
數值時一個帶符號4字節值,這個值的最低一個字節保存在最低的地址中,所以增加1時,4字節增加的值數組應該是0×01 0×00 0×00 0×00,不是0×00 0×00 0×00 0×01