AN13189-移植

news2024/11/15 21:53:18

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.coloradmin.cn/o/658997.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【程序】基于simulink车辆动力学可视化仿真

一、前言 车辆动力学是研究汽车在行驶过程中的运动学和力学特性的学科。它研究车辆在不同路面条件、不同驾驶情况下的加速、制动、转向等运动状态,并通过建立数学模型来分析和优化车辆的性能和安全性。车辆动力学是汽车工程、机械工程和物理学等学科的交叉领域&…

基于SpringBoot的SSM整合案例 -- SpringBoot快速入门保姆级教程(四)

文章目录 前言1.设计创建数据库表tbl_book2.创建新的SpringBoot模块,勾选相关依赖3. 添加SpringBoot创建项目时没有提供的相关坐标4.根据数据库表创建实体类Book5.编写dao层操作BookDao6.编写Service服务层接口BookService7.编写服务层实现类BookServiceImpl8.编写B…

AI催生电影新纪元?大咖们纷纷发声|瞩目上影节

AI催生电影新纪元?大咖们纷纷发声|瞩目上影节 听说“谁懂AI,谁股票就飙高”。博纳影业集团创始人兼总经理于冬一句话引得会场爆笑连连。 AI成为今年上海国际电影节热议话题之一。在金爵电影论坛开幕论坛上,于冬、中国电影股份有限…

keyclock==纯java实现第三方登录

官网Guides - Keycloak 下载 Downloads 18.0.0 - Keycloak GitHub: https://github.com/keycloak/keycloak/tags?after17.0.1 1-安装启动 参照readme文件 启动 bin\kc.bat start-dev 初始化超管账号密码admin admin 参考官方教程 OpenJDK - Keycloak 打开超管界面h…

Mac 上的搜狗输入法卡顿问题

我的 Mac 使用的中文输入法是搜狗拼音输入法,一直有一个问题,就是 Mac 开机太久,输入法会出现卡顿问题,按下按键 0.5s 后需才会显示对应的汉字,用着非常难受,以前这种情况我都是通过重启 Mac 来解决&#x…

Python算法练习6.18

leetcode 1431 拥有最多糖果的孩子 给你一个数组 candies 和一个整数 extraCandies ,其中 candies[i] 代表第 i 个孩子拥有的糖果数目。 对每一个孩子,检查是否存在一种方案,将额外的 extraCandies 个糖果分配给孩子们之后,此孩…

全国大数据与计算智能挑战赛:面向低资源的命名实体识别基线方案,排名13/64,组织单位:国防科技大学系统工程学院(大数据与决策实验室)

NLP专栏简介:数据增强、智能标注、意图识别算法|多分类算法、文本信息抽取、多模态信息抽取、可解释性分析、性能调优、模型压缩算法等 专栏详细介绍:NLP专栏简介:数据增强、智能标注、意图识别算法|多分类算法、文本信息抽取、多模态信息抽取、可解释性分析、性能调优、模型…

管理类联考——英语二——技巧篇——写作——B节——图表作文——必备词汇句型

图表作文必备词汇句型 1.该表格展示了…… The table reveals The table demonstrates The table shows The table depicts The tableillustrates The table presents The table describes 2.占…… Comprise Take up Account for Constitute C…

【MySQL】不就是索引

前言 嗨!小伙伴们周末快乐呀!想必你们周末都在家里边呆着吧,外面实在是太热了!在家里吹着空调做着自己喜欢做的事情吧!本期我们主要学习的是MySQL中的约束条件。 目录 前言 索引概述 外键约束 1.概念 2.语法 1.添加…

机器学习的学习准则(期望风险最小化、经验风险最小化、结构风险最小化)

训练集是有N个独立同分布的样本组成,即每个样本(x,y)是独立的从相同的分布中抽取的。这个真实的分布未知 输入空间X和输出空间Y构成样本空间,对于样本空间中的样本(x, y)∈X x Y,假定x和y之间可通过一个未知的真实隐射yg(x)来描述&#xff0…

九、提交代码自动触发Jenkins构建版本

提交代码自动触发Jenkins构建版本 1. 下载Generic Webhook Trigger 2. 配置Generic Webhook Trigger http://JENKINS_URL/generic-webhook-trigger/invoke?tokenruoyi-ui-8978456465 http://192.168.1.183:8080 为jenkisn地址,/generic-webhook-trigger/invoke?…

学习潘海东博士的《潮汐调和分析原理和应用》

潘海东博士在B站(用户名:ocean_tide)分享了他的电子书《潮汐调和分析原理和应用》,以及他开发的潮汐调和分析工具包S_Tide,非常厉害。 在学习《潮汐调和分析原理和应用》之前,我们需要安装matlab软件。 1 、…

阿里云免费服务器申请流程、领取入口、主机配置及限制条件

阿里云服务器免费试用申请链接入口 aliyunfuwuqi.com/go/free 阿里云个人用户和企业用户均可申请免费试用,最高可以免费使用3个小时,阿里云服务器网分享阿里云服务器免费试用申请入口链接及云服务器配置: 目录 阿里云服务器免费试用 企业…

高通 Android 12 调试产测NFC功能

1、在dev/nxpnfc节点添加对应的文件权限 on property:sys.boot_completed1# nfc add by zmchmod 777 /dev/nxpnfc 2、在vendor/nxp/nfcdevice-nfc.mk文件中 修改NFC添加到编译路径如下所示,跟平时内置apk方式有点类似 PRODUCT_PACKAGES NFCTestApp-include \vendor\nxp\nfc\…

powerdesigner简单使用

批量修改表名schema vb里面好像没有!的功能&#xff1f;我之前疯狂报错&#xff0c;直到把"!“改成了”<>"; table中的字段名&#xff0c;似乎用下面的界面就可以调用&#xff1b; 推荐找一些vbs的语法记录看一下 批量加入前缀后&#xff0c;所有的表名竟然…

微服务开发系列 第十二篇:MongoDB

总概 A、技术栈 开发语言:Java 1.8数据库:MySQL、Redis、MongoDB、Elasticsearch微服务框架:Spring Cloud Alibaba微服务网关:Spring Cloud Gateway服务注册和配置中心:Nacos分布式事务:Seata链路追踪框架:Sleuth服务降级与熔断:SentinelORM框架:MyBatis-Plus分布式任…

英语时态的变化

思考&#xff1a;汉语和英语是靠什么来说明时态的 汉语和英语关于时态的区别 汉语英语1.人们采取行动。&#xff08;一般状态&#xff09;People take actions.&#xff08;动词&#xff0c;注意动词的变化&#xff09;2.人们正在采取行动。&#xff08;正在进行&#xff09;P…

window中断/连网操作的命令提示符

window中断/连网操作的命令提示符 通过 cmd 实现网络查看与断/联网 以管理员身份打开命令提示符查看计算机网络接口名称 netsh interface show interface断网操作 # netsh interface set interface "你想断开的接口名称" admindisable netsh interface set inter…

【MySQL数据库】事务和存储引擎

【MySQL数据库】事务和存储引擎 一&#xff0c;事务1事务的概念 二 、事务的ACID特点2.1原子性2.2一致性&#xff08;Consistency&#xff09;2.3隔离性2.4持久性 三、脏读、不可重复读、幻读、丢失更新3.1脏读3.2不可重复读3.3幻读3.4丢失更新 四、事务的隔离级别事务隔离级别…

动态规划dp —— 28.摆动序列

连续相同的数不算是摆动序列 单独一个或不相等的两个数算是摆动序列 1.状态表示 是什么&#xff1f;dp表中里的值所表示的含义就是状态表示 dp[i]表示&#xff1a;以i位置为结尾的所有子序列中&#xff0c;最长的摆动序列的长度 但是i位置的值可能是下降后的&#xff0c;…