搜索
bottom↓
回复: 25

RC523可以读A卡读不了身份证序列号

[复制链接]

出0入0汤圆

发表于 2015-10-30 10:11:18 | 显示全部楼层 |阅读模式
使用523读取TYPEA卡成功,读身份证时寻卡都没有成功,网上找的资料说先发05 00 00,收到回应后发送0×1d 0×00 0×00 0×00 0×00 0×00 0×08 0×01 0×08 ,最后发送0×00 0×36 0×00 0×00 0×08我是这样做的,但是第一步就没有成功,所以想大家请教。

unsigned char RequestB[5]={0X05,0X00,0X00,0x71,0xFF};
unsigned char Attrib[11]={0X1d,0X00,0X00,0X00,0X00,0X00,0X08,0X01,0X08,0xF3,0x10};
unsigned char ReadUID[7]={0x00,0x36,0x00,0x00,0x08,0x57,0x44};

寄存器配置如下:
    ClearBitMask(Status2Reg,0x08);  
    WriteRawRC(TxASKReg, 0); // Force 100ASK = 0
    WriteRawRC(ControlReg,0x10)            ;
    WriteRawRC(TxModeReg,0x03)            ;
    WriteRawRC(RxModeReg,0x0B)            ;
    WriteRawRC(TypeBReg,0x03)            ;
    WriteRawRC(DemodReg,0x4D)            ;
    WriteRawRC(GsNReg,0xff)              ; // TX输出电导设置
    WriteRawRC(CWGsPReg,0x3f)            ;
    WriteRawRC(ModGsPgReg,0x18)          ;// 调制指数设置RegModGsp,, TYPEB ModConductance 0x1A  
    WriteRawRC(RxThresholdReg, 0x4D);// 高四位->最小信号强度,低三位->冲突最小信号
    WriteRawRC(ModWidthReg,0x68)            ;
    ClearBitMask(RxSelReg,0x3F);                                     // TR0
    SetBitMask(RxSelReg, 0x08);
    ClearBitMask(TxModeReg, 0x80);                                   // 无CRC,无奇偶校验
    ClearBitMask(RxModeReg, 0x80);
    ClearBitMask(Status2Reg, 0x08);  
寻卡函数:
char PcdRequestB(unsigned char *ucComMF522Buf)
{
  char status                                        ;  
  unsigned int  unLen                                ;

  ClearBitMask(Status2Reg,0x08)                      ;
  WriteRawRC(BitFramingReg,0x07)                     ;
  SetBitMask(TxControlReg,0x03)                      ;

  
  ucComMF522Buf[0] =0x05                       ;
  ucComMF522Buf[1] =0;
  ucComMF522Buf[2] =0;
  ucComMF522Buf[3] =0x71;
  ucComMF522Buf[4] =0xFF;
  status = PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,5,ucComMF522Buf,&unLen       );
  return status                                      ;
}
选卡函数:
char PcdSelectB(unsigned char *pSnr)
{
    char status;
    unsigned char i;
    unsigned int  unLen;
    unsigned char ucComMF522Buf[MAXRLEN];

    for (i=0; i<11; i++)
    {
            ucComMF522Buf[i] = *(pSnr+i);
    }
    status = PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,11,ucComMF522Buf,&unLen);

    return status;
}
获得UID函数:
char PcdReadUID(unsigned char *pSnr,unsigned char *pTagType)
{
    char status;
    unsigned char i;
    unsigned int  unLen;
    unsigned char ucComMF522Buf[MAXRLEN];

    for (i=0; i<7; i++)
    {
            ucComMF522Buf[i] = *(pSnr+i);
    }
    status = PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,7,ucComMF522Buf,&unLen);
   
    if ((status == MI_OK) )
    {   
       for (i=0; i<10; i++)
      {
          *(pTagType+i)  = ucComMF522Buf[i];
      }
      status = MI_OK;  
    }
    else
    {   status = MI_ERR;    }

    return status;
}

出0入0汤圆

发表于 2015-10-30 23:18:31 | 显示全部楼层
帮   你 u p

出0入0汤圆

 楼主| 发表于 2015-10-31 09:47:43 | 显示全部楼层

非  常  谢  谢  !

出0入0汤圆

 楼主| 发表于 2015-10-31 10:33:52 | 显示全部楼层
我找到原因了,其他寄存器配置不变,主要调这三个
WriteRawRC(GsNReg,0xff)              ; // TX输出电导设置
WriteRawRC(CWGsPReg,0x3f)            ;
WriteRawRC(ModGsPgReg,0x18)          ;// 调制指数设置RegModGsp,, TYPEB ModConductance 0x1A
第一个我改为0XFF和0xf8没有什么影响,第二个没有改变
第三个我试了很多,从0x3f到0x00,小于0x08时就可以识别身份证了,
具体原因是每个人设计的天线不一样,所以要设置不同的参数,别人的只是参考而已,对于自己的电路还是要多调!

出0入0汤圆

发表于 2015-10-31 16:36:25 | 显示全部楼层
th1993 发表于 2015-10-31 10:33
我找到原因了,其他寄存器配置不变,主要调这三个
WriteRawRC(GsNReg,0xff)              ; // T ...

正好弄这个,感谢楼主分享的经验。有不明白再请教。

出0入0汤圆

发表于 2015-11-14 13:34:40 | 显示全部楼层
学习学习

出0入0汤圆

发表于 2015-12-7 17:11:23 | 显示全部楼层
th1993 发表于 2015-10-31 10:33
我找到原因了,其他寄存器配置不变,主要调这三个
WriteRawRC(GsNReg,0xff)              ; // T ...

前边的寄存器定义哪里有啊。。

出0入0汤圆

发表于 2015-12-7 17:46:46 | 显示全部楼层
记得好像身份证属于B卡

出0入0汤圆

 楼主| 发表于 2015-12-9 11:57:36 | 显示全部楼层
XUEPENGBIN 发表于 2015-12-7 17:11
前边的寄存器定义哪里有啊。。

看数据手册啊

出0入0汤圆

发表于 2015-10-30 10:11:19 | 显示全部楼层

本帖子中包含更多资源

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

x

出0入0汤圆

发表于 2015-12-17 13:43:34 | 显示全部楼层
二代身份证是Type B卡,RC523芯片支持不,查一下

出0入0汤圆

 楼主| 发表于 2015-12-17 22:46:40 | 显示全部楼层
hankls0007 发表于 2015-12-17 13:43
二代身份证是Type B卡,RC523芯片支持不,查一下

支持,522不支持

出0入0汤圆

发表于 2015-12-25 10:56:52 | 显示全部楼层
感谢10楼分享的523的资料。不过身份证一直没做挂失处理我觉的很奇怪

出0入0汤圆

发表于 2015-12-25 22:31:48 | 显示全部楼层
问一下lz,那个writerawrc函数的库是从哪搞的?

出0入0汤圆

 楼主| 发表于 2015-12-27 12:14:50 | 显示全部楼层
runapp 发表于 2015-12-25 22:31
问一下lz,那个writerawrc函数的库是从哪搞的?

直接522的就可以用!

出0入0汤圆

发表于 2015-12-27 22:49:27 | 显示全部楼层
th1993 发表于 2015-12-27 12:14
直接522的就可以用!

522的又是哪搞的……?

出0入0汤圆

 楼主| 发表于 2015-12-29 16:46:13 | 显示全部楼层
runapp 发表于 2015-12-27 22:49
522的又是哪搞的……?

网上一大堆

出0入0汤圆

发表于 2015-12-29 17:19:14 | 显示全部楼层

求关键字!先行谢过!

出0入0汤圆

 楼主| 发表于 2015-12-29 17:27:03 | 显示全部楼层
RC522.......................

出0入0汤圆

发表于 2015-12-29 17:48:08 | 显示全部楼层
厉害呀  打算用在智能家居上啊

出0入0汤圆

发表于 2016-6-14 11:37:06 | 显示全部楼层
问下这些提到的ATQB命令在哪里有介绍?还有身份证只能读到UID嘛

出0入0汤圆

发表于 2016-6-22 14:13:52 | 显示全部楼层
china97wan 发表于 2016-6-14 11:37
问下这些提到的ATQB命令在哪里有介绍?还有身份证只能读到UID嘛



看这个标准。

本帖子中包含更多资源

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

x

出0入0汤圆

发表于 2017-4-24 17:12:56 | 显示全部楼层
楼主还有RC523的程序代码哈?网上基本找不到

出0入0汤圆

 楼主| 发表于 2017-4-25 10:46:08 | 显示全部楼层
和522一样就是几个寄存器不一样啊

出0入0汤圆

发表于 2022-4-10 12:50:45 | 显示全部楼层
学习学习

出0入0汤圆

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

本版积分规则

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

GMT+8, 2024-4-20 12:27

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

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