php实现读写ic卡,diy用PIC单片机实现的IC卡读写器

1.1 SPI主模式

因为节制时钟SCK的输出,主模式可以在任何时辰开始传输数据。主模式通过软件协议节制从模式的数据输出。

在主模式中,一旦SSPUF寄存器写入,数据就会发送或吸取。在吸取数据时,SSPSR寄存器凭证时钟速度移位,一旦吸取到一个字节,数据就传输到SSPBUF,同时刻断符号位和状态符号位置位。

时钟的极性可以通过编程改变。在主模式中,时钟SCK的频率可以配置为:fosc/4(即Tcy)、fosc/16(即4Tcy)、fosc/64(即16Tcy)和按时器2(Timer2)输出的二分频等四种。在芯片时钟为20MHz时,SCK的最大频率为5.0MHz。

在本计划中,行使的就是SPI主模式,由单片机节制时钟SCK的输出。当向IC卡中写数据时,随时可以发送数据;当读IC卡内的数据时,先要发送恣意一个数据(此时IC卡不处于写入状态,不会吸取该数据), 给IC卡提供输出数据的时钟,然后再吸取IC卡发出的数据。那时序如图2所示。(发送和接惦的数据均为6FH)

假如要持续发送数据,那么每次将数据送到SSPBUF寄存器后,都要判定是否已经发送完该数据,即判定PIR1寄存器的SSPIF位是否为1。假如SSPIF位为1,则表白数据已经发送完毕,可以继承发送下一个数据。但此时还不能当即发送下一个数据,由于SSPIF位必需在措施中由软件清零,只有将SSPIF位软件清零后,才气继承发送下一个数据。

1.2 SPI从模式

ac9132d8b364ea513b47835f3ab60b1e.gif

在SPI从模式,数据的发送和吸取领先SCK引脚上输入的外时钟脉冲,当最后一位被锁存后,间断符号位SSPIF(PIR1的D3)位。在休眠模式,从模式仍可发送和吸取数据,一旦吸取到数据,芯片就从休眠中叫醒。假如回收SS节制的从模式,当SS引脚接到VDD时,SPI模式复位;假如 彩CKE=1节制的从模式,必需开放SS引脚节制。

在本计划中,因为IC卡是存储器卡,不能提供时钟信号,因此不能回收从模式,只能回收主模式,由单片机节制时钟信号。

单片机的SPI方法初始化措施如下:

MOVLW20H ;将20H送到累加器

MOVWF SSPCON ;将累加器中的数送到SSPCON寄存器

BSF STATUS,RP0 ;将定RAM区的第1页

BCF SSPSTAT,SMP ;将SSPSTAT寄存器的SMP位置0

BSF SSPSTAT,CKE ;将SSPSTAT寄存器的CLK位置1

BCF TRISC,3 ;将端口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方法

通用同步异步吸取发送模块(USART)是两个串行通讯接口之一,USART又称为SCI(Serial Communication Interface)。USART可以配置为全双工异步串行通讯体系,这种方法可以与小我私人计较机PC或串行接口CRT等外围装备举办串行通讯:也可以配置为半双工异步串行通讯体系,与串行接口的A/D或D/A集成电路、串行EEPROM等器件毗连。USART是二线制串行通讯接口,它可以被界说如下三种事变方法:全双工异步方法、半双工同步主控方法、半双工同步从动方法。

为了把RC6和RC7别离配置成串行通讯接口的发送/时钟(TX/CK)线和吸取/数据(TX/DT)线,必需起首把SPEN位(TCSTAT的RD7)和偏向寄存器TRISC的D7:D6置1。

USART成果模块含有两个8位可读/写的状态/节制寄存器,它们是发送状态/节制寄存器TXSTA和吸取状态/节制寄存器TCSTA。

e78eda3e0555432640e80219a782045a.gif

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寄存器中,直到前一个数据从发送移位寄存器中移出,即前一个数据发送完。

ebe6fe0fef56e087a7808e7a9ba6069b.gif

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不兼容。

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 POWEROOF

BSF STATUS,RP0 BSFSTATUS,RP0

BCF TRISE,0 BCF TRISE,0

BCF RTISE,1 BCF TRISE,1

BCF STATUS,RP0 BCF STATUS,RP0

BCF PORTE,0 BSF PORTE,0

BCF PORTE,1 BSF PORTE,1

CALL DLYTIM CALL DLYTIM

RETURN RETURN

在本计划中,单片机与IC卡通讯的主措施流程图如图4所示。

5 与PC机的通讯

在本计划中,有PIC单片机与PC机串行通讯的成果。因为本计划所用的单片机PIC16F877有USART方法,该方法可将C口的RC5和RC7配置成异步串行通讯模式,因而在本计划中,与PC机的通讯模块电路就较量简朴。将单片机C口的RC6和RC7配置为异步串行通讯模式,颠末MAX232A芯片举办电平转换后,将TTL电平转换为RS232电平,再与DB9接口相连,即可实现通讯。在PC机端,可以用VC等编程器材按照通讯协议编写软件来节制对IC卡的读写操纵。

6 结论

颠末调试,本计划可以或许在离开在线仿真器的环境下,上电后独立的运行措施,并能在PC机软件的节制下,实现对IC卡中恣意位置的读写,个中读写的起始地点、读写数据的个数以及数据内容可以在PC机端输入或选择。

本计划已在现实应用中测试过,具有适用代价。因为本计划中所行使的PIC单片机的措施存储器较大(8KB),因而可以编写较大的措施,实现多合一该卡器并由PC机节制读写哪种芯片的IC卡。其它,因为本计划所行使单片机的措施存储器是Flash存储器,因而可以利便地实现措施的下载和进级。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值