PN532和控制器之间的交互
如图所示,pn532和控制器之间是cmd-cmd_ack的模式进行交互。
图示的第一次交互是控制器向PN532发指令帧,此时PN532(记为A)会对这条指令返回一个ack帧,并根据指令内容做相应的操作,如唤醒、配置、扫描等。
如需与第二块NFC芯片(记为B)交互,B收到A的指令后会返回一个消息帧,A收到后会将帧传递给控制器,控制器根据实际业务场景选择是否返回ack,或是继续发送其他的指令。
关于控制器和PN532之间交互的数据帧的格式,说明如下:
帧格式
可以理解为帧格式为:
0x0 0x0 0xff len len_cs direction cmd data0 data1 ... data(n) data_cs 00
其中,显式写出的都是固定值,可变值的解释如下:
len:包括direction cmd data0 data1 ... data(n)在内的所有字节长度
len_cs:长度校验和,len+len_cs=0x100
direction:0xd4表示该数据帧由控制器发到PN532,0xd5表示PN532发到控制器
cmd: PN532命令字,具体可查看使用手册
data0 data1...data(n):针对该cmd需要发送的数据
data_cs:数据校验和,sum(direction:data_cs) && 0xff = 0x0
有个特殊的帧,Ack,他的len为0,如下