汽车是最广泛使用的交通工具,绝大多数都是机械、手动控制汽车门把手的开关。如果将 NFC 技术应用到电汽车门把手上,那么可以通过近场通讯设备(比如手机)操作控制电汽车门把手,这相比机械、手动控制汽车门把手要更加智能,也更加实用和便捷。NFC 结合汽车市场是一个很好的应用前景,NFC 通过加密协议通信以及近距离接触,可以非常安全地确保车门被正确开启以及关闭。
大联大世平集团推出了基于 NXP 车规 MCU 芯片 S32K118/116 和车规 NFC 控制器芯片 NCF3320 的汽车门把手方案。该方案主要形态为长条形,主要应用于汽车门把手或后视镜上,主要功能是通过数字钥匙解锁汽车车门,从而替代传统钥匙,更加安全、便捷。本方案中涉及的芯片资料、软件代码、NFC 库、硬件资料均需要签订 NDA 协议后方可获得。
方案主要芯片简介:
S32K118:
- 48 MHz Cortex-M0+ 内核
- 128 KB 闪存,2KB EEPROM
- 12 位 1 Msps ADC,16 位 FlexTimers
- 可扩展的低功耗运行和停止模式。快速唤醒、时钟和电源门控
- 48 Pin LQFP 封装,全系 48 Pin P2P 兼容
- -40 ~ 125° C 工作温度
- 支持CAN FD,FlexIO(UART,I2C,SPI, I2S,LIN,PWM)
NCF3320:
- 高射频输出功率前端 IC,传输速度高达 848 kbit/s
- 支持 ISO/IEC 14443 A/MIFARE、ISO/IEC 14443 B 和 FeliCa
- 符合 ISO/IEC 18092 的 P2P 被动启动器模式
- 支持 ISO/IEC15693、ICODE EPC UID 和 ISO/IEC 18000-3 模式 3/EPC Class-1 HF
- 在读/写模式下支持 MIFARE Classic 加密
- 低功耗卡检测
- 可以实现在射频级别上符合“EMV 非接触式协议规范0.1”
- 支持的主机接口:
SPI :高达 10 Mbit/s
I2C :总线接口在快速模式下高达 400 kBd,在快速模式+下高达 1000 kBd
RS-232 :串行 UART 高达 1228.8 kBd,电压电平取决于电源引脚
- 用于连接安全访问模块 (SAM) 的独立 I2C 总线接口
- 具有 512 字节大小的 FIFO 缓冲区,可实现最高的事务性能
- 灵活高效的省电模式,包括硬断电、待机和低功耗卡检测
- 集成 PLL 从12 MHz RF 石英晶体获得系统 CPU 时钟,从而节省成本
- 3 V 至5 V 电源
- 多达 8 个空闲的可编程输入/输出引脚
一、硬件设计说明:
原理图主要分为四部分:POWER、CAN、NFC Reader、MCU。烧录接口为 SWD,分别为 :
- TP1 ----- SWD_DIO
- TP2 ----- RESET_B
- TP3 ----- SWD_CLK
- TP4 ----- VDD
- TP5 ----- GND
打印输出为 UART0,分别为:TP12 - UART0_TX,TP13 – UART0_RX。
当然,打印不一定需要串口才能输出,可以通过 IDE 的模拟打印来实现将打印信息输出在 IDE 的控制台上,这个我们后续在软件部分再讲。
(1)原理图:
- POWER
- CAN
- NFC READER
- MCU
(2)PCB Layout:
Layout 上,电源部分将 12V 的地和 5V 的地分开,减小干扰;NFC 部分,天线匹配电路使用对称布局,电感呈“一”字形放置,降低电感线圈的耦合作用。
- Top 层
- Bottom 层
二、软件设计说明:
1.软件概览
本方案的软件分为四类,依次为
(1)NfcrdlibEx1_BasicDiscLoop_s32k118,带 LPCD 的全协议检卡例程。
(2)NfcrdlibEx4_MifareClassic_s32k118,不带 LPCD 的 MifareClassic 读写卡例程。
(3)S32K118_NCF3320_Mifare,带 LPCD 的 Mifare 读写卡例程,包含 Mifare Classic、Mifare DESFire、Mifare UltraLight。
(4)S32K118_NCF3320_BasicDiscLoop_RW,带 LPCD 的全协议检卡例程 + Mifare 卡片读写 + ISO15683 卡片读写 + NATG I2C 读写。
其中,1、2 两个软件不带操作系统,为裸机例程;3、4 两个软件带 FreeRTOS ,且默认开启。
可以看出,四类软件部分功能重叠,原因是为了后续项目开发做更精准的定位,面对不同的需求可以使用不同的代码,而不需要再花时间去裁剪。后续我们主要讲第四个软件代码,从而囊括前三个软件代码。
2.S32K118_NCF3320_BasicDiscLoop_RW
本代码是带 LPCD 的全协议检卡例程 + Mifare 卡片读写 + ISO15683 卡片读写 + NATG I2C 读写,囊括了上面三个代码的所有功能,并且每个增加的功能均通过宏定义进行控制。
软件结构:
DAL : 驱动抽象层代码
用来存放调用不同 MCU 的驱动的代码,该层将不同的 MCU 的底层驱动,封装成相同的 API 接口,方便上层调用。
FreeRTOS : FreeRTOS 源码
用来存放官方 FreeRTOS 的源码,后续官方的源码更新,可以直接更改该文件夹内的同名文件即可。
NxpNfcRdLib : NFC 库代码
用来存放 NXP 的 NFC 实现代码,包括 T1T ~ T5T 五类卡片的寻卡/读卡/写卡 API,卡片选择 API,秘钥验证 API 等等。
NFC 库层级结构图
Project_Settings : 项目配置
用来存放 .S 启动文件,以及分配内存空间的 .ld 文件,后续如果出现需要更改内存分配的情况,直接在该文件夹中更改相应文件即可。
S32KSDK_S32K118_PE & S32KSDK_SDK3.0.3 : S32K SDK
这两个文件夹是 S32K 的 SDK 文件夹,后续 SDK 有更新,可以直接更改这两个文件夹中的内容。
intfs : 宏定义文件夹
主要存放的文件均包含代码中大量的宏定义开关,控制这些开关可以开启或关闭代码的部分功能,后续如果需要添加用户自己的宏定义,可以直接在该文件夹中的文件中增加。关于宏定义部分,下一节会具体讲。
phOsal : 系统抽象层
基于操作系统的软件层,包含所需要的操作系统,在本代码中,仅包含 NULLOS(裸机) 和 FreeRTOS。
src : 源文件夹
main 函数文件夹,主要用于实现应用层的初始化和功能,Demo 所包含的功能均在该文件夹中。
3.软件编译与烧录
(1)开发环境为 S32DS,点击 IDE 上的锤子图标旁的向下键,选择 1 Debug_FLASH 开始编译。
(2)编译完成后,使用 S32DS 的 Flash 或 Debug 模式进行烧录。
(3)点击闪电图标,按照下图顺序操作,需要选择当前工程的 .elf 文件。
或点击爬虫图标旁的小箭头,选择 Debug Configurations。
(4)烧录完成后,IDE 会进入 Debug 模式,无需担心断电或接触不良导致的代码中断,因为代码已经烧录进芯片内,并且芯片上电会从 Flash 启动,所以重新插拔电源线亦可。
三、NFC 读卡效果演示:
使用 12V 适配器给板子供电,串口接到串口转 USB 板再接到 PC,如下图:
注意:接到串口转 USB 转接板时,除了 TX 和 RX 两根线之外,还需要接 GND,否则串口将会出现乱码。
T2T 卡读写操作的串口工具打印结果如下:
四、场景应用图:
五、展示板照片:
六、评估板方案框图:
七、核心优势:
- 支持识别 Type 1、2、3、4、5 类卡片
- 支持 LPCD 功能
- 支持 Type 2 Tag 和 Type 5 Tag 的读写
- 支持 CAN 传输 NFC 读卡信息,最高传输速率可达 5Mbit/s
- NCF3320 平均功耗:15uA(LPCD 模式),5mA(非 LPCD 模式)
八、方案规格:
- 天线大小:72 x 18 mm
- 整板大小:130 x 20 mm
- 读卡距离:Mifare - 6 cm,T5T Card - 5 cm,LPCD 模式下 2cm
評論