智能卡网吧收费机设计(二) 智能卡与RFID课件.ppt

智能卡网吧收费机设计(二) 智能卡与RFID课件.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
智能卡网吧收费机设计 (二) 逻辑加密卡接口电路与复位应答 教学目标 SLE4442卡 硬件接口电路设计与实现 SLE4442卡 复位应答功能分析与实现 产品开发——智能卡网吧收费机 开发任务:设计智能卡网吧收费机 卡型:SLE4442 智能卡网吧收费机功能分析 1、判断卡的合法性 2、上网计时收费 产品开发之第二步: 接口电路与复位功能的实现 智能卡网吧收费机功能模块: MCU (AT89S51) IC卡读写接口电路 (SLE4442逻辑加密卡) 显示 串行通信接口电路 PC机 稳压电源 RST I/O CLK 接口电路设计 ——SLE4442引脚分配 C1:Vcc(Supply Voltage) C2: RST(Reset) C3:CLK(Serial Clock) C4: (NC) C5:GND C6:I/O(Bidirectional serial data ,open drain) C7: (NC) C8: (NC) SLE4442卡接口电路 SLE4442卡复位功能的实现 如何为网吧卡提供稳定可靠的复位信号,启动 网吧卡工作? 按国际标准ISO/IEC7816 的同步传送协议 为SLE4442卡提供同步复位信号 复位和复位响应时序 (Reset and Answer-to-Reset) 复位和复位响应(Reset and Answer-to-Reset):SLE4442上电后,读写器首先应给出复位(Reset)命令并等待接收来自卡的复位响应ATR(Answer-To-Reset 复位:当RST为高时,送第一个时钟脉冲(脉冲0)使地址计数器清0。 复位响应:当RST线从高状态(H状态)置到低状态(L状态)时,第一个数据位(主存储器字节0的LSB)的内容被送到I/O上。若连续输入32个时钟脉冲(脉冲1~32),主存储器中的前4个字节(4 * 8位= 32位)地址单元中的内容被读出 等待命令:在第 33个时钟脉冲(脉冲32)的下降沿,I/O线被置成高阻状态(状态Z)而关闭——等待接收命令 /* sle4442 Reset */ void sle4442_reset(void) { uchar i=0; CLK=0; // init reset RST=0; IO=0; delay_12us(); // tPOR RST=1; //reset pulse delay_12us(); CLK=1; //clock pulse0 delay_12us(); CLK=0; delay_12us(); RST=0; delay_12us(); 如何读出ATR? for(i=0;i32;i++)//additional clk puls { CLK=1; delay_4us(); CLK=0; delay_4us(); } SLEIO=1; } /* 4442 串行输出一个字节函数,即MCU读入一个字节*/ char sle4442_si(void) // read a byte { uchar rbyte,i=8; IO=1; // 拉高数据总线准备读入 while(i--) // { rbyte=1; // 右移,低位在前,D7=0 SLECLK=1; if (IO) rbyte|=0x80; // 若IO=1, D7=1否则D7=0 delay_us(4); SLECLK=0; delay_us(4); } return(rbyte); // 返回从4442卡读入的1B数据 } 请根据ATR时序将Reset程序改为ATR程序 /* MCU从4442卡读入一个字节*/ char sle4442_si(void) // read a byte { uchar rdata=0,j=0; IO=1; // 拉高数据总线准备读入 for(j=0;j8;j++) { rdata=rdata1;//右移,低位在前,D7=0 CLK=1; delay_us(2); if(IO==1){rdata=rdata+128;}//若IO=1,D7=1否则D7=0 delay_us(2); CLK=0; delay_us(6); } return(rdata); // 返回从4442卡读入的1B数据 } 请根据ATR时序将Reset程序改为ATR程序 /* sle4442 ATR */ uchar atr[4]; //全局变量 void sle4442_reset(void) { uchar i; CLK=0; // init reset RST=0; IO=0; delay_us(12); // tPOR R

文档评论(0)

autohhh + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档