微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > 基于89C51的IC卡读写器设计与实现

基于89C51的IC卡读写器设计与实现

时间:07-23 来源:互联网 点击:

4、89C51软件模块设计
  
  
由于89C51是主控芯片,因此89C51需要完成对IC芯片的复位、读写等操作。首先对于复位响应操作,由于复位响应是根据ISO7816标准来进行的。在操作期间的任何时候都可以复位,只有经过了复位才能对IC卡进行其他操作。开始时地址计数器随一个时钟脉冲而被设置成0。当RST线从H状态置到L状态时,第一个数据位的内容被送到I/O线上。若连续输入32个时钟脉冲,主存储器中的前4个字节地址单元中的内容被读出。在第33个时钟脉冲的下降沿,I/O线被置成H状态而关闭。 在复位响应期间,“启动”和“停止”状态被忽略。单片机上的程序设计如下:
  
CARD_RST:   
CLR RST  
CLR CLK  
LCALL DELAY_20US  
SETB RST  
LCALL DELAY_20US  
SET CLK  
LCALL DELAY_20US  
CLR CLK  
LCALL DELAY_20US  
CLR RST  
LCALL DELAY_20US  
MOV B,#32  
RESET1:  
SETB CLK  
LCALL DELAY_20US  
CLR CLK  
LCALL DELAY_20US  
DJNZ B,RESET1  
RET  

在命令模式下,复位响应之后,芯片等待着命令。每条命令都以一个“启动状态”开始。整个命令包括三个字节。随后紧跟着一个附加脉冲并用一个“停止状态”来结束操作。当CLK为H状态期间,I/O线的下降沿为启动状态;当CLK为H状态期间,I/O线的上升沿为停止状态;限于篇幅,此处不再列出整个读写操作的程序代码。需要注意的是:脉冲的下降沿之后,I/O线上的第一位数据变为有效。随后每增加一个时钟脉冲,芯片内部的一位数据被送到I/O线上。其输出的顺序是从侮个字节的最低位开始。当所需要的最后一个数据送出以后,需要再附加一个时钟脉冲来把I/O线置成H状态,以便准备接受新的命令。在输出数据期间,任何“启动状态”和“停止状态”均被屏蔽掉。  
  
5、结束语
  
  
本文的创新点是提出了一种新型的IC卡读写器设计方案,在串口通讯的设计中,除了要对单片机的异步通讯口进行操作,还要对PC 机的串口进行底层实时控制,并通过调用系统的API 函数的方法成功的解决了这一问题。由于西门子公司的SLE4442型逻辑加密IC卡是一种比较通用的IC卡芯片,因此通过更新读写器软件也可以操作其他类型的接触式同步IC一卡,使得这种接触式IC卡读写器成为一种通用的读写器。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top