diff --git a/README.md b/README.md index 6201264..28ed70f 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # Arduino-Aime-Reader 使用 Arduino + PN532 + WS2812B 制作的 Aime 读卡器。支持 Felica,banapassport,Aime(Mifare 卡模拟 Felica 是可选功能)。 -通信数据格式可参考 [card.txt](https://github.com/Sucareto/Arduino-Aime-Reader/blob/main/doc/card.txt) 和 [nfc.txt](https://github.com/Sucareto/Arduino-Aime-Reader/blob/main/doc/nfc.txt)。 -替换 chunihook.dll 可在控制台输出通信数据,源码在 [sg-cmd.c](https://github.com/Sucareto/Arduino-Chunithm-Reader/blob/main/tools/sg-cmd.c)。 +通信数据格式可参考 [Example.txt](doc/Example.txt) 和 [nfc.txt](doc/nfc.txt)。 +替换 chunihook.dll 可在控制台输出通信数据,源码在 [sg-cmd.c](tools/sg-cmd.c)。 #### 使用方法: 按照 [PN532](https://github.com/elechouse/PN532) 的提示安装库; @@ -15,8 +15,8 @@ Arduino 和 PN532 接好 VCC,GND,SDA,SCL; - MaiMai Finale:COM2,仅支持读取 Aime 某些 Arduino 可能需要在打开主程序前给串口发送 DTR/RTS,需要先打开一次 Arduino 串口监视器再启动主程序。 -如果是 Chunithm,可以在启动前运行一次 [DTR-RTS.exe](https://github.com/Sucareto/Arduino-Aime-Reader/blob/main/tools/DTR-RTS.exe) 以向 COM1 和 COM12 发送DTR/RTS。 -如果需要向其他端口发送,可以修改 [DTR-RTS.c](https://github.com/Sucareto/Arduino-Aime-Reader/blob/main/tools/DTR-RTS.c) 然后编译。 +如果是 Chunithm,可以在启动前运行一次 [DTR-RTS.exe](tools/DTR-RTS.exe) 以向 COM1 和 COM12 发送DTR/RTS。 +如果需要向其他端口发送,可以修改 [DTR-RTS.c](tools/DTR-RTS.c) 然后编译。 #### 已测试开发板: - SparkFun Pro Micro(ATmega32U4),需要发送 DTR/RTS diff --git a/doc/Example.txt b/doc/Example.txt new file mode 100644 index 0000000..22e181e --- /dev/null +++ b/doc/Example.txt @@ -0,0 +1,60 @@ +//SG_NFC_CMD_GET_FW_VERSION +E0 [05] 00 09 (30) 00 [ ] +E0 [1D] 00 [ ] (30) 00 17 [54 4E 33 32 4D 53 45 43 30 30 33 53 20 46 2F 57 20 56 65 72 31 2E 32] [ ] + +//SG_NFC_CMD_GET_HW_VERSION +E0 [05] 00 [ ] (32) 00 [ ] +E0 [1D] 00 [ ] (32) 00 17 [54 4E 33 32 4D 53 45 43 30 30 33 53 20 48 2F 57 20 56 65 72 33 2E 30] [ ] + +//SG_RGB_CMD_GET_INFO +E0 [05] 08 [ ] (F0) 00 [ ] +E0 [0F] 08 [ ] (F0) 00 [09 31 35 30 38 34 FF 10 00 12] [ ] + +//SG_NFC_CMD_POLL,FELICA +E0 [05] 00 [ ] (42) 00 [ ] +E0 [19] 00 [ ] (42) 00 13 01 20 10 [ 8 byte IDm ] [ 8 byte PMm ] [ ] + +//SG_NFC_CMD_FELICA_ENCAP,Skip reply +E0 [13] 00 [ ] (71) [ ] [ 8 byte IDm ] [ payload_len ] ( ) [ unknown data ] [ ] +E0 [06] 00 [ ] (71) [01] 00 [ ] + +//SG_NFC_CMD_FELICA_ENCAP,FELICA_CMD_POLL +E0 [13] 00 [ ] (71) 0E [ 8 byte IDm ] 06 (00) [FF FF 01 0F] [ ] +E0 [1A] 00 [ ] (71) 00 [14 14] (01) [ 8 byte IDm ] [ 8 byte PMm ] [ 2 byte system_code ] [ ] + +//SG_NFC_CMD_FELICA_ENCAP,FELICA_CMD_GET_SYSTEM_CODE +E0 [17] 00 [ ] (71) 12 [ 8 byte IDm ] 0A (0C) [ 8 byte IDm ] [ ] +E0 [13] 00 [ ] (71) 00 [0D 0D] (0D) [ 8 byte IDm ] 01 00 00 [ ] + +//SG_NFC_CMD_FELICA_ENCAP,FELICA_CMD_NDA_A4 +E0 [18] 00 [ ] (71) 13 [ 8 byte IDm ] 0B (A4) [ 8 byte IDm ] 00 [ ] +E0 [11] 00 [ ] (71) 00 [0B 0B] (A5) [ 8 byte IDm ] 00 [ ] + +//SG_NFC_CMD_FELICA_ENCAP,FELICA_CMD_NDA_06 +E0 [1D] 00 [ ] (71) 18 [ 8 byte IDm ] 10 (06) [ 8 byte IDm ] [01 0B 00 01 80 82] [ ] +E0 [23] 00 [ ] (71) 00 [1D 1D] (07) [ 8 byte IDm ] [00 00 01] [ 8 byte IDm ] [ 8 byte unknown data ] [ ] + +//SG_NFC_CMD_FELICA_ENCAP,FELICA_CMD_NDA_06 +E0 [1D] 00 [ ] (71) 18 [ 8 byte IDm ] 10 (06) [ 8 byte IDm ] [01 0B 00 01 80 00] [ ] +E0 [23] 00 [ ] (71) 00 [1D 1D] (07) [ 8 byte IDm ] [00 00 01] [ 16 byte unknown data ] [ ] + +//SG_NFC_CMD_FELICA_ENCAP,FELICA_CMD_NDA_06 +E0 [23] 00 [ ] (71) 1E [ 8 byte IDm ] 16 (06) [ 8 byte IDm ] [01 0B 00 04 80 82 80 86 80 90 80 91] [ ] +E0 [53] 00 [ ] (71) 00 [4D 4D] (07) [ 8 byte IDm ] [00 00 04] [ 8 byte IDm ] [00 68 05 73 02 01] [01 00 00 01] [00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00] [ 8 byte unknown data ] [00 00 00 00 00 00 00 00] [ ] + +//SG_NFC_CMD_FELICA_ENCAP,FELICA_CMD_NDA_08 +E0 [2D] 00 [ ] (71) 28 [ 8 byte IDm ] 20 (08) [ 8 byte IDm ] [01 09 00 01 80 80] [ 16 byte unknown data ] [ ] +E0 [12] 00 [ ] (71) 00 [0C 0C] (09) [ 8 byte IDm ] [00 00] [ ] + +//SG_NFC_CMD_POLL,MIFARE +E0 [05] 00 [ ] (42) 00 [ ] +E0 [0D] 00 [ ] (42) 00 07 01 10 04 [ 4 byte UID ] [ ] + +//SG_NFC_CMD_MIFARE_READ_BLOCK +E0 [0A] 00 [ ] (52) 05 [ 4 byte UID ] [ block_no ] 84 +E0 [16] 00 [ ] (52) 00 10 [ 16 byte block data ] [ ] + + + + + diff --git a/doc/card.txt b/doc/card.txt deleted file mode 100644 index 8d4f367..0000000 --- a/doc/card.txt +++ /dev/null @@ -1,74 +0,0 @@ -E0 [05] 00 [7D] [42] 00 [C4] -E0 [19] 00 [7D] [42] 00 13 01 20 10 [ 8 byte IDm ] [ 8 byte PMm ] [ ] - - -E0 [13] 00 [80] [71] 0E [ 8 byte IDm ] 06 [00] FF FF 01 0F [ ] -E0 [1A] 00 [80] [71] 00 [14] 14 01 [ 8 byte IDm ] [ 8 byte PMm ] 00 00 [ ] - - -E0 [17] 00 [81] [71] 12 [ 8 byte IDm ] 0A [0C] [ 8 byte IDm ] [ ] -E0 [13] 00 [81] [71] 00 [0D] 0D 0D [ 8 byte IDm ] 01 00 00 [ ] - - -E0 [18] 00 [82] [71] 13 [ 8 byte IDm ] 0B [A4] [ 8 byte IDm ] 00 [ ] -E0 [11] 00 [82] [71] 00 [0B] 0B A5 [ 8 byte IDm ] 00 [ ] - - -Felica & suica -E0 05 00 47 42 00 8E -E0 19 00 47 42 00 13 01 20 10 [ 8 byte IDm ] [ 8 byte PMm ] C4 - -E0 13 00 49 71 0E [ 8 byte IDm ] 06 00 FF FF 01 0F 8E -E0 06 00 49 71 01 00 C1 - -E0 13 00 4A 71 0E [ 8 byte IDm ] 06 00 FF FF 01 0F 8F -E0 1A 00 4A 71 00 14 14 01 [ 8 byte IDm ] [ 8 byte PMm ] 00 (03) DF - -E0 17 00 4B 71 12 [ 8 byte IDm ] 0A 0C [ 8 byte IDm ] 39 -E0 13 00 4B 71 00 0D 0D 0D 0D [ 8 byte IDm ] 01 00 (03) 99 - -E0 18 00 4C 71 13 [ 8 byte IDm ] 0B A4 [ 8 byte IDm ] 00 D5 -E0 06 00 4C 71 01 00 C4 - -E0 18 00 4D 71 13 [ 8 byte IDm ] 0B A4 [ 8 byte IDm ] 00 D6 -E0 06 00 4D 71 01 00 C5 - -E0 18 00 4E 71 13 [ 8 byte IDm ] 0B A4 [ 8 byte IDm ] 00 D7 -E0 06 00 4E 71 01 00 C6 - -E0 18 00 4F 71 13 [ 8 byte IDm ] 0B A4 [ 8 byte IDm ] 00 D8 -E0 06 00 4F 71 01 00 C7 - -E0 18 00 50 71 13 [ 8 byte IDm ] 0B A4 [ 8 byte IDm ] 00 D9 -E0 06 00 50 71 01 00 C8 - -E0 18 00 51 71 13 [ 8 byte IDm ] 0B A4 [ 8 byte IDm ] 00 DA -E0 06 00 51 71 01 00 C9 - -E0 18 00 52 71 13 [ 8 byte IDm ] 0B A4 [ 8 byte IDm ] 00 DB -E0 06 00 52 71 01 00 CA - - -aime & mifare -E0 05 00 34 42 00 7B -E0 0D 00 34 42 00 07 01 10 04 [ 4 byte UID ] 8A - -E0 09 00 35 43 04 [ 4 byte UID ] 70 -E0 06 00 35 43 00 00 7E - -E0 0A 00 36 55 05 [ 4 byte UID ] 03 88 -E0 06 00 36 55 00 00 91 - -E0 0A 00 37 52 05 [ 4 byte UID ] 01 84 -E0 16 00 37 52 00 10 [ 16 byte Block ] AD - -E0 0A 00 38 52 05 [ 4 byte UID ] 02 86 -E0 16 00 38 52 00 10 [ 16 byte Block ] D3 - -E0 05 00 39 41 00 7F -E0 06 00 39 41 00 00 80 - - - - -