物联网之RFID三

内容提纲

1、NFC的概念-熟悉

2、NFC和RFID区别-掌握

3、NFC的工作模式-掌握

nfc概述

NFC (Near Field Communication)近场通信,这个技术由非接触式射频识别(RFID)演变而来,由飞利浦半导体(现恩智浦半导体公司)、诺基亚和索尼共同研制开发,其基础是RFID及互连技术。NFC是一种短距离高频的无线电技术,在13.56Mhz频率运行于20cm距离内。其传输速度有106Kbit/s,212Kbit/s或者424Kbit/s三种。目前近场通信已通过并成为ISO/IEC IS 18092国际标准、ECMA-340标准与ETSI TS 102 190标准。NFC采用主动和被动两种读取模式。

Nfc工作模式

卡模式:这个模式其实就是相当于一张采用RFID技术的IC卡。可以替代大量的IC卡(包括信用卡)场合商场刷卡、公交卡、门禁管制,车票,门票等等。此种方式下,有一个极大的优点,那就是卡片通过非接触读卡器的RF域来供电,即便是寄主设备(如手机)没电也可以工作。

读写器模式:这个模式可以模拟读读卡器功能,读取MIFARE和FeliCa卡的信息

点对点模式:这个模式和红外线差不多,可用于数据交换,只是传输距离较短,传输创建速度较快,传输速度可快些,功耗低(蓝牙也类似)。将两个具备NFC功能的设备链接,能实现数据点对点传输,如下载音乐、交换图片或者同步设备地址簿。一次通过NFC,多个设备如数码相机、PDA、计算机和手机之间都可以交换资料或者服务

NFC与RFID区别

扫描二维码关注公众号,回复: 2876369 查看本文章

• 第一、NFC将非接触读卡器、非接触卡和点对点功能整合进一块单芯片,而rfid必须有阅读器和标签组成。RFID只能实现信息的读取以及判定,而NFC技术则强调的是信息交互。通俗的说NFC就是RFID的演进版本,双方可以近距离交换信息。NFC手机内置NFC芯片,组成RFID模块的一部分,可以当作RFID无源标签使用进行支付费用;也可以当作RFID读写器,用作数据交换与采集,还可以进行NFC手机之间的数据通信。

• 第二、NFC传输范围比RFID小,RFID的传输范围可以达到几米、甚至几十米,但由于NFC采取了独特的信号衰减技术,相对于RFID来说NFC具有距离近、带宽高、能耗低等特点。

• 第三、应用方向不同。NFC看更多的是针对于消费类电子设备相互通讯,有源RFID则更擅长在长距离识别。

NFC与BLE区别

内容提纲

1、PN532介绍-了解

2、PN532帧格式-掌握

PN532概述

• 随着互联网的普及,手机作为互联网最直接的智能终端,必将会引起一场技术上的革命,如同以前蓝牙、USB、GPS等标配,NFC将成为日后手机最重要的标配,通过NFC技术,手机支付、看电影、坐地铁都能实现,将在我们的日常生活中发挥更大的作用。

• 我们这里使用的NFC芯片为PN532,它是一款高度集成的非接触式通讯收发模块,基于8051单片机核心。它支持6个不同的操作模式:ISO/IEC14443A/MIFARE 读/写器、FeliCa 读/写器、ISO/IEC 14443B 读/写器、ISO/IEC14443A MIFARE卡模拟模式、FeliCa卡模拟模式、ISO/IEC 18092 ECMA 340点对点;这款芯片提供3中和主机通信的接口:SPI\I2C\USART。

PN532普通帧(P9)

对于PN532的控制,只需要按照帧格式写入数据就可以了

0x00, 前序

0x00, 0xff, 包头

LEN, 数据长度,包含TFIPD

LCS, 长度校验和,LEN + LCS = 0x00;

TFI, 传输方向,0xd4传到卡片,0xd5卡片返回

PD0, 数据

PD1, 数据

PDn, 数据

DCS, 数据校验和,DCS+TFI+PD0+…+PDn = 0x00;

长格式帧(P10)

0x00, 前序

0x00, 0xff, 包头                                                 

0xff, 0xff   短格式中的长度和校验           (普通格式最大发送255个字节,而长格式可以发送更多的字节)

LENH, 数据长度高字节,包含TFIPD

LENL, 数据长度低字节,包含TFIPD

LCS, 长度校验和,LENH + LENL + LCS = 0x00;

TFI, 传输方向,0xd4传到卡片,0xd5卡片返回

PD0, 数据

PD1, 数据

PDn, 数据

      DCS, 数据校验和,DCS+TFI+PD0+…+PDn = 0x00;

PN532应答(P9)

0x00, 前序

0x00, 0xff, 包头

00, 数据长度, 这里没有任何数据

ff, 长度校验和,LEN + LCS = 0x00;

传输方向,0xd4传到卡片,0xd5卡片返回

数据

数据

PDn, 数据

DCS, 数据校验和,DCS+TFI+PD0+…+PDn = 0x00;

00, 尾序

内容提纲

1、唤醒-掌握

2、扫卡-掌握

3、认证-掌握

4、读写-掌握

唤醒芯片(P23,P99)

0x55,0x55,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0xFF,0x03,0xFD,0xD4,0x14,0x01,0x17,0x00

从手册可以看出,唤醒命令要在原有的数据包之前加入唤醒头,这个比较特殊一点

0xd4代表主机向PN532写入数据

0x14,0x01代表选择了普通模式

命令格式(P35)

• 扫描卡片

    0x4a, 0x02, 0x00   //扫描命令,卡片个数,波特率

• 应答

    0x4b, 应答码

    0x02, 卡片个数

    0x01, 第一个卡片

    0x04, 0x00, 卡片类型

    0x08, 卡片容量

    0x04, id长度

    0x01, 0x02, 0x03, 0x04 卡片id

• 认证卡片

    0x40, 0x01, 0x60, 0x02,  数据交换命令,1号卡片,A认证,2地址

    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 秘钥

    0x01, 0x02, 0x03, 0x04 卡片id

• 应答

    0x41, 0x00   无错

• 读卡

    0x40, 0x01, 0x30, 0x02   //交换数据,1号卡,读取块,2地址

• 应答

    0x41, 0x00, 16bytes  应答,无错,16个数据

• 写卡

    0x40, 0x01, 0xa0, 0x02,   交换数据,1号卡,写入块,2地址

    1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6 数据

• 应答

    0x41, 0x00 应答,无错

• 充值

    0x40, 0x01, 0xc1, 0x02, 1,0,0,0 //交换数据,1号卡,充值,2地址,数据

    0x40, 0x01, 0xB0, 0x02;//交换数据,1号卡,保存,2地址

• 应答

    0x41, 0x00   应答,无错

• 扣款

    0x40, 0x01, 0xc0, 0x02, 1,0,0,0;//交换数据,1号卡,扣款,2地址,数据

    0x40, 0x01, 0xB0, 0x02;//交换数据,1号卡,保存,2地址

• 应答

    0x41, 0x00 应答,无错

注意:充值或者扣款操作一定要加上保存动作

读写卡片(P35,P33)

读写卡片的每一条命令都要按照帧格式

• 唤醒芯片,将芯片设置为普通模式

• 扫描卡片,一次最多2张。成功可以得到ID

• 认证,需要发送秘钥和ID。注意这里没有防冲突环节,因为在扫描的时候已经拿到卡片的ID,在认证的时候指明ID就可以了

• 读、写、充值、扣款

• PN532读取卡片的过程要比MFRC522简单很多

内容提纲

1、读写卡流程-掌握

2、读卡(BLOCK0)实战-掌握

3、写卡(BLOCK3)实战-掌握

命令格式(P35,P33)

• 唤醒

• 扫描

• 认证

• 读卡

• 唤醒

• 扫描

• 认证

• 写卡

唤醒芯片(P23,P99)

0x55,0x55,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0xFF,0x03,0xFD,0xD4,0x14,0x01,0x17,0x00

从手册可以看出,唤醒命令要在原有的数据包之前加入唤醒头,这个比较特殊一点

0xd4代表主机向PN532写入数据

0x14,0x01代表选择了普通模式

命令格式(P35)

• 扫描卡片

    0x4a, 0x02, 0x00   //扫描命令,卡片个数,波特率

• 应答

    0x4b, 应答码

    0x02, 卡片个数

    0x01, 第一个卡片

    0x04, 0x00, 卡片类型

    0x08, 卡片容量

    0x04, id长度

    0x01, 0x02, 0x03, 0x04 卡片id

• 认证卡片

    0x40, 0x01, 0x60, 0x02,  数据交换命令,1号卡片,A认证,2地址

    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 秘钥

    0x01, 0x02, 0x03, 0x04 卡片id

• 应答

    0x41, 0x00   无错

• 读卡

    0x40, 0x01, 0x30, 0x02   //交换数据,1号卡,读取块,2地址

• 应答

    0x41, 0x00, 16bytes  应答,无错,16个数据

• 写卡

    0x40, 0x01, 0xa0, 0x02,   交换数据,1号卡,写入块,2地址

    1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6 数据

• 应答

    0x41, 0x00 应答,无错

读写卡片(P35,P33) 

读写卡片的每一条命令都要按照帧格式

• 唤醒芯片,将芯片设置为普通模式

• 扫描卡片,一次最多2张。成功可以得到ID

• 认证,需要发送秘钥和ID。注意这里没有防冲突环节,因为在扫描的时候已经拿到卡片的ID,在认证的时候指明ID就可以了

• 读、写、充值、扣款

• PN532读取卡片的过程要比MFRC522简单很多

内容提纲

1、S50值段-掌握

2、充值操作-掌握

3、扣款-掌握

S50存储结构

值段

值段可以实现电子钱包的功能 有效的命令有 读 写 增 减 恢复 发送
值段有一个固定的数据格式 可以进行错误检测和纠正并备份管理
值段只能在值段格式的写操作时产生 

• 值 表示一个带符号 4 字节值 这个值的最低一个字节保存在最低的地址中 取反的字节以标准2 的格式保存 为了保证数据的正确性和保密性 值被保存了 3 次 两次不取反保存 一次取反保存 

• Adr 表示一个 1 字节地址 当执行强大的备份管理时用于保存存储段的地址 地址字节保存了 4次 取反和不取反各保存两次 在执行增 减 恢复 传送操作时 地址保持不变 它只能通过写命令改变 

• 初始化为固定的格式

    block1, 00,00,00,00,ff,ff,ff,ff,00,00,00,00,1,fe,1,fe

• 唤醒

• 扫描

• 认证

命令格式(P35,P33)

• 充值

    0x40, 0x01, 0xc1, 0x02, 1,0,0,0 //交换数据,1号卡,充值,2地址,数据

    0x40, 0x01, 0xB0, 0x02;//交换数据,1号卡,保存,2地址

• 应答

    0x41, 0x00   应答,无错

• 扣款

    0x40, 0x01, 0xc0, 0x02, 1,0,0,0;//交换数据,1号卡,扣款,2地址,数据

    0x40, 0x01, 0xB0, 0x02;//交换数据,1号卡,保存,2地址

• 应答

    0x41, 0x00 应答,无错

注意:充值或者扣款操作一定要加上保存动作

猜你喜欢

转载自blog.csdn.net/weixin_39148042/article/details/81814659