- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
智能卡与RFID教学课件作者毛丰江课件3_3课件.ppt
射频卡公交收费机设计(三) ——MIFARE 1卡读写软件设计 课 程 目 标 非接触式IC卡读写控制 MIFARE 1卡读写控制功能的实现 项目开发——射频卡公交收费系统 系统需求分析: 具备小额电子钱包功能,定额方式收费 操作方便快捷 工作距离50cm 具备显示余额、异常报警(非法卡或余额不足) 可将当班收款额上传总站数据库 公交公司可调整定额额度 卡遗失可挂失 抗干扰能力强 项目设计之三——软件设计 读写器与 M1卡交换数据的过程: 1.读写器MCU(微控制器)发送指令给MIFARE读写模块; 2. MIFARE读写模块执行指令并将其转换为射频信号发送给卡; 3. 卡接收到来自MIFARE读写模块的指令后,按指令完成其内部的各种处理,并回送应答信号/数据给MIFARE读写模块; 4. MIFARE读写模块接收卡回送的射频信号并将其转换为数字信号输出给MCU,MCU接收来自MIFARE读写模块的卡应答。 MIFARE卡的读写操作步骤 激活MCM MCM软复位 向MCM下载密码(LOAD KEY),校验传输密码正确后可向MCM的KEY-RAM写入用户自己设定的密码,以上操作与卡无关。 请求应答(ANSWER TO REQUEST):寻卡 防冲突(ANTICOLLISION):选择唯一一张卡 选择标记(SELECT):激活所选择的卡 认证 (AUTHENTICATION):安全性 读写操作(读、写、加值、减值):交换数据 (READ/WRITE/INCREAMENT/DECREMENT) 停止(HALT):置卡为停止模式,防止重复操作。 每一个指令的执行包含以下独立的步骤,必须由程序员按时序编程来执行这些步骤才能完成相应的指令功能: 初始化,设置各寄存器。 送指令码到FIFOData,由MCM发送指令。 检查是否接收完来自卡的应答,否则返回无卡(应答)错误标志;是则进入下一步 读入错误标志(寄存器0X0A),若有标志被设置,则返回出错标志;若没有标志被设置,表示接收正确,将进行下一步操作 读入FIFOData字节数(寄存器0X04),出错则返回字节数错误标志;否则进入下一步操作 MCU从FIFOData 读出MCM接收到的应答或数据,返回操作正确标志。 实训 非接触式IC卡读写控制程序设计与调试 第一阶段:实现1张卡的公交收费扣款。用WRITE函数编写扣款程序,调试程序,查看操作流程中各操作步骤的卡应答。 第二阶段:实现2张及以上卡同时扣费。防冲突与防止重复扣款的编程实现与调试。 第三阶段:用INCREMENT/DECREMENT函数编写充值/扣款程序。调试程序,查看操作流程中各操作步骤的卡应答。 void main (void) { uchar Status; uchar xdata tmp[16]; SYSCLK_Init (); // Initialize Oscillator PORT_Init(); // Initialize Port I/O UART0_Init(); //UART init SPI0_Init(); //SPI init Init_RC632(); //MCM init MIFARE卡读写范例程序 while(1) { tmp[MODE]=RF_CMD_REQUEST_STD; //设置防冲突命令码 Status = Request(tmp[MODE]); // Request standard请求应答,寻卡 //14443 A卡返回 tagtype[2]={0x04,0x00} if(Status==MI_OK) { Status = AntiColl(); // Anticollision防冲突,在多张卡中选择一张 //卡返回UID[5] } if(Status==RC632_OK) { Status=Select_Card(); //Select application选择应用,激活选中的卡 //卡返回SIZE字节cardtype=0x08/0x88/0x18/0x04/0x28/0x53 } Answer to Request (请求应答)操作 Request 指令功能:通知读写模块在天线有效的工作范围(距离)内寻找MIFARE 1卡
文档评论(0)