- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实训 接触式逻辑加密卡读写控制 第二阶段:校验密码、写卡 1、校验3字节用户密码,密码正确则置错误标志PSC_ERROR为1并接收发自PC机的起始地址、数据块长度和数据块,修改主存储器指定数据块的内容;否则置错误标志PSC_ERROR为0,退出程序; 2、再次读出该数据块内容并通过串行接口上传到PC机。 注意: 校验密码错误退出程序后,请用通用读写器重新输入正确密码,以恢复EC的次数,切勿反复出错退出导致卡锁死! QA 目前大多数网吧卡仅保护发卡方利益(校验卡的合法性),并未保护持卡人利益(校验持卡人的合法性),即:若网吧卡丢失,可为非法持卡人盗用。如何避免网吧卡被非法持卡人盗用?如何实现挂失功能? 智能卡网吧收费机设计(三) 逻辑加密卡读写控制 教学目标 SLE4442卡读主存储器 SLE4442卡更新主存储器 SLE4442卡密码校验 产品开发——智能卡网吧收费机 开发任务:设计智能卡网吧收费机 卡型:SLE4442 智能卡网吧收费机功能分析 1、判断卡的合法性 2、上网计时收费 产品开发之第三步:卡读写控制 智能卡网吧收费机工作流程 1、判断卡的合法性:判断是否SLE4442卡、是否本网吧发行的卡、密码是否正确、卡中余额是否充足——复位与复位响应、读卡、校验密码 2、计时收费:写卡扣款并发送允许上网代码,接收PC机计时时间到发出的控制信号,收到启动信号则重新判断卡合法性并扣款,收到停止信号则下电并提示允许拔卡——写卡 如何实现卡读写控制? 读卡——信息如何从卡中读出? 校验——如何校验密码? 写卡——信息如何写入卡中? 软件设计方法——按SLE4442操作时序编制卡读写程序 SLE4442卡操作时序 SLE4442卡操作时序分析 通信协议:2线连接协议,满足ISO7816同步传送协议 数据传输:CLK信号下降沿有效,低位在前。 读写过程: (1)读写器发送命令(Command)给卡 命令时序 命令=开始+(控制字+地址字+数据字)+附加脉冲+停止 函数实现: void sle4442_command(uchar control,uchar address,uchar dat) (2)卡执行命令(读写器接收数据或等待卡内部执行) 操作模式(Mode): 读数据:输出数据模式(OUTGOING DATA MODE)——char sle4442_si(void)实现 写入、擦除、校验:处理模式(PROCESSING MODE) ——sle4442_process()实现 命令(Command) 复位响应以后,芯片等待着命令。 命令=开始+(控制字+地址字+数据字)+附加脉冲+停止 。 开始:在CLK为高状态(H)期间,I/O的下降沿为开始状态。 停止:在CLK为高状态(H)期间,I/O的上升沿为停止状态。 SLE4442操作命令 /* sle4442 命令函数*/ void sle4442_command(uchar control,uchar address,uchar dat) { IO=1; // Start,下降沿 SLECLK=1; delay_12us(); IO=0; delay_4us(); // t3 CLK=0; delay_4us(); sle4442_so(control); //向卡中写入一字节的控制字 sle4442_so(address); //向卡中写入一字节的地址字 sle4442_so(dat); //向卡中写入一字节的数据字 delay_4us(); IO=0; // Stop,上升沿 delay_4us(); // t6 CLK=1; delay_4us(); IO=1; } 怎样向卡中写入一个字节? /* MCU向卡送出(写入)一字节 */ void sle4442_so(char dat) // write a byte,LSB first { uchar i,temp; for(i=0;i8;i++) // bit counter,设置位计数器(8位) { temp=dat; CLK=0; // drop clock,拉低时钟 delay(4); // 保持CLK为低一个时钟脉冲 if((temp 0x01)==0) //串行传送一位到数据总线IO上 IO=0; //temp最低位为0则置0 else IO=1; //temp最低位为1则置1 delay(4); CLK=1; // raise clock,升高时钟 temp=temp1; //右移,低位在前 delay(4); // 保持CLK为高
您可能关注的文档
- 第1章检测技术的基础知识 传感器与检测技术高教(3版)课件.ppt
- 第2章温度检测 传感器与检测技术高教(3版)课件.ppt
- 第4章物位及厚度检测 传感器与检测技术高教(3版)课件.ppt
- 第5章流量检测 传感器与检测技术高教(3版)课件.ppt
- 第6章位移、速度及加速度检测 传感器与检测技术高教(3版)课件.ppt
- 第7章成分与含量的检测 传感器与检测技术高教(3版)课件.ppt
- 第8章光电检测 传感器与检测技术高教(3版)课件.ppt
- 第9章自动检测系统及其组成 传感器与检测技术高教(3版)课件.ppt
- 第10章检测装置的补偿及抗干扰技术 传感器与检测技术高教(3版)课件.ppt
- 电子车牌识别系统设计(二) 智能卡与RFID课件.ppt
文档评论(0)