您好,欢迎访问三七文档
NFC技术NFC我们很“熟悉”我们熟悉的NFC设备主要是应用在手机应用中,主要有以下五类:•(1)接触通过(TouchandGo),如门禁管理、车票和门票等,用户将储存车票证或门控密码的设备靠近读卡器即可,也可用于物流管理。•(2)接触支付(TouchandPay),如非接触式移动支付,用户将设备靠近嵌有NFC模块的POS机可进行支付,并确认交易。•(3)接触连接(TouchandConnect),如把两个NFC设备相连接,进行点对点(Peer-to-Peer)数据传输,例如下载音乐、图片互传和交换通讯录等。•(4)接触浏览(TouchandExplore),用户可将NFC手机接靠近街头有NFC功能的智能公用电话或海报,来浏览交通信息等。•(5)下载接触(LoadandTouch),用户可通过GPRS网络接收或下载信息,用于支付或门禁等功能,如前述,用户可发送特定格式的短信至家政服务员的手机来控制家政服务员进出住宅的权限。NFC是什么•NFC即近场通信(NearFieldCommunication,NFC)是一种由非接触式射频识别(RFID)演变而来的非触控式的互联技术,是一种短距高频的无线电技术,在13.56MHz频率运行于20厘米距离内。一般实用距离4cm。由恩智浦半导体公司、诺基亚和索尼共同研制。•NFC传输速度:106Kbit/秒、212Kbit/秒、424Kbit/秒。•NFC工作模式:读写模式、P2P模式、卡模拟模式。•NFC功能:读卡、写卡、分享内容。NFC原理•支持NFC的设备可以在主动或被动模式下交换数据。在被动模式下,启动NFC通信的设备,也称为NFC发起设备(主设备),在整个通信过程中提供射频场(RF-field),。它可以选择106kbps、212kbps或424kbps其中一种传输速度,将数据发送到另一台设备。另一台设备称为NFC目标设备(从设备),不必产生射频场,而使用负载调制(loadmodulation)技术,即可以相同的速度将数据传回发起设备。此通信机制与基于ISO14443A、MIFARE和FeliCa的非接触式智能卡兼容,因此,NFC发起设备在被动模式下,可以用相同的连接和初始化过程检测非接触式智能卡或NFC目标设备,并与之建立联系。•发起设备产生RF场(供电)-(以一定的速率传输)-从设备感应到得到供电,芯片处理后应答产生回应RF场-(以相同的速率传输)-发起设备收到应答信息NFC技术特点•常用的无线传输技术,蓝牙,红外,NFC比较蓝牙红外NFC网络类型单点对多点点对点点对点使用距离≤10m≤1m≤0.1m速度2.1Mbps1.0Mbps106、212、424ps建立时间6s0.5s0.1s安全性具备,软件实现不具备,使用IRFM时除外具备,硬件实现通信模式主动-主动主动-主动主动-主动/被动成本中低低NFC技术特点•NFC传输距离短,数据建立交换速度快,安全,不用提供电源•NFC智能芯片(也就是增加了类似cpu的计算控制逻辑)比原先仅作为标签使用的RFID更增加了数据双向传送的功能,这个进步使得其更加适合用于电子货币支付;特别是RFID所不能实现的,相互认证和动态加密和一次性钥匙(OTP)能够在NFC上实现。•NFC设备可以用作非接触式智能卡、智能卡的读写器终端以及设备对设备的数据传输链路,其应用主要可分为以下四个基本类型:用于付款和购票、用于电子票证、用于智能媒体以及用于交换、传输数据。NFC国际标准•国际标准的作用•它规定:13.56MHz频率的无线通讯方式,主动/被动方式沟通,两种模式的选择和射频场的防冲突方法、设备防冲突方法,定义了不同波特率通讯速率下的编码方式、调制解调方式等等最最底层的通讯方式和协议。发展为以下几种主要协议:•ISO/IECIS18092国际标准RFID卡标准(非接触IC卡),该标准又有很多子标准。•ECMA-340标准•ETSITS102190标准•它们兼容了索尼公司的FeliCaTM标准,以及ISO14443A,B,也就是使用飞利浦的MIFARE标准。在业界简称为TypeA,TypeB和TypeF,其中A,B为Mifare标准,F为Felica(索尼)标准。其中ISO14443是基础标准。•ISO7816国内好多卡使用标准常用射频卡的解决方案飞利浦的Mifare,索尼的Felica,中国人民银行的Pboc。•Mifare卡有很多种版本,常见的版本有MIFAREClassic和MIFAREDESFire,他们分别按照ISO14443-3TypeA和ISO14443-4TypeA来实现。•Felica卡未通过ISO14443TypeC认证,开发了自己的一套标准JIS:X6319-4•Pboc是国内常见的支付卡,大部分城市的公交通都是基于Pboc解决方案实现的,个人的理解Pboc卡使用的是基于ISO7816接触式IC卡标准实现的接触或非接触式IC卡。NFC标签(Tag)•NFC标签可以理解为一个存储内容的内存卡片,它支持的数据类型有:ClassDescriptionTagTechnologyTheinterfacethatalltagtechnologyclassesmustimplement.NfcAProvidesaccesstoNFC-A(ISO14443-3A)propertiesandI/Ooperations.NfcBProvidesaccesstoNFC-B(ISO14443-3B)propertiesandI/Ooperations.NfcFProvidesaccesstoNFC-F(JIS6319-4)propertiesandI/Ooperations.NfcVProvidesaccesstoNFC-V(ISO15693)propertiesandI/Ooperations.IsoDepProvidesaccesstoISO-DEP(ISO14443-4)propertiesandI/Ooperations.NdefProvidesaccesstoNDEFdataandoperationsonNFCtagsthathavebeenformattedasNDEF.NdefFormatableProvidesaformatoperationsfortagsthatmaybeNDEFformattable.NFC标签(Tag)•常常不同的芯片(解决方案、采用不同的标准实现的)卡中数据格式是不一样的,比如有些MIFAREClassic数据格式就是NfcA,MIFAREDESFire数据格式是IsoDep,我们使用的二代身份证用的就是NfcB,Felica用的就是NfcF,德州仪器的VicinityCard卡用的是NfcV,北京一卡通格式是IsoDep和NfcA,Android分享文件是用Ndef格式传输数据。•APDU指令(以ISO/IEC7816-4为例)–简单说,IFD(接口设备)与IC卡之间的通讯是这样的:–a、首先,IFD(接口设备)发送5个字节的命令头给IC卡,这5个字节的内容告诉了IC卡要做什么操作;–b、然后,IC卡回传一个过程字节给IFD,告诉IFD(接口设备)IC卡是否支持该操作;–c、如果返回的过程字节告诉IFD——IC卡支持该操作,则接下来就进行数据的传输(如果有的话),数据从IFD输入到IC卡或数据从IC卡输出到IFD;–d、如果返回的过程字节告诉IFD——IC卡不支持该操作,则IC卡回传给IFD两个状态字节SW1SW2,IFD根据SW1SW2两字节判断IC卡不支持该操作的原因;Android中NFC开发•java实现相关的类:–NdefMessage消息,包含若干record–NdefRecord记录,包含最基本的数据信息–NfcAdapter适配器–NfcEvent适配器回调的事件,api14–NfcManagerapi10–Tag代表一个nfc标签被发现,它可用来处理tagTechnology类来进行一些高级操作,或者直接获取它的id(getId)或者technologyList(getTechnoloList)。新的tag被发现时创建,即使是同一个物理设备,如果一个tag拿走又回来,只有最近的tagobject能够被成功的用来创建tagtechnology,当一个tag被发现,tag对象创建通过NfcAdapter#EXTRA_TAG的singleactivity,这个阶段动作选择最合适的activity来处理。Android中NFC开发•NFC功能使用的前提:点亮屏,nfc功能开启,api=10•Manifest注册要关注的NFCIntent类型(此intent由系统framework检测到nfc后封装信息后发出),以及需要关注的tag类型–ACTION_NDEF_DISCOVERED:“android.nfc.action.NDEF_DISCOVERED“–ACTION_TECH_DISCOVERED:android.nfc.action.TECH_DISCOVERED–ACTION_TAG_DISCOVERED:“android.nfc.action.TAG_DISCOVERED”–techandroid.nfc.tech.IsoDep/tech–techandroid.nfc.tech.NfcA/tech–techandroid.nfc.tech.NfcB/tech–techandroid.nfc.tech.NfcF/tech–techandroid.nfc.tech.NfcV/tech–techandroid.nfc.tech.Ndef/tech–techandroid.nfc.tech.NdefFormatable/techtechandroid.nfc.tech.MifareClassic/tech–techandroid.nfc.tech.MifareUltralight/techAndroid中NFC开发•Manifest添加nfc使用权限,添加硬件功能限制权限•在需要处理NFC响应的Activity中注册上面3个Action。需要注意的是当系统检测到一个nfc标签时会自动寻找最合适的activity去处理这个intent,一共有三种intent:(根据数据格式及声明的action有一个优先级)–ACTION_NDEF_DISCOVERED:当tag中含有NDEF格式的数据的时候,且系统中有activity声明可以接受包含NDEF格式数据的Intent的时候,系统会做优先发出这个action的Intent。–当没有activity注册NDEF的action时会尝试发出TECH的action,即使tag中的数据是NDEF的,但是如果这个数据的MIMEtype和任何一个activity声明的相吻合,系统也会发出tech的intent而不是ndef。–当系统发现前两个intent在系统中无人会接受的时候,就只好发这个默认的tag类型intent。–如下图Android中NFC开发Manifest最好加入mimeType,因为定义越准确,intent指向此activity的成功率就越高。Android中NFC开发•P2P举例•读取IC卡信息举例nfc.apk
本文标题:nfc-课件
链接地址:https://www.777doc.com/doc-4574176 .html