射频 rc500代码完全注释(7)
802.SerBuffer[6]=SerBuffer[2]^SerBuffer[3]^SerBuffer[4]^SerBuffer[5];/*序号中四字节按位异或得到crc校 验字节*/
803.MInfo.nBytesToSend=7;/*给rc500的相关信息?与指令相配合?须发送的字节数*/
804.//////////////////////////////////////////////////////////////////////////////////////////////////////////////
805.status=M500PcdCmd(PCD_TRANSCEIVE,SerBuffer,&MInfo);/*执行命令函数m500pcdcmd()?返回STATUS*/ 806.
807.*sak=0;/*sak选卡回应值先置0*/
808.if(status==MI_OK)/*返回值为执行成功标志MI_OK*/ 809.{
810.if(MInfo.nBitsReceived!=8)/*如果接收到的不是一个字节*/ 811.{
812.status=MI_BITCOUNTERR;/*则置标志位为MI_BITCOUNTERR*/ 813.}
814.else/*如果接收到的是一个字节*/ 815.{
816.*sak=SerBuffer[0];/*则将该值存于SAK中*/ 817.} 818.}
819.returnstatus;/*返回状态值*/ 820.} 821.
822.///////////////////////////////////////////////////////////////////////
823.//KeyloadingintotheMFRC500'sEEPROM
824.//将RC500的EEROM中的密钥载入密钥缓冲区,校验卡密码(E2)
825.///////////////////////////////////////////////////////////////////////
826.charM500PiccAuthE2(unsignedcharauth_mode,unsignedchar*snr, 827.unsignedcharkeynr,unsignedcharblock)
828./*入口参数?AUTH_MODE:A/B卡型号?SNR:卡序列号?KEYNR:密钥所在扇区数?BLOCK:密钥所在数据块*/ 829.{
830.charidatastatus=MI_OK;
831.unsignedinte2addr=0x80+keynr*0x18;/*得出密钥在EEROM中的位置*/ 832.//unsignedchar*e2addrbuf=(unsignedchar*)&e2addr; 833.unsignedchar*e2addrbuf; 834.
835.e2addrbuf=(unsignedchar*)&e2addr;
836.if(auth_mode==PICC_AUTHENT1B)/*如果是B类卡*/ 837.{
838.e2addr+=12;/*密钥地址加12*/ 839.}
840.FlushFIFO();
841.ResetInfo(MInfo); 842.
843.memcpy(SerBuffer,e2addrbuf,2);/*从E2ADDRBUF中取出存密钥的EEROM地址?两个字节?*/
844.SerBuffer[2]=SerBuffer[0]; 845.SerBuffer[0]=SerBuffer[1]; 846.SerBuffer[1]=SerBuffer[2]; 847.MInfo.nBytesToSend=2;
848.if((status=M500PcdCmd(PCD_LOADKEYE2,SerBuffer,&MInfo))==MI_OK) 849.{/*下载密钥成功*/
850.status=M500PiccAuthState(auth_mode,snr,block); 851.}/*三轮认证*/
852.returnstatus;/*返回状态值*/ 853.} 854.
855.///////////////////////////////////////////////////////////////////////
856.//Authenticationkeycoding 857./*将密钥换成标准密钥形式*/
858.///////////////////////////////////////////////////////////////////////
859.charM500HostCodeKey(unsignedchar*uncoded,unsignedchar*coded) 860.{
861.charidatastatus=MI_OK; 862.unsignedcharidatacnt=0; 863.unsignedcharidataln=0; 864.unsignedcharidatahn=0;
865.for(cnt=0;cnt6;cnt++)/*密钥由6字节转成12字节*/ 866.{
867.ln=uncoded[cnt]&0x0F;/*密钥一字节的低四位*/ 868.hn=uncoded[cnt]>>4;/*密钥一字节的高四位*/ 869.coded[cnt*2+1]=(~ln<4)|ln; 870.coded[cnt*2]=(~hn<4)|hn; 871.}
872.returnMI_OK; 873.} 874.
875.///////////////////////////////////////////////////////////////////
876.//AuthenticationwithdirectkeyloadingfromtheuC
877./*直接校验从单片机载入的密码?针对卡中的某一块数据来说?16块?每
块64字节?*/
878.//////////////////////////////////////////////////////////////////
879.charM500PiccAuthKey(unsignedcharauth_mode, 880.unsignedchar*snr, 881.unsignedchar*keys, 882.unsignedcharblock) 883.{
884.charidatastatus=MI_OK; 885.//PcdSetTmo(2); 886.FlushFIFO();
887.ResetInfo(MInfo);
888.memcpy(SerBuffer,keys,12); 889.MInfo.nBytesToSend=12;
890.if((status=M500PcdCmd(PCD_LOADKEY,SerBuffer,&MInfo))==MI_OK) 891.{/*直接从单片机载入密码到FIFO,然后再载入密钥缓冲区*/ 892.status=M500PiccAuthState(auth_mode,snr,block); 893.}/*三轮认证*/ 894.returnstatus; 895.}/*返回状态值*/ 896.
897.///////////////////////////////////////////////////////////////////////
898./*三轮认证函数*/
899.///////////////////////////////////////////////////////////////////////
900.charM500PiccAuthState(unsignedcharauth_mode,unsignedchar*snr,unsignedcharblock)
901.{/*入口参数?AUTH_MODE:A/B卡型号?SNR:卡序列号?BLOCK:要访问所在数据块*/
902.charidatastatus=MI_OK; 903.unsignedcharidatai=0; 904.
905.status=ReadIO(RegErrorFlag);/*读RC500中的错误标志寄存器*/ 906.if(status!=MI_OK)/*载入密钥不成功*/ 907.{ …… 此处隐藏:1392字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [基础教育]2016-2022年中国钢芯铝绞线市场现状调
- [基础教育]语文部编版初一语文下册练习题 句式变
- [基础教育]南京继续教育参考答案--深入学习贯彻习
- [基础教育]国旗下讲话稿——珍惜时间好读书
- [基础教育]北师大版六年级数学下册圆锥的体积教学
- [基础教育]人教版-音乐-四年级下册-四年级下册音
- [基础教育]乔布斯2019年斯坦福大学毕业典礼致辞.d
- [基础教育]2015年加油站安全知识竞赛试题及答案
- [基础教育]2020年教师年度考核个人工作总结
- [基础教育]2019年中考历史试题-2019年大庆市初中
- [基础教育]初三仁爱英语第一轮总复习教案
- [基础教育]SG-A094电气配管安装工程隐蔽验收记录
- [基础教育]冀教版小学数学三年级下册第六单元教材
- [基础教育]青岛版(五制)小学科学二年级下册16《制
- [基础教育]2018-2019年初中科学初一中考真卷测试
- [基础教育]幼儿园大班期末简短评语精选
- [基础教育]2018云南临沧公务员考试申论技巧:这样
- [基础教育]学校食堂经营管理方案
- [基础教育]新中国砥砺奋进的七十年原文
- [基础教育]真空泵的选型及常用计算公式
- 高职田径课程教学现状与对策
- 全髋关节置换术在老年股骨颈骨折患者中
- 青人社厅函〔2016〕576号(附件)工资
- cp101-07砂子检验作业指导书 - secret
- 微观经济学 第八章 博弈论 习题
- 2014高考真题(词语运用)汇编及答案
- 2018年人教版七年级语文下册《第三单元
- 苏教版数学四年级上册第一单元试题 - M
- 四川大学新闻与传播考研2000-2010年真
- 浙江万里学院英语专业四年制本科教学计
- 最新2018马年事业祝福语-范文word版(2
- 最全模具行业术语英文翻译
- 皮亚杰的发展心理学理论
- 64篇高考情景式默写 练习题及答案
- 仿写(学生稿)
- 《SQL Server数据库技术》试卷A
- 第七章作业答案
- 江苏省赣榆县海头高级中学高中语文必修
- 浙江省2001年10月自考正常人体解剖学答
- 2012英语重点短语




