本帖最后由 WT_FAE 于 2020-10-19 17:51 编辑

一、首先,能够获得参加本次2020意法半导体开发大赛也比较意外,因为手上刚好有个智能门锁的样品需要开发,看到本次大赛中的ST25DV04K正好能够满足门锁的一些要求,因此就提交了申请,并很快就收到了板子。由于ST25DV04K的功能是用在量产工具中,因此目前ST25DV04K部分还没有进行实际的开发,在此主要展示的是STM32WB55和ST25R3911B的部分功能以及ST25DV04K应用的设想
二、          参赛项目简介
本次参赛项目是智能门锁,门锁中使用了STM32WB55RGV6ST25R3911B、指纹模块、触摸板以及ST25DV04KST25DV04K是动态标签,门锁的NFC使用ST25TV02K即可,主体的门锁并没有使用ST25DV04K,而是用于生产阶段

三、          硬件部分
1.png
本次大赛的主角ST25DV04K,内置4kbitEEPROM,是一款支持I2CNFC 双接口的EEPROM存储芯片,支持NFC type-V协议,读写距离距离更远,由于NFC需要设计天线,前期使用ST提供的X-NUCLEO-NFC04A1开发板可以大大缩减前期的开发时间
2.png
主控STM32WB55RGV6
STM32WB55RGV6ST推出的BLE SOC,除了BLE还可以支持802.15.4,内置M4M0+两个内核,M0+内核用于控制BLE的时序,不开放给用户,用户应用程序是在64MhzM4内核上运行的,相对于传统的单核BEL SOC,双核的最大优势是用户的应用时序不会被BLE时序打断,用于高实时性的场景时有更大的优势,另外功耗方面也有一定的优势



3.png
NFC Reader---ST25R3911B
ST25R3911BST NFCReader系列芯片的一员,与本次大赛中另外一款ST25R3916基本一致,当然ST25R3916支持的功能更多一些,该芯片支持的协议也很全面
NFC-A / ISO14443A,高达848 kbit/s
NFC-B / ISO14443B,高达848 kbit/s
NFC-F / Felica™,高达424kbit/s
NFC-V / ISO15693,高达53 kb/s
NFC-A / ISO14443ANFC-F /FeliCa™卡模拟
有源和无源点对点发起方和目标模式,高达424kbit/s
低位模式实现了兼容MIFARE®Classic或其他自定义协议
该芯片支持低功耗电容和感应卡检测,用于门锁的场景可以提高相应速度
该芯片还支持很多其他的特性,这里就不过多介绍,具体请参考芯片规格书


4.png     14.png
NFC TAG芯片ST25TV02K,内置2kbit  EEPROM,可以分为四个区域并设置不同的密码

5.png
门锁的PCB,由于缺少部分元器件,因此还不能使用,调试阶段都是使用开发板完成;很庆幸的是STNUCLEO板型号比较全面,使用开发板就可以快速实现产品功能的验证
6.png
全家福
除了NFC,指纹和触摸板也是必不可少的
四、          功能框图
首先看一下系统框图
7.png
触摸和指纹模块是通过UARTMCU进行连接,STM32WB55RGV6只有两个UART,刚好够用,指纹模块内置处理器,因此系统中没有涉及到指纹识别的算法,STM32WB55RGV6的主频高达64MHz,运行指纹识别算法应该是足够的,因此后续可以考虑把算法放到STM32WB55RGV6中运行;
五、          软件部分
ST25R3911B部分的demo可以在ST官网进行下载:
https://www.st.com/en/ecosystems/x-nucleo-nfc05a1.html
其他的资料在论坛也可以下载
https://mbb.eet-china.com/forum/topic/81189_1_1.html
STM32WB55BLE部分代码则可以使用ST的代码生成工具STM32CubeMX进行生成,包括ST25DV04K的代码也可以生成,当然,这个工具只是生成库文件和一些初始化函数,主体的逻辑处理还是需要自己慢慢敲的
15.png
16.png
六、          测试验证
ST25R3911BMCU使用SPI通信;由于硬件UART都被占用了,ST25R3911B读取NFC tag芯片只能通过USB CDC打印LOG
10.png

ST25DV04K用于生产测试,
用于生产时需要测试NFC的功能是否正常,以及参数的写入和固件的升级等;ST25DV04KFTM功能也可以用于固件升级,测试传输速率大概有2.5K byte/SST25  APP中也该功能的演示
11.jpg
BLEAPP也没做,测试可以先用应用市场现有的APP进行测试
12.jpg        13.jpg    

七、          总结
由于各个部分都可以使用现有的例程,经过测试各个模块功能也是没有问题的,但是整合到一起还需要时间