ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

《NFC开发实战详解》笔记

2019-04-22 16:43:55  阅读:264  来源: 互联网

标签:nfc 通信 笔记 详解 NFC android Type 设备


 地点:30教 5楼 男厕对面          *

时间:下午三点               *

天气:中雨                 *

状态:3                    *

*********************************************************

@brief:

  此书之前读过两遍,每次读的目的不同,本次读的目的是完成NFC考勤设备上位机的开发,主要实现P2P通信功能。

第一章NFC概述

  NFC设备:NFC设备、NFC读卡器、NFC标签。第一种主要是指集成了多种功能包括P2P、模拟卡、读取卡功能芯片的设备。后面两种是只有特定功能的设备,具有专用性。

  书中提到一句话:NFC设备即可以工作在主动模式也可以工作在被动模式,而读卡器只能工作在主动模式下,NFC标签只能工作在被动模式下。

  @note 上面一段话非常关键,短短的一句道出了NFC各种芯片电路板的工作模式,之前读的时候没有留意这个地方,所以在android api中提到的Initiator和target一直不解,这里的NFC设备有狭义的和广义的,广义的nfc设备是包含NFC阅读器和NFC读卡器以及NFC标签,狭义的NFC设备是指有NFC全功能的device。

  NFC通信原理是利用磁场的耦合,通信的设备都具有调制解调信号的功能,这个东东在PN532数据手册上有提到,调制解调是信号与系统课程的概念,不太了解不过不重要,只要知道无论是哪种NFC通讯方式,通讯设备都需要天线就行了。主动设备和被动设备的区别就在于谁提供磁场供能,基于这种区分方式又有主动通信模式和被动通信模式,主动通信模式是通信的两方都是主动设备,必须产生自己的RF场(专业名词好像叫RF field),这本书上讲P2P就是使用这种模式。

在第一章后面给出了NFC开发常用的网络资源,相当Nice啊。

google android API NFC Basics:

http://developer.android.com/guide/topics/connectivity/nfc/index.html

android.nfc:

http://developer.android.com/reference/android/nfc/package-sumary.html

android.nfc.tech:

http://developer.android.com/reference/android/nfc/tech/package-summary.html

不出意外,直接访问是打不开的,为什么呢因为被墙了,有VPN的小伙伴可以直接访问,没有的就别看了,洗洗睡了。0.0

还是能看的,不过要改下,前面的协议和主机名改为:https://developer.android.google.cn就可以正常访问啦。

 

第二章 NFC协议基础

  看名字就很难,但是协议往往又是通信的核心,头疼。

 

   NFC技术标准有四层,RF Layer ISO层、Mode Switch层、NFC Protocol(nfc 协议) 、App层,相关层的介绍相当专业啊,看不太懂。这段提到了一个名词NDEF nfc数据交换格式,在android系统中可以用于P2P,我在读android api关于主机卡模拟时看到一个APDU格式,也是NFC数据传输的格式,这两者有何联系?

NDEF协议:

  因为android的api中关于P2P通信有一个NDEF类,所有还是详细了解下。

  这里的“载荷内容必须被定义在一个NFC记录类型定义(RTD)文档中”,这句话我认为有问题,所要表述的意思是载荷的内容必须是RTD协议定义的格式内容。

 

NDEF格式这段文字描述有点乱,还是看图靠谱,前面说NDEF由一系列的Record记录组成,而记录又由Identifier+length+type+payload组成,这里的Identifier应该就是记录的首字节,通俗点讲就是类型定义字节(1byte)哦,里边定义了payload是不是首记录,载荷里边有无id,是短记录还是长记录,以及非常重要的TNF(3 bit)Type Name Dormat这三位指出Payload类型定义字节Type映射规则;length是Type Length、Payload length、ID length组成,不是单指Payload的长度。

前面说了TNF指明的是Type数值的对应Payload类型的映射关系。TNF的取值如上图所示,因为TNF是3位所以最多有8种选择,最后一种未定义。

当TNF=0x01的时候,Type取值对应的Payload类型在下面定义,RTD===Record Type Define

RTD:

  NFC定义的数据类型需要的载荷内容被定义在RTD文档中。

因为传输的格式未确定,所以在这里先粗看一遍,了解下。

这本书确实是本好书,总结了NFC通讯协议以及规范,但是讲得比较浅,可能是因为很早就出版的原因。需要深入学习NFC的话还是得去NFC FORM查看英文资料,当然也有可能是我基础太薄弱,觉得讲得浅,看不出门道。

直接跳到第四章android nfc api概述

  这部分内容是我迫切想要了解的内容,之前有看过一遍,但是印象不深,而且自己对于查看API编程的能力还是很薄弱。

   

 

标签:nfc,通信,笔记,详解,NFC,android,Type,设备
来源: https://www.cnblogs.com/geekj/p/10742938.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有