智能卡网吧收费机设计(三).ppt_第1页
智能卡网吧收费机设计(三).ppt_第2页
智能卡网吧收费机设计(三).ppt_第3页
智能卡网吧收费机设计(三).ppt_第4页
智能卡网吧收费机设计(三).ppt_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、智能卡网吧收费机设计(三)接触式逻辑加密卡读写软件设计,电子与信息工程学院,教学目标,SLE4442卡读主存储器 SLE4442卡更新主存储器 SLE4442卡密码校验,产品开发智能卡网吧收费机,开发任务:设计智能卡网吧收费机 卡型:SLE4442 智能卡网吧收费机功能分析 1、判断卡的合法性 2、上网计时收费,产品开发之第三步:软件实现,智能卡网吧收费机工作流程 1、判断卡的合法性:判断是否SLE4442卡、是否本网吧发行的卡、密码是否正确、卡中余额是否充足复位与复位响应、读卡、校验密码 2、计时收费:写卡扣款并发送允许上网代码,接收PC机计时时间到发出的控制信号,收到启动信号则重新判断卡合

2、法性并扣款,收到停止信号则下电并提示允许拔卡写卡,网吧收费机主程序流程图,插卡上电,是否4442卡?,是否本网吧发行?,是否合法卡?,是否4442卡?,插卡上电,更新余额,余额足否?,发送上网允许代码,接收PC机控制信号,启动?,N,发送错误代码1 卡类型错误,发送错误代码2 伪卡错误,发送错误代码3 密码错误,发送错误代码4 余额不足,N,N,N,Y,Y,Y,N,Y,下电 提示允许拔卡,IO BIT P1.0 CLK BIT P1.1 RST BIT P1.2 ICSW BIT P1.6 PWR BIT P1.7 PSC1 EQU 0FFH PSC2 EQU 0FFH PSC3 EQU 0F

3、FH COM EQU 20H ADDR EQU 21H DAT EQU 22H NUM EQU 2FH ;*主程序* ORG 0030H MAIN:CLR EA;关中断 MOV SP,#60H;设置堆栈,网吧卡功能测试主程序,LCALL PWRON;上电控制 LCALL RESET;复位 MOV R0,#30H;设置读数据缓冲区1首地址 LCALL READ;读主存储器 NOP;断点 LCALL VERIFY;PSC校验 XRL A,#07h;断点,检查PSC校验是否正确 JNZ EXIT;PSC校验失败退出 MOV R0,#50H;设置写数据缓冲区首地址 LCALL WRITE;修改主存储器

4、 MOV R0,#40H;设置读数据缓冲区2首地址 LCALL READ;再次读主存储器 EXIT: NOP;断点 LCALL PWROFF;下电控制 SJMP $,如何实现卡读写控制?,接触式逻辑加密卡SLE4442与读写器如何交换数据? 如何启动SLE4442卡工作? 信息如何从卡中读出? 如何校验密码? 信息如何写入卡中?,软件设计方法按SLE4442操作时序编制卡读写程序,通信协议:2线连接协议,满足ISO7816同步传送协议 数据传输:CLK信号下降沿有效。 复位和复位响应(Reset and Answer-to-Reset): 上电后启动芯片,符合7816RESET子程序实现 命令

5、(Command) 命令=开始+(控制字+地址字+数据字)+附加脉冲+停止 COMMAND子程序实现 操作模式(Mode): 读数据:输出数据模式(OUTGOING DATA MODE)SHIN子程序实现 写入、擦除、校验:处理模式(PROCESSING MODE) PROCESS子程序实现,分任务1:读主存储器Read Main Memory,命令格式:30H +字节地址+ * 模式:OUTGOING 功能:读出从给定的字节地址(N)开始,直到整个存储器末尾的主存储器内容。 说明:在该命令输入以后,接口设备IFD必须提供足够的时钟脉冲,起始地址为N时所需要的时钟脉冲数为 M=(256-N)*

6、 81 (N=0255) 例如:地址为7EH(N=254),M=17,;*读主存储器子程序* READ: MOV COM,#30H;设置读主存储器控制字 MOV ADDR,#R_ADDR;取读主存储器首地址 MOV DAT,#00H;设置读主存储器数据字(任意) MOV R4,NUM;数据个数 LCALL COMMAND;送命令给卡 READ0:LCALL SHIN;读数据(输出数据模式) MOV R0,A;送数据入数据缓冲区 INC R0 DJNZ R4,READ0;未读完继续,如何完成命令的发送呢?,SETB CLK;发送一个附加脉冲 LCALL DELAY CLR CLK LCALL D

7、ELAY SETB IO;置位数据线 LCALL DELAY RET,命令(Command),复位响应以后,芯片等待着命令。 命令=开始+(控制字+地址字+数据字)+附加脉冲+停止 。 开始:在CLK为高状态(H)期间,I/O的下降沿为开始状态。 停止:在CLK为高状态(H)期间,I/O的上升沿为停止状态。,SLE4442操作命令,;*命令子程序* ;该子程序送出三字节的SLE4442命令 ;入口参数:COM为控制字,ADDR为地址字,DAT为数据字 COMMAND:SETB CLK LCALL DELAY_12 CLR IO ;开始 LCALL DELAY CLR CLK LCALL DEL

8、AY MOV A,COM;送命令字 LCALL SHOUT MOV A,ADDR;送地址字 LCALL SHOUT MOV A,DAT;送数据 LCALL SHOUT LCALL DELAY CLR IO LCALL DELAY SETB CLK;附加脉冲 LCALL DELAY SETB IO;停止 RET,怎样向卡中写入一个字节?,; sle4442 串行输入一个字节函数, 即MCU向卡写入一字节 SHOUT: PUSH B MOV B,#08H X42: RRC A MOV IO,C NOP SETB CLK LCALL DELAY CLR CLK LCALL DELAY DJNZ B,

9、X42 POP B RET,操作模式 (Mode),接收了一个命令之后,卡芯片处于 两种可能的模式: (1)读数据:输出数据模式; (2)写入、擦除、校验密码:处理模式。,输出数据(OUTGOING)模式,将IC卡芯片中的数据传送给读写器 在第一个CLK脉冲的下降沿之后,I/O线上的第一位数据变为有效。随后每增加一个时序脉冲,芯片内部的一位数据被送到I/O线上,低位(LSB)在前。当所需要的最后一个数据送出之后,需要再附加一个时钟脉冲来把I/O线置成高阻状态(状态Z)。 循环使用SHIN子程序,每调用一次读入卡输出的一个字节。,处理数据(PROCESSING)模式,对IC卡芯片作内部处理(写/

10、擦除/校验密码) 芯片在第一个时钟脉冲的下降沿,将IO线从高状态(H状态)拉到低状态(L状态)并开始处理。此后芯片在内部连续计时计数,直到第n个时钟脉冲之后的附加一个时钟脉冲的下降沿IO线被再次置高,完成芯片的处理过程。在整个处理过程中IO线被锁定成低状态。,;sle4442处理模式子程序 PROCESS: MOV R7,#254D CLR CLK CLR IO LCALL DELAY PRO1:SETB CLK LCALL DELAY CLR CLK LCALL DELAY DJNZ R7,PRO1 SETB IO LCALL DELAY SETB CLK LCALL DELAY CLR C

11、LK RET,分任务2:PSC校验,PSC校验的过程并不是仅由比较校验数据命令来完成的,而是由多个命令构成的一个流程来共同完成, 流程一:用一个修改加密存储器命令将密码错误计数器中的一位写0。 流程二:连续用三条比较校验数据命令比较输入的用户密码与加密存储器中存储的密码。比较从字节1开始。 流程三:校验密码成功与否是用能否擦除密码错误计数器来证实的。如果校验成功,则擦除操作执行有效;如果校验不成功,擦除操作执行无效,密码错误计数器将不会恢复为“111”。但只要EC不全为0,就允许读写器对芯片进行重试。,读EC,写EC的一位为0,EC=000?,校验三字节的密码,擦除EC,读EC,EC=111?

12、,Y,Y,N,N,校验通过,校验不成功 EC中1的个数= 允许重试的次数,卡被锁死,比较校验数据Compare Varification Data,命令格式:33H +字节地址+ 数据 模式:PROCESSING 功能:把输入的“用户密码”的各个字节与相对应的PSC(存放在加密存储器中)进行比较 说明:字节地址为01H03H,数据为用户密码,读加密存储器 Read Security Memory,命令格式:3lH +* + * 模式:OUTGOING 功能:类似于读保护存储器,可以读出4个字节的加密存储器的内容。M=33 说明:密码比较失败时只能读出错误计数器(字节0)的内容,字节1、2、3的

13、内容将为000000(即不能读出密码),修改加密存储器 Updata Security Memory,命令格式:39H +字节地址+ 数据 模式:PROCESSING 功能:用所给出的数据修改加密存储器指定字节地址的内容(即修改错误计数器或修改密码) 说明:该命令只能在PSC比较成功之后才能进行。该命令的执行时间和所需要的时钟脉冲与修改主存储器的情况相同,;*PSC校验子程序* VERIFY: MOV COM,#31H;设置读加密存储器命令控制字 MOV ADDR,#00H;设置读加密存储器命令地址字(00H为错误计数器) MOV DAT,#00H;设置读加密存储器命令数据字(任意) LCAL

14、L COMMAND;送读加密存储器命令 LCALL SHIN;读错误计数器 MOV 23H,A;错误计数器值暂存(23H)单元 LCALL SHIN;继续读入加密存储器后3个字节 MOV 24H,A LCALL SHIN MOV 25H,A LCALL SHIN MOV 26H,A MOV A,23H SETB IO;附加一个脉冲,置数据线为高 LCALL DELAY SETB CLK LCALL DELAY CLR CLK,JB ACC.0,NEXT0;判断错误计数器中是否还有“1” ;JB ACC.1,NEXT1;如有“1”则减去一个“1”, ;JB ACC.0,NEXT2 LJMP EX

15、IT1;错误计数器为全“0”退出 NEXT0:MOV DAT,#06H AJMP COMP0 NEXT1:MOV DAT,#04H AJMP COMP0 NEXT2:MOV DAT,#00H COMP0:MOV COM,#39H;设置修改加密存储器命令控制字 MOV ADDR,#00H;设置修改加密存储器命令地址字(错误计数器) LCALL COMMAND;送修改加密存储器命令(错误计数器减一个1) LCALL PROCESS;处理模式,MOV COM,#33H;设置PSC校验命令控制字 MOV ADDR,#01H;设置PSC校验命令地址字 MOV DAT,#PSC1;取PSC第一个字节 LC

16、ALL COMMAND;送PSC校验命令给卡 LCALL PROCESS;处理模式 MOV COM,#33H;设置PSC校验命令控制字 MOV ADDR,#02H;设置PSC校验命令地址字 MOV DAT,#PSC2;取PSC第二个字节 LCALL COMMAND;送PSC校验命令给卡 LCALL PROCESS;处理模式 MOV COM,#33H;设置PSC校验命令控制字 MOV ADDR,#03H;设置PSC校验命令地址字 MOV DAT,#PSC3;取PSC第三个字节 LCALL COMMAND;送PSC校验命令给卡 LCALL PROCESS;处理模式,MOV COM,#39H;设置修

17、改加密存储器命令控制字 MOV ADDR,#00H;设置修改加密存储器命令地址字(错误计数器) MOV DAT,#07H;取修改加密存储器命令数据字(擦除错误计数器) LCALL COMMAND ;送修改加密存储器(擦除错误计数器)命令给卡 LCALL PROCESS;处理模式 MOV COM,#31H;设置读加密存储器命令控制字 MOV ADDR,#00H;设置读加密存储器命令地址字(错误计数器) MOV DAT,#00H;设置读加密存储器命令数据字(任意) LCALL COMMAND;送读加密存储器命令给卡 LCALL SHIN;读加密存储器的错误计数器 MOV 23H,A,LCALL S

18、HIN;读加密存储器的后三个字节 MOV 24H,A LCALL SHIN MOV 25H,A LCALL SHIN MOV 26H,A MOV A,23H;EC值送A SETB IO;附加一个脉冲,置数据线为高 LCALL DELAY SETB CLK LCALL DELAY CLR CLK EXIT1:RET,分任务3:修改主存储器 Updata Main Memory,命令格式:38H +字节地址+ 数据 模式:PROCESSING 功能:用所给出的数据修改主存储器指定字节地址(N)的内容 说明:通常,要改变一个数据需要先进行擦除,再进行写入两项操作。如果在被寻址的字节里位中没有一个字位需要从变到,则可以不进行擦除处理。反之亦然,在被寻址的字节中,如果没有一个字位需要从变到,则可以不作写入处理,写人或擦除操作一次至少要耗费.时间 。因此,在处理模式期间,可能发生下列几种情况之一: 擦除和写入(5ms): 相应于M256个时钟脉冲 只写入不擦除(2.5ms): 相应于 M= 124个时钟脉冲 只擦除不写入(2.5ms): 相应于M124个时钟脉冲。,;*修改主存储器子程序* WRITE: MOV R4,NUM;取要写的字节数 MOV COM,#38H;设置修改主存储器控制字 WRITE0: MOV ADDR,#W_ADDR;取修改主存储器首地址 MOV

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论