AN13189-移植

news/2024/12/4 19:30:43/

AN13189.pdf

2简介
本文件提供了从软件角度将基于PN7160 NXP NCI的NFC控制器集成到Android平台的指南。
它首先解释了如何安装所需的内核驱动程序,然后逐步描述了如何调整Android开源项目源代码以添加PN7160 NFC控制器的支持。图1显示了整个Android NFC堆栈的架构。

 •nxpnfc驱动程序是允许访问基于NXP NCI的NFC控制器硬件资源的内核模块
•恩智浦NCI HAL模块是恩智浦NFC控制器特定硬件抽象层的实现
•libnfc nci是提供NFC功能的本地库
•JNI是Java和Native类之间的粘合代码
•NFC服务是提供NFC功能访问的应用框架模块

4内核驱动程序
NFC安卓堆栈使用nxpnfc内核驱动程序与恩智浦NCI NFC控制器进行通信。它可从以下存储库中获得:https://github.com/NXPNFCLinux/nxpnfc.
4.1驱动程序详细信息
nxpnfc内核驱动程序为通过I2C或SPI物理接口连接的NFC控制器提供通信。
当加载到内核时,该驱动程序通过名为/dev/nxpnfc的设备节点向NFC控制器公开接口。
该内核驱动程序与恩智浦的各种NFC控制器兼容,它解释了恩智浦在源代码中可以找到的特定参考。
所提供的源代码允许根据内核配置构建内核驱动程序的两个版本(I2C和SPI)。

4.3将驱动程序包含在内核中
将驱动程序包含到内核中,并在设备引导期间加载它,这要归功于设备树。按照以下示例中的建议更新设备树定义后,必须重建与平台相关的设备树。
4.3.1 I2C版本
I2C地址(以下示例中为0x28)和GPIO分配必须根据平台中的硬件集成进行调整。

以下是要添加到平台设备树文件中的定义示例(.dts文件,例如位于基于arm的平台的arch/arm/boot/dts内核子文件夹下)。

5.1.5步骤5:添加固件库
安卓NFC堆栈集成了对NFC控制器固件更新的支持。允许更新
机制,更新后的固件版本必须以库(或二进制)的形式包含在目标上。恩智浦NFC控制器固件的Arm架构库通过专用存储库提供https://github.com/
NXP/nfc-NXPNFCC_FW。
使用以下命令将PN7160固件库文件从存储库检索到专用子文件夹:

这将创建供应商/nxp/pn7160/固件子文件夹,其中包含32位和64位Arm体系结构库。
构建android镜像时,这些库将包含在镜像中(如vendor/nxp/nfc/device-nfc.mk中定义的)。

5.1.6第6步:建造和安装NFC
构建Android映像并将其闪存到目标(引导映像必须包含第4节中所述的内核驱动程序)。请注意,内核的版本应该是5.10。
5.1.7步骤7:验证NFC功能在Android“设置”菜单中,检查NFC是否打开。然后NFC功能应启动并运行,准备就绪
发现NFC标签或与远程NFC设备交换数据。
为了进一步测试NFC阅读器功能,NXP的NFC TagInfoNFC TagWriter 是Google Play商店免费提供的两款应用程序。

7 工厂测试本机应用程序
为了简化Android设备中NFC集成的特性,FactoryTestApp原生应用程序提供了以下功能:
•连续射频开启:将NFC控制器置于连续未调制的射频场中
•功能模式:使NFC控制器处于连续轮询标签检测的模式
•PRBS模式:将NFC控制器置于连续调制RF场发射(伪随机模式)
•待机模式:将NFC控制器置于低功耗模式(用于功耗测量)
•转储射频设置:列出所有NFC控制器射频设置的值
•设置射频设置:允许更新NFC控制器射频设置的值
源代码与恩智浦的Android NFC交付一起交付(见上文第5.2.1节或第5.3.1节)。二进制代码是在构建系统映像时生成的,但也可以使用以下cmmand独立构建:

 

8 NFC Forum DTA application
To allow NFC Forum certification testing, a Device Test Application is provided. It is comprised of several
components in the different Android layers (see Figure 1) which must be built and included to the Android
image.
Below is the recommended procedure:
• For Android 12:
1. Retrieve DTA application source code, depending of the Android version integration:
 

闪烁目标后,DTA应用程序应出现在已安装的应用程序列表中。启动后,DTA应用程序会请求用户从“设置”菜单禁用NFC功能。事实上,DTA应用程序直接从低级库访问NFC功能,因此必须禁用NFC服务以防止冲突。

“Cert.Rel”字段必须反映目标证书发布版本。
“TSN-F”字段定义NFC-F技术时隙号,必须根据测试执行要求进行设置。
“Con.Dev”字段定义连接设备限制,必须根据测试执行要求进行设置。目前只有“执行模式”的“手动”模式可用,“自动”模式保留供将来使用。
“模式编号”必须根据测试执行要求进行设置。
RF技术选项卡允许为每种可能的模式单独选择每种技术。
“LLCP”字段允许为专用测试执行启用特定的“模式编号”。
“SNEP”字段允许运行专用测试,还需要在Android设备设置中启用“Android Beam”功能。
“日志消息”字段允许将跟踪输出到文件(位于“/sdcard/nxpdtalog/”文件夹下)和/或控制台。

9 NDEF仿真T4TDemo应用程序
为了演示Android设备中的NDEF仿真功能,提供了T4TDemo应用程序,显示了特定API的使用:
•doWriteT4tData:API,用于设置要公开的NDEF内容
•doReadT4tData:获取当前公开的NDEF内容的API
NDEF仿真功能是根据libnfc-NXP.conf配置文件中NXP_T4T_NFCEE_ENABLE参数的值启用的(请参阅第6节)。源代码与恩智浦的安卓NFC交付一起交付(见上文第5.2.1节或第5.3.1节)。
应用程序是在构建系统映像时生成的,但也可以使用以下命令独立构建:

10故障排除
在启动安卓设备时,如果NFC无法按预期工作,以下项目可能有助于找出问题所在。
10.1缺少内核驱动程序或错误的设备节点权限以下ADB日志可能表明内核中缺少nxpnfc驱动程序或应用了错误的权限:


http://www.ppmy.cn/news/450245.html

相关文章

LinkedList基本操作

LinkedList基本操作 LinkedList是Java中的一个双向链表实现,它提供了对链表的基本操作。在LinkedList中,每个元素都被包装在一个节点中,并且每个节点都包含指向前一个节点和后一个节点的引用。这种结构使得在LinkedList中插入、删除和访问元…

【雕爷学编程】Arduino动手做(115)---HB100多普勒雷达模块

37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的&am…

ansible的部署和模块

一、 ansible 的概述 1、ansible简介 Ansible是一款为类Unix系统开发的自由开源的配置和自动化工具。 它用Python写成,类似于saltstack和Puppet,但是有一个不同和优点是我们不需要在节点中安装任何客户端。 它使用SSH来和节点进行通信。Ansible基于 …

C语言之动态内存分配(1)

目录 本章重点 为什么存在动态内存分配 动态内存函数的介绍 malloc free calloc realloc 常见的动态内存错误 几个经典的笔试题 柔性数组 动态内存管理—自己维护自己的内存空间的大小 首先我们申请一个变量,再申请一个数组 这是我们目前知道的向内存申请…

android 坏点测试软件,烧屏坏点检测软件下载-烧屏坏点检测官方安卓版v1.0-魅卓网...

烧屏坏点检测软件是一款非常好用的系统工具,这款软件是为专业人员精心打造,用户在下载这款软件后就直接可以进行测评,轻松的检查到烧屏的现象,看看你的手机或者电脑有没有出现任何的问题,需要的用户可以下载这款软件试…

iPhone X测试烧屏软件,关于iPhone X的烧屏 我来给你揭秘

前不久我们曾有过报道,苹果在一份更新了的支持文件中,确认了 iPhone X 是存在烧屏现象的。考虑到之前谷歌“亲儿子”Pixel 2 XL 的烧屏问题闹得沸沸扬扬,人们突然得知 iPhone X 同样不能幸免,一时间有些不知所措。 iPhone X 的烧屏…

Java泛型详解,史上最全图文详解

泛型在java中有很重要的地位,无论是开源框架还是JDK源码都能看到它。 毫不夸张的说,泛型是通用设计上必不可少的元素,所以真正理解与正确使用泛型,是一门必修课。 一:泛型本质 Java 泛型(generics&#…

NFS服务器

文章目录 NFS服务器NFS的由来与功能什么是NFS(Network File System)什么是RPC(Remote Procedure Call)NFS启动的RPC daemons NFS Server 端的配置所需要的软件NFS的软件结构/etc/exports配置文件的语法与参数 启动NFSRPC服务的注册状况怎么查看(rpcinfo) NFS的连接查看showmoun…