射频卡公交收费机设计3课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《射频卡公交收费机设计3课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 射频卡 公交 收费 设计 课件
- 资源描述:
-
1、 射频卡公交收费机设计(三)射频卡公交收费机设计(三)MIFARE 1MIFARE 1卡读写软件卡读写软件设计设计课 程 目 标q 非接触式非接触式ICIC卡读写控制卡读写控制 q MIFARE 1MIFARE 1卡读写控制功能的实现卡读写控制功能的实现项目开发射频卡公交收费系统q系统需求分析:1.具备小额电子钱包功能,定额方式收费2.操作方便快捷3.工作距离50cm4.具备显示余额、异常报警(非法卡或余额不足)5.可将当班收款额上传总站数据库6.公交公司可调整定额额度7.卡遗失可挂失8.抗干扰能力强项目设计之三软件设计q读写器与读写器与 M1M1卡交换数据的过程:卡交换数据的过程:1.读写器
2、MCU(微控制器)发送指令发送指令给MIFARE读写模块;2.MIFARE读写模块执行指令并将其转换为射频信号发送射频信号发送给卡;3.卡接收到来自MIFARE读写模块的指令后,按指令完成其内部的各种处理,并回送应答回送应答信号/数据给MIFARE读写模块;4.MIFARE读写模块接收卡回送的射频信号并将其转换为数字信号输出给MCU,MCU接收接收来自MIFARE读写模块的卡应答卡应答。MIFARE卡的读写操作步骤 q 激活MCMq MCM软复位q 向MCM下载密码(LOAD KEY),校验传输密码正确后可向MCM的KEY-RAM写入用户自己设定的密码,以上操作与卡无关。q 请求应答(ANSW
3、ER TO REQUEST):寻卡 q 防冲突(ANTICOLLISION):选择唯一一张卡 q 选择标记(SELECT):激活所选择的卡 q 认证(AUTHENTICATION):安全性q 读写操作(读、写、加值、减值):交换数据(READ/WRITE/INCREAMENT/DECREMENT)q 停止(HALT):置卡为停止模式,防止重复操作。每一个指令的执行包含以下独立的步骤,必须由程序员按时序编程来执行这些步骤才能完成相应的指令功能:q 初始化,设置各寄存器。q 送指令码到FIFOData,由MCM发送指令。q 检查是否接收完来自卡的应答,否则返回无卡(应答)错误标志;是则进入下一步q
4、 读入错误标志(寄存器0X0A),若有标志被设置,则返回出错标志;若没有标志被设置,表示接收正确,将进行下一步操作q 读入FIFOData字节数(寄存器0X04),出错则返回字节数错误标志;否则进入下一步操作q MCU从FIFOData 读出MCM接收到的应答或数据,返回操作正确标志。实训 非接触式IC卡读写控制程序设计与调试 第一阶段:第一阶段:实现1张卡的公交收费扣款。用WRITE函数编写扣款程序,调试程序,查看操作流程中各操作步骤的卡应答。第二阶段:第二阶段:实现2张及以上卡同时扣费。防冲突与防止重复扣款的编程实现与调试。第三阶段:第三阶段:用INCREMENT/DECREMENT函数编
5、写充值/扣款程序。调试程序,查看操作流程中各操作步骤的卡应答。void main(void)uchar Status;uchar xdata tmp16;SYSCLK_Init();/Initialize Oscillator PORT_Init();/Initialize Port I/O UART0_Init();/UART init SPI0_Init();/SPI init Init_RC632();/MCM initMIFARE卡读写范例程序 while(1)tmpMODE=RF_CMD_REQUEST_STD;/设置防冲突命令码 Status=Request(tmpMODE);/R
6、equest standard请求应答,寻卡/14443 A卡返回 tagtype2=0 x04,0 x00 if(Status=MI_OK)Status=AntiColl();/Anticollision防冲突,在多张卡中选择一张/卡返回UID5 if(Status=RC632_OK)Status=Select_Card();/Select application选择应用,激活选中的卡/卡返回SIZE字节cardtype=0 x08/0 x88/0 x18/0 x04/0 x28/0 x53 Answer to Request(请求应答)操作 q Request 指令功能:通知读写模块在天线
7、有效的工作范围(距离)内寻找MIFARE 1卡。q 函数:uchar Request(uchar mode)/request code(命令码):RF_CMD_REQUEST_ALL=0 x52 RF_CMD_REQUEST_STD=0 x26/answer to request:卡类型号tagtype(2个字节)14443 A卡的tagtype2=0 x04,0 x00/返回值:正常则返回0(MI_OK),否则返回错误代码q 编程调用:tmpMODE=RF_CMD_REQUEST_STD;Status=Request(tmpMODE);初始化与防冲突(AntiCollion)q如果有2张或2
8、张以上的IC卡进入读写器的工作范围,称之为冲突(或碰撞Collion),此时就需要解决如何对多张IC卡逐一处理的问题防冲突 AntiCollion。q防冲突方案:位帧防冲突(Bit AntiCollision)动态时隙-ALOHA法(Slotted-ALOHA法)qMifare防冲突方案:利用每张卡全球唯一的SN实现二进制树状搜索防冲突算法AntiCollision 防冲突q 如果有多于一张的Mifare 1卡处在MCM天线的有效工作范围(距离)内,则发生了冲突。AntiCollision操作使MCM能在多张Mifare 1卡中选择某一张卡。q AntiCollision操作由一个AntiCo
9、llision Loop(防冲突循环,内部处理)来实现。MCM发送AntiCollision命令(93H+20H),每张天线范围内的MIFARE 1卡接收AntiCollision命令后,都将回送自己的SN作为应答。q 由于每张卡的SN各不相同,MCM接收到的信息(即SN)至少有1位即是0又是1(即该位的前、后半部都有负载波调制),防冲突循环找到第1个冲突位将其置1(排除该位为0的卡),然后查第2个,依次排除,最后不再有冲突的SN即为最后读取的SN。防冲突(AntiCollision)操作q Anticollision命令功能:启动防冲突循环,卡收到命令后回送SN作为应答,防冲突循环将在收到的
10、所有SN中选择某一个SN作为应答。q 函数:uchar AntiColl(void);返回状态q 编程if(Status=MI_OK)Status=AntiColl();/Anticollision 选择应用(Select)操作q Select命令功能:将选中的SN发送给卡,与之相同SN的卡被选择,进入ACTIVE状态,而其他卡留在IDLE状态。q 函数 uchar Select_Card(void)返回状态q 编程 if(Status=MI_OK)Status=uchar Select_Card();if(Status=RC632_OK)Buffer4=1;/Buffer4为要认证的扇区号0
展开阅读全文