位置:51电子网 » 技术资料 » 其它综合

用PIC 单片机实现的IC 卡读写器

发布时间:2008/6/5 0:00:00 访问次数:480

关键字:读写器
引言

  本设计的主要目的是介绍ic卡的数据存储技术和ic卡的数据通信,因而使用存储器卡。由于本设计
中既可与ic卡进行串行同步通信,又要与上位机进行中行异步通信,因而需要选择一种同时具有这两种通
信方式的单片机。因为pic16f877不仅具有本设计所需要的两种通信方式,而且还具有运行速度快、低功
耗、价格低等优点,所以选择pic16f877单片机作为本设计的单片机。

  本设计的二极管电路是单片机与ic卡通信数据线的保护电路。当数据线上的电压为负电压时,与地
相连的二极管导通;当数据线上的电压大于+5v时,与+5v相连的二极管导通,从而保证数据线上的电压在
0v~+5v之间,保护单片机和ic卡不受损坏。单片机的15脚和23脚分别与ic卡的输出引脚3和4相连。
由于ic卡的输出电压为cmos电平,而单片机能够正确的识别ic卡的输出信号,需要加上拉电阻。

1spi工作方式

  串行外围设备接口spi(serialperipheralinterface)总线技术是motrola公司推出的一种同步
串行接口。spi总线是一种三线同步总线,因其硬件能力很强,与spi有关的软件就相当简单,使cpu有
更多的时间处理其它事务,因此得到广泛应用。

  spi模式允许8位数据同步发送和接收,支持spi的所有四种方式。spi模式传输数据需要四根信号
线:串行数据输出(sdo)线、串行数据输入(sdi)线、串行时钟(sck)和从选择(ss)。其中,从选择
线只用于从属模式。

1.1spi主模式

  由于控制时钟sck的输出,主模式可以在任何时候开始传输数据。主模式通过软件协议控制从模式的
数据输出。

  在主模式中,一旦sspuf寄存器写入,数据就会发送或接收。在接收数据时,sspsr寄存器按照时钟
速率移位,一旦接收到一个字节,数据就传输到sspbuf,同时中断标志位和状态标志位置位。
时钟的极性可以通过编程改变。在主模式中,时钟sck的频率可以设置为:fosc/4(即tcy)、fosc/1
6(即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.2spi从模式

  在spi从模式,数据的发送和接收领先sck引脚上输入的外时钟脉冲,当最后一位被锁存后,中断标
志位sspif(pir1的d3)位。在休眠模式,从模式仍可发送和接收数据,一旦接收到数据,芯片就从休眠
中唤醒。如果采用ss控制的从模式,当ss引脚接到vdd时,spi模式复位;如果彩cke=1控制的从模式,
必须开放ss引脚控制。

  在本设计中,由于ic卡是存储器卡,不能提供时钟信号,因此不能采用从模式,只能采用主模式,
由单片机控制时钟信号。

单片机的spi方式初始化程序如下:
movlw20h;将20h送到累加器
movwfsspcon;将累加器中的数送到sspcon寄存器
bsfstatus,rp0;将定ram区的第1页
bcfsspstat,smp;将sspstat寄存器的smp位置0
bsfsspstat,cke;将sspstat寄存器的clk位置1
bcftrisc,3;将端口c的第3位设置为输出
bcftrisc,5;将端口c的第5位设置为输出

  其中,上述第1、2行程序是配置控制寄存器,将spi方式配置为主控模式,时钟频率为单片机时钟频
率的1/4,并将时钟的高电平设置为空闲状态。第3行程序为换页指令,将指针转到第1页。因为pic16f
877单片机的数据存储器是分页的,而所要操作的寄存器在第1页,因此要用换页指令将指针到第1页。
第4、5行程序是配置状态寄存器,将spi方式设置为数据输出时钟的中间采样,时钟sck的上升沿触发。
第6、7行程序则是将rc口的rc3和rc5设置为输出。

2usart方式

  通用同步异步接收发送模块(usart)是两个串行通信接口之一,usart又称为sci(serialcommun
icationinterface)。usart可以设置为全双工异步串行通信系统,这种方式可以与个人计算机pc或串
行接口crt等外围设备进行串行通信:也可以设置为半双工异步串行通信系统,与串行接口的a/d或d/a
集成电路、串行eeprom等器件连接。usart是二线制串行通信接

关键字:读写器
引言

  本设计的主要目的是介绍ic卡的数据存储技术和ic卡的数据通信,因而使用存储器卡。由于本设计
中既可与ic卡进行串行同步通信,又要与上位机进行中行异步通信,因而需要选择一种同时具有这两种通
信方式的单片机。因为pic16f877不仅具有本设计所需要的两种通信方式,而且还具有运行速度快、低功
耗、价格低等优点,所以选择pic16f877单片机作为本设计的单片机。

  本设计的二极管电路是单片机与ic卡通信数据线的保护电路。当数据线上的电压为负电压时,与地
相连的二极管导通;当数据线上的电压大于+5v时,与+5v相连的二极管导通,从而保证数据线上的电压在
0v~+5v之间,保护单片机和ic卡不受损坏。单片机的15脚和23脚分别与ic卡的输出引脚3和4相连。
由于ic卡的输出电压为cmos电平,而单片机能够正确的识别ic卡的输出信号,需要加上拉电阻。

1spi工作方式

  串行外围设备接口spi(serialperipheralinterface)总线技术是motrola公司推出的一种同步
串行接口。spi总线是一种三线同步总线,因其硬件能力很强,与spi有关的软件就相当简单,使cpu有
更多的时间处理其它事务,因此得到广泛应用。

  spi模式允许8位数据同步发送和接收,支持spi的所有四种方式。spi模式传输数据需要四根信号
线:串行数据输出(sdo)线、串行数据输入(sdi)线、串行时钟(sck)和从选择(ss)。其中,从选择
线只用于从属模式。

1.1spi主模式

  由于控制时钟sck的输出,主模式可以在任何时候开始传输数据。主模式通过软件协议控制从模式的
数据输出。

  在主模式中,一旦sspuf寄存器写入,数据就会发送或接收。在接收数据时,sspsr寄存器按照时钟
速率移位,一旦接收到一个字节,数据就传输到sspbuf,同时中断标志位和状态标志位置位。
时钟的极性可以通过编程改变。在主模式中,时钟sck的频率可以设置为:fosc/4(即tcy)、fosc/1
6(即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.2spi从模式

  在spi从模式,数据的发送和接收领先sck引脚上输入的外时钟脉冲,当最后一位被锁存后,中断标
志位sspif(pir1的d3)位。在休眠模式,从模式仍可发送和接收数据,一旦接收到数据,芯片就从休眠
中唤醒。如果采用ss控制的从模式,当ss引脚接到vdd时,spi模式复位;如果彩cke=1控制的从模式,
必须开放ss引脚控制。

  在本设计中,由于ic卡是存储器卡,不能提供时钟信号,因此不能采用从模式,只能采用主模式,
由单片机控制时钟信号。

单片机的spi方式初始化程序如下:
movlw20h;将20h送到累加器
movwfsspcon;将累加器中的数送到sspcon寄存器
bsfstatus,rp0;将定ram区的第1页
bcfsspstat,smp;将sspstat寄存器的smp位置0
bsfsspstat,cke;将sspstat寄存器的clk位置1
bcftrisc,3;将端口c的第3位设置为输出
bcftrisc,5;将端口c的第5位设置为输出

  其中,上述第1、2行程序是配置控制寄存器,将spi方式配置为主控模式,时钟频率为单片机时钟频
率的1/4,并将时钟的高电平设置为空闲状态。第3行程序为换页指令,将指针转到第1页。因为pic16f
877单片机的数据存储器是分页的,而所要操作的寄存器在第1页,因此要用换页指令将指针到第1页。
第4、5行程序是配置状态寄存器,将spi方式设置为数据输出时钟的中间采样,时钟sck的上升沿触发。
第6、7行程序则是将rc口的rc3和rc5设置为输出。

2usart方式

  通用同步异步接收发送模块(usart)是两个串行通信接口之一,usart又称为sci(serialcommun
icationinterface)。usart可以设置为全双工异步串行通信系统,这种方式可以与个人计算机pc或串
行接口crt等外围设备进行串行通信:也可以设置为半双工异步串行通信系统,与串行接口的a/d或d/a
集成电路、串行eeprom等器件连接。usart是二线制串行通信接

相关IC型号

热门点击

 

推荐技术资料

罗盘误差及补偿
    造成罗盘误差的主要因素有传感器误差、其他磁材料干扰等。... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!