公交非接触IC卡读写器Word文档格式.docx
- 文档编号:21724744
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:39
- 大小:658.58KB
公交非接触IC卡读写器Word文档格式.docx
《公交非接触IC卡读写器Word文档格式.docx》由会员分享,可在线阅读,更多相关《公交非接触IC卡读写器Word文档格式.docx(39页珍藏版)》请在冰豆网上搜索。
三、系统硬件电路设计6
(一)单片机及其外围电路设计6
(二)键盘电路的设计7
(三)显示电路的设计8
(四)存储器电路的设计11
(五)串行通信接口电路的设计13
四、系统软件程序设计15
(一)单片机内部数据处理程序15
(二)键盘处理程序15
(三)LCD液晶显示程序16
(四)串口通信程序17
(五)存储器程序18
五、设计总结19
六、致谢20
附录21
附录一电路图21
附录二源程序代码23
参考文献31
一、引言
(一)本设计的背景
当前,单片机被广泛地应用于人们生活的各个领域。
单片机实际就是一台微型计算机,虽然功能没有普通的计算机那么强大,可是它的体积很小,在很多场合下普通计算机不能完成的工作,单片机却能出色的完成。
单片机是一种集成电路芯片,采用超大规模技术把具有数字处理能力(如算术运算,逻辑运算,数据传送,中断处理)的微处理器(CPU),随机存取数据存储器(RAM),只读程序存储器(ROM),输入输出电路(I/O口),可能还包括定时计数器,串行通信口(SCI),显示驱动电路(LCD或LED驱动电路),脉宽调制电路(PWM),模拟多路转换器及A/D转换器等电路集成到一块单块芯片上,构成一个最小然而完善的计算机系统。
由此来看,单片机有着微处理器所不具备的功能,它可单独地完成现代工业控制所要求的智能化控制功能,这是单片机最大的特征。
单片机在外观上与常见的集成电路块一样,体积很小,多为黑色长条状,条状两侧各有一排金属引脚,可与外电路连接。
只需在电路中添加少许元器件,通过编写程序就可以实现多种功能的单片机自动控制。
比如说,单片机接上键盘可以进行信号输入;
接上显示器可以实现数据显示;
接上喇叭可以实现声音输出等等。
由于单片机体积小巧、功能强大、应用灵活、价格便宜,所以应用十分广泛。
IC卡是集成电路卡IntegratedCircuitCard的简称将一个集成电路芯片镶嵌在由聚氯乙烯(PVC)或聚氯乙烯酸酯(PVCA)材料制成的塑料卡片内封装成卡片形状其外形和尺寸遵循ISO7816系列标准,集成电路芯片一般分为存储卡芯片和微处理卡芯片。
目前经常接触到的IC卡有两种:
接触式的和非接触式的IC卡。
接触式的IC卡通过机械触点从读写器获取能量和交换数据;
非接触式IC卡通过线圈射频感应从读写器获取能量和交换数据,所以又称射频卡。
目前在社会上常见的是接触式IC卡。
它具有存储量大(以兆为单位),保密功能强(有多重密码设置和认证功能),可实现一卡多用。
但是,这类卡的读写操作速度较慢,操作也不方便,每次读写时必须把卡正确地插入到读写器的口槽才能完成数据交换,这样,在公交、考勤等需要频繁读写卡的场合就很不方便,而且读写器的触点和卡片上IC卡的触脚暴露在外,容易损坏和搞脏而造成接触不良。
非接触式IC卡是根据射频电磁感应原理产生的。
它的读写操作只需将卡片放在读写器附近一定的距离之内就能实现数据交换,无需任何接触,使用中非常方便、快捷,不易损坏。
非接触式IC卡由IC芯片、感应天线组成,封装在一个标准的PVC卡片内,芯片及天线无任何外露部分。
是世界上最近几年发展起来的一项新技术,它成功的将射频识别技术和IC卡技术结合起来,结束了无源(卡中无电源)和免接触这一难题,是电子器件领域的一大突破。
卡片在一定距离范围(通常为5—10mm)靠近读写器表面,通过无线电波的传递来完成数据的读写操作。
(二)本设计的目的和意义
为提高在公交系统的适应能力,包括用户的各类特殊要求,抗干扰,抗恶劣环境等。
方便广大乘客,减轻售票员的负担。
二、总体方案设计
(一)方案设计
总体电路设计应该完成六个部分电路:
1、单片机及外围电路,2、键盘电路,3、显示电路,4、存储器电路,5、串口通信电路,6、非接触式IC卡。
单片机采用八位机AT89C51,根据内部的特性,完全能满足功能要求;
因为需要输入的数字量比较多,所以键盘采用4X4矩阵键盘;
显示器使用液晶显示器;
存储器采用铁电存储器,操作方便,可靠,掉电可保存数据。
下面为电路组成框图,如图1。
图1系统组成框图
(二)方案论证与选
1.键盘模块的选择
键盘的作用有两个,其一输入数据,比如:
0、1、2、3、4、5、6、7、8、9这些数字。
其二是功能操作,比如:
数据的输入输出,功能设置。
基于此,有很多种方案实现这一操作。
方案一、采用直接式独立按键操作。
这种方案的操作过程,就是直接从单片机I/O口引出通上拉电阻,接一按键,当按键按下时,单片机该端口为“0”,单片机通过对此端口逻辑“0”判断,来完成按键的识别,达到数据的输入,功能的实现。
从这一过程可知,完成任务需要单片机很多I/O口,花费了很多CPU资源,此种方案不可取。
方案二、矩阵键盘。
矩阵键盘,这里采用4X4矩阵键盘,一共有16组情况,实现的方法也是利用单片机的I/O口,通过上拉电阻相接,4X4正好用到了单片机一个端口。
采用这种方案既节约资源又方便,而且能够满足本设计的需要。
综上所述,在本设计中我们采用方案二。
2、显示电路模块的选择
显示电路的主要任务是反应出操作结果和相关商口的信息。
根据此,有四种方案可完成这一工作。
方案一:
可用七段共阳极LED数码显示,将商口名称、单价等显示出来,可以完成,将多个LED数码管的段选线相应并联在一起,由一个8位I/O口控制,而各位的共阳极或共阴极分别由相应的I/O口线控制,实现各位的分时选通,这就是动态扫描显示方式,采用动太扫描显示方式,每一位LED的选通时间为1-2ms。
这个时间不能太短,因为发光二极管从导通到发光有一定的延时,导通时间太短,发光二极管从导通到发光太弱人眼无法看清,但这个时间也不能太长,否则占用CPU时间太长,由于人眼有视觉暂留现象,只要每一位显示时间足够短,就能够造成多位同时显示的假象,每一位显示的时间间隔不能超过20ms,若时间表间隔太长,就会造成闪烁现象,采用动态扫描方式,可降低功率消耗。
此系统,所需数码管较多,操作麻烦,并且不直观,当然其发光数码管价格较便宜。
在本系统中,此方案不可取。
方案二:
用LED数码管矩阵方式显示。
这种方案的显示的原理和方案一都差不多,用16X16点阵排列,将字型分成上下两个半部,上半部16列,每列用一个字节表示(8个点),下半部也是16列,每列也用一个字节表示(8个点),因此,每个字需要32个字节来表示。
当然这样就可以显示汉字,但是和单片机相连较为复杂,本系统要许多块这样的16X16点阵,同时这种LED点阵方式显示,造价较高,作为本电路,也是不可取。
方案三:
采用带中文字库的LCD液晶显示器来完成显示,128×
64这种显示器作为本系统设计,当然最好。
便考虑到系统成本的问题,带中文字库的LCD一般都比较贵,采用这种方案,势必会增加设计成本。
本设计也不采用这种方案。
方案四、采用两行字符型显示器。
这种显示器,用英文显示相关信息,操作方便,价格又适中,作为本设计是最合适不过。
因此,结合上述方案,在本设计中,我们采用两行字符型1602显示器。
3、存储器电路模块的选择
存储器的作用在本设计中主要起到基本商品信息的存储,和最后商品的出入信息的存贮。
完成这一项工作方案也是多种多样的。
下面将一一介绍。
方案一、用紫外线存储器ROM,这个操作不太方便,同时本系统中的数据是不断变化的,因此这种方案不可取。
方案二、可以用海量存贮器来完成,当然这个是完全可行的,可经进行在系统写,掉电后信息也不会掉失。
它具有低功耗、大容量、擦写速度快、可整片或分扇区在系统中编程、擦除等特点。
并且可由内部嵌入的算法完成对芯片的操作,因而在各种嵌入式系统中得到了广泛的应用。
作为一种非易失性存储器,它在系统中通常用存放程序代码、常量表用一些在系统掉电后需要保存的数据。
这种存贮器当然很好,但是,价格较贵,同时和本系统中的单片机也不容易实现接口,因为数据线和地址较复杂。
方案三、采用串行铁叫存贮器。
可在系统读写,掉电可保存数据,用I2C总线进行操作,因此需用的单片机端口较少,占用CPU资源较少,同时价格也不贵,唯一不足之处就是存贮器量没有海量存贮器大。
根据上述三种方案,我们兼顾价格,容量和可操作性,选用第三种方案,也就是用串行E2ROM。
4.IC卡的选择
与接触式IC卡相比较,非接触式卡具有以下优点:
⑴可靠性高非接触式IC卡与读写器之间无机械接触,避免了由于接触读写而产生的各种故障。
例如:
由于粗暴插卡,非卡外物插入,灰尘或油污导致接触不良造成的故障。
此外,非接触式卡表面无裸露芯片,无须担心芯片脱落,静电击穿,弯曲损坏等问题,既便于卡片印刷,又提高了卡片的使用可靠性。
⑵操作方便由于非接触通讯,读写器在10CM范围内就可以对卡片操作,所以不必插拨卡,非常方便用户使用。
非接触式卡使用时没有方向性,卡片可以在任意方向掠过读写器表面,既可完成操作,这大大提高了每次使用的速度。
⑶防冲突非接触式卡中有快速防冲突机制,能防止卡片之间出现数据干扰,因此,读写器可以“同时”处理多张非接触式IC卡。
这提高了应用的并行性,,无形中提高系统工作速度。
⑷可以适合于多种应用非接触式卡的序列号是唯一的,制造厂家在产品出厂前已将此序列号固化,不可再更改。
非接触式卡与读写器之间采用双向验证机制,即读写器验证IC卡的合法性,同时IC卡也验证读写器的合法性。
非接触式卡在处理前要与读写器之间进行三次相互认证,而且在通讯过程中所有的数据都加密。
此外,卡中各个扇区都有自己的操作密码和访问条件。
接触式卡的存储器结构特点使它一卡多用,能运用于不同系统,用户可根据不同的应用设定不同的密码和访问条件。
⑸加密性能好非接触式IC卡由IC芯片,感应天线组成,并完全密封在一个标准PVC卡片中,无外露部分。
非接触式IC卡的读写过程,通常由非接触型IC卡与读写器之间通过无线电波来完成读写操作。
非接触型IC卡本身是无源体,当读写器对卡进行读写操作时,读写器发出的信号由两部分叠加组成:
一部分是电源信号,该信号由卡接收后,与其本身的L/C产生谐振,产生一个瞬间能量来供给芯片工作。
另一部分则是结合数据信号,指挥芯片完成数据、修改、存储等,并返回给读写器。
由非接触式IC卡所形成的读写系统,无论是硬件结构,还是操作过程都得到了很大的简化,同时借助于先进的管理软件,可脱机的操作方式,都使数据读写过程更为简单。
因此,在公交、门禁、校园、企事业等人事管理、娱乐场所等方面有广泛的应用前景。
目前我国引进的射频IC卡主要有PHILIPS公司的Mifare和ATMEL公司的Temic卡。
本设计采用Mifare卡来实现城市公交自动售票IC卡读写器。
(三)工作原理
非接触式IC卡读写器以射频识别技术为核心,读写器内主要使用了1片Mifare卡专用的读写处理芯片--MMM微模块。
它是一个小型的最大操作距离达20~30mm的Mifare读/写设备的核心器件,其功能包括调制、解调频信号、安全管理和防碰撞机制。
内部结构分为射频区和接口区:
射频区内含调制解调器和电源供电电路,直接与天线连接;
接口区有与单片机相连的端口,还具有与射频区相连的收/发器、16字节的数据缓冲器、存放64对传输密钥的ROM、存放3套密钥的只写存储器以及进行三次证实和数据加密的密码机、防碰撞处理的防碰撞模块和控制单元。
这是与射频卡实现无线通信的核心模块,也是读写器读写Mifare卡的关键接口芯片。
读写器工作时,不断地向外发出一组固定频率的电磁波(13.6MHz),当有卡靠近时,卡片内有一个LG串联谐振电路,其频率与读写器的发射频率相同,这样在电磁波的激励下,LG谐振电路产生共振,从而使电容充电有了电荷。
在这个电容另一端,接有一个单向导电的电子泵,将电容内的电荷送到另一个电容内存储。
当电容器充电达到2V时,此电容就作为电源为卡片上的其他电路提供工作电压,将卡内数据发射出去或接收读写器发出的数据与保存。
三、系统硬件电路设计
本系统由六部分组成:
单片机、键盘处理电路、显示器电路、存储器电路、非接触式IC卡等。
下面将着重讨论前面五部分电路的设计过程。
(一)单片机及其外围电路设计
微处理电路采用AEMEL公司的单片机,价格便宜、功能齐全、可靠性高、使用普遍。
AT89C51单片机是ATMEL公司8位单片机系列产品之一,是一种40引脚双列直插式芯片。
AT89C51有4KFLASH;
128字节RAM;
32条I/O引线;
2个16位定时器/计数器;
一个5向量2级中断结构;
一个全双工串行口;
一个片内震荡器和时钟电路。
此外,AT89C51是用可降到0频率的静态逻辑操作设计的,并支持两种可选的软件节能工作方式。
空闲方式停止CPU工作,但允许RAM、定时器/计数器、串行口和中断系统继续工作。
掉点方式保持RAM内容,但振荡器停止工作,并禁止所有其他部件的工作直到下一个硬件复位。
它含有4KB可反复烧录及擦除内存和128字节的RAM,有32条可编程控制的I/O线,5个中断源,指令与MCS-51系列完全兼容。
选用它作为核心控制新片,可使电路极大地简化,而且程序的编写及固化也相当方便、灵活。
本系统设计电路图2所示。
图2单片机电路图
如图2所示,P0口为LCD的八根数据总线,P2.5、P2.6、P2.7三根线为LCD的读写控制线和使能端。
P3.6、P3.7为存贮器的两根总线,主要用于数据的读取与存贮。
P1口为矩阵键盘列线与行线的接口,实现4X4键盘,完成相关的工能操作,比如说,数字的输入,功能操作等。
XTAL1和XTAL2口接外部晶体振荡器,保证单片机内部各部分有序的工作。
P3.0、P3.1口接串行端口,分别作串行数据的接收端和发送端。
RST与Vss之间连接一个下拉电阻,与Vcc之间连接一个电容,目的是保证可靠的复位。
AT89C51单片机的介绍——最常用的51芯片
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
1.主要特性:
·
与MCS-51兼容
4K字节可编程闪烁存储器
寿命:
1000写/擦循环
数据保留时间:
10年
全静态工作:
0Hz-24Hz
三级程序存储器锁定
128*8位内部RAM
32可编程I/O线
两个16位定时器/计数器
5个中断源
可编程串行通道
低功耗的闲置和掉电模式
片内振荡器和时钟电路
2.管脚说明:
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下表所示:
口管脚备选功能
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)
P3.3/INT1(外部中断1)
P3.4T0(记时器0外部输入)
P3.5T1(记时器1外部输入)
P3.6/WR(外部数据存储器写选通)
P3.7/RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;
当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
3.振荡器特性:
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
4.芯片擦除:
整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。
在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。
此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。
在闲置模式下,CPU停止工作。
但RAM,定时器,计数器,串口和中断系统仍在工作。
在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。
(二)键盘电路
键盘接口电路用P2口接成4×
4结构,共16个键。
其中数字键10个,功能键2个,退格键和回车键各1个,有2个键暂时未用。
功能键有查询和通信两键。
查询键:
售卡员可以通过此键查询售卡金额和售卡记录数。
通信键:
由于读写器的存储量有限,因此读写器每售卡一段时间,应将读写器中的数据通过RS-232串行接口与PC机通信,以便回放和清空读写器中的数据。
数据回放到PC机中后,通过分析处理,形成各种报表,以便公交公司及时掌握售卡情况。
1.矩阵式键盘的结构与工作原理
在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式,如图所示。
在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。
这样,一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。
由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。
矩阵式结构的键盘显然比直接法要复杂一些,识别也要复杂一些,上图中,列线通过电阻接正电源,并将行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入。
这样,当按键没有按下时,所有的输入端都是高电平,代表无键按下。
行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了。
具体的识别及编程方法如下所述。
矩阵键盘
2、矩阵式键盘的按键识别方法
<
1>
确定矩阵式键盘上何键被按下介绍一种“行扫描法”。
行扫描法行扫描法又称为逐行(或列)扫描查询法,是一种最常用的按键识别方法,如上图所示键盘,介绍过程如下。
1、判断键盘中有无键按下将全部行线Y0-Y3置低电平,然后检测列线的状态。
只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与4根行线相交叉的4个按键之中。
若所有列线均为高电平,则键盘中无键按下。
2、判断闭合键所在的位置在确认有键按下后,即可进入确定具体闭合键的过程。
其方法是:
依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电平。
在确定某根行线位置为低电平后,再逐行检测各列线的电平状态。
若某列为低,则该列线与置为低电平的行线交叉处的按键就是闭合的按键。
矩阵键盘的实现可采用查询的办法,也可以采用中断的方法。
4X4的意思即:
4根列线,4根行线,列线通上拉电阻接到电源上,因此无按键按下时,各列线均为高电平。
当行线分别输出低电平时,有健按下,相应的列线上会出现低电平。
根据此原理,CPU对整个键盘进行扫描。
所谓扫描,即C
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 公交 接触 IC 读写
![提示](https://static.bdocx.com/images/bang_tan.gif)