最近用RC523讀身份證ID,經過幾天摸索和參考網上資料,終于所成功了,特發此貼給有需要的朋友,但愿能少走彎路
RC523 寄存器配置:
RcSetReg(JREG_TXASK, 0x00);
RcSetReg(JREG_CONTROL, 0x10);
RcSetReg(JREG_TXMODE, 0x03);
RcSetReg(JREG_RXMODE, 0x0B);
RcSetReg(JREG_TYPEB, 0x03);
RcSetReg(JREG_DEMOD, 0x4D);
RcSetReg(JREG_GSN, 0xFF);
RcSetReg(JREG_CWGSP, 0x3F);
RcSetReg(JREG_MODGSP, 0x18);
RcSetReg(JREG_RXTHRESHOLD, 0x4D);
RcSetReg(JREG_MODWIDTH,0x68);
身份證讀卡器的程序流程如下:
先發送0×05,0×00,0×00詢卡命令后,身份證返回12字節卡類型代碼,不同身份證返回的數據不一樣。比如對兩個身份證發送詢卡命令后分別返回
0×50 0×00 0×00 0×00 0×00 0xd1 0×03 0×86 0×0c 0×00 0×80 0×80
0×50 0×00 0×00 0×00 0×00 0xd1 0×03 0×86 0×07 0×00 0×80 0×90
詢卡成功后,發送SELECT命令:0×1d 0×00 0×00 0×00 0×00 0×00 0×08 0×01 0×08 對二代身份證進行選卡操作。這時身份證返回的第一個字節應該等于SELECT命令的最后一個字節0×08,根據這個條件來判斷SELECT命令是否操作成功。
最后發送GUID命令:0×00 0×36 0×00 0×00 0×08,身份證會返回10字節數據,其中前8字節就是身份證的唯一ID,后兩字節是0×90 0×00。可以用后兩字節來判斷得到的是否是身份證ID。
|