用PIC16F877单片机实现的IC卡读写器
行通信系统,与串行接口的A/D或D/A集成电路、串行EEPROM等器件连接。USART是二线制串行通信接口,它可以被定义如下三种工作方式:全双工异步方式、半双工同步主控方式、半双工同步从动方式。
为了把RC6和RC7分别设置成串行通信接口的发送/时钟(TX/CK)线和接收/数据(TX/DT)线,必须首先把SPEN位(TCSTAT的RD7)和方向寄存器TRISC的D7:D6置1。
USART功能模块含有两个8位可读/写的状态/控制寄存器,它们是发送状态/控制寄存器TXSTA和接收状态/控制寄存器TCSTA。
USART带有一个8位波特率发生器BRG(Baud Rato Generator),这个BRG支持USART的同步和异步工作方式。用SPBRG寄存器控制一个独立的8位定时器的周期。在异步方式下,发送状态/控制寄存器TXSTA的BRGH位(即D2)也被用来控制波特率(在同步方式下忽略BRGH位)。
向波特率寄存器SPBRG写入一个新的初值时,都会使BRG定时器复位清零,由此可以保证BRG不需要等到定时器溢出后就可以输出新的波特率。
对USART方式进行初始化的程序如下:
BSF STATUS,RP0 ;将指针指向数据存储器的第1页
MOVLW 0x19
MOVWF SPBRG ;设置波特率为9600
BCF STATUS,RP0 ;将指针指向数据存储器的第0页
CLRF RCSTA ;将接收控制和状态寄存器清零
BSF RCSTA,SPEN ;串口允许
CLRF PIR1 ;清除中断标志
BSF STATUS,RP0 ;将指针指向数据存储器的第1页
CLRF TXSTA ;将发送控制和状态寄存器清零
BSF TXSTA,BRGH ;设置为异步、高速波特率
BSF TXSTA,TXEN ;允许发送
BCF STATUS,RP0 ;将指针指向数据存储器的第0页
BSF RCSTA,CREN ;允许接收
初始化完成后,即可发送或接收数据。在发送或接收数据时,通过查询发送/接收中断标志位即可判断是否发送完一个数据/接收到一个数据。发送/接收中断标地不需要也不有用软件复位。
在异步串行发送的过程中,只要TXREG寄存器为空,中断标志TXIF就置位。因此,TXIF为1并不是发送完毕的标志,但仍可以用TXIF标志来判断。因此当TXREG为空时,将数据送入后,数据会保留在TXREG寄存器中,直到前一个数据从发送移位寄存器中移出,即前一个数据发送完。
3 IC卡
IC卡是集成电路卡(Integrated Circuit Card)的简称,有些国家和地址称其为智能卡(Smart Card)、芯片卡(Chip Card)。国际标准化组织(ISO)在ISO7816标准中规定,IC卡是指在由聚氯乙烯(PVC)或聚氯乙烯酸脂(PVCA)材料制成的塑料卡内嵌入式处理器和存储器等IC芯片的数据卡。近年来,由于导半体技术的进步,集成化程度和存储器容量有了很大提高,并使CPU和存储器集成在一个芯片上,从而提高了数据的安全性。
在本设计中,IC卡采用的是AT45DB041B-SC芯片,该芯片的特点如一下:
*单一的2.7V~3.6V电源;
*串行接口结构;
*页面编程操作,单一的循环重复编程(擦除和编程,2048页(每页264字节)主存;
*两个264字节的SRAM数据缓存,允许在重编程非易失性存储器时接收数据;
*内置的编程和控制定时器;
*低功耗,4mA有源读取电流,2μA CMOS备用电流;
*15MHz的最大时钟频率;
*串行外围接口方式(SPI)——模式0和3;
*CMOS的TTL兼容的输入和输出;
*5.0V可承受的输入,SI、SCK、CS(低电平有效)、RESET(低电平有效)。
在本设计的调试过程中,曾测试过IC卡的输入输出电平,结果证明这种IC卡的输入电平与TTL兼容,而输出电平与TTL不兼容。[next]
4 IC卡的电源提供电路
在本设计中,由于IC卡的电源电压范围为+2.7~+3.6V,而PIC单片机需要的电源为+5V,而且稳压源提供的电压也是+5V,因此,要设计一个稳压模块,给IC卡提供+3V左右的电压。设计电路如图3所示。
该电路的主要元件为LM317芯片,它是三端可调集成稳压器,输出电压为1.25~37V范围内可调。当其Vin端的输入电压在2~40V范围内变化时,电路均能正常工作,输出端Vout和调整端ADJ间的电压等于基准电压1.25V。该芯片内的基电路的工作电流IREF很小,约为50μA,由一个恒流性很好的恒流源提供,所以它的大小不受供电电压的影响,非常稳定。在图3中,B点为电压输出端,为IC卡提供电压。A点为控制端,与单片机的一个端口引脚相连,当该引脚为低电平时,三极管Q1不工作,B点输出电压约为3.15V;当该引脚为高电平时,三极管Q1工作,B点输出电压约为1.25V。在程序中查询IC卡插座中是否有IC卡,当有IC卡时,将A点所连的单片机引脚设置为低电平,从而为IC卡提供电源;当没有IC卡或对IC卡的操作结束时,将A点连的单片机引脚设置为高电平,从而不给IC卡提供电源。
IC卡的上电和下电程序如下。
IC卡上电子程序 IC卡下电子程序
POWERON P
PIC单片机 IC卡读写器 SPI方式 USART方式 相关文章:
- 基于PIC单片机的智能型漏电断路器设计(11-25)
- 基于PIC单片机的无线实时监控防盗系统的设计与实现(11-18)
- PIC单片机键盘矩阵扫描C语言程序(12-02)
- PIC单片机控制第一个发光管闪动程序(12-02)
- PIC单片机驱动LCD12864液晶显示闪动字体程序(12-02)
- PIC单片机控制8位流水灯C语言程序(12-02)