演示读取TypeA TypeB nfc卡号|学习笔记

简介: 快速学习演示读取TypeA TypeB nfc卡号

开发者学堂课程【嵌入式之RFID开发与应用2020版演示读取TypeA TypeB nfc卡号】学习笔记与课程紧密联系,让用户快速学习知识

课程地址https://developer.aliyun.com/learning/course/665/detail/11119


演示读取TypeA TypeB nfc卡号

 

演示过程

完成了串口和RFID的卡片的一个电源的上电复位之后,那再接下来就是卡片的卡号的读取,包括对的卡的类型的判断首先代码主要是一个通用的代码就能够识别两种卡,并且,在读取卡号之前,分别的对a类卡进行了一个初始化rfid_carda_init();,然后读取a类卡的卡号再对B类卡读取B类卡卡号,但前提是里面确实是存在a类卡或者的B类卡,具体的代码怎么去初始化以及怎么去读取去寻卡以及读取卡号,接下来进行演示一下

首先先编译一下程序编译完成之后通过挂载的方式自动挂载

 image.png

到mount目录,输入[ root@qfedu /mnt] #cd debug /iot/rfid/01_rfid_id/

image.png

左边是开发板,右边虚拟机,进去之后首先来看一下阅读器,它本身可以支持a类卡B类卡NFC前面介绍卡片的时候提到过有两种卡,分别a类和B类

ISO/IEC 14443:国际标准ISO 14443定义了两种信号接口,分别是TypeA和TypeB且互不兼容。

TypeA类卡:

>MIFARE Std 1k(MF1 IC S50):国内常称MF1 S50

>MIFARE Std 4k (MF1 IC S70):国内常称为MF1 S70

>广泛应用

TypeB类卡:

>我国第二代居民身份证:上海华虹、北京同方THR9904、天津大塘和北京华大生产。

>AT88RFO20:美国爱特梅尔(ATMIL)生产,典型应用如广州地铁卡。

接下来看一下能不能够读出的最常见的食堂的饭卡,version=88代表的就是在初始化的时候能够去读到阅读器1750的版本是88再接下来的话,就应该去读取卡号

image.png

上图分别为卡片和阅读器,只需要刷一下卡,可以看到能读到的a类卡的卡号,代码为

A类卡卡号:34 a9 a5 4d

A类卡卡号:34 a9 a5 4d

A类卡卡号:34 a9 a5 4d

A类卡卡号:34 a9 a5 4d

A类卡卡号:34 a9 a5 4d

A类卡卡号:34 a9 a5 4d

image.png

a类卡包括公交卡,再来看一下公交卡,然后再刷一下公交卡,代码显示为

A类卡卡号:43 e2 2f 4f

A类卡卡号:43 e2 2f 4f

A类卡卡号:43 e2 2f 4f

A类卡卡号:43 e2 2f 4f

A类卡卡号:43 e2 2f 4f

A类上卡号:43 e2 2f 4f

看到也可以读出来这是公交卡的卡号

然后再接下来 B类卡B类卡包括二代身份证,通过二代身份证刷一下代码如下

B类卡卡号:12 0d 70 02 2a 88 8f 37

B类卡卡号:12 0d 70 02 2a 88 8f 37

B类卡卡号:12 0d 70 02 2a 88 8f 37

B类卡卡号:12 0d 70 02 2a 88 8f 37

身份证刷出来是属于B类卡,而且卡号明显比其它的长了一倍

下来可以简单演示一下手机的NFC,打开nfC代码如下:

A类卡卡号:08 a4 b2 dd

A类卡卡号:08 68 e7 2f

A类卡卡号:08 57 13 a5

A类卡卡号:08 70 59 59

A类卡卡号:08 d6 ac 48

A类卡卡号:08 55 1e b8

A类卡卡号:08 97 12 62

A类卡卡号:08 4a 2f  a8

nf C可以看到明显看到卡号一个是一个变化的,其实是应该是一个一个固定的一个卡号,,同时NFC,它其实也是属于a类,以上就对于的通用的代码能够去读取 A类卡B类卡NFC的卡号的信息

uart_ .rfid_ init(UART_ _DEV);

while(1)

{

if(1en = get_ rfid_ card_ _id(id, &type)){

printf( "%c类卡卡号:",type);

for(i=0;i<len;i++|)

printf( "%02x " ,id[i]);

puts("");

}

}

return 0;

int

get_ rfid_ card_ id(unsigned char *id, char *type)

unsigned char TagType[2];

unsigned char buf[18] = {0};

rfid_ carda_ init();/** 初始化A类卡*/

if( (rfid_ carda_ request(PICC_ REQALL, TagType) == OK )&&(rfid_ anticoll(buf) == OK

*type = 'A';

memcpy(id, buf,4);

return 4;

}

rfid_ cardb_ init();/* 初始化B类卡*/

if( (rfid_ request() == 0K)&&(rfid_ _attrib() == 0K)&&(rfid_ get_ _uid(buf) == 0K) )

{

*type = 'B';

memcpy(id,buf,8);

return 8;

在后面可能就不会去针对B类卡去做介绍了,接下来就重点去学习关于a类卡是一个样的一个工作流程怎样初始化、怎么样去寻卡,怎么样防冲撞。

相关文章
|
缓存 iOS开发 Perl
iOS蓝牙打印小票(打印发票二维码的指令)
iOS蓝牙打印小票(打印发票二维码的指令)
589 0
iOS蓝牙打印小票(打印发票二维码的指令)
|
8月前
|
Android开发
【通讯录教程】苹果安卓鸿蒙系统通用,如何大批量导入手机号码到手机的通讯录,下面教你方法,只需1分钟搞定几万个号码的导入手机电话本
该文介绍了一种快速批量导入手机通讯录的方法,适用于处理大量手机号的需求,如微商管理、客户资料整理等。在QQ同步助手开始收费后,提供了免费的替代方案。步骤包括:下载批量导入软件(链接提供腾讯云盘和百度网盘地址),清空通讯录(非必需),制作符合格式的通讯录文件,并按操作系统(苹果、安卓或鸿蒙)进行导入。整个过程只需1分钟,简便快捷。
577 2
|
存储 算法
照片在手机里面是如何存储的?底层原理是什么?
照片在手机里面是如何存储的?底层原理是什么?
793 0
|
JSON 前端开发 测试技术
案例03_验证手机唯一性| 学习笔记
快速学习案例03_验证手机唯一性。
案例03_验证手机唯一性| 学习笔记
|
JSON 小程序 前端开发
微信小程序接入NFC,使用HCE模拟主机卡完成NFC刷卡发送消息
微信小程序接入NFC,使用HCE模拟主机卡完成NFC刷卡发送消息
830 0
微信小程序接入NFC,使用HCE模拟主机卡完成NFC刷卡发送消息
判断手机类型的工具类——适配8.0手机
需求:在做集成推送方案的时候,需要根据不同的手机类型来启用不同的推送方案。 ①手机类型:小米、华为、其他手机 ②三种推送方案的注册时机: 友盟推送是在Applicaiton#onCreate中,不区分进程。 小米推送是在Applicaiton#onCreate中,只在主进程。 华为推送是在启动页,StartActivity#onCreate中。
|
Java
java实现手机邮箱格式验证
java实现手机邮箱格式验证
375 0
指导:如何将通讯录批量转换为vcf格式导入手机?
VCF格式通讯录格式现在用途广泛,一般诺基亚、摩托罗拉手机导出通讯录的格式即为VCF。可以把VCF格式保存到电脑上以备不时之需。而且现在很多通讯录的导入格式也是VCF,例如飞信现在就加入了导入联系人的功能,可以把手机通讯录导入飞信的通讯录里,这样不管你手机在不在,只要有一台电脑就可以对自己的通讯录里的人了如指掌了。需要强调的的是,现在一般导入VCF基本都有乱码,可以用工具VCFEncoding工具重新导入一下,这样就可以解决乱码了。还可以在网上找一些网络通讯录,里面基本都会有用记事本改VCF的功能,可是,一个一个改比较繁琐,建议用第一种方法,省时省力。上面说导入VCF格式通讯录。
指导:如何将通讯录批量转换为vcf格式导入手机?
|
iOS开发
方法:怎样把手机号码导入苹果iphone手机通讯录?
第(1)步:首先你得打开你的苹果iphone手机,再次,你得在电脑上打开软件,金芝号码提取导入助手。第(2)步:然后你来到电脑上,把你自己准备好的号码和姓铭都复制好,打开电脑软件,把它们粘贴到软件的第三个功能模块:导入通讯录。然后点上面的“生成通讯录”。你将得到一个文件。第(3)步:最后你从电脑上的徽xin或者电脑Q把这个文件发给你的苹果iphone手机,在手机上打开它,其他应用方式打开,选通讯录,储存,就可以把号码导入苹果iphone手机通讯录。
方法:怎样把手机号码导入苹果iphone手机通讯录?