ic卡读写器设计与应用_第1页
ic卡读写器设计与应用_第2页
ic卡读写器设计与应用_第3页
ic卡读写器设计与应用_第4页
ic卡读写器设计与应用_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

1、基于PIC单片机的IC卡读写器设计与应用本设计的主要目的是介绍IC卡的数据存储技术和IC卡的数据通信,因此使用存储器卡。由于本设计中既可与IC卡进展串行同步通信,又要与上位机进展中行异步通信,因此需要选 择一种同时具有这两种通信方式的单片机。因为 PIC16F877不仅具有本设计所需要的两种通信方式,而且还具有运行速度快、低功耗、价格低等优点,所以选择PIC16F877单片机作为本设计的单片机。图1是本设计的电路图,图中电源变换电路和发光二极管等指示电路没有画出。图中 的二极管电路是单片机与 IC卡通信数据线的保护电路。当数据线上的电压为负电压时,与 地相连的二极管导通;当数据线上的电压大于5

2、V时,与5V相连的二极管导通, 从而保证数据线上的电压在 0V5V之间,保护单片机和IC卡不受损坏。图中单片机的15脚和23 脚分别与IC卡的输出引脚3和4相连。由于IC卡的输出电压为 CMOS电平,而单片机可 以正确的识别IC卡的输出信号,需要加上拉电阻。1 SPI 工作方式串行外围设备接口 SPI Serial Peripheral Interface 总线技术是Motrola 公司 推出的一种同步串行接口。 SPI 总线是一种三线同步总线, 因其硬件才能很强, 与 SPI 有关的软件就相当简单,使CPU 有更多的时间处理其它事务,因此得到广泛应用。SPI 形式允许 8 位数据同步发送和接

3、收, 支持 SPI 的所有四种方式。 SPI 形式传输数据需要四根信号线:串行数据输出 SDO 线、串行数据输入 SDI 线、串行时钟 SCK 和从选择 SS 。其中,从选择线只用于附属形式。SPI 主形式由于控制时钟 SCK 的输出,主形式可以在任何时候开始传输数据。主形式通过软件协 议控制从形式的数据输出。在主形式中, 一旦 SSPUF 存放器写入, 数据就会发送或接收。 在接收数据时, SSPSR存放器按照时钟速率移位,一旦接收到一个字节,数据就传输到 SSPBUF ,同时中断标志 位和状态标志位置位。时钟的极性可以通过编程改变。在主形式中,时钟 SCK 的频率可以设置为: fosc/4

4、( 即Tcy) 、 fosc/16( 即 4Tcy) 、 fosc/64( 即 16Tcy) 和定时器 2 Timer2 输出的二分频等四种。在芯片时钟为20MHz 时, SCK 的最大频率为 5.0MHz 。在本设计中,使用的就是SPI 主形式,由单片机控制时钟 SCK 的输出。当向 IC 卡中写数据时, 随时可以发送数据; 当读 IC 卡内的数据时,先要发送任意一个数据此时IC 卡不处于写入状态,不会接收该数据, 给 IC 卡提供输出数据的时钟,然后再接收IC 卡发出的数据。其时序如图 2 所示。发送和接惦的数据均为 6FH $dkTjrLrLrL_rL_rm_rL_rLSDO|8【1 L

5、II图2假设要连续发送数据,那么每次将数据送到SSPBUF存放器后,都要判断是否已经发送完该数据,即判断 PIR1存放器的SSPIF位是否为1。假设SSPIF位为1,那么说明数 据已经发送完毕,可以继续发送下一个数据。但此时还不能立即发送下一个数据,因为SSPIF位必须在程序中由软件清零,只有将SSPIF位软件清零后,才能继续发送下一个数据。SPI从形式在SPI从形式,数据的发送和接收领先SCK引脚上输入的外时钟脉冲,当最后一位被锁存后,中断标志位 SSPIFPIR1的D3位。在休眠形式,从形式仍可发送和接收数据, 一旦接收到数据,芯片就从休眠中唤醒。 假设采用SS控制的从形式,当SS引脚接到

6、VDD 时,SPI形式复位;假设 彩CKE=1控制的从形式,必须开放 SS引脚控制。在本设计中,由于IC卡是存储器卡,不能提供时钟信号,因此不能采用从形式,只能 采用主形式,由单片机控制时钟信号。单片机的SPI方式初始化程序如下:MOVLW20H;将20H送到累加器MOVWF SSPCON ;将累加器中的数送到 SSPCON存放器BSF STATUS , RP0 ;将定 RAM 区的第 1 页BCF SSPSTAT , SMP ;将 SSPSTAT 存放器的 SMP 位置 0BSF SSPSTAT , CKE ;将 SSPSTAT 存放器的 CLK 位置 1BCF TRISC , 3 ;将端口

7、 C 的第 3 位设置为输出BCF TRISC , 5 ;将端口 C 的第 5 位设置为输出其中,上述第1 、 2 行程序是配置控制存放器,将SPI 方式配置为主控形式,时钟频率为单片机时钟频率的 1/4 ,并将时钟的高电平设置为空闲状态。第 3 行程序为换页指令,将指针转到第1 页。因为 PIC16F877 单片机的数据存储器是分页的,而所要操作的存放器在第 1 页,因此要用换页指令将指针到第 1 页。第 4、 5行程序是配置状态存放器,将SPI方式设置为数据输出时钟的中间采样,时钟 SCK 的上升沿触发。第6 、 7 行程序那么是将RC 口的 RC3 和 RC5 设置为输出。2 USART

8、 方式通用同步异步接收发送模块 USART 是两个串行通信接口之一, USART 又称为 SCI Serial Communication Interface 。 USART 可以设置为全双工异步串行通信系统,这种方式可以与个人计算机PC 或串行接口 CRT 等外围设备进展串行通信:也可以设置为半双工异步串行通信系统,与串行接口的 A/D 或 D/A 集成电路、串行EEPROM 等器件连接。USART 是二线制串行通信接口,它可以被定义如下三种工作方式:全双工异步方式、半双工同步主控方式、半双工同步从动方式。为了把 RC6 和 RC7 分别设置成串行通信接口的发送/时钟TX/CK 线和接收/数

9、据 TX/DT 线,必须首先把SPEN 位 TCSTAT 的 RD7 和方向存放器 TRISC 的 D7 : D6置1。USART 功能模块含有两个8 位可读/写的状态/控制存放器,它们是发送状态/控制存放器 TXSTA 和接收状态/控制存放器TCSTA 。USART 带有一个 8 位波特率发生器BRG Bau d Rato Generator ,这个 BRG 支持USART 的同步和异步工作方式。用 SPBRG 存放器控制一个独立的 8 位定时器的周期。在异步方式下,发送状态/控制存放器TXSTA 的 BRGH 位即 D2 也被用来控制波特率在同步方式下忽略BRGH 位。向波特率存放器 SP

10、BRG 写入一个新的初值时,都会使BRG 定时器复位清零,由此可BRG 不需要等到定时器溢出后就可以输出新的波特率。对 USART 方式进展初始化的程序如下:BSF STATUS , RP0 ;将指针指向数据存储器的第1 页MOVLW 0 x19MOVWF SPBRG ;设置波特率为 9600BCF STATUS , RP0 ;将指针指向数据存储器的第0 页CLRF RCSTA ;将接收控制和状态存放器清零BSF RCSTA , SPEN ;串口允许CLRF PIR1 ;去除中断标志BSF STATUS , RP0 ;将指针指向数据存储器的第1 页CLRF TXSTA ;将发送控制和状态存放器

11、清零BSF TXSTA , BRGH ;设置为异步、高速波特率BSF TXSTA , TXEN ;允许发送BCF STATUS , RP0 ;将指针指向数据存储器的第0 页BSF RCSTA , CREN ;允许接收初始化完成后,即可发送或接收数据。在发送或接收数据时,通过查询发送 / 接收中断标志位即可判断是否发送完一个数据/接收到一个数据。发送/ 接收中断标地不需要也不有用软件复位。在异步串行发送的过程中,只要TXREG 存放器为空,中断标志TXIF 就置位。因此,TXIF 为 1 并不是发送完毕的标志,但仍可以用 TXIF 标志来判断。因此当 TXREG 为空时,将数据送入后, 数据会保

12、存在 TXREG 存放器中, 直到前一个数据从发送移位存放器中移出,即前一个数据发送完。3 IC 卡IC 卡是集成电路卡 Integrated Circuit Card 的简称,有些国家和地址称其为智能卡Smart Card 、芯片卡 Chip Card 。国际标准化组织 ISO 在 ISO7816 标准中规定,IC 卡是指在由聚氯乙烯PVC 或聚氯乙烯酸脂PVCA 材料制成的塑料卡内嵌入式处理器和存储器等IC 芯片的数据卡。近年来,由于导半体技术的进步,集成化程度和存储器容量有了很大进步,并使CPU 和存储器集成在一个芯片上,从而进步了数据的平安性。在本设计中, IC 卡采用的是AT45DB

13、041B-SC 芯片,该芯片的特点如一下:? 单一的2.7V3.6V电源;? 串行接口构造;? 页面编程操作,单一的循环重复编程擦除和编程, 2048 页每页 264 字节主 存;? 两个 264 字节的 SRAM 数据缓存,允许在重编程非易失性存储器时接收数据;? 内置的编程和控制定时器;? 低功耗,4mA有源读取电流,211A CMOS备用电流;? 15MHz 的最大时钟频率;? 串行外围接口方式 SPI 形式 0 和 3 ;? CMOS 的 TTL 兼容的输入和输出;?5.0V 可承受的输入, SI 、 SCK、 CS 低电平有效、 RESET 低电平有效。在本设计的调试过程中, 曾测试

14、过 IC 卡的输入输出电平, 结果证明这种 IC 卡的输入电平与 TTL 兼容,而输出电平与TTL 不兼容。4 IC 卡的电源提供电路在本设计中,由于IC卡的电源电压范围为2.73.6V,而PIC单片机需要的电源为5V ,而且稳压源提供的电压也是5V ,因此,要设计一个稳压模块,给IC 卡提供 3V 左右的电压。设计电路如图 3 所示。+5VQ-十OJ M F =r=卜 GNDA心ZZI3.9k。VmADJ200 04-9013该电路的主要元件为 LM317芯片,它是三端可调集成稳压器,输出电压为1.2537V范围内可调。当其 Vin端的输入电压在240V范围内变化时,电路均能正常工作,输出端

15、 Vout和调整端ADJ间的电压等于基准电压 1.25V。该芯片内的基电路的工作电流IREF很小,约为50pA,由一个恒流性很好的恒流源提供,所以它的大小不受供电电压的影响,非 常稳定。在图3中,B点为电压输出端,为IC卡提供电压。A点为控制端,与单片机的一 个端口引脚相连,当该引脚为低电平时,三极管 Q1不工彳B点输出电压约为3.15V;当 该引脚为高电平时,三极管Q1工作,B点输出电压约为1.25V。在程序中查询IC卡插座中是否有IC卡,当有IC卡时,将A点所连的单片机引脚设置为低电平,从而为 IC卡提供 电源;当没有IC卡或对IC卡的操作完毕时,将 A点连的单片机引脚设置为高电平,从而

16、不名IC卡提供电源。IC卡的上电和下电程序如下。IC卡上电子程序IC卡下电子程序POWERO N POWEROOFBSF STATUSRP0 BSFSTATUSRP0BCF TRISE , 0 BCF TRISE , 0BCF RTISE , 1 BCF TRISE , 1RP0BCF STATUS , RP0 BCF STATUSBCF PORTE , 0 BSF PORTE , 0BCF PORTE , 1 BSF PORTE , 1CALL DLYTIM CALL DLYTIMRETURN RETURN在本设计中,单片机与 IC 卡通信的主程序流程图如图 4 所示。(开始)单片机初始化1C卡上刖延时子程序6忆卜卜电5与PC机的通信在本设计中,有PIC单片机与PC机串行通信的功能。由于本设计所用的单片机 PIC16F877 有USART方式,该方式可将 C 口的RC5和RC7设置成异步串行通信形式, 因此在本设计中,与 PC机的通信模块电路就比较简单。将单片机C 口的RC6和RC7设置为异步串行通彳t形式,经过MAX232A芯片进展电平转换后,将 TTL电平转换为RS232电平,再与DB9接口相连,即可实现通信。在 PC机端,可以用 VC等编程工具根据通信 协议编写

温馨提示

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

评论

0/150

提交评论