打印

RC632读身份*UID问题

[复制链接]
4866|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
国防大学|  楼主 | 2013-5-13 21:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用RC632读身份证UID,同一张身份证每次读出的UID不一样,有时候前几位一样,有时候个别位一样,但都是在那几个数之间变动,这是为啥啊?


Get_UID_TypeB(&buffer[0])
把身份证UID放在buffer,通过串口打印到PC
                for(i=0;i<10;i++)
                {
                    EUSART_SendByte(buffer[i]);
                }

char Get_UID_TypeB(unsigned char *ATQB1)
{
    char  status;
    struct TranSciveBuffer MfComData;
    struct TranSciveBuffer *pi;
    pi=&MfComData;

    ClearBitMask(RegControl,0x08);      // disable crypto 1 unit

    PcdSetTmo(5);
    MfComData.MfCommand = PCD_TRANSCEIVE;
    MfComData.MfLength  =5;
    MfComData.MfData[0] =0x00; //ISO14443B_ANTICOLLISION;                    // APf code
    MfComData.MfData[1] =0x36;// AFI;                //
    MfComData.MfData[2] =0x00; //((req_code<<3)&0x08) | (N&0x07);  // PARAM
    MfComData.MfData[3] =0x00;
    MfComData.MfData[4] =0x08;

    status = PcdComTransceive(pi);

    if (status == MI_OK)
    {
            memcpy(ATQB1, &MfComData.MfData[0], 10);
    }
    return status;
}
沙发
国防大学|  楼主 | 2013-5-13 21:22 | 只看该作者
指导老师说是时序问题,哪位大侠懂,给指点一下啊

使用特权

评论回复
板凳
yklstudent| | 2013-5-14 06:45 | 只看该作者
楼主作死  这个可以自己做????

使用特权

评论回复
地板
国防大学|  楼主 | 2013-5-14 10:02 | 只看该作者
yklstudent 发表于 2013-5-14 06:45
楼主作死  这个可以自己做????

怎么不能自己做??????????????
我已经用STC单片机实现了读身份*UID,现在想移植到PIC上
3楼请注意,我说的是读身份*UID,也就是序列号,不是身份*号,3楼看清问题再让我作死也不迟
二代证的频率是13.56M的,你只要有RC500的芯片,就可以读出来,但是,只是读出二代证的ID号,就是唯一序列号,类似S50的M1卡的唯一序列号

使用特权

评论回复
5
yewuyi| | 2013-5-14 10:06 | 只看该作者
国防大学 发表于 2013-5-14 10:02
怎么不能自己做??????????????
我已经用STC单片机实现了读身份*UID,现在想移植到PIC上
3 ...

3楼只是用了一个语气助词来强调这个事情的严重性,并无攻击意味,别人回帖的答案不满意可以不看,但不要带情绪。


另外,你这个问题应当发到其它版面去,本版面不提供关于STC的技术支持。

使用特权

评论回复
6
又一个暑假| | 2015-11-25 17:23 | 只看该作者
国防大学 发表于 2013-5-14 10:02
怎么不能自己做??????????????
我已经用STC单片机实现了读身份*UID,现在想移植到PIC上
3 ...

楼主请我这样配置可以吗?
 else if (type == 'B')
   {
       ClearBitMask(RegControl,0x08);

       WriteRawRC(RegClockQControl,0x0);
       WriteRawRC(RegClockQControl,0x40);              //0x3f, Q时钟控制
       Delay_50us(2);  
       ClearBitMask(RegClockQControl,0x40);
      
       WriteRawRC(RegTxControl,0x4b);                         //0x4b, 13.56MHz
       WriteRawRC(RegCwConductance,0x17);                         //0x3f, 设置输出驱动的电导系数
       WriteRawRC(RegModConductance,0x06);                 //0x06, 幅移键控ASk 12%      
       WriteRawRC(RegCoderControl,0x20);          //0x20, TypeB,波特率106kbps, NRZ编码
       WriteRawRC(RegModWidth,0x13);            
       WriteRawRC(RegModWidthSOF,0x3F);         
       WriteRawRC(RegTypeBFraming,0x3B);          //0x23, 定义ISO14443B帧格式
      
       WriteRawRC(RegRxControl1,0x73);
       WriteRawRC(RegDecoderControl,0x19);
       WriteRawRC(RegBitPhase,0xAD);       
       WriteRawRC(RegRxThreshold,0x88);         //0x44, 可接收的最小信号强度
       WriteRawRC(RegBPSKDemControl,0x7E);        //0x3e, 忽略EOF,打开高通滤波
       WriteRawRC(RegRxControl2,0x01);

       WriteRawRC(RegRxWait,0x06);                //0x06, 设置接收延时
       WriteRawRC(RegChannelRedundancy,0x2C);      //0x2c, TypeB接收冗余校验   
       WriteRawRC(RegCRCPresetLSB,0xFF);         //0xff, CRC预设值
       WriteRawRC(RegCRCPresetMSB,0xFF);
       WriteRawRC(RegTimeSlotPeriod,0x00);
       WriteRawRC(RegMfOutSelect,0x00);
       WriteRawRC(RFU27,0x00);                

       WriteRawRC(RegFIFOLevel,0x3F);
       WriteRawRC(RegTimerClock,0x07);
       WriteRawRC(RegTimerReload,0x0A);
       WriteRawRC(RegTimerControl,0x06);  
       WriteRawRC(RegIRqPinConfig,0x02);      
       WriteRawRC(RFU2E,0x00);
       WriteRawRC(RFU2F,0x00);
       PcdSetTmo(106);
       DelayMs(1);
       PcdAntennaOn();

使用特权

评论回复
7
林子旅| | 2016-7-27 18:19 | 只看该作者
又一个暑假 发表于 2015-11-25 17:23
楼主请我这样配置可以吗?

你可以读出身份*的序列号了吗?我可以读出M1卡的,读不出身份*的卡号

使用特权

评论回复
8
又一个暑假| | 2016-12-14 14:53 | 只看该作者
林子旅 发表于 2016-7-27 18:19
你可以读出身份*的序列号了吗?我可以读出M1卡的,读不出身份*的卡号

读不出来啊,我最近在搞522读不卡型号

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

54

帖子

1

粉丝