协议栈是LIBNFC,部分代码的参数含义不是很明确,希望大家参与讨论
网上有很多资料,但是对mac激活部分描述的都不是很清楚,如果使用单片机自己开发nfc的话,libnfc协议栈对于我们来说比较封闭,代码移植
也不是很方便。所以数据监听是一个方便快捷的不错选择,告别复杂繁
琐的协议,直接发送串口指令就可以实现功能。我调试通过后把监听数据分
享给大家,缩短大家的开发时间,希望这个贴能帮到你们。
PN532 —> Android : 00 00 FF 09 F7 D4 00 00 6C 69 62 6E 66 63 BE 00 //ATR_REQ
Android —> PN532 : 00 00 FF 00 FF 00
00 00 FF 09 F7 D5 01 00 6C 69 62 6E 66 63 BC 00 //ATR_RES
数据解析:ATR_REQ 阅读或者研究过nfc数字协议就会明白MAC激活的第一步就是发送ATR_REQ,由于我使用的是LIBNFC协议栈, 数以这里ATR_REQ携带的参数是“6C 69 62 6E 66 63”,对照ascii表,含义为LIBNFC,也就是协议栈的名字。
PN532 —> Android : 00 00 FF 02 FE D4 02 2A 00 //WUP_REQ
Android —> PN532 : 00 00 FF 00 FF 00
00 00 FF 06 FA D5 03 32 01 06 07 E8 00 //WUP_RES
数据解析:WUP_REQ 第二步完成唤醒,具体的唤醒和PN532模块的唤醒是否有关系没用找到权威资料,还请有经验的大侠指点。
PN532 —> Android : 00 00 FF 03 FD D4 12 14 06 00 //Disable automatie sending RATs comm
Android —> PN532 : 00 00 FF 00 FF 00
00 00 FF 02 FE D5 13 18 00
PN532 —> Android : 00 00 FF 0C F4 D4 06 63 02 63 03 63 0D 63 38 63 3D B0 00 //DEP_REQ
Android —> PN532 : 00 00 FF 00 FF 00
00 00 FF 07 F9 D5 07 00 00 00 00 00 24 00 //DEP_RES
PN532 —> Android : 00 00 FF 08 F8 D4 08 63 02 80 63 03 80 59 00 //DSL_REQ
Android —> PN532 : 00 00 FF 00 FF 00
00 00 FF 02 FE D5 09 22 00 //DSL_RES
PN532 —> Android : 00 00 FF 04 FC D4 32 01 00 F9 00 //RF stop 不多说了关闭RF场
Android —> PN532 : 00 00 FF 00 FF 00
00 00 FF 02 FE D5 33 F8 00
PN532 —> Android : 00 00 FF 04 FC D4 32 01 01 F8 00 //RF open 相反打开RF场
Android —> PN532 : 00 00 FF 00 FF 00
00 00 FF 02 FE D5 33 F8 00
PN532 —> Android : 00 00 FF 06 FA D4 32 05 FF FF FF F8 00 //RFConfiguration 估计是调制参数
Android —> PN532 : 00 00 FF 00 FF 00
00 00 FF 02 FE D5 33 F8 00
PN532 —> Android : 00 00 FF 0E F2 D4 06 63 02 63 03 63 05 63 38 63 3C 63 3D 19 00 //DEP_REQ
Android —> PN532 : 00 00 FF 00 FF 00
00 00 FF 08 F8 D5 07 80 80 00 00 00 00 24 00 //DEP_RES
PN532 —> Android : 00 00 FF 08 F8 D4 08 63 05 40 63 3C 10 CD 00 //DSL_REQ
Android —> PN532 : 00 00 FF 00 FF 00
00 00 FF 02 FE D5 09 22 00 //DSL_RES
PN532 —> Android : 00 00 FF 06 FA D4 32 05 FF FF FF F8 00 //RFConfiguration
Android —> PN532 : 00 00 FF 00 FF 00
00 00 FF 02 FE D5 33 F8 00
下面说一下监听数据的方法
我是用libnfc在ubuntu系统下使用,网上找过串口工具cutecom,这个软件在监听串口时会拦截数据导致数据
无法正常发送,接收就更不要谈了,好了言归正传,说说怎么监听
需要两台电脑,一台ubuntu系统,另一台我用的XP装上串口助手,助手的波特率
设置为115200接收的是HEX,xp的串口连在NFC模块PN532的串口R和T谁记住谁和谁连
的,运行一次NPP-CLIENT之后刚才的线序调换,在运行一次,两次两个方向的数据就
出来了。
没有解释的数据段还请明白协议的高手回复指点。谢谢!