实现基于Android智能手机的主机卡仿真模式作为替代ISO 14443A标准的Arduino NFC模块外文翻译资料

 2022-11-04 16:24:17

英语原文共 6 页,剩余内容已隐藏,支付完成后下载完整资料


实现基于Android智能手机的主机卡仿真模式作为替代ISO 14443A标准的Arduino NFC模块

摘要

当今科技的发展是使技术变得更加复杂并且使所有人类活动更加便捷。比如:打开/锁上访问室的门这些人类活动,通常是手动或用智能卡完成。所以在我们的日常活动中,我们必须总是携带各种锁(房锁,车库锁,办公室锁,车锁)或智能卡。因为需要携带太多东西,有时我们经常忘记带来或保证有这些基本东西。无论在何地,带着智能手机就能让我们更舒服,使我们的行为永远不会发生偏差。基于那些问题,有一个想法:用智能手机来替换常规钥匙或智能卡。如果我们实现把钥匙植入智能手机的技术,这样我们就可以体验到智能手机给我们带来的方便,这一般使用NFC技术模块。实施这些技术将有可能使得我们的口袋摆脱携带很多东西,它能够帮助那些容易忘记一些比如钥匙和智能卡等重要事情的人们。如果基于主机卡仿真(HCE)模式实现NFC在智能手机上的启用,智能手机的Android操作系统中引入的4.4(Kit Kat),HCE模式可以使有NFC模块的智能手机作为智能卡,让人们在很多活动中只使用一个项目设备,那么智能手机就可以取代密钥和智能卡的作用。模仿智能卡和在启用了NFC的智能手机之间交换数据,NFC读取器由微控制器的组件构成,分别是Arduino UNO和使用智能卡ISO14443A标准的PN532型号的NFC芯片。

关键词:Android智能手机,NFC技术,基于卡的仿真模式,智能卡,ISO14443A

I. 介绍

在快速增长的技术世界中,大部分移动设备都配备了无线模块,可以用于解决键的问题。几乎所有的主机板都是配备蓝牙和红外线,最新的也有一个NFC模块[2]。相比其他短距离技术,NFC具有以下优点:速度慢和短距离(与蓝牙相比),无障碍的方法连接(与蓝牙相比),自由视线(与红外线相比)[2]。

未来安装NFC技术的移动设备会显著增加。预计到2014年,超过1.5亿智能手机移动设备将有NFC模块[3] 。从NFC技术被广泛应用在移动设备的发展中可以看出,预计到2015年,在这个世界上,全球将近35%的移动设备已经安装了NFC模块技术(图1)。

android操作系统的开发已经达到版本5.0(lollipop),但自从android操作系统4.4(Kit Kat),智能手机里就添加了新功能或近场通信技术的模式。 Android OS 4.4引入了基于主机的卡仿真(HCE)模式,这个模式替换了带有安全元件的卡仿真模式。此模式允许android应用程序模拟卡和直接与任何NFC读卡器通信。当一个android应用程序运行时, 启用了NFC模块的智能手机可以将数据直接传输到主机CPU,而不是沿NFC协议帧传输到安全元件[2]。

通过使用基于主机的卡仿真模式,启用NFC模块的智能手机可以执行付款应用程序,票务应用程序,并作为一个钥匙或智能卡打开门。因为我们无论在哪里都可以携带我们的智能手机并且我们很少忘记我们的智能手机,所以做到这些很简单。

II.近场通信技术

近场通信技术(NFC)是智能手机和其他设备能够进行通信并通过无线电波相互交换数据的一套技术标准。通常我们只有在保持他们在一起的联系或把他们接近,一般不超过几厘米,近场通信技术才会成功。 NFC技术可以说是智能卡和NFC芯片嵌入在智能卡读卡器设备中的组合并它们均支持“非接触式”通讯”。

NFC技术旨在用于手机(NFCF,2011c),它基本上是一个扩展射频识别(RFID)技术[7]。

图1 支持NFC功能的智能手机的数量变化

全球可用于NFC通信的频带为13.56MHz。可以实现106,212和424kbps的合理速度的数据传输,虽然可以实现更高的数据速率。理论上,NFC的通信距离可以高达20cm,但是实际上在10cm范围内通信状态最好,这显然不是不利的, 因为可以降低数据被盗的可能性,提高通信的安全性[8]。

谷歌上介绍NFC技术的功能,在Android 2.3的设备中,API级别9。在Android 2.3中,设备的功能仅限于阅读标记。在Android 2.3.3的设备中,API级别10,在Android设备内,通过点对点模式开始实施对数据的写入和交换能力[4]。

NFC技术在智能手机上可以工作在三种不同的模式,即:读写器模式,点对点(P2P)模式和基于主机的卡仿真模式(自Android OS版本4.4)。每种模式都需要NFC设备使用通用数据格式进行通信[1]。对于读取器/写入器模式,智能手机可以充当NFC读写器其可以向NFC标签读取和写入数据。当点对点(P2P)模式执行时,智能手机可以与支持NFC技术的其他智能手机交换数据(例如图像,视频,联系人姓名,文件,URL等)。对于基于主机的卡仿真模式,我们的智能手机可以作为非接触式卡/智能卡,采取独特的数据格式与NFC读卡器通信。

A. NFC的独特特性[1]

NFC协议使得设备之间的通信变得如此容易,与其他其他通用协议相比,它有几个很新颖的特征。首先,它是一个非常短程的协议,它支持在几厘米内的短距离通信,并且通信的设备应该几乎接触,以建立他们之间的关系,所以很容易控制两个设备之间是否通信,只用简单地放置它们在侧面或面对彼此。当只有两个NFC设备时,设备之间的通信过程显着更快和更容易,另一个特征是NFC协议还支持被动模式的通信并且与大量基于Feli Ca和Mifare协议的非接触式智能卡兼容。因此,NFC设备可以用作各种智能卡的替代。

B.基于主机的卡仿真

许多Android设备都提供NFC卡仿真模式通信功能。在一些情形下,比如何时在NFC卡仿真模式的功能下、智能卡是否可以被NFC设备上的单独芯片复制,这由安全元件控制。许多由无线运营商提供的SIM卡包含具有NFC技术的安全元件。

今天,Android OS4.4引入了一个额外的不涉及安全元件的卡仿真模式的方法,就是所谓的基于主机的卡仿真模式。基于主机的卡仿真模式允许Android应用程序使NFC设备(智能手机)来模拟成智能卡并且可以直接与NFC读卡器通信。

a.带有安全元件的卡仿真

当NFC设备上的卡仿真模式使用安全元件去提供服务时,通过android应用程序将可以被复制的智能卡分配给NFC设备(智能手机)中的安全元件。然后,当用户携带NFC设备(智能手机)到NFC终端设备(NFC读取器),在NFC中的NFC控制器引导所有数据从NFC读写终端直接传输到安全元件。可以看出卡仿真模式的概念(图2)。

图2 连接安全元件的卡仿真

在卡仿真模式下,安全元件直接与NFC终端通信,而android应用程序不参与通信。 在通信完成之后,android应用程序获得直接来自安全元件的通信状态的订单并向用户提供信息。

b.基于主机的卡仿真(无安全元件)[6]

Android OS 4.4设备中引入的基于主机的卡仿真模式。基于主机的卡模拟模式可以使NFC设备(智能手机)在Android移动应用程序的帮助下扮演一个角色或功能,像一个可以直接与NFC读写器通信而不经过安全元件的智能卡。当NFC卡模拟使用基于主机的卡仿真模式时,接收的数据将是转发到android应用程序运行的主机CPU,而不是框架路由协议NFC安全元件。 (图3)说明了如何基于主机的卡仿真模式工作。

图3 主机卡仿真

C. NFC读写器(Arduino NFC Shield)

NFC读写器是具有嵌入式NFC芯片的设备,通过无线电波,短距离相互通信,读取NFC标签的数据。当通信发生时,NFC读卡器将处于主动模式(通信发起设备)以产生无线电波,而NFC设备将处于被动模式(目标设备)获取由NFC读写器生成的无线电波。

NFC读写器应该能够执行两个任务,分别是从软件应用接收命令和与NFC标签通信。 NFC读写器是软件应用和NFC标签之间的链接,并且能将天线产生的无线电波辐射给NFC标签。天线发射的无线电波聚集在它的周围,形成一个包围圈。以便可以无线地从位于天线邻近的NFC标签或到位于天线邻近的NFC标签传送数据。

在本讨论中,NFC读卡器由两个内置微控制器组成,分别是arduino UNO板和PN532型号的NFC。两个微控制器可以集成在一起,在Git Hub上,引脚、NDEF库和PN532之间的通信已经可用。arduino UNO板和PN532 NFC芯片之间的通信可以使用I2C(内部集成电路通信,发音为I square C)协议或SPI(串行外设或接口)协议。

从NDEF和PN532库的示例(Git Hub)可以看出如下:

#if 0

#include lt;Ndef Message.hgt;

#include lt;Ndef Record.hgt;

#include lt;Nfc Adapter.hgt;

#include lt;PN532.hgt;

#include lt;PN532_SPI.hgt;

#include lt;SPI.hgt;

PN532_SPI pn532spi(SPI,10);

PN532 NFC(pn532spi);

#else

#include

#include lt;Wire.hgt;

#include lt;PN532_I2C.hgt;

#include lt;PN532.hgt;

#include lt;Nfc Adapter.hgt;

PN532_I2C pn532_i2c(Wire);

PN532 NFC(pn532_i2c);

#endif

图4 NFC读写器(Arduino UNO PN532 NFC模块)

D.NFC设备和NFC读写器之间的通信(Arduino UNO NFC Shield)

图5 交换APDU命令和响应APDU

当有两个设备相互通信时,将有一个基于一组特定协议的数据交换包。以及支持NFC的Android设备与NFC读写器通信时将使用其自己的数据包,称为作为其智能卡条款的APDU(应用协议数据单元)服务,因为具有NFC设备和操作系统4.4(Kit Kat)的Android手机可以使用主机卡仿真模式,使Android设备可以替换智能卡(ISO 14443A)的角色和功能。

APDU服务包含命令和响应消息。在主机卡仿真模式下,android设备将处于被动模式(目标设备),作为从属的智能卡,并且将始终等待来自作为通信发起终端(NFC读写器)的命令APDU。此外,命令将被执行并返回到终端(NFC读写器)作为响应APDU。 APDU命令和响应APDU在启用NFC的Android设备(HCE模式)和终端(NFC读写器)间传输。

III系统设计与实现

A.系统设计流程图

图6 主机卡仿真系统流程

以下是本系统中的流程图步骤:

1.用户必须在其智能手机上启用NFC。然后用户安装并打开基于主机的卡模拟仿真模式的应用程序。

2.之后,用户让智能手机更靠近只有几厘米距离的NFC读写器。

3.当启用NFC设备的智能手机与NFC读卡器之间发生通信时,读卡器将读取作为智能卡角色的智能手机中的唯一数据。

4.通过一个中介APDU服务的Android应用程序将设置NFC读写器发送或接收数据。

5.结果是在响应APDU与命令APDU服务之间进行交换唯一数据。

6.当NFC读取器成功接收到响应APDU时并从智能手机读取唯一数据,用户可以进一步利用这样的数据用于他的下一步处理。

B.基于主机的卡模拟仿真模式的Android应用程序设计

在用于基于主机的卡仿真模式的android应用程序设计中,相比其他应用程序的设计流程,在Android智能手机运行基于主机的卡仿真服务的应用程序设计过程有些不同。首先,它的最低SDK和目标必须至少为19API(OS 4.4)。此外,为了实现android平台是一种基于主机的卡仿真实现主机 APDU服务的接口,服务上的声明必须包含对行动意图的进行筛选的过滤器作为服务接口。另外,为了达到艾滋病组织的android应用平台对HCE服务的要求,在服务的声明中必须包含服务原始数据标签,指向数据源以及有关HCE服务的其他信息。最后,你必须设置android为导出,使属性为真实的,和 “android.NFC服务绑定许可” 服务作为申请NFC许可服务。这是在Android应用程序声明主机Apdu服务程序主流程:

lt;uses-sdk

android:min Sdk Version=”19”

android:target Sdk Version =”19'/gt;

lt;uses-feature

android:name =“android.hardware.nfc.hce”

android:required =“true”/gt;

lt;uses-permission

android:name =“android.permission.NFC”/gt;

lt;application

...............

....

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[140465],资料为PDF文档或Word文档,PDF文档可免费转换为Word

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。