英语原文共 8 页,剩余内容已隐藏,支付完成后下载完整资料
基于Android的NFC标签测试和性能评估工具包
Ali Zaher, Thomas Peter Plagemann
Department of Informatics, Oslo University
摘 要
目前,由NFC应用得到的有关NFC性能和能源效率的公开数据并不充分,NFC应用开发者也没有合适的工具去有效地检测标签。因此,我们开发了一个以Android为基础的开源工具包供NFC标签测试和性能评估。它是以这样一种方式设计的:对于支持的标签和检测规范,它是可延伸的。这个工具包,在结构上包含了一个带有很多NFC标签的能提供单独通信接口的基本资料库,一个用于检测的应用以及一个用于检测专利通信协议的应用。
为了确保这些应用实现它们的目标,我们进行了扩展测试以比较基于五种不同标准的标签。监测结果表明,在它们之间的距离从0毫米增加到30毫米时,NFC阅读机和标签之间的通信效果并未受到严重影响,甚至在将一瓶盐水溶液放在他们中间时也没有太大影响。一个令人意外的结果就是给标签供电测得的能量消耗,比写进标签高了约30%。我们也可以从结果中得出:标签和智能手机之间的通信吞吐量是提高能源效率的最重要因素。
序言
将近场通信(NFC)技术与智能手机相结合已经迅速刺激了新的NFC应用的发展。我们有很多理由可以推断这一趋势在未来得以进步和发展,包括这一事实:智能手机深入世界市场成为流行设备,而这反过来意味着这些地方几乎每一个人都拥有或使用这样一个设备。而且,考虑到潜在的NFC应用,智能手机是非常多功能的,因为它们可以作为NFC读卡器和标签并且和其他的智能手机以个人对个人的模式通信。另一个重要原因就是智能手机应用可以为任何有合适技术的人开发,而像传播新应用的平台,如Google play和App Store则被app开发者和消费者广泛接受。但这会使人产生这一印象:仅仅是NFC应用开发者的创造力限制了新的NFC应用发展。
不幸的是,这不是完全正确的。在我们一直进行的一个以NFC为基础的电子健康应用的硬件和软件部分的研究中,置于人体内测量生理参数(如血糖水平)的传感器被粘上了一个NFC标签以使得内置的传感器——标签结合体和体外被激活的阅读器能够通信,如智能手机和智能手表一样。它也可以平衡NFC标签损耗电量的能力以避免电池给内置传感器供电的要求,因为电池有时在某些节点处会被耗尽。作为设计过程的一部分,一些功能性和非功能性要求通常会被识别并产生关联,例如总体上标签、阅读器和读写操作性能之间对非标准化协议的需要,尤其是在标签和阅读器之间还有人体组织这样的特殊情形下。为了鉴别出已存在的标签类别是否可以提供所要求的性能、哪种标签类别接近它以及这些标签是否支持标签和我们在第二部分分析现存的文献和可用设备时的应用之间的通信。不幸的是,关于应用与NFC标签之间通信性能的公开信息量非常有限。目前既无设备在不同条件下检测这一性能(如标签和阅读设备之间的距离和准线),又无设备测试已有的和新的协议。考虑这些需求的相关工作的更多细节讨论在第二部分给出。
为了克服这些局限性,我们已经开发了一个开源的Android工具包用于NFC标签的功能检测和它们的性能评估。这个工具包是可延展的,举个例子,它以这种方式设计:新的标签类别,新的协议和新的性能参照点可以轻易结合而不会影响到已存在的设计和工具包装置。工具包的目的是减少硬件工程师设计标签所耗费的功夫,同时给应用开发者引入一个可扩展的资料库以与尚未使用的标签指令装置工作。这篇论文的贡献是双重的:一方面我们描绘了工具包的设计与装置,另一方面,我们使用工具包来实现五个NFC标签的扩展性能评估,它们每一个都基于不同的标准,并呈现了主要的结果与认知。而后者被进一步用来获取更多关于影响了能源效率因素的理解,并且可在未来被用来设计更高效的NFC应用。这篇论文剩下的部分结构如下:第二部分讨论了相关的工作,第三部分呈现了这个工具包的设计与装置,第四部分描述了性能评估实验的设置而第五部分进一步分析了这些结果以对影响能源效率的因素有更好的理解。第六部分提出了结论和未来的工作。
相关工作
这篇论文中的工作是由应用推动,因为我们的目的是理解是否存在满足了特定的电子健康应用需求的标签以及标签的何种性能是从应用的观点来看的。与之对比的,这一领域研究的主体是由技术推动并集中于更低层次的RFID和NFC。例子包括由麦卡锡实施的工作,其集中关注实时频谱分析仪优化标签和阅读器之间通信链路物理层的能力。实验二的目的是创建一个公式计算阅读器和标签天线之间的耦合系数,以及在仅仅考虑能量传输的情况下其应当如何应用于设计标签天线。为了理解NFC阅读器和NFC线圈之间角度的影响,马瑞利及其他一些人利用NFC线圈和三星S3智能手机展开了实验。安格尔和其他一些人在论文【4】中提出了一种评估和探索基于快速成型的RFID系统的方法。他们同时对现有的其他测试环境和其他RFID系统的快速成型环境的概况进行了总结。他们将RFID的物理层和逻辑层作为目标以支持RFID开发者,而不是NFC应用开发者。得克马尔【5】提出了一种从标签到在手机上使用NFC的网页服务商上传输传感器值的系统。标签和手机之间的时延测量为单个标签提供。最为相关的工作【6】是一个测试系统的设计与实现。在这个系统中,我们测试NFC的通信能力,并且是从相对标签的不同地点和方向测试的。然而,这一结果是基于三个半手工状态(对照ISO 14443A card得到)的手机进行的实验得到的。测试系统包含了高级测试装置,像示波器,规程分析仪及其他一些仪器。使用的软件也不是公开提供的。几乎所有相关工作的实验都要求有特殊的硬件并使得应用开发者很难创造出相似的设备。而现在明显缺少合适的软件运行检测程序并支持NFC应用开发者。
工具包
工具包三个主要的发展目标如下:它可以作为一个单独的带有一套不同标签的通信接口以给任何类型的应用服务,促进标签检测并支持基于现有NFC标签标准的所有权标签通信协议测试。可延展性对所有这三个目标而言都是重要特征因为NFC标签标准的数目也许会增加,所有权标签在未来也会得到发展,附加的检测需求在未来也会提升。当然,检测任何所有权标签通信协议也应当是可行的。用户亲和度是另一个重要的考量。因此,工具包也必须提供一个直观的用户接口,该接口可以使得用户检测和收集关于标签通信性能的数据。所收集的数据应当能表明读写操作是如何影响电池充满率、在给定标签时会得到何种吞吐量以及合适地呈现给用户。为了检测通信协议,应当提供传输字节数组和监控反应至标签的用户接口。它同样能使得用户从标签存储器的具体不同位置处阅读字节数组并将字节数组写入标签存储器。
给定了这些目标和要求,我们在这一部分从细节描绘了工具包的最终设计并总结了一些重要的安装细节。作为开源工程,安装部分在以下的文件:【7】、【8】、【9】中可获得。
- 结构
为了用可延展且用户友好的工具包实现三个主要目标,我们已将观念分离的设计原则用于定义总体软件结构和设计用户接口的MVC结构模式。因此,工具包可被分为一个用于应用和NFC标签之间通信的基本数据库和两个各自实现检测标签测试的应用(见图1)。这确保这些成分中的任何部分的未来延展性不会影响其他成分的功能性和综合性。
数据库给任何应用都提供了一个用于和所支持的NFC标签进行通信的简单API并隐藏了处理许多不同标签类型和它们各自的二进制指令协议的复杂性。为了符合可延展的要求,这一设计定义了一个需要被安装的接口以处理基于给定标准下的标签。为了支持新的标签类型,我们需要安装这种接口的新版本并将其添加至数据库。另外,识别标签标准的规定及支持标签标准和新接口之间的计划也是需要的。使用数据库的应用的源代码不需要任何更新来和新的标签通信。
软件结构和数据库的数据流动在图1中绘制。NfcComHandler类提供了异步通信的类和静态函数,并带一个标记类的实例,该实例是由Android的android.nfc 的API提供。对这个类中函数的调用是非阻塞的。它同时创造了一个新的线程来执行选定的操作。为了从操作中获得结果,这个应用需要在工具包的SimpleMessenger数据库中注册一个消息处理程序。SimpleMessenger数据库是一个事件驱动的系统,该系统允许任何目标将消息传输到任何已注册的接收对象。
另外,NFC通信数据库提供了WrapperFactory,这是一个工厂类,它从给定的标签构建了ITagTechnologyWrapper对象。这使得应用能够和标签同步通信。因此,对这个对象的调用是阻塞型调用。这个应用需要确保这一操作工作在背景线程中。否则,它会使得用户接口冻结。如果UI线程被阻塞超过几秒钟,Android操作系统会给用户提供一个ANR(应用未回复)对话,从而使得用户能够停止应用。
图1 软件概况
B.NFC检测者应用
NFC检测者应用使得用户检测一个给定的标签。为了实现该应用的可延展性,人为地定义了一个检测调度程序。这一调度程序可以运行任何实施基准引擎接口的基准对象。这一接口允许调度程序控制基准测试程序的生命周期,这一过程是在基准测试目标中实现。为了支持新的基准测试标准,一个新的基准测试对象必须被实现和添加到应用中。这一生命周期表示在图2中。引擎最初是停止的。当它开始启动时,它进行到了运行态,也即基准测试对象被执行。在运行的任何时刻,这一引擎可以停下,这使得引擎的状态要么转向暂停要么转向终止。在终止态,所有的测量结果在引擎转向暂停态之前都是连续的。
测量结果的持续性是伴随着关系数据库SQLite实现的。从对其他应用进行进一步分析而言,这一数据库也是可以轻易获得的。数据库中的每一个条目存储了关于数据何时被记录、用户定义名称、标签类型及其他信息。该数据库包括每个基准点的表格,它同时是可延展的,以通过增加新表的方式来满足新的基准程序。目前的表格,包括属性表,可以在表1中看到。
图2 引擎活动周期
表1 数据库表及它们各自的属性
该应用要求用户挑选基准测试程序来运行并做好定义这些程序参数的环境配置。用户可以通过配置实验的名称来从数据库中识别其结果,包括重复值,间隔和功率下降。重复值用rsquo;”m”表征,它定义了基准在衰落时执行的重复的数目并为吞吐量和时延测试所使用。间隔为吞吐基准点所使用并定义了样本大小之间的距离。间隔和重复决定了用于吞吐量和时延测试的执行时间。功率下降用在能源损耗检测中,它定义为从检测开始直到结束所消耗电池容量的百分位。这一值决定了这些检测的执行时间。能量损耗是由监控的当前充电状态所决定,这是使用了由Android提供的ACTION_BATTERY_CHANGED方法得到。当用户按下或抬起开关,该应用就会用给定的参数和收集的数据执行以及控制检测的生命周期。目前的装置包括检测对象的以下指标:
往返时间(RTT):衡量一个收发函数从NFC基准程序到标签发出命令直到该命令的结果被应用程序收到的平均时间。平均值是由个人测量计算得到。因为没有具体衡量往返时间的指令,我们为每一个标签使用了最低限度数据交换的指令(见表2)。
读写吞吐量:衡量从标签存储器读写1至n个字节的平均吞吐量是n,这对应于标签内存中可读或可写的字节数目。对每个单独的读写大小进行测量,相应的平均结果就可以得到。
通读吞吐量:衡量当运用最高效阅读可读标签内存的方法时所得到的平均吞吐量。被测试标签的可读内存大小在表3中给出。
读写能量效率:衡量在给标签供能时智能手机的一次读写操作的能量损耗(就每秒的能量消耗而言)并给出了总体电池容量的百分位。电池的充盈率和时间在供能前和事后已直接获得。
表2 估计往返时间的指令
表3 可读与可写的标签存储
C.NFC协议测试者应用
NFC协议测试者应用允许开发者测试他们的所有权通信协议。从给定标签得到的最终答复通过应用的用户接口被立刻转交至用户。用户可以选择从标签内存读取信息,或者写入其内存,或者将所有权命令传送至标签。所有权命令通过允许用户构建数组并将其传输至标签而发挥作用。来自标签的回复被随时监控着并以一个数组的方式呈现给用户。它的目的在于用户使用此功能来判断标签如预期的专有命令一样回复。
实验
这一部分描述了评估基于不同NFC标准的五个标签性能的实验,并呈现和分析了所得到的结果。考虑到所设计的电子健康应用,这个实验的目的是识别标签标准装置的通信特征和能量效率。因此,我们的目标是辨别出其性能是如何被以下因素影响:
标签与阅读器之间的位移,如一个运行工具包的智能手机;
传送数据的数量;
标签与阅读器之间的人体组织,这可以用在标签旁放置一瓶盐溶液来模拟。
为了实现可重复性,我们在以下部分充分解释了实验设计。它包括了使用的材料和实验台的构建。
A.设计
表4总结了所使用的材料,而图3显示了实验的蓝图和总装。栏杆允许手机和标签之间的位移改变,但仍然能保持精确。在手机上夹上一只夹子以确保手机在实验中处于同一个地方。每一个标签都被贴上塑料卡片,而塑料卡片被固定在轨头座栓上。
表4 实验材料
图3 实验设计与装配
本实验使用的标签是由基于NFC论坛所定义的四种标签标准和一种所有权标签标准得到的,这呈现在表5中。他们都显示了不同的特性和指令协议,并且他们都有可能读内存或写内存。
对每一个标签和每一次位移,在NFC检测者应用中可实现的检测程序都被执行,而结果被存储在SQLite数据库中。这一实验用盐溶液来模拟在标签中放置人体组织的影响,它是通过将标签完全浸于盐溶液中来实现。在盐溶液中,标签在各个方向都覆盖着5毫米的溶液液体。我们选择盐溶液是基于它在介电常数上和人体组织的相似性,这和一个材料防电磁场干扰的能力是息息相关的。
表5 实验用标签<!--
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[149859],资料为PDF文档或Word文档,PDF文档可免费转换为Word
课题毕业论文、文献综述、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。