搜索
bottom↓
回复: 46

关于PN532 读取二代证 UID

  [复制链接]

出0入0汤圆

发表于 2014-7-23 16:43:16 | 显示全部楼层 |阅读模式
现在手上正在调试  用PN532读取二代证的UID   目前的情况是是 操作 M1 卡  和  FELIC卡  标准 TYPE B卡 都是OK的 但是操作二代证不成功     
是否有可能  二代证的 ATRB返回值非标  导致请求到不到呢
有做过的么?  谢谢了

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

 楼主| 发表于 2014-7-23 16:53:49 | 显示全部楼层
附带几条 请求卡ID指令

u8 wakeupcmdbuf [24]        =
{
  0x55,0x55,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x03,0xFD,0xD4,0x14,0x01,0x17,0x00
};               

u8 GetUIDOperTypeB [12] =
{
  0x00,0x00,0xFF,0x05,0xFb,0xD4,0x4A,0x01,0x03,0x00,0xde,0x00
};

u8 GetUIDOperTypeB1 [13] =
{
  0x00,0x00,0xFF,0x06,0xFa,0xD4,0x4A,0x01,0x03,0x00,0x01,0xdd,0x00
};

u8 GetUIDOperTypeA [11] =
{
  0x00,0x00,0xFF,0x04,0xFC,0xD4,0x4A,0x01,0x00,0xE1,0x00
};

u8 GetUIDOperFelic [16] =
{
  0x00,0x00,0xFF,0x09,0xF7,0xD4,0x4A,0x01,0x01,0x00,0xff,0xff,0x00,0x00,0xE2,0x00
};

出0入168汤圆

发表于 2014-7-23 16:59:07 | 显示全部楼层
你是用什么来驱动PN532的?

出0入0汤圆

 楼主| 发表于 2014-7-23 17:02:26 | 显示全部楼层
eiglxl 发表于 2014-7-23 16:59
你是用什么来驱动PN532的?

STM32F103  UART驱动

出0入168汤圆

发表于 2014-7-23 17:06:29 | 显示全部楼层
读二代证UID是和普通卡是有区别的。

出0入0汤圆

发表于 2014-7-23 17:20:17 | 显示全部楼层
身份证是必须要用国密认证过的读卡器才能读吧

出0入0汤圆

 楼主| 发表于 2014-7-23 17:33:29 | 显示全部楼层
eiglxl 发表于 2014-7-23 17:06
读二代证UID是和普通卡是有区别的。

嗯 是有区别的   以前用RC632是可以读取的  但是为什么PN532不行呢。。。  你有用PN532这个操作得到二代证的UID吗?

出0入0汤圆

 楼主| 发表于 2014-7-23 17:34:07 | 显示全部楼层
jacky_yhy 发表于 2014-7-23 17:20
身份证是必须要用国密认证过的读卡器才能读吧

读取内容这些肯定是需要国密认证的  但是只是读取个UID 是不需要的

出0入168汤圆

发表于 2014-7-23 19:06:35 | 显示全部楼层
pengjun334 发表于 2014-7-23 17:33
嗯 是有区别的   以前用RC632是可以读取的  但是为什么PN532不行呢。。。  你有用PN532这个操作得到二代 ...

你用了特殊命令吗?我用RC531读过,我也正想用PN532呢。

出0入0汤圆

 楼主| 发表于 2014-7-23 21:43:30 | 显示全部楼层
本帖最后由 pengjun334 于 2014-7-23 21:53 编辑
eiglxl 发表于 2014-7-23 19:06
你用了特殊命令吗?我用RC531读过,我也正想用PN532呢。


我大概找到思路了
应该是通过  InDataExchange  指令 与二代证直接进行数据交互
明天要出差  后天如果回来测试下  


二代身份证UID读取测试   二代证是应答标准的REQB指令的,但Attrib指令是非标的,
二代证的唯一UID可以通过下面的步骤简单读取,
1. PCD发送REQB命令:  0x05 0x00 0x00  二代证收到后会发送ATQB(12 bytes)应答。  例:50  00  00  00  00  d1  03  86  0c  00  80  80   
2.PCD发送非标Attrib命令  1d  00  00  00  00  00  08  01  08   二代证返回应答:08 //这里返回08不能认为是错误的,ISO14443标准返回为00
3.PCD发送读取UID命令    00  36  00  00  08   二代证返回应答:xx xx xx xx xx xx xx xx 90  00   
Sent bits:     05  00  00   
Received bits: 50  00  00  00  00  d1  03  86  0c  00  80  80   
Sent bits:     1d  00  00  00  00  00  08  01  08   
Received bits: 08   
Sent bits:     00  36  00  00  08   
Received bits: xx xx xx xx xx xx xx xx 90  00

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入22汤圆

发表于 2014-7-24 08:09:59 来自手机 | 显示全部楼层
关注,,这个芯片比531如何?

出0入53汤圆

发表于 2014-7-24 08:26:43 | 显示全部楼层
关注,我也想做个试试,还没时间,希望LZ能分享

出0入0汤圆

发表于 2014-7-24 11:56:38 | 显示全部楼层
二代证进入准备状态时间长于其它卡,二代证响应时间慢于其它卡

出50入0汤圆

发表于 2014-7-24 12:34:25 | 显示全部楼层
RC523 寄存器配置:
       RcSetReg(JREG_TXASK, 0x00);
        RcSetReg(JREG_CONTROL, 0x10);
        RcSetReg(JREG_TXMODE, 0x03);
        RcSetReg(JREG_RXMODE, 0x0B);
        RcSetReg(JREG_TYPEB, 0x03);
        RcSetReg(JREG_DEMOD, 0x4D);
        RcSetReg(JREG_GSN, 0xFF);
        RcSetReg(JREG_CWGSP, 0x3F);
        RcSetReg(JREG_MODGSP, 0x18);
        RcSetReg(JREG_RXTHRESHOLD, 0x4D);
        RcSetReg(JREG_MODWIDTH,0x68);

身份证读卡器的程序流程如下:

先发送0×05,0×00,0×00询卡命令后,身份证返回12字节卡类型代码,不同身份证返回的数据不一样。比如对两个身份证发送询卡命令后分别返回

0×50 0×00 0×00 0×00 0×00 0xd1 0×03 0×86 0×0c 0×00 0×80 0×80

0×50 0×00 0×00 0×00 0×00 0xd1 0×03 0×86 0×07 0×00 0×80 0×90

询卡成功后,发送SELECT命令:0×1d 0×00 0×00 0×00 0×00 0×00 0×08 0×01 0×08 对二代身份证进行选卡操作。这时身份证返回的第一个字节应该等于SELECT命令的最后一个字节0×08,根据这个条件来判断SELECT命令是否操作成功。


最后发送GUID命令:0×00 0×36 0×00 0×00 0×08,身份证会返回10字节数据,其中前8字节就是身份证的唯一ID,后两字节是0×90 0×00。可以用后两字节来判断得到的是否是身份证ID。

出0入0汤圆

 楼主| 发表于 2014-7-24 22:51:52 来自手机 | 显示全部楼层
谢谢楼上了  今天还在外地出差  没办法测试  刚又看了了下Um    读二代证之前应该先得配置下天线部分的参数  指令是D4  32  ***那个

出0入0汤圆

发表于 2014-7-25 22:25:40 | 显示全部楼层
本帖最后由 zlyny 于 2014-7-25 22:55 编辑

需要打开奇偶校验么?

出0入0汤圆

发表于 2014-7-26 08:27:51 | 显示全部楼层
望楼主继续,持续关注中!

出0入0汤圆

 楼主| 发表于 2014-7-30 17:45:25 | 显示全部楼层
终于搞定了  呵呵
这2天整理下 给大家  

出0入0汤圆

发表于 2014-7-30 22:11:26 | 显示全部楼层
pengjun334 发表于 2014-7-30 17:45
终于搞定了  呵呵
这2天整理下 给大家

那我就关注一下啦,虽然也不是做这个的。。。。

出0入0汤圆

发表于 2014-7-31 00:52:52 来自手机 | 显示全部楼层
以前做m1卡的时候,曾经用pn533试图读过,试了几次没有成功

出0入0汤圆

发表于 2014-7-31 09:13:35 | 显示全部楼层
关注当中~~~

出0入0汤圆

 楼主| 发表于 2014-7-31 09:15:57 | 显示全部楼层
先上传一个完整版本的数据手册   因为读取身份证需要使用寄存器操作  
有兴趣的可以下载看下看

附带一下 读二代证的 寄存器配置信息
                WriteRegPN532(CIU_MODE, 0xFF);
                WriteRegPN532(CIU_TXAUTO, 0x00);
                WriteRegPN532(CIU_TXMODE, 0x03);
                WriteRegPN532(CIU_RXMODE, 0x03);
                WriteRegPN532(CIU_TYPEB,  0x03);
                WriteRegPN532(CIU_DEMOD,  0x4D);
                WriteRegPN532(CIU_GSNON,  0xFF);
                WriteRegPN532(CIU_CWGSP,  0x3F);
                WriteRegPN532(CIU_MODGSP, 0x18);
                WriteRegPN532(CIU_RXTHRESHOLD, 0x4D);
                WriteRegPN532(CIU_MODWIDTH, 0x68);
                WriteRegPN532(CIU_MANUALRCV,0x10);

发送命令 后面2字节是CRC校验
1、05 00 00 71 ff
2、0x1d  0x00 0x00  0x00 0x00 0x00  0x08  0x01 0x08  0xf3 0x10
3、00 36 00 00 08  57 44

直接获取到8字节身份证的ID

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2014-8-8 17:02:06 来自手机 | 显示全部楼层
后面三条命令如何发送?是…40 01+还是?

出0入0汤圆

发表于 2014-8-21 18:29:41 | 显示全部楼层
楼主,你好,我用pn532读取DESfire,有时能读到,有时又读取不到UID,请问,知道是什么原因?遇到过吗?求指教

出0入0汤圆

发表于 2014-8-21 20:35:02 | 显示全部楼层
mark      

出0入0汤圆

发表于 2014-9-28 16:46:08 | 显示全部楼层
pengjun334 发表于 2014-7-31 09:15
先上传一个完整版本的数据手册   因为读取身份证需要使用寄存器操作  
有兴趣的可以下载看下看

能详细说一下寄存器,按照您说的,我在手册上对应不起来。能讲一下,如果配置寄存器的值吗?还有这些寄存器的地址。我用是PC机直接控制532模块的。谢谢。

出0入0汤圆

发表于 2014-10-9 10:37:33 | 显示全部楼层
pengjun334 发表于 2014-7-30 17:45
终于搞定了  呵呵
这2天整理下 给大家

请问有没有和stm32通过SPI通讯的例程呢

出0入0汤圆

发表于 2014-10-9 11:24:11 | 显示全部楼层
虽然不搞这个,但是赞一下

出0入0汤圆

发表于 2014-10-11 14:31:15 | 显示全部楼层
pengjun334 发表于 2014-7-23 16:53
附带几条 请求卡ID指令

u8 wakeupcmdbuf [24]        =

读取手机NFC的UID号的命令是怎样的有测试过吗?我读取HTC手机的读取到了,但LG的读取不到,不知道各个手机支持的格式是不是不是一样的?

出0入0汤圆

发表于 2015-2-5 00:13:31 | 显示全部楼层
完整程序在此http://www.amobbs.com/thread-5614403-1-1.html

出0入0汤圆

发表于 2015-2-5 08:50:22 | 显示全部楼层
不错、、学习了、、正打算弄个读二代身份证的读卡器呢!

出0入0汤圆

发表于 2015-2-5 09:06:57 | 显示全部楼层
楼主最后成功没?

出0入0汤圆

发表于 2015-5-15 06:27:01 | 显示全部楼层
关注当中~~~

出0入0汤圆

发表于 2015-5-15 09:24:08 | 显示全部楼层
多谢分享

出0入0汤圆

发表于 2015-5-15 09:38:57 | 显示全部楼层

多谢分享

出0入0汤圆

发表于 2015-7-3 13:56:19 | 显示全部楼层
还不行?再试试!

出0入0汤圆

发表于 2015-7-3 14:23:10 | 显示全部楼层
不错、、学习了,以后弄个读二代身份证的读卡器呢!

出0入0汤圆

发表于 2015-9-23 17:54:52 | 显示全部楼层
在途中 发表于 2014-7-24 11:56
二代证进入准备状态时间长于其它卡,二代证响应时间慢于其它卡

这位大哥,能简单说一下长于其他卡需要加多大延时呢?我现在遇到问题,我现在还寻不到二代身份证卡片,我怀疑跟延时有关系

出0入0汤圆

发表于 2016-6-14 22:15:34 | 显示全部楼层
是不是用InCommunicateThru 函数在这个函数的DataOut里面直接写上05 00 00 71 FF然后再读取这个语句的返回指令?

出0入0汤圆

发表于 2017-1-2 20:06:49 | 显示全部楼层
楼主:05 00 00 71 FF这个如何发送?直接通过串口发送是没有任何反应的。设置的寄存器值都可以设置,只是这个atqb不知道如何发送?谢谢!

出0入0汤圆

发表于 2017-1-3 06:17:57 | 显示全部楼层
PN532真的能读二代证的UID吗?如何发送05 00 00 71 FF?直接发送这5个字节是没反应的,通过标准命令:00 00 FF LEN LCS D4 CC Optional Input Data DCS 00,其中CC使用InDataExchange 反馈0x27,使用InCommunicateThru反馈0x01,请问如何继续?

出0入0汤圆

发表于 2017-4-7 14:55:57 | 显示全部楼层
anrey337 发表于 2017-1-3 06:17
PN532真的能读二代证的UID吗?如何发送05 00 00 71 FF?直接发送这5个字节是没反应的,通过标准命令:00 00 ...


在数据手册的68页有关于错误的描述。我也遇到这个问题。不知道你解决了没有?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2017-4-13 10:15:12 | 显示全部楼层
有直接运行,然后读ID的吗?

出0入0汤圆

发表于 2017-4-16 13:23:07 | 显示全部楼层
做好了么?买你一块成功的板可以吗?PN532+MCU的

出0入0汤圆

发表于 2017-4-16 13:47:45 | 显示全部楼层
vulcans2011 发表于 2014-8-8 17:02
后面三条命令如何发送?是…40 01+还是?

搞好了?

出0入0汤圆

发表于 2017-4-16 15:16:42 | 显示全部楼层
不错 好资料 下载来看看

出0入0汤圆

发表于 2017-8-17 17:17:48 | 显示全部楼层
楼主,PN532的CRC校验不是自己添加上去的吗  还要自己计算上吗
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-23 22:20

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表