本文详细说明了如何将NFC读卡器库移植到Kinetis K64F微控制器。本文使用一个真实的移植案例来展示将NFC读卡器库移植到示例目标MCU所需的步骤。 这篇文章的目的是可以作为一份指南,帮助软件开发人员将NFC读卡器库移植到他们的设计所选择的MCU中。
NFC读卡器库概述 NFC读卡器库是一系列的软件组合,用于创建和开发具有可定制固件的恩智浦NFC前端和NFC控制器的非接触式应用。该库提供了一个API,可以简化NFC应用中所需的最常见操作,例如:将数据读取或写入非接触式卡、与其他支持NFC的设备交换数据或模拟卡。 NFC读卡器库具有以下特性: ● 它基于模块化方法 ● 它的设计采用灵活并且多层的架构 ● 它是用ANSI-C编程语言编写的 ● 它受到多种设计环境和平台的支持,并且开发的重点是便携性。 ● 它可以免费下载。
NFC Reader Library v5.02.00目前支持: ● 我们所有的NFC前端(CLRC663 plus PN5180)和PN7462 NFC控制器。 ● 他们相应的开发板,用作恩智浦参考硬件(CLEV6630B、PNEV5180B、PNEV7662B) ● 并且内置MCU支持,LPC1769,LPC11U68,FRDM-K82F和Raspberry Pi。 此外,该版本还包括几个例子来熟悉库,可以将其用作开发的参考,并且还包括一个包含所有组件的基于HTLM的API文档,该文档从源代码注释生成。
NFC读卡器库架构 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细节(处理诸如定时器、事件、信号量和线程之类的任务)
这种分层架构有以下几个原因: 1. 应用层(AL)和协议抽象层(PAL)这11个软件例子是独立于硬件的,因此可以在任何NFC前端之上使用。 2. 应用层(AL)、协议抽象层(PAL)和硬件抽象层(HAL)是独立于平台的,因此可以在任何MCU上运行而无需任何其他的改变。
如果读卡器MCU是内置支持的元件,这些示例可以直接导入并直接执行。另一方面,如果默认读卡器MCU不被支持,主要的优势是只需要修改DAL和OSAL层,而其余层可以不经任何修改地使用。
MCUXpresso开发环境中导入时,可以更清楚地看到NFC读卡器库的结构。完成导入向导后,所有项目都列在“Project Explorer”窗口中。从截图中可以看出,它包含不同的文件夹: ● API文档文件夹 ● 驱动程序抽象层 ● FreeRTOS支持 ● 平台支持(在屏幕截图中,对应于LPC支持) ● 软件示例(11个) ● 读卡器库的实现 ● 以及OS抽象层
NFC读卡器库移植到FRDM-K64F的步骤 在现有的NFC Reader Library v5.02.00版本中,对Kinetis K64F没有本地支持。但是,它包含了Kinetis K82F MCU的预编译包。我们使用K82F NFC读卡器库软件包作为参考项目,开始移植到K64F MCU。该软件包可从www.nxp.com/pages/:NFC-READER-LIBRARY下载。将库移植到Kinetis K64F所需的步骤如下: 1. 准备硬件(即Kinetis和NFC读卡器之间的引脚连接)。 2. 建立开发环境(即工作空间)。 3. 在项目配置设置中进行一些更改 4. 在DAL和应用程序代码中执行一些代码修改以添加Kinetis K64F支持。
NFC读卡器库移植到FRDM-K64F的步骤 - 准备硬件 该移植示例需要的硬件包含: ● CLEV6630B评估板(CLRC663 plus),作为NFC收发器 ● 作为主MCU的FRDM-K64F开发板(Kinetis K64F),用于加载和运行应用程序逻辑。
CLRC663 plus评估板默认通过SPI连接到LPC1769微控制器。但是,该电路板这样设计是为了使得LPC1769 MCU可以被轻松地旁路以连接外部MCU。为此: ● 需要拆除电路板上的六个电阻。这些以红色突出显示。 ● 使用电路板边缘左侧的SPI引脚连接器。 接下来,将两个电路板连接在一起,按如下方式完成电路布局: ● 我们使用Kinetis K64F跳线2引脚线作为SPI通信的MOSI、MISO、片选和时钟线。 ● CLRC663 plus的IRQ、接口选择和复位引脚连接在跳线1的引脚线上。 ● 另外,使用一个接地引脚作为参考点。
因此,不需要复杂的硬件操作,因为所有的接口都可以通过专用的插头或测试点轻松接入。
NFC读卡器库移植到FRDM-K64F的步骤 - 建立开发环境 一旦硬件连接准备就绪,我们可以开始建立开发环境和工作空间。
获取最新的NFC读卡器库版本 从软件的角度来看,首先我们需要下载最新的NFC Reader Library软件包。要做到这一点: 1. 转到恩智浦官网的NFC读卡器库页面(www.nxp.com/pages/:NFC-READER-LIBRARY) 2. 转到“下载”选项卡,然后单击“下载”按钮 3. 单击下载NFC Reader Library for Kinetis K82F package。
为FRDM-K64F开发板生成可下载的SDK包 作为恩智浦支持的一部分,其驱动程序、中间件、实时操作系统演示等软件开发工具包可用于其任何Kinetis和LPC微控制器。我们需要构建一个与K64F SDK相对应的SDK。因此: 1. 导航到www.mcuxpresso.nxp.com,并选择SDK构建器选项。 2. 然后,使用下拉菜单来定制您的SDK配置、中间件和包含在软件包中的可选软件组件。
3. 选择请求构建。 4. 几分钟后,您将收到一封电子邮件,其中包含下载SDK包的链接,与下图中显示的非常相似。
将NFC读卡器库导入到MCUXpresso工作区 配置开发环境的下一步是在工作区中导入库开发包。最简单的方法是使用左侧的快速启动面板。 1. 点击快速启动面板的导入项目 2. 然后,浏览到文件系统中的库开发包的位置。 3. 单击完成,将其全部导入到您的工作区。
安装并连接FRDM-K64F SDK到MCUXpresso工作区 最后一步是导入我们从MCUXpresso工具配置的K64F自定义SDK。要做到这一点: 1. 只需将SDK拖放到MCUXpresso IDE的已安装的SDK选项卡中即可。
2. 将SDK导入工作区并将其与软件示例链接。它将在项目浏览器窗口中显示为另一个文件夹。
如果K64F SDK已经正确导入工作区,我们应该会看到一个新的K64F下拉菜单。从那里,我们应该选择K64F,然后单击应用,以便将K64F的内存详细信息设置为项目示例。
|