在KW3x蓝牙低功耗应用中集成NFC阅读器库
版本历史
修订编号:1(共1)
最后更新:10-01-2019 03:59 AM
更新:ovidiu_usturoi
本文提供了有关将NFC阅读器库如何集成到KW3x蓝牙低功耗应用程序的详细说明。
这篇文章的目的是为希望使用NFC 阅读器库并将其适配、集成到SDK无线连接示例中的软件开发人员提供指南。
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
恩智浦NFC阅读器库是用C语言编写的模块化软件库,它提供了一个API,使客户能够为恩智浦非接触式阅读器IC创建自己的软件栈和应用程序, 阅读器IC为:
- PN512;
- CLRC633 系列;
- PN7462 系列;
- PN5180;
此API简化了NFC应用程序中所需的最常见操作,例如:
-读取数据或将数据写入非接触式卡或标签;
-与其他支持NFC的设备交换数据;
-允许NFC阅读器IC模拟为卡.
NFC阅读器库的设计方式使其可以轻松移植到具有多层体系结构的许多不同微控制器中:
作为主模块,有以下组件:
-应用层(AL)-实现命令集以与MIFARE卡和NFC标签进行交互。
-NFC activity-实现可配置的发现循环,以检测非接触式卡,NFC标签或其他NFC设备。
-HCE和P2P组件,分别用于仿真Type 4标签和P2P数据交换。
-协议抽象层(PAL)-包含ISO14443,Felica,近邻和NFC标准的RF协议实施。
-硬件抽象层(HAL)-实现用于控制NFC前端RF接口和功能的驱动程序。
-驱动程序抽象层(DAL)-在主机MCU和读取器IC之间实现GPIO,计时器配置和物理接口(BAL)。
-OSAL模块,负责抽象OS或RTOS细节(任务事件,信号量和线程)
KW3x无线微控制器(MCU)是高度集成的单芯片设备,可为汽车,工业和医疗/保健嵌入式系统提供低功耗蓝牙(Bluetooth LE)和通用FSK连接。
KW36 / 35无线MCU集成了Arm®Cortex®-M0+ CPU,最高有512 KB闪存和64 KB SRAM,以及2.4 GHz无线电,支持蓝牙LE 5.0和通用FSK调制。 低功耗蓝牙在任何主/从组合中最多支持8个同时连接。 KW36A / 36Z包含一个集成的FlexCAN模块,该模块可以无缝集成到汽车或工业CAN通信网络中,从而可以通过Bluetooth LE与外部控制和传感器监视设备进行通信。
有关更多详细信息,请参阅恩智浦网站信息:
https://www.nxp.com/products/wireless/bluetooth-low-energy:BLUETOOTH-LOW-ENERGY-BLE.
当前的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示例中;
-运行演示;
所需硬件:
-NCF3320 Antenna 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
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
安装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的installed SDKs选项卡中;
-将Wireless_Uart示例导入到当前工作空间:
本章介绍驱动程序抽象层(DAL)为适配FRDM-KW36所需的更改:
-解压缩NFC Reader Library并导航到boards文件夹:
-通过为GPIO和handlers设置正确的配置,为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收发器:
在本章中,将把BasicDiscoveryLoop NFC示例集成到Wireless_UART Bluetooth LE应用程序中。
为此,需要执行以下步骤:
-在wireless_uart项目位置上,创建一个“ nfc”文件夹:
-从修改后的NFC阅读器库中复制DAL,NxpNfcRdLib和phOsal文件夹:
-在wireless_uart项目位置的“source”文件夹中,创建一个新的“ nfc”子文件夹,以集成BasicDiscovery loop文件:
-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.1章描述连接硬件;
-在PC端打开串行终端软件,并设置FRDM-KW36板对应的COM口。 使用的BaudRate是115200。
-在FRDM-KW36上按SW2键开始启动广播。
-打开移动应用程序-IoT toolbox-Wireless UART。 FRDM-KW36板将列为NXP_WU:
-创建蓝牙LE连接。串口将打印包含蓝牙LE操作的日志:
-使用靠近NCF3320 Antenna v1.0板的NFC卡来启动发现演示。
-一旦检测到卡片,便会将事件发送到移动应用程序,其中包括卡片支持的NFC技术以及卡的UUID,演示视频如下连接:
(https://www.youtube.com/watch?v=wCCz5zDIwHE&feature=youtu.be)
https://community.nxp.com/t5/video/gallerypage/video-id/8707
附件是本文应用例程的源码,下载链接: