NXP NFC Reader Library 移植思路

1. 环境简介

- MCU:					STM32F103C8T6
- NFC Reader IC:		CRLC663  
- 编译 IDE:				keil5
- Reader Library 版本号:	v05.22.00

2. NFC SDK 介绍

2.1 SDK 目录结构

在这里插入图片描述

2.2 NFC Reader Library 分层介绍

NXP SDK 主要由 DAL、NFC Reader Library、OSAL 以及通用组件组成。LayerModel 如下图所示。

  • DAL:Driver Abstraction Layer,驱动抽象层。细分为 DAL 和 BAL。

DAL:主要实现 GPIO 操作接口。设置 GPIO 方向、值、中断状态,读取 GPIO 电平,开启和停止定时器。需修改或实现。
BAL:Bus Abstraction Layer ,总线抽象层。主要实现 SPI 总线、I2C 总线的数据传输。需修改或实现。

  • OSAL:Operating System Abstraction Layer,操作系统抽象层。主要是线程、事件、调度器等接口。一般情况不用修改。
  • NFC Reader Library:NFC协议栈,提供寻卡、读卡、写卡等接口。一般情况不用修改。

LayerModel

3. 建立 STM32 工程

建立STM32工程,按原理图配置好所需的 SPI 管脚和其他外设管脚。确保可烧录正常运行。可以使用 STM32CubeMX 创建工程。

4. 移植Reader Library

假设使用的协议是 15693 协议。在 NXP SDK 的示例中找到 NfcrdlibEx5_ISO15693 文件夹。

  1. 将 NfcrdlibEx5_ISO15693.c 导入工程。

把 NfcrdlibEx5_ISO15693.c 的main() 封装成接口,并在 STM32 工程的 main() 中调用。在 keil5 编译环境中添加宏:

  • PHDRIVER_PIRC663_BOARD
  • NXPBUILD__PHHAL_HW_RC663
  • PH_OSAL_NULLOS
  1. 编译。

会报缺少文件的错误。按错误提示导入 NxpNfcRdLib 文件夹的源代码,解决相关编译错误。

  1. 再导入 phOsal 文件夹的源代码,解决相关编译错误。
  2. 此时还有 phDriver 和 phbalReg 开头的函数找不到定义。
  3. 解决 phbalReg 相关编译问题

DAL文件夹下 的 src文件夹,包含有四款不同板子、不同系统的 DAL 接口。可以参考。
需要实现 phbalReg_Init() 和 phbalReg_Exchange() 。
phbalReg_Init() 主要实现 SPI 管脚初始化。phbalReg_Exchange() 实现 SPI 读写寄存器操作。

  1. 解决 phDriver 编译问题

phDriver 主要是 GPIO 配置、控制、读取、清除中断等操作。因为使用了 STM32,需要用 STM32 的接口实现 GPIO 控制。
phDriver_PinWrite():在 phhalHw_Rc663_WriteSSEL() 调用,SPI 总线通讯前后对片选CS管脚的控制
phDriver_PinConfig():在 phhalHw_Rc663_Init() 调用,配置 MCU 用的复位脚为输出模式
phDriver_TimerStart():在 phhalHw_Rc663_Reset() 调用,相当于 delay() 用法
phDriver_PinClearIntStatus():在 CLIF_IRQHandler() 调用,清除中断标志
phDriver_PinRead():在 CLIF_IRQHandler() 调用,为了清除中断标志
在这里插入图片描述

  1. keil5 工程目录结构
    在这里插入图片描述

5. 参考

宏定义参考了其他网友的经验:
1. RC663 基于NXP NFC reader 读取

6. 结语

刚接触 NXP NFC Reader Library ,看到那么多文件,头都晕了,不知道从哪下手。然后从 CSDN 上下载其他 CRLC663和STM32 的工程,对比工程,列出函数调用关系,梳理流程。慢慢发现 NFC Reader Library、OSAL 是公用代码,一般情况下不用修改,需要改动的是 DAL,不同的 MCU 实现的 DAL 不同。
而且 SDK 里面用不同的宏定义,区分不同操作系统和板子的实现流程,建议用keil5 浏览代码,了解哪些代码参与编译。
因为各种各样原因,没有完全解决编译问题,停在了 phDriver 编译问题上,至于解决了phDriver 编译问题后,还有没有其他编译问题,或者能否实现读卡操作,还不清楚,特写此文记录。

  • 10
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: NXPNFC匹配电路是一种高性能的无线通信芯片,其设计通过使用非接触式射频技术实现了近场通信。该芯片具有可靠的性能、低功耗、高可靠性等特点,使其在智能手机、平板电脑、移动支付、物联网等领域中得到了广泛应用。目前,NFC匹配电路通常被用于安全认证与身份识别、物理锁和钥匙、智能标签和支付等应用场景。 NFC匹配电路的设计需要充分考虑符合规范的射频特性、射频设计技术、功耗和尺寸等方面的要求。同时,还需要考虑实现更多功能和应用的灵活性和可扩展性。因此,NXPNFC匹配电路采用了高一致的制造工艺,使得各种不同的NFC芯片都能够互相通信。此外,为了满足不同应用场景的设计要求,NFC匹配电路还提供了多种不同的功能,如低功耗模式、可编程通信协议和安全认证等。 总的来说,NXPNFC匹配电路设计是一种高性能的通信芯片,其可以应用于许多不同的领域,并通过灵活的设计实现了多种不同的功能。在未来,随着物联网和智能应用的不断发展,NFC匹配电路将会发挥越来越重要的作用,成为推动无线通信和移动支付技术的关键因素。 ### 回答2: NXPNFC匹配电路设计是一项关键技术,可以在近场通信设备上实现高效、安全的无线传输。在设计NFC匹配电路时,需要考虑到传输的安全性、可靠性、功耗等多个方面,以满足不同应用场景的需求。 具体来说,NFC匹配电路需要支持多种协议,例如ISO/IEC 14443 Type A/B和ISO/IEC 15693等。此外,还需要支持多种加密算法,如DES、AES和RSA等,以保证数据的安全性。NFC匹配电路的功耗也要尽可能小,以延长设备的待机时间,并减少使用时的能耗。 在实际设计过程中,需要注意电路的选材、布局和阻抗匹配等问题。例如,为了提高匹配电路的抗干扰能力,可以采用电磁屏蔽技术和滤波电路。此外,在匹配电路的封装和排布上也要尽可能优化,以使其更加紧凑和可靠。 总之,NXPNFC匹配电路设计是一项综合性的工程,需要涉及多个方面的知识和技术。随着近场通信技术的不断发展,NFC匹配电路的设计也将不断创新和完善,以满足越来越多的应用需求。 ### 回答3: NXPNFC匹配电路是一种集成电路,可以实现近场通信(NFC)技术。这种技术可以将两台设备之间的信息交换,而无需连接到互联网或蓝牙。NXPNFC匹配电路设计主要包括三个组成部分:天线,芯片和集成电路。 天线是NFC匹配电路的最外层,主要用于接收和发送信息。天线使用射频信号,它可以在附近的设备之间传输信息。 芯片是NFC匹配电路的心脏部分,它包含一些硬件和软件组件,使它能够实现与其他设备的通信。芯片还包括一个存储器单元,用于存储设备的信息。 集成电路是NFC匹配电路的第三个组成部分,它是将天线和芯片组合在一起的组件。集成电路还包括一些电路和协议,在NFC通信时确保数据的安全性和完整性。 总的来说,NXPNFC匹配电路设计是一种简单而有效的技术,可以在多个设备之间轻松地共享数据。这种技术可以用于支付、安全凭证和身份验证等多种应用程序。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值