主要内容

近场通信(NFC)

这个例子向您展示了如何建模两个近场通信(NFC)之间的通信设备。

介绍

近场通信(NFC)是一个基于标准的短距离无线连接技术,用于直观和简单的两个电子设备之间的通信。NFC运行在13.56 MHz中心频率(Fc),利率从106 kbps到424 kbps,及其典型操作范围是10厘米或更少。NFC总是涉及发起者和目标——发起者积极生成一个电磁场,可以一个被动的目标。

ISO®/ IEC 18092(电信和信息交换系统之间-近场通信接口和协议),也称为NFCIP-1(近场通信接口和协议规范),是NFC执政的国际标准。它是基于ISO / IEC 14443。ISO / IEC 18092包括两种通信模式:

  • 被动:发起者设备生成一个载体领域和目标设备的答案通过调制现有字段。在这种模式下,目标设备的运行功率Initiator-provided电磁场。

  • 活动:引发剂和目标设备交流通过交替生成自己的领域。设备失效射频场虽然等待数据。在这种模式下,设备通常都有电力供应。

在两种通信模式有三种操作模式中定义的ISO / IEC 18092:

  • 读/写:在这种模式下,NFC设备可以读取数据或写数据到任何支持的NFC标签(非接触式卡),一个标准的NFC数据格式。金宝app应用包括阅读信息存储在廉价的NFC标签嵌入在标签或聪明的海报。

  • 卡模拟:NFC设备也可以作为其他读者的一个NFC标签。这使得具备nfc功能的设备如智能手机像智能卡进行交易支付或票务等。

  • 点对点:两个NFC设备可以交换数据。应用包括共享wi - fi®或蓝牙®链接,或以虚拟的形式名片交换数据和照片。

系统设置

这个例子说明了NFC协议和命令从发起者需要传输数据到目标。这里使用的被动通信方式,发起者提供了电磁场和目标发送信息通过调节这一领域。发起者是操作作为一个作家和目标的名片模拟器或标记。发起者和目标使用类型空气接口中定义的ISO / IEC 14443 - 2(身份证-非接触式集成电路卡片接近卡-第2部分:射频功率和信号接口)和操作在106 kbps。米勒发起者使用修改编码有100%问,见下面的时间范围。目标生成一个副载波频率847.5千赫(Fs),通过负载调制,使用启动程序的字段,然后调节数据使用这个副载波在启动程序的载波频率。下面的频谱分析仪说明了负载调制。强调了副载波在847.5 kHz,选择工具- > - >峰值测量仪在频谱分析仪窗口。10%使用曼彻斯特编码和目标问如下所示时间范围。注意,时域信号显示在两个时间范围是基带信号。剥离e 13.56 MHz载波信号。

nfcInitiator对象代表发起者。用户数据属性数据传输到目标。nfcTarget对象表示目标并从发起者ReceivedUserData保存接收到的数据。由于短程NFC设备,系统信噪比很高。

引发剂= nfcInitiator
引发剂= Fc: 13560000 SamplesPerSymbol: 64 t1: 32 AppLayer:[]用户数据:“你好,从MathWorks。“EnableVisualization: 1
目标= nfcTarget
目标= Fc: 13560000 Fs: 847500 SamplesPerSymbol: 64 UID:“11 aa22bb”AppLayer: [] ReceivedUserData:“EnableVisualization: 1
%信号噪声比,在dBsnrdB = 50;%重置RNG可重复的结果s = rng (0);

初始化和防撞

发起者和目标跟踪初始化和防撞序列建立通信链路。图9 (PCD)初始化和防撞流程图,图10 (PCD)防撞循环,流程图在ISO / IEC 14443 - 3(身份证-非接触式集成电路卡片靠近卡片,第3部分:初始化和防撞)说明相应的流程图。第六节(A型-初始化和防撞)ISO / IEC 14443 - 3的详细描述和协议的命令。函数nfcInitialization()和nfcAnticollisionLoop()执行相应的命令序列和协议。打印的例子引发剂和目标设备的状态和行为,以及重要的信息交换,指示命令流。

传输协议

在ISO / IEC 18092,所述传输协议——有三个部分

  • 激活协议:各种协议参数,如比特率、协商,选择在这个阶段。12.5节(协议)的激活ISO / IEC 18092描述了这一阶段的细节。函数nfcProtocolActivation()实现了在这个阶段所需的命令序列。

  • 数据交换协议:交换的信息是在这个阶段使用半双工传输协议支持面向数据块传输错误处理。金宝app参见12.6节(数据交换协议)ISO / IEC 18092的细节。nfcDataExchangeProtocol()函数展示了如何实现交换的数据按照ISO / IEC 18092。

  • 失活的协议:完成数据交换后,发起者和连接与目标的协议。nfcProtocolDeactivation()函数实现了12.7节中描述的顺序(协议)的失活的ISO / IEC 18092。

nfcPrint.Message (发起人的信息传输到目标:“);
消息从启动程序传输到目标:
nfcPrint.Message (initiator.UserData);
你好,从MathWorks。
nfcPrint.Start ();
NFC发起人之间的通信和目标的开始
nfcInitialization(引发剂、目标、snrdB);

发起人收到REQA REQA传播目标

目标传播ATQA回应REQA发起人收到ATQA目标支持一些帧防撞目标的UID大小:单身金宝app
nfcAnticollisionLoop(引发剂、目标、snrdB);
防撞循环级联1级开始启动程序传播防撞命令收到了级联一级选取目标代码

目标传递完整的UID发起人收到CL1 UID没有碰撞完整的UID收到:0 x11aa22bb发起者传输选择命令目标接收代码级联一级选取目标选择确认目标传播SAK UID完成国旗发起人收到SAK UID完成。防撞退出循环。年底目标符合NFCIP-1防撞循环。继续传输协议激活
nfcProtocolActivation(引发剂、目标、snrdB);
传输协议开始激活启动程序传播ATR_REQ目标收到ATR_REQ目标传播ATR_RES回应ATR_REQ发起人收到ATR_RES发起者传播PSL_REQ回应ATR_REQ选择发送率:106 Kbps选择接收率:106 Kbps目标收到PSL_REQ目标传播PSL_RES回应PSL_REQ发起人收到PSL_RES PSL_RES验证。所有选定利率确认激活传输协议的结束
nfcDataExchangeProtocol(引发剂、目标、snrdB);
开始数据交换协议(DEP)引发剂传送一个信息PDU DEP_REQ发起者句:0目标收到一封信息PDU DEP_REQ MI链接不激活收到信息PDU收到发起者句:0目标句:0目标传送一个信息PDU DEP_RES回应DEP_REQ发起人收到一封信息PDU DEP_RES收到目标句:0所有数据传输从发起人的目标。年底退出管理。数据交换协议(DEP)
snrdB nfcProtocolDeactivation(引发剂、目标)
开始传输协议失活剂传播RLS_REQ目标收到RLS_REQ目标传播RLS_RES回应RLS_REQ发起人收到RLS_RES目标发布传输协议失活
nfcPrint.End ();
NFC年底启动程序和目标之间的沟通
nfcPrint.Message (“目标从发起者:接收的消息”);
目标从接收的消息引发剂:
nfcPrint.Message (target.ReceivedUserData);
你好,从MathWorks。
nfcPrint.NewLine;%恢复RNG状态rng(年代);
函数snrdB nfcInitialization(引发剂、目标)%初始化和防撞%参考:ISO / IEC 14443 - 3,第六节txREQA = transmitREQA(引发剂);rxREQA = awgn (txREQA snrdB,“测量”);txATQA = receiveREQA(目标,rxREQA);rxATQA = awgn (txATQA snrdB,“测量”);[isATQAValid, isCollisionDetected isTargetCompliant] =rxATQA receiveATQA(引发剂);coder.internal.errorIf (~ isATQAValid,通讯:NFC: InvalidATQA);coder.internal.errorIf (isCollisionDetected通讯:NFC: CollisionATQA);coder.internal.errorIf (~ isTargetCompliant,通讯:NFC: TargetNotCompliant);结束函数snrdB nfcAnticollisionLoop(引发剂、目标)%防撞环%参考:ISO / IEC 14443 - 3,第六节nfcPrint.NewLine;nfcPrint.Heading1 (防撞循环的开始);%开始防撞环cascadeLevel = 1;targetRxAC = [];nfcPrint.CascadeLevel (cascadeLevel);[initiatorTxAC, newCascadeLevel uidComplete isoCompliantTarget] =antiCollisionLoop(发起者,targetRxAC cascadeLevel);(newCascadeLevel < = 3) & & ~ uidComplete nfcPrint。CascadeLevel (newCascadeLevel CascadeLevel);cascadeLevel = newCascadeLevel;targetRxAC = awgn (initiatorTxAC snrdB,“测量”);%的目标是防撞循环targetTxAC = antiCollisionLoop(目标,targetRxAC);initiatorRxAC = awgn (targetTxAC snrdB,“测量”);%启动程序的防撞循环[initiatorTxAC, newCascadeLevel uidComplete isoCompliantTarget] =antiCollisionLoop(发起者,initiatorRxAC cascadeLevel);结束coder.internal.errorIf (~ uidComplete,通讯:NFC: IncompleteUID);coder.internal.errorIf (~ isoCompliantTarget,通讯:NFC: TargetNotCompliantWithNFCIP1);nfcPrint.Heading1 (“防撞循环的终结”);nfcPrint.NewLine;nfcPrint.Heading1 ([“目标符合NFCIP-1。”“继续传输协议激活”]);结束函数snrdB nfcProtocolActivation(引发剂、目标)% NFCIP-1传输协议激活%参考:ISO / IEC 18092, 12.5节nfcPrint.NewLine;nfcPrint.Heading1 (“传输协议开始激活”);txATR_REQ = transmitATR_REQ(引发剂);rxATR_REQ = awgn (txATR_REQ snrdB,“测量”);txATR_RES = receiveATR_REQ(目标,rxATR_REQ);rxATR_RES = awgn (txATR_RES snrdB,“测量”);rxATR_RES txPSL_REQ = receiveATR_RES(引发剂);rxPSL_REQ = awgn (txPSL_REQ snrdB,“测量”);txPSL_RES = receivePSL_REQ(目标,rxPSL_REQ);状态= receivePSL_RES(发起者,txPSL_RES);coder.internal.errorIf(~状态,通讯:NFC: TPActivationFailed);nfcPrint.Heading1 (“传输协议激活的终结”);结束函数snrdB nfcDataExchangeProtocol(引发剂、目标)%数据交换协议%参考:ISO / IEC 18092, 12.6节nfcPrint.NewLine;nfcPrint.Heading1 (开始的数据交换协议(DEP) ');状态= nfcDEP(发起者,目标,snrdB);coder.internal.errorIf(~状态,“nfc: nfc: DEPFailed”);nfcPrint.Heading1 (“数据交换协议(DEP)的终结”);nfcPrint.NewLine;结束函数snrdB nfcProtocolDeactivation(引发剂、目标)%传输协议失活%参考:ISO / IEC 18092, 12.7节nfcPrint.NewLine;nfcPrint.Heading1 (开始传输协议失活的);txRLS_REQ = transmitRLS_REQ(引发剂);rxRLS_REQ = awgn (txRLS_REQ snrdB,“测量”);txRLS_RES = receiveRLS_REQ(目标,rxRLS_REQ);rxRLS_RES = awgn (txRLS_RES snrdB,“测量”);状态= receiveRLS_RES(发起者,rxRLS_RES);coder.internal.errorIf(~状态,通讯:NFC: TPDeactivationFailed);nfcPrint.Heading1 (“传输协议失活的终结”);结束

探索

探索各种方法nfcInitiator和nfcTarget对象理解各种命令和协议所述NFC标准。尝试各种系统参数如信噪比、UID类型(单引号或双),UID值,SamplesPerSymbol看到他们如何影响系统。

引用

  1. https://nfc-forum.org/

  2. ISO / IEC 14443 - 2身份证-非接触式集成电路卡片接近卡-第2部分:射频功率和信号接口

  3. ISO / IEC 14443 - 3身份证-非接触式集成电路卡片接近卡-第3部分:初始化和防撞

  4. ISO / IEC 18092信息技术——之间的通信和信息交换系统-近场通信接口和协议(NFCIP-1)