1.nfc 怎么选择操作模式的?——怎么在 PCD VCD NFC 模式中做出选择?
我知道  iso 15693中有说明但是不太懂啊。
如果周围检测到 RF场存在,就能直接认定并选择 NFC 模式?
如果没检测到RF场存在,又怎么在那3种模式中选择?
首先我觉得应该澄清一个概念,就是你所提到的NFC模式。我猜你所说的应该是ISO18092中所定义的通信方式吧? 在NFC中定义了三种不同的模式:
-         读卡器模式:运行着NFC Forum所定义的Type1/2/3/4 Platform,也就是所说的PCD/VCD,对应着ISO14443的协议,目前,NFC Forum中也加入了对VCD的支持。读卡器下也可以是ISO18092中定义的Initiator;
-         卡模拟模式:运行着NFC Forum所定义的Type4A/4B的TAG,也就是我们所说的PICC;卡模拟也可以使ISO18092的Target
-         点对点模式:定义在ISO18092中的Initiator和Target;
关于模式的选择,完全是由上层的应用程序来决定。比如说你的NFC手机运行一个读公交卡的应用程序,那么这时候NFC模块或NFC芯片就工作在读卡器模式;如果运行一个Google wallet的应用程序,那么NFC芯片就被设置成卡模拟的模式;如果运行一个文件传输的应用程序,如File expert,那么你的NFC芯片就会被设置成为点对点通信的模式。所以说,NFC的模式选择,完全取决于上层的应用程序,这里我就简单的从NFC协议的角度来分析如何进行模式的设置。
 
 
1.      初始化
当手机中的NFC模块(芯片)被开启时,会初始化一些参数,这个时候NFC芯片处于一个IDLE的状态,该状态下,NFC芯片不会产生射频场,此时它处于侦听模式下。但是需要注意的是,此时的NFC芯片并不会工作在上述三种模式中的任何一种。
2.      模式的配置
当相应的应用程序启动后,NFC芯片会得到相应的模式配置,这里描述几个比较重要的参数:
(1)      技术:该词是NFC规范中的专有名词,NFC-A/B/F,对应着ISO14443 A/B及Felica
(2)      通信模式:主动通信和被动通信
(3)      工作模式:Poll,Listen
这三个参数的组合对应着不同的模式,如(NFC-A,POLL,被动通信)表示,此时NFC工作在一个读卡器模式下;如(NFC-A,Listen,被动通信)表示NFC工作在卡模拟的模式;如(NFC-F,Poll,主动通信),表示NFC工作在点对点的模式下。当然了,可以给NFC芯片配置多个这样的参数组。除了这三个参数外,还有其它的参数,比如RF协议(ISO-DEP/NFC-DEP等),传输速率,所能支持的最大负载长度等,这里就不详细说明了。
3.      发现
当NFC芯片的模式配置好后,如果NFC芯片被配置为POLL下,那么NFC芯片将会打开射频场,并根据配置模式进行发现过程,来发现周围的NFC设备。在NFC规范中,发现的顺序为NFC-A->NFC-B->NFC-F->私有技术。当周围有多个目标设备或一个目标设备却支持多种RF协议的话,那么NFC芯片将会向上层应用通告目标设备,让上层应用来决定如何选择。如果NFC芯片被配置为LISTEN下,那么NFC芯片就会等待对方设备发来的POLL命令,如SENS_REQ/SENSF_REQ等。
4.      激活
当目标设备被选中后,将会进行设备/协议的激活,如使用NFC-DEP的传输协议,那么就需要ATR_REQ/RES的流程;
5.      链路激活
这一步是针对点对点通信的,如果使用LLCP的话,还需要对LLCP链路进行激活。

当底层链路建立好后,那么NFC设备间就可以进行通信了。

这里再说明一下,第一步初始化,也有可能不同芯片有不同的实现方式,初始化就会进入某一个模式;第二步配置和第三步发现,实际上在NFC的规范中,被合成了一步。通过一个发现命令,其中包括了模式的参数,就完成了发现过程。

NFC通信的模式选择的更多相关文章

  1. 手机NFC通信的安全车钥匙

    SmartKeys for Cyber-Cars:Secure Smartphone-based NFC-enabled Car Immobicizer 手机NFC通信的安全车钥匙 1概述 如今,智能 ...

  2. Docker Swarm 负载均衡详解 or 模式选择

    Docker Swarm 负载均衡详解 Swarm模式内置DNS组件,可以自动为集群中的每个服务分配DNS记录. Swarm manager使用内部负载均衡,根据服务的DNS名称在集群内的服务之间分发 ...

  3. Android 8.1 关机充电动画(一)模式选择

    system:Android 8.1 platform:RK3326/PX30 uboot kernel Android 8.1 关机充电动画(一)模式选择 Android 8.1 关机充电动画(二) ...

  4. 移动支付之智能IC卡与Android手机进行NFC通信

    本文来自http://blog.csdn.net/hellogv/ .引用必须注明出处.        眼下常见的智能IC卡执行着JavaCard虚拟机.智能IC卡上能够执行由精简后的Java语言编写 ...

  5. LR中HTTP协议录制模式选择

    在LR中使用HTML/HTTP协议进行脚本录制时面临正确选择HTTP-based script / URL-base script 录制模式的问题,以下是比较官方的建议:1)基于浏览器的应用程序推荐使 ...

  6. Android TimePickerDialog样式配置与TimePicker模式选择

    习惯性的,把要说的内容先总结一下: TimePicker有两种模式:spinner 和clock,可通过如下方式配置: <TimePicker android:timePickerMode = ...

  7. TMS320VC5509启动模式选择

    1. TMS320VC5509内部没有存储空间,所以需要外部接flash.如果使用JTAG仿真板子的话,应该是选择USB下载模式,同时EEPROM应该是支持SPI FALSH的.

  8. MySQL binlog日志三种模式选择及配置

    在认识binlog日志三种模式前,先了解一下解析binlog日志的命令工mysqlbinlog.mysqlbinlog工具的作用是解析mysql的二进制binlog日志内容,把二进制日志解析成可以在M ...

  9. VMware桥接模式选择宿主机物理网卡

    当宿主机有多块物理网卡时,VMware桥接模式也要根据情况选择使用的物理网卡. 比如宿主机有两块物理网卡,一个连外网,一个连内网,如果想与内网组成局域网就需要选择宿主机的内网网卡,反之选择外网网卡,当 ...

随机推荐

  1. Qt直接使用OpenSSL里的函数

    简述 OpenSSL是一个强大的安全套接字层密码库,囊括主要的密码算法.常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用. 简述 下载安装 使用 更多参考 下载安装 ...

  2. android 签名被篡改(Keystore was tampered with, or password was incorrect)

    在配置自定义签名时出现了"Keystore was tampered with, or password was incorrect"错误! 参考文档发现: If necessar ...

  3. 一些.Net面试题 (BS 方向)

    http://www.cnblogs.com/PurpleTide/archive/2012/03/10/2389496.html 解决方案和思路类: 设计和策略: 1.有一个网站的中购买功能, 假设 ...

  4. 蓝桥杯 六角形中填置1~12个数字 dfs

    如图[1.png]所示六角形中,填入1~12的数字. 使得每条直线上的数字之和都相同. 图中,已经替你填好了3个数字,请你计算星号位置所代表的数字是多少? 请通过浏览器提交答案,不要填写多余的内容. ...

  5. poj 2356 Find a multiple(鸽巢原理)

    Description The input contains N natural (i.e. positive integer) numbers ( N <= ). Each of that n ...

  6. ExtJS+ASP.NET自己定义曲线

    第一步:创建Store数据源 var myData = []; myData.push({ 'name': '1', 'Oil_Production': '30', 'Water_Injection' ...

  7. Unity 3D 进度条制作

    我们都知道玩游戏时,第一步要加载游戏,加载游戏时我们可以做一个简单的进度条来显示游戏加载进度,应为有了进度条,游戏画面不会过于呆板. 那么我们就开始游戏的进度条制作吧! 方法一: 1,使用NGUI制作 ...

  8. ubuntu14.04下arm-linux-gcc 4.5.1的安装与配置

    使用的是友善之臂mini6410自带光盘中的. 1.对新版本arm-linux-gcc-5.4.1进行解压(注意,下面的C是大写的) tar zxvf arm-linux-gcc-4.5.1-v6-v ...

  9. 查看linux系统的开机时间/重启历史记录

    查看linux系统的开机时间/重启历史记录1.who -b命令[root@rusky opt]# who -b ---查看最后一次(上次)系统启动的时间 system boot Dec 27 05:0 ...

  10. Table生成Excel表格

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...