在KW3x蓝牙低功耗应用中集成 NFC读卡器库
版本历史
修订编号:1(共1)
最后更新:10-01-2019 03:59 AM
更新:ovidiu_usturoi
1. 简介
1.1 文件目的
这篇文章提供了有关如何将 NFC读卡器库集成到KW3x蓝牙低功耗应用程序的详细说明。
1.2 受众
这篇文章的目的是为希望使用NFC Reader Library并将其集成到SDK无线连接示例中的软件开发人员提供指南。
1.3 参考资料和资源
NFC阅读器库:nxp.com/pages/:NFC-READER-LIBRARY
-NCF3320:nxp.com/products/:NCx3320
-CLRC663 plus:nxp.com/products/:CLRC66303HN
-FRDM-KW36板:nxp.com/demoboard/FRDM-KW36
-KW35 / KW36 SDK:https://mcuxpresso.nxp.com/en/select
-MCUXpresso IDE:nxp.com/products/:MCUXpresso-IDE
2. NFC读卡库总览
恩智浦NFC读取器库是用C语言编写的模块化软件库,它提供了一套API,使客户能够为恩智浦非接触式读取器IC创建自己的软件栈和应用程序:
- PN512;
- CLRC633 家族;
- PN7462 家族;
- PN5180;
此API促进了NFC应用程序中所需的最常见操作,例如:
-读取数据或将数据写入非接触式卡或标签;
-与其他支持NFC的设备交换数据;
- 允许NFC Reader IC实现卡模拟
NFC阅读器库的设计方式使其可以轻松移植到具有多层体系结构的许多不同微控制器中:
(图片)
作为主模块,我们有:
应用层(AL)-实现命令集以与MIFARE卡和NFC标签进行交互。
-NFC活动-实施可配置的发现循环,以检测非接触式卡,NFC标签或其他NFC设备。
-HCE和P2P组件,分别用于仿真Type 4标签和P2P数据交换。
-协议抽象层(PAL)-包含ISO14443,Felica,近邻和NFC标准的RF协议实施。
-硬件抽象层(HAL)-实现用于控制NFC前端RF接口和功能的驱动程序。
-驱动程序抽象层(DAL)-在主机MCU和读卡器IC之间实现GPIO管脚配置, 定时器配置和物理接口(BAL)。
-OSAL模块,负责抽象OS或RTOS细节(任务事件,信号量和线程)
3. KW3x无线微控制器概述
KW3x无线微控制器(MCU)是高度集成的单芯片设备,可为汽车,工业和医疗/保健嵌入式系统提供低功耗蓝牙(Bluetooth LE)和通用FSK连接。
KW36 / 35无线MCU集成了Arm®Cortex®-M0+ CPU,最高有512 KB闪存和64 KB SRAM,以及2.4 GHz无线电,支持蓝牙LE 5.0和通用FSK调制。 蓝牙LE无线电在任何主/从组合中最多支持8个同时连接。 KW36A / 36Z包含一个集成的FlexCAN模块,该模块可以无缝集成到汽车或工业CAN通信网络中,从而可以通过Bluetooth LE与外部控制和传感器监视设备进行通信。
有关更多详细信息,请参阅恩智浦网站信息:
https://www.nxp.com/products/wireless/bluetooth-low-energy:BLUETOOTH-LOW-ENERGY-BLE.
4. NFC阅读器库–与FRDM-KW36集成
当前的NFC阅读器库v5.21.01不包含对Kinetis KW3x MCU的支持。 我们将使用参考K82 NFC Reader Library软件包:www.nxp.com/pages/:NFC-READER-LIBRARY.
集成库所需的步骤是:
-硬件准备(FRDM-KW36和NFC读卡器板之间的连接);
-设置开发环境(SDK下载,工作空间);
-为FRDM-KW3x板准备适配文件;
-将NFC应用程序集成到Wireless_UART Bluetooth LE示例中;
-运行演示;
4.1 硬件准备
所需硬件:
-NCF3320天线v1.0板作为NFC收发器;
-FRDM-KW36板作为主机MCU,用于加载和运行蓝牙低功耗协议栈和NFC应用逻辑;
(图片)
板卡之间的通信将使用以下引脚配置通过SPI通信进行:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Master board (FRDM-KW36) Connects to Slave board (NCF3320 Antenna v1.0)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PTB0 (J2-pin10) - IRQ
PTB1 (J2-pin9) - Reset
PTA16 (J2-pin1 - SPI1_Sout) - MOSI
PTA17 (J1-pin5 - SPI1_Sin) - MISO
PTA18 (J1-pin7 - SPI1_SCK) - SCK
PTA19 (J2-pin3 - SPI1_CS) - CS
GND (J3-pin7) - GND
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4.3 搭建开发环境
安装MCUXpresso IDE(在本示例中,我们使用的是v10.2.0 build 759)
-转到MCUXpresso-IDE网页并下载最新版本的IDE:
www.nxp.com/products/:MCUXpresso-IDE.
-安装IDE
(图片)
获取最新的NFC Reader Library版本(在此示例中,我们使用的是v5.21.00)
-转到NXP NFC Reader Library网页(www.nxp.com/pages/:NFC-READER-LIBRARY)
-转到下载标签,然后点击下载按钮
-下载Kinetis K82F软件包的NFC阅读器库:
(图片)
为FRDM-KW36板生成可下载的SDK软件包(SDK_2.2.1_FRDM-KW36)
-导航至https://mcuxpresso.nxp.com/cn/select,然后选择FRDM-KW36板;
-选择构建MCUXpresso SDK。
-作为工具链,请确保已选择MCUXpresso IDE。
-使用“下载SDK”按钮开始下载SDK软件包:
(图片)
创建MCUXpresso工作区
-打开MCUXpresso IDE并创建一个工作区;
-将SDK_2.2.1_FRDM-KW36拖放到MCUXpresso IDE的已安装SDK选项卡中;
(图片)
-将Wireless_Uart示例导入到当前工作空间:
(图片)
4.3准备FRDM-KW3x板的适配文件
本章介绍FRDM-KW36所需的驱动程序抽象层(DAL)更改:
-解压缩NFC Reader Library并导航到boards文件夹:
(图片)
-通过为GPIO和处理程序设置正确的配置,为FRDM-KW36创建等效文件(Board_FRDM_KW36FRc663.h);
-与FRDM-K82F板相比,以下是FRDM-KW36板所需的差异:
(图片)
-将FRMD-KW36添加到…DAL \ cfg \ BoardSelection.h文件中:
#ifdef PHDRIVER_FRDM_KW36FRC663_BOARD
#include <Board_FRDM_KW36FRc663.h>
#endif
-在KinetisSDK文件夹中,更新以下依赖项:
o PIT驱动程序IRQ名称:
(图片)
o打开漏极和引脚锁配置:
- phDriver_KinetisSDK.c:
(图片)
- phbalReg_KinetisSpi.c:
(图片)
-将PHDRIVER_FRDM_KW36FRC663_BOARD定义添加到…\ NxpNfcRdLib \ types \ ph_NxpBuild_Platform.h文件中,以启用正确的NFC收发器:
(图片)
4.4将NFC应用程序集成到Wireless_UART Bluetooth LE示例
在本章中,我们将把BasicDiscoveryLoop NFC示例集成到Wireless_UART Bluetooth LE应用程序中。
为此,需要执行以下步骤:
-在wireless_uart项目位置上,创建一个“ nfc”文件夹:
(图片)
-从修改后的NFC阅读器库中复制DAL,NxpNfcRdLib和phOsal文件夹:
(图片)
-在wireless_uart项目位置的“源”文件夹中,创建一个新的“ nfc”子文件夹,以集成BasicDiscovery循环文件:
(图片)
-BasicDiscoveryLoop文件将需要进行一些更改:
o将主函数重命名为NFC_BasicDiscoveryLoop_Start;
o删除了驱动程序/操作系统初始化;
(所有更改都可以在附件中看到)
-通过按F5来更新最新的更改,以更新MCUXpresso工作区:
(图片)
-更新链接器信息(项目属性-> C / C ++构建->设置)和预处理器定义(项目属性-> C / C ++构建->预处理器):
(图片)
-添加依赖项:
o PIT模块/ PIT模块初始化;
o更新LED,SW配置;
o增加堆大小(gTotalHeapSize_c);
o在wireless_uart.c应用程序中为NFC添加功能;
(所有更改都可以在附件中看到);
考虑到随附的ZIP归档文件,我们可以轻松地将frdmkw36_w_uart_ncf3320_basic_discovery.zip文件拖放到MCUXpresso工作区:
(图片)
(图片)
4.5运行演示
-根据第4.1章创建硬件连接;
-在FRDM-KW36板的相应COM端口上打开一个串行端子。 使用的BaudRate是115200
-在FRDM-KW36上按SW2键开始advertising广播
-打开移动应用程序- IOT toolbox - Wireless UART 。 FDRM-KW36板将列为NXP_WU:
(图片 )
-创建蓝牙LE连接。串行日志将包含蓝牙LE操作的日志:
(图片)
-使用靠近NCF3320 Antenna v1.0板的NFC卡来启动发现演示。
-一旦检测到卡片,便会将事件发送到移动应用程序,其中包括卡的技术和UUID:
https://www.youtube.com/watch?v=wCCz5zDIwHE&feature=youtu.be)
https://community.nxp.com/t5/video/gallerypage/video-id/8707
附件: