使用ACR122U 从NTAG203Chip 读取数据

1.使用NFC Pro(Android APK)读取的TAG信息:

2.连接ACR 122U之后,从设备管理处可以看出ACR122U采用标准的微软CCID和PC/SC驱动(USB CCID):

3.PICC 的 Get Data指令

获取UID

< FF CA 00 00 00

> 04 5B 9D 32 23 35 80 90 00获取ISO 14443A 的ATS

< FF CA 01 00 00

> 6A 81 (Error:不支持此功能)

加载密钥

< FF 82 00 00 06 FF FF FF FF FF FF

> 90 00 (操作成功)

获取读写器固件版本号

< FF 00 48 00 00

> 41 43 52 31 32 32 55 32 31 34 (ASCII:ACR122U204)

4.向NFC标签读写数据(同Android NFC APK向NTAG203标签写入的内容为"123456")

读取数据

< FF B0 00 06 04

> 6E 31 32 33 90 00

从中可以看到数据域是从第6数据块第二个字节开始的

写入数据

< FF D6 00 06 04 39 38 37 36

> 90 00

使用Android读取标签内容为"876456",可见第6数据块的4个字节被9876覆盖,但是有效显示数据是从8开始的

两个不同标签读取的前48字节数据

A:

< FF B0 00 00 10

> 04 19 92 07 7A 8C 33 81 44 48 00 00 E1 10 12 00 90 00

< FF B0 00 04 10

> 01 03 A0 10 44 03 12 D1 01 0E 54 02 65 6E 48 65 90 00

< FF B0 00 08 10

> 6C 6C 6F 4B 69 74 74 79 21 FE 00 00 00 00 00 00 90 00

B:

< FF B0 00 00 10

> 04 5B 9D 4A 32 23 35 80 A4 48 00 00 E1 11 12 00 90 00

< FF B0 00 04 10

> 03 12 D1 01 0E 54 02 65 6E 48 65 6C 6C 6F 4B 69 90 00

< FF B0 00 08 10

> 74 74 79 21 FE 4E 69 63 6B 21 FE A6 D4 56 F3 56 90 00

Ismb-npp-java: https://code.google.com/p/ismb-npp-java/wiki/NppFromPhoneToACR122

NFC手机上基于软件的卡模拟:http://www.eefocus.com/cdfldf1984/blog/13-05/294325_53ee4.html

Android NFC 开发实例:http://blog.csdn.net/pku_android/article/details/7430788

附:

SD-NFC集成天线卡ATR/ATS定义规则说明

SD-NFC集成天线卡的ATR信息共14个字节,ATS信息15个字节(最后一个字节为校验字节)。其中包括协议字节4bytes和10bytes的历史字节。历史字节则包括:卡片提供商名称、项目标识、COS版本号、卡商自定义字节、代码编译日期(B-11,C-2012)、厂商ID和生产批次号。

ATS:3B8A800154464415FFBCFFFFFFFF0B

ATR:3B6A000054464415FFBCFFFFFFFF

时间: 2024-08-07 21:20:16

使用ACR122U 从NTAG203Chip 读取数据的相关文章

一段mongodb服务器读取数据超时的故事

北京时间 2016年9月25日  22:58:30 PM 近期线上生产环境mongodb的总是发现读取数据超时的问题,今天下午坐下来细细的研究了一番,大致过程如下: 业务背景 线上有一对mongodb主从的服务器,只是简单做了mongodb的主从,master - slave. 开始以为做了主从就能确保数据不丢的问题了,确实,数据没有发生丢失的问题,但是近期发现好多用户在点击某些操作要读取mongo里面的数据内容的时候,要等待很长的时间,这样的等待是叫人无法忍受的. 最开始的时候,以为做了主从,

文件操作ofstream,open,close,ifstream,fin,按照行来读取数据, fstream,iosin iosout,fio.seekg(),文件写入和文件读写,文件拷贝和文件

 1.ofstream,open,close 写入文件 #include<iostream> #include<fstream> using namespace std; //通过ofstream的方式实现写入文件 open,close void main() { ofstream fout;  //ofstream输出文件 fout.open("E:\\1.txt");//打开文件 fout << "1234abcdef";

tensorflowxun训练自己的数据集之从tfrecords读取数据

当训练数据量较小时,采用直接读取文件的方式,当训练数据量非常大时,直接读取文件的方式太耗内存,这时应采用高效的读取方法,读取tfrecords文件,这其实是一种二进制文件.tensorflow为其内置了各种存储和读取的函数,方便调用. 不知道为啥,从tfrecords中读取数据用于训练时,收敛得更快,更平稳.上面两个图是使用tfrecords的准确率和loss值变化,下面是直接读取文件的准确率和loss值变化. 1 生成记录样本的记录文件 1 root_dir = os.getcwd() 2 3

已知s.txt文件中有一个这样的字符串 请编写程序读取数据内容,把数据排序后写入 ss.txt文件

package cn.idcast5; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.util.Arrays; /* * 需求:已知s.txt文件中有一个这样

FileInputStream利用缓冲数组读取数据

package cd.itcast.fileinputstream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; public class Demo1 { public static void main(String[] args) throws IOException { //目标文件 File fil

用python从符合一定格式的txt文档中逐行读取数据并按一定规则写入excel(openpyxl支持Excel 2007 .xlsx格式)

前几天接到一个任务,从gerrit上通过ssh命令获取一些commit相关的数据到文本文档中,随后将这些数据存入Excel中.数据格式如下图所示 观察上图可知,存在文本文档中的数据符合一定的格式,通过python读取.正则表达式处理并写入Excel文档将大大减少人工处理的工作量. 1. 从gerrit获取原始信息,存入文本文档: $ssh –p 29418 <your-account>@192.168.1.16 gerrit query status:merged since:<date

JAVA BufferedReader 类从标准输入读取数据

1,建立输入流: BufferedReader localReader = new BufferedReader( new InputStreamReader(System.in)); System.in 表示标准输入,一般指键盘. 建立输入流,从标准输入读取数据到缓冲区中. 当在标准输入中输入一行字符串时,按回车之后,这行数据就会被读取到缓冲区中. 比如: abc  \r\n(表示按下回车键) 那么msg就会赋值为 abc String msg = null; while ((msg = lo

基本数据持久性(二) 使用sqlite保存和读取数据

关于基本数据的持久性,写过一篇文章来简述过(基本数据持久性(一) 使用plist保存和读取数据).这篇文章将简述采用数据库sqlite的方式来保存数据,并根据查询结果读取数据. 一.工作原理 sqlite采用表存储的方式,表的第一行(也就是我们常说的表头)在sqilte中被称为“字段”.对于标的每一行(除了字段)的信息,都有一个独一无二的列内容可以将表的每一行内容独立区分开(例如本文所示的案例,存储一个学生的信息——学号.姓名.年龄.班级.那么,学号这一列就可以将表的每一行内容独立区分开,因为每

基本数据持久性(一) 使用plist保存和读取数据

想保存成绩.记录得分.保存账号密码等等?数据持久性可以做到这一点!这篇文章通过简单的程序,来分享一下如何使用plist来保存和读取数据,以供大家参考学习. 一.程序的主要功能 1. xib文件如图1所示. 图 1 2. 通过“保存”按钮将4个textField(ID.Name.Age.Class后面的输入框)的内容保存到plist文件中. 3.通过“读取”按钮将plist中的内容分别读取到4个textField中. 二.实现步骤 1.先创建一个Single ViewController的视图,命