版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、辩述用PIC单片机实现的IC卡读写器 摘要:详细介绍PIC单片机使用SPI方式与IC卡进行数据传输的原理和电路设计,以及使用USART方式与PC机进行串行异步通信的工作原理;介绍PIC单片机听SPI方式和USART方式的设置方法。关键词:PIC单片机 IC卡读写器 SPI方式 USART方式引言本设计的主要目的是介绍IC卡的数据存储技术和IC卡的数据通信,因而使用存储器卡。由于本设计中既可与IC卡进行串行同步通信,又要与上位机进行中行异步通信,因而需要选
2、择一种同时具有这两种通信方式的单片机。因为PIC16F877不仅具有本设计所需要的两种通信方式,而且还具有运行速度快、低功耗、价格低等优点,所以选择PIC16F877单片机作为本设计的单片机。图1是本设计的电路图,图中电源变换电路和发光二极管等指示电路没有画出。图中的二极管电路是单片机与IC卡通信数据线的保护电路。当数据线上的电压为负电压时,与地相连的二极管导通;当数据线上的电压大于+5V时,与+5V相连的二极管导通,从而保证数据线上的电压在0V+5V之间,保护单片机和IC卡不受损坏。图中单片机的15脚和23脚分别与IC卡的输出引脚3和4相连。由于IC卡的输出电压为CMOS电平,而单片机能够正
3、确的识别IC卡的输出信号,需要加上拉电阻。1 SPI工作方式串行外围设备接口SPI(Serial Peripheral Interface)总线技术是Motrola公司推出的一种同步串行接口。SPI总线是一种三线同步总线,因其硬件能力很强,与SPI有关的软件就相当简单,使CPU有更多的时间处理其它事务,因此得到广泛应用。SPI模式允许8位数据同步发送和接收,支持SPI的所有四种方式。SPI模式传输数据需要四根信号线:串行数据输出(SDO)线、串行数据输入(SDI)线、串行时钟(SCK)和从选择(SS)。其中,从选择线只用于从属模式。1.1 SPI主模式由于控制时钟SCK的输出,主模式可以在任何
4、时候开始传输数据。主模式通过软件协议控制从模式的数据输出。在主模式中,一旦SSPUF寄存器写入,数据就会发送或接收。在接收数据时,SSPSR寄存器按照时钟速率移位,一旦接收到一个字节,数据就传输到SSPBUF,同时中断标志位和状态标志位置位。时钟的极性可以通过编程改变。在主模式中,时钟SCK的频率可以设置为:fosc/4(即Tcy)、fosc/16(即4Tcy)、fosc/64(即16Tcy)和定时器2(Timer2)输出的二分频等四种。在芯片时钟为20MHz时,SCK的最大频率为5.0MHz。在本设计中,使用的就是SPI主模式,由单片机控制时钟SCK的输出。当向IC卡中写数据时,随时可以发送
5、数据;当读IC卡内的数据时,先要发送任意一个数据(此时IC卡不处于写入状态,不会接收该数据), 给IC卡提供输出数据的时钟,然后再接收IC卡发出的数据。其时序如图2所示。(发送和接惦的数据均为6FH)如果要连续发送数据,那么每次将数据送到SSPBUF寄存器后,都要判断是否已经发送完该数据,即判断PIR1寄存器的SSPIF位是否为1。如果SSPIF位为1,则表明数据已经发送完毕,可以继续发送下一个数据。但此时还不能立即发送下一个数据,因为SSPIF位必须在程序中由软件清零,只有将SSPIF位软件清零后,才能继续发送下一个数据。1.2 SPI从模式1 2 3 4
6、60;5 下一页 在SPI从模式,数据的发送和接收领先SCK引脚上输入的外时钟脉冲,当最后一位被锁存后,中断标志位SSPIF(PIR1的D3)位。在休眠模式,从模式仍可发送和接收数据,一旦接收到数据,芯片就从休眠中唤醒。如果采用SS控制的从模式,当SS引脚接到VDD时,SPI模式复位;如果 彩CKE=1控制的从模式,必须开放SS引脚控制。在本设计中,由于IC卡是存储器卡,不能提供时钟信号,因此不能采用从模式,只能采用主模式,由单片机控制时钟信号。单片机的SPI方式初始化程序如下:MOVLW
7、20H ;将20H送到累加器MOVWF SSPCON ;将累加器中的数送到SSPCON寄存器BSF STATUS,RP0 ;将定RAM区的第1页BCF SSPSTAT,SMP ;将SSPSTAT寄存器的SMP位置0BSF SSPSTAT,CKE ;将SSPSTAT寄存器的CLK位置1BCF TRISC,3 ;将端口C的第3位设置为输出BCF TRISC,5 ;将端口C的第5位设置为输出其中,上述第1、2行程序是配置控制寄存器,将SPI方式配置为主控模式,时钟频率为单片机时钟频率的1/4,并将时钟的高电平设置为空闲状态。第3行程序为换页指令,将指针转到第1页。因为PIC16F877单片机的数据存
8、储器是分页的,而所要操作的寄存器在第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等器件
9、连接。USART是二线制串行通信接口,它可以被定义如下三种工作方式:全双工异步方式、半双工同步主控方式、半双工同步从动方式。为了把RC6和RC7分别设置成串行通信接口的发送/时钟(TX/CK)线和接收/数据(TX/DT)线,必须首先把SPEN位(TCSTAT的RD7)和方向寄存器TRISC的D7:D6置1。USART功能模块含有两个8位可读/写的状态/控制寄存器,它们是发送状态/控制寄存器TXSTA和接收状态/控制寄存器TCSTA。上一页 1 2 3 4 5 下一页
10、0; USART带有一个8位波特率发生器BRG(Baud Rato Generator),这个BRG支持USART的同步和异步工作方式。用SPBRG寄存器控制一个独立的8位定时器的周期。在异步方式下,发送状态/控制寄存器TXSTA的BRGH位(即D2)也被用来控制波特率(在同步方式下忽略BRGH位)。向波特率寄存器SPBRG写入一个新的初值时,都会使BRG定时器复位清零,由此可以保证BRG不需要等到定时器溢出后就可以输出新的波特率。对USART方式进行初始化的程序如下:BSF STATUS,RP0 ;将指针指向数据存储器的第1页MOVLW 0x19MOVWF
11、SPBRG ;设置波特率为9600BCF 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 ;允许接收初始化完成后,即可发送或接收数据。在发送或接收数据时,通过查询发送/接收中断标
12、志位即可判断是否发送完一个数据/接收到一个数据。发送/接收中断标地不需要也不有用软件复位。在异步串行发送的过程中,只要TXREG寄存器为空,中断标志TXIF就置位。因此,TXIF为1并不是发送完毕的标志,但仍可以用TXIF标志来判断。因此当TXREG为空时,将数据送入后,数据会保留在TXREG寄存器中,直到前一个数据从发送移位寄存器中移出,即前一个数据发送完。3 IC卡IC卡是集成电路卡(Integrated Circuit Card)的简称,有些国家和地址称其为智能卡(Smart Card)、芯片卡(Chip Card)。国际标准化组织(ISO)在ISO7816标准中规定,IC卡是指在由聚氯
13、乙烯(PVC)或聚氯乙烯酸脂(PVCA)材料制成的塑料卡内嵌入式处理器和存储器等IC芯片的数据卡。近年来,由于导半体技术的进步,集成化程度和存储器容量有了很大提高,并使CPU和存储器集成在一个芯片上,从而提高了数据的安全性。在本设计中,IC卡采用的是AT45DB041B-SC芯片,该芯片的特点如一下:*单一的2.7V3.6V电源;*串行接口结构;*页面编程操作,单一的循环重复编程(擦除和编程,2048页(每页264字节)主存;*两个264字节的SRAM数据缓存,允许在重编程非易失性存储器时接收数据;*内置的编程和控制定时器;*低功耗,4上一页 1 2
14、3 4 5 下一页 mA有源读取电流,2A 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单片机需要的电
15、源为+5V,而且稳压源提供的电压也是+5V,因此,要设计一个稳压模块,给IC卡提供+3V左右的电压。设计电路如图3所示。该电路的主要元件为LM317芯片,它是三端可调集成稳压器,输出电压为1.2537V范围内可调。当其Vin端的输入电压在240V范围内变化时,电路均能正常工作,输出端Vout和调整端ADJ间的电压等于基准电压1.25V。该芯片内的基电路的工作电流IREF很小,约为50A,由一个恒流性很好的恒流源提供,所以它的大小不受供电电压的影响,非常稳定。在图3中,B点为电压输出端,为IC卡提供电压。A点为控制端,与单片机的一个端口引脚相连,当该引脚为低电平时,三极管Q1不工作,B点输出电压
16、约为3.15V;当该引脚为高电平时,三极管Q1工作,B点输出电压约为1.25V。在程序中查询IC卡插座中是否有IC卡,当有IC卡时,将A点所连的单片机引脚设置为低电平,从而为IC卡提供电源;当没有IC卡或对IC卡的操作结束时,将A点连的单片机引脚设置为高电平,从而不给IC卡提供电源。IC卡的上电和下电程序如下。IC卡上电子程序 IC卡下电子程序POWERON POWEROOFBSF STATUS,RP0 BSFSTATUS,RP0BCF TRISE,0 BCF TRISE,0BCFRTISE,1 BCF TRISE,1BCF STATUS,RP0 BCF STATUS,RP0BCF PORTE
17、,0 BSF PORTE,0BCF PORTE,1 BSF PORTE,1CALL DLYTIM CALL DLYTIMRETURN RETURN在本设计中,单片机与IC卡通信的主程序流程图如图4所示。5 与PC机的通信在本设计中,有PIC单片机与PC机串行通信的功能。由于本设计所用的单片机PIC16F877有USART方式,该方式可将C口的RC5和RC7设置成异步串行通信模式,因而在本设计中,与PC机的通信模块电路就比较简单。将单片机C口的RC6和RC7设置为异步串行通信模式,经过MAX232A芯片进行电平转换后,将TTL电平转换为RS232电平,再与DB9接口相连,即可实现通信。在PC机端,可以用VC等编程工具根据通信协议编写软件来控制对IC卡的读写操作。6 结论经过调试上一页 1 2 3 4 5 下一页 ,本设计能够在脱离在线仿真器的情况下,上电后独立的运行程序,并能在P
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 科目四C2考试记忆口诀-驾考实操
- 2023年中级注册安全工程师之安全实务化工安全通关题库(附带答案)
- 2024年版广告学教程:解析广告市场的未来趋势
- 2024年巴西世界杯赛事预测分析报告
- 2024年《神州谣》教学课件:让传统文化焕发新生
- 2024年财务管理智慧升级:税收筹划实战培训
- 浙教版高中信息技术必修模块《信息技术基础》课程教学设计:4·2数据库系统(一)《西游记》改编系列之二
- 2024年互动式课件:《逃家小兔》探究之旅
- 2024年DRGs对医疗费用结构的影响分析
- 《水调歌头》说课稿
- 山西省太原市2024-2025学年高三上学期期中物理试卷(含答案)
- (统编2024版)道德与法治七上10.1爱护身体 课件
- GB/T 30391-2024花椒
- 供电线路维护合同
- 胸部术后护理科普
- 鞋子工厂供货合同模板
- 2024码头租赁合同范本
- 木材采运智能决策支持系统
- 【产业图谱】2024年青岛市重点产业规划布局全景图谱(附各地区重点产业、产业体系布局、未来产业发展规划等)
- 上海市市辖区(2024年-2025年小学四年级语文)部编版期末考试(下学期)试卷及答案
- 认识梯形(课件)四年级上册人教版
评论
0/150
提交评论