板载NFC芯片采用意法半导体ST25DV04KC,如电路图所示
NFC天线接法图:
要驱动NFC,首先需要刷新的固件版本,编译时间为2024年4月开始的版本,若您手头开发板固件版本比这个新可不升级.
固件下载链接:
链接:https://pan.baidu.com/s/1eQsiRCpUGmTVDrKIuHuovQ?pwd=1111
下载:R1-Android13-nfc-20240402.0939.img
刷固件请参考烧录系统部分(以EMMC存储为例):
http://wiki.youyeetoo.cn/zh/r1/burnemmc
开发板端控制NFC对应APP
开发板在发安卓系统下开发,主要分2层设计:
jni 层负责I2C底层通讯和GPO中断监测.
java 层负责ST25DV各功能逻辑实现.
开发板端软件实现效果如图:
界面左侧上半部分:主要是实现开发板发数据给手机
fill data :填充测试数据
Clear All :清空
Send:开发板发数据给手机
界面左侧下半部分:主要是实现接收手机来的
clear:清空手机发来的数据
界面左侧底部:写标签
tag:youyeetoo.cn 把www.youyeetoo.cn写标签
tag:Android Start WeChat 写标签:实现手机刷一下开发板天线,手机自启微信APP.
界面右侧:是操作部分操作日志
RF ON:启用RF无线通道
RF OFF:关闭RF无线通道
开发板和手机之间FTM传输数据流程和协议如下:
1 发端-->接收端 发询问包
FE FE FE FE FLG1 00 00 00 14 L1 L2 L3 L4 FF FF FF FF 45 4E 44
其中
FLG1:表示数据发送方向,02开发板->手机,03:手机->开发板
L1 L2 L3 L4 :表示要发送指定的数据总长度(长度包括询问包所有长度+业务数据长度):L1长度的高位,L4是长度最低位,L2,L3依次类推
2 接收端--->发端 回应应答包
FE FE FE FE 04 00 00 00 14 FLG2 00 00 00 FF FF FF FF 45 4E 44
其中
FLG2:表示是否允许接受数据.E7表示允许接受,E9表示繁忙拒绝接受.
发端发数据流程:
1 发端先发询问包,询问目标是否可以接受指定长度数数据
2 若目标回应允许发送,进行步骤3,否则退出发送
3 数据分割拆包发送,知道发送完成.
接收端接收数据流程:
1 收到询问是否可以接受指定长度数据包,若允许发允许应答包给发,进入步骤2,否则发繁忙拒绝接受应答包给发端并结束接受.
2 等待并依次接受数据,直到接受到指定长度数据,组合成完整包.
由于代码比较多,这里不做展示,请下载源码进行查看和验证.
开发板端APP和源码下载:
编译好的APK:
http://dd.youyeetoo.cn:5000/sharing/eYawgiQBv
源码:
http://dd.youyeetoo.cn:5000/sharing/XN2kfOz3N
手机端NFC对应APP
手机APP参考意法半导体提供的开发库进行二次封装开发.
清空日志:清空上部分日志
发送:手机端向开发板发数据
填充数据:填充要发送数据
清空数据:清空要发送的数据
开发板和手机之间FTM传输数据流程和协议和上面开发板端相同.
由于代码比较多,这里不做展示,请下载源码进行查看和验证.
手机端APP和源码下载:
编译好的APK:
http://dd.youyeetoo.cn:5000/sharing/CHmL7XtOo