公交车射频卡刷卡机的设计_第1页
公交车射频卡刷卡机的设计_第2页
公交车射频卡刷卡机的设计_第3页
公交车射频卡刷卡机的设计_第4页
公交车射频卡刷卡机的设计_第5页
已阅读5页,还剩44页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上目 录23第1章 绪论441.2 设计意义与目的441.4 系统设计的方案选择56667 2.3.1 单片机的选择与应用7 2.3.2 显示电路82.3.3 93C46串行EEPROM82.3.4 蜂鸣器电路92.3.5 看门狗电路102.3.6 读卡器电路112.3.7 电源电路13第3章 系统的软件设计1414143.2.1 主程序143.2.2 中断服务子程序153.2.3 显示程序153.2.4 蜂鸣器程序183.2.5 93C46串行EEPROM编程183.2.6 读卡器程序21343434363738摘 要 随着城市规模的扩大,交通已经成为城市发展的一个重

2、要因素。公交车射频卡可以提供更为方便、快捷的服务。本文对公交车射频刷卡机的系统设计进行了研究。采用美国ATMEL公司的AT89C52单片机为控制核心,应用PHILIPS公司的MIFARE射频技术实现设计。本设计包含了系统的硬件设计与软件设计两个部分。硬件设计部分描述了所应用的各部分的硬件电路及其原理,主要有:显示电路,看门狗电路,93C46串行EEPROM,蜂鸣器电路以及读卡器电路;同时,给出了完整的系统硬件设计原理图。软件设计采用了汇编语言进行设计,运用模块化结构,并给出了各个模块的流程图,使程序设计的逻辑关系更加简洁明了;采用系统调试软件Medwin进行软件调试;另外,本文也给出了详细的程

3、序清单。关键词:公交卡,射频卡,单片机AbstractAlong with the extension of the city scale, the transportation has already become an important factor of the city development.The bus radio frequency card can provide more convenience and faster servance.This text carry on a research to the system design of the the bus rad

4、io frequency card machine .It adopted single chip microcomputer of the AT89C52 of the American ATMEL company as the control core and applied the MIFARE radio frequency technique of the PHILIPS company to realize the design.This design of the system includ two parts: the hardware design and the softw

5、are design.The hardware design part described the hardware circuits and the principle of each part, mainly includ:the display circuit, the watchdog circuit, the 93C46 serial EEPROM, the buffer circuit and read card machine.Also ,it gave the system hardware of the integral design principle diagram.Ad

6、opting assemble language to edit the software, using blocking structure and giving the flow chart of each block make the logical relation of the program design more simply and directly to understand.It adopted Medwin to debug the program.Moreover, this text also gave detailed program list.Keyword:Bu

7、s Card, Radio Frequency Card, Single Chip Microcomputer第1章 绪论1.1 课题背景IC卡在世界范围内应用广泛,主要形式有:电话卡、身份卡、交通卡、医疗卡、家庭购物卡、加油卡、公司卡、会员卡、电影卡等。IC卡把具有存储、加密和数据处理能力的芯片镶嵌于塑料基片之中。这种既具有智能性,又便于携带的卡片,为现代社会信息的处理和传递提供了一种全新的手段。IC卡以其高度的信息集成,高度的安全性,正日渐辉煌和灿烂,广泛应用于公共交通行业,人们已愈来愈多地开始接受和使用IC智能卡。目前经常接触到的IC卡有两种:接触式IC卡和非接触式IC卡(射频卡)。1.

8、2 设计意义与目的设计意义:公交卡的广泛推广,将使公交管理迈上一个新台阶。公交射频卡不仅避免了因找零引起的尴尬;此外,射频卡小巧、轻便、美观,便于乘客携带;同时,使用公交射频卡,可减少现金流通量,也减少了疾病传播的途径;减少了乘客上车付费的时间,缩短了公交车到站停靠的时间,一定程度上缓解了城市的交通压力。设计目的:通过此次的系统设计,了解射频卡的基本构成及原理;掌握单片机原理与接口设计;掌握实用电子信息系统设计与实现的方法。1.3 系统设计的总体要求总体要求:打开刷卡机,有卡进入时,外部中断0响应,单片机控制读卡器读卡。正常情况下,卡内值减2,LED显示器中显示余额,蜂鸣器“嘟”一声;余额不足

9、时,同样LED显示器中显示余额,蜂鸣器“嘟嘟嘟”,以示警报。当刷卡机工作过程中,程序中出现时间溢出,位溢出等错误时,LED显示器中显示“E”。看门狗电路可以进行手动复位;当电源电压Vcc低于4.75V时,输出复位信号;当微处理器死机时,可强迫复位。93C46串行EEPROM用来保存刷卡机的总营业额,可以在掉电时保存数据,防止数据丢失,而且可以随时查询营业额。系统硬件主要组成电路:显示电路,看门狗电路,93C46串行EEPROM,蜂鸣器电路以及读卡器电路。控制核心是单片机。系统软件按各组成电路分模块编写,形成各具独立功能的子程序,使硬件在软件的控制下协调运作。1.4 系统设计的方案选择(一) I

10、C卡的选择 方案一:采用接触式IC卡实现设计 方案二:采用非接触式IC卡(射频卡)实现设计分析:接触式的IC卡通过机械触点从读卡器获取能量和交换数据;非接触式IC卡通过线圈射频感应从读卡器获取能量和交换数据,所以又称射频卡。与接触式IC卡相比较非接触式卡(射频卡)更具有优势:可靠性高,非接触式IC卡(射频卡)与读写器之间无机械接触,避免了由于接触读写而产生的各种故障;由于非接触通讯,读卡器在10CM范围内就可以对卡片操作,所以不必插拨卡,非常方便用户使用;加密性能好,非接触式IC卡由IC芯片, 感应天线组成, 并完全密封在一个标准PVC卡片中, 无外露部分。显然,射频卡在实际应用中更具优势。因

11、此,在设计过程中采用射频卡(非接触式IC卡),选取方案二。(二)用户信息的储存 方案一:将用户信息储存在公交卡内 方案二:将用户信息储存在公交刷卡机内分析:公交刷卡机是应用于公交车上的,各车上的用户数据难以保持同步,除非无线通信,若采用方案二则使系统的复杂度提高,可靠性降低。同时基于其所置空间及经济成本的考虑,应当尽量精简其设计。方案二中将用户信息储存在公交刷卡机内,由于在刷卡机内储存大量的用户信息而增加了刷卡机的成本。而采用方案一则不仅能实现功能,而且复杂度低,可靠性高,成本低。用户信息储存在公交卡内,刷卡时将用户信息读出,扣除车费后再将余额送回卡内即可。因此,选取方案一,将用户信息储存在公

12、交卡内。(三)程序编写 方案一:用汇编语言编程实现编码程序 方案二:用C语言编程实现编码程序单片机可以采用汇编语言和C语言进行编程。汇编语言是机器语言,指令的执行速度快,节省存储空间。在本次设计中,软件编程并不复杂,使用汇编语言较C语言更适合。因此,选取方案一,用汇编语言实现编码程序。综上所述,公交车刷卡机将采用射频卡实现设计,将用户信息储存在公交卡内,用汇编语言编程实现编码程序。本次设计的重点和难点在于读卡器的应用和单片机的系统设计。第2章 系统硬件设计2.1 系统硬件设计框图硬件设计思想:单片机控制着读卡器电路读卡,蜂鸣器响,LED显示器显示余额,存储器保存营业总额。总之,单片机是整个系统

13、的控制核心,使各电路按照设计总要求有序的完成各自的功能。设计框图如图(2.1)所示:AT89C52单片机读卡器蜂鸣器存储器LED显示器图2.1 系统硬件设计框图看门狗电路2.2 系统硬件设计原理图图2.2 系统硬件设计原理图系统硬件设计原理图如上图(2.2)所示。下面将对各个组成电路的设计进行详细说明。2.3 系统各电路详细设计系统硬件主要组成电路:显示电路,看门狗电路,93C46串行EEPROM,蜂鸣器电路以及读卡器电路。接下来,将逐一进行说明。2.3.1 单片机的选择与应用选择:单片机是整个系统的控制核心。在单片机的选取上采用美国ATMEL公司的AT89C52单片机,其以MCS-51为内核

14、,并兼容了MCS-51的硬软件。表(2.1)将把AT89C52与我们熟悉的8031进行对比。单片机型号存储容量及类型RAM(字节)16位定时器个数中断源个数最高晶振频率(MHZ)封装引脚个数8031无 ROM128251240AT89C528K EEPROM256382440表2.1 8031与AT89C52的比较之所以选取AT89C52,其主要原因在于:较8031而言,AT89C52带有可反复擦写的只读程序存储器,这样可以更方便编程。而8031则须外加存储器来存放程序。应用: AT89C52单片机各端口在系统设计中的使用状况(如图(2.2)所示):1 P1口控制了LED显示器的段码显示,P2

15、.4,P2.5,P2.6控制了LED显示器的位选通端。2 ALE/PROG:具有复位功能。第一,地址锁存允许;第二,对FLASH存储器进行编程时,从该引脚引入编程脉冲。如图(2.2)所示,ALE/PROG端与读卡器电路中的MCM200的ALE(地址锁存使能端)相连。同时,ALE/PROG端也与看门狗电路中的DS1232中的ST端相连,ST端为看门狗定时器的周期信号输入端,若ST端在设置的周期时间内没有有效信号到来,RST端将产生强制复位信号。这里选用AT89C52单片机中的ALE信号作为周期性的输入信号。3 RST:复位信号。与看门狗电路中的RST信号相连。4 P2.0控制蜂鸣器,P2.0置低

16、,蜂鸣器响;P2.0置高,蜂鸣器不响。5 P2.1, P2.7, P2.2, P2 .3分别与93C46串行EEPROM中的DI(串行数据输入),SK(时钟信号),DO(串行数据输出),CS(片选信号)端相连。6 P0口:地址/数据复用端口。与读卡器电路中的MCM200的的数据端D0D7相连;P0.0P0.3同时也与地址端A0A3相连。7 P3.2(INT0)端与读卡器电路中的MCM200的的NIRQ端相连。当有卡进入时,引起中断。8AT89C52单片机的读,写信号分别与读卡器电路中的MCM200的读,写信号相连。2.3.2 显示电路图2.3 显示电路原理图如图(2.3)所示,采用共阴极LED

17、显示器,显示3位数(从左至右依次为第一位、第二位、第三位),即刷卡机中显示余额的百、十、个位。通过单片机AT89C52的P2.4,P2.5,P2.6口分别控制3个LED显示器的位选端。P2.4,P2.5,P2.6口经过一个6高压输出反相驱动器74LS06(选用其中3个反相器)连接到LED显示器。因此P2.4(或P2.5,P2.6)置1时,相应的LED显示器选中。共阴极LED显示器,即显示器的各发光二极管的阴极接在一起。P1的8个端口经一个8路三态反相驱动器74LS240后控制a、b、c、d、e、f、g、dp,则P1中相应的输入引脚置0时,对应段亮。2.3.3 93C46串行EEPROM采用93

18、C46串行EEPROM来保存刷卡机累计刷卡总额。其优势在于接口少,容量满足设计需要。93C46可以用来存放营业总额,方便查询。(一)93C46串行EEPROM的简要说明:93C46是一种低功耗、低电压、电可擦除、可编程只读存储器,其容量为 1Kb,可重复写 100万次。在本次设计中只需使用读,写指令。1管脚(DIP封装),如图(2.4)所示:2管脚说明:图2.4 93C46管脚示意图CS:片选信号。高电平有效,低电平时进入等待模式。在连续的指令之间,CS信号必须持续至少250ns的低电平才能保证芯片正常工作。SK:串行时钟信号。在SK的上升沿,操作码、地址和数据位进入器件或从器件输出。DI:串

19、行数据输入。可在SK的同步下输入开始位、操作码、地址位和数据位。DO:串行数据输出。在SK同步下读周期时,用于输出数据。VSS:接地。VCC:接5V电源。ORG:存储器构造配置端。该端接VCC或悬空时,输出为16位;接GND时,输出为8位。NC:空脚,不连接。(二)93C46串行EEPROM的硬件连接:图2.5 93C46电路原理图如图(2.5)所示,P2.2口与CS相连,控制片选信号;P2.1口与DI相连,串行数据输入;P2.7口与SK相连,写入时钟信号;P2.3与DO口相连,串行数据输出;VSS接地;VCC接5V电源;ORG接地,存储器为8位结构。2.3.4 蜂鸣器电路图2.6 蜂鸣器电路

20、原理图如图(2.6)所示,蜂鸣器的正极性的一端联接到5V电源上,另一端联接到三极管的集电极,三极管的基级由单片机的P2.0管脚通过一个非门来控制,当P2.0管脚为低时,非门输出高电平,三极管导通,这样蜂鸣器的电流形成回路,发出声音。当P2.0管脚为高时,非门输出低电平,三极管截止,蜂鸣器不发出声音。这里采用非门是为了防止系统上电时峰鸣器发出声音,因为系统复位以后,I/O口输出的是高电平。2.3.5 看门狗电路看门狗电路采用DS1232芯片。(一)DS1232芯片的简要说明:1 引脚功能(如图(2.7)所示):PBRST:按钮复位输入端TD:看门狗定时器延时设置端TOL:5%或10%电压监测选择

21、端RST:高电平有效复位输出端ST:周期信号输入端Vcc:电源GND:接地RST:低电平有效复位输出 图2.7 DS1232引脚示意图2 DS1232的功能:(1)电源电压监视:DS1232能够实时监测向单片机供电的电源电压。 当电源电压Vcc低于预置值时,输出复位信号RST。预置值通过TOL来设定。当TOL接地时,RST信号在电源电压跌落至4.75V以下时产生;当TOL与Vcc相连时, 只有当Vcc跌落至4.5V以下时才产生RST信号。当电源恢复正常后,RST信号至少保持250ms,以保证单片机的正常复位。(2)按键复位:DS1232提供了可直接连接复位按键的输入端PBRST,在该引脚上输入

22、低电平信号,将在RST端输出至少250ms的复位信号。(3)看门狗定时器:在DS1232内部集成有看门狗定时器,当DS1232的ST端在设置的周期时间内没有有效信号到来时,DS1232的RST端将产生复位信号以强迫单片机复位,这一功能对于防止由于干扰等原因造成的单片机死机非常有效。可选用ALE信号作为周期性的输入信号。看门狗定时器的定时时间由DS1232 的TD引脚确定。详见表(2.2)所示:TD引脚接至定时时间最小值定时时间典型值定时时间最大值地(GND)62.5ms150ms250ms浮空250ms600ms1000ms电源(Vcc)500ms1200ms2000ms表2.2 TD引脚确定

23、的定时时间图2.8 看门狗电路原理图(二)看门狗电路的硬件连接:如图(2.8)所示,ST端与AT89C52单片机的ALE端相连;RST与AT89C52单片机的RST端相连;TD接地,定时时间最小值,典型值,最大值分别为62.5ms ,150ms ,250ms 。TOL接地,RST信号在电源电压跌落至4.75V以下时产生。PBRST用一个手动的触点式按键控制接地。按下按键,则手动复位。2.3.6 读卡器电路系统采用PHILIPS公司的MIFARE射频技术。读卡器电路则以MCM200为核心。(一)MCM200模块引脚说明:如图(2.9)所示,各引脚的功能如下:D0D7:8位双向数据总线;A0A3:

24、4位地址线;BP:后备电池输入端,用于保护MCM内部密码RAM;NPAUSE:串行数据输出,用于驱动RF单元,该引脚必须连到RF单元的TP端。图2.9 MCM200电路原理图NWR:写信号使能端;NRD:读信号使能端;NCS:该脚为低电平时选中MCM;KOMP:RF的比较器输入端,使用时必须连到RF单元的RX端;NIRQ:MCU数据处理控制端。当该端为低时,MCU将用MCM状态寄存器中的内容来对MCM中的数据进行处理;ALE:地址锁存使能端;USEALE:选择从内部地址锁存器或A0A3引脚取地址;DGND:数字电路接地端;DVDD:5V电源端。MODE:并行协议模式选择引脚,可用高电平驱动。A

25、VDD:5V模拟电源输入引脚,用于RF射频单元;ANT,NANT:天线连接端。(二)MCM的硬件内核包括了如下几大部分接口电路:1与单片机的接口电路:MCM可由外部单片机发出特殊命令来启动运行。详见图(2.10)所示:MCM模块单片机NRDRDNWRRWRALEALEP3.2(INT0)NIRQD4D7P0.4P0.7P0.0P0.3D0D3/ A0A3A0A3图2.10 与单片机的接口电路框图2RF模块接口电路KOMP1与RF1模块的RX相连,NPAUSE1与RF1模块的TP相连。3与天线射频接口电路引脚ANT和GND接口可直接与正极性天线相联接。4与电源接口电路与电源的接口包括这样几组信号

26、:DVDD数字电路正电源端(+5V);DGND数字电路接地端(0V);BPWOM缓冲器供电(通电工作时为+5V;不通电工作时为+3V );RFVDDRF电路正电源端(+5V);RFGNRF电路接地端(0V);(三)读卡器电路原理图图2.11 读卡器电路原理图如图(2.11)所示,NIRQ为数据处理端,当其为低时,引起外部中断0,转入中断服务子程序。P0口为地址/数据复用端,地址为4位。KOMP1与RF1模块的RX相连,NPAUSE1与RF1模块的TP相连。引脚ANT和GND接口直接与正极性天线相联接。AT89C52单片机的读,写信号分别与MCM200的读写信号相连,ALE信号也对应相连。2.3

27、.7 电源电路电源电路原理图如下图(2.12)所示,电源电压为5V,7805为三端正稳压器:图2.12 电源电路原理图第3章 系统的软件设计3.1 系统软件设计思想系统软件按各组成电路分模块编写,形成各具独立功能的子程序。主程序则对这些子程序进行调用,以实现功能。当产生中断时,则执行中断服务子程序。此次由于是刷卡机的设计,而且是在有卡进入时引起外部中断0。因此,程序的主要部分都在中断服务子程序中,主程序较简单。读卡器程序涉及到应答,选择,认证,读,写,停机等几个部分,较复杂,是整个程序设计的难点。3.2 系统软件各模块设计分析及程序流程图主要分为主程序,中断服务子程序,显示程序,93C46串行

28、EEPROM编程,蜂鸣器程序,读卡器程序几个部分来详细阐述。3.2.1 主程序 分析:完整的程序要注意对系统进行初始化。由于将程序进行模块化编写,因此主程序的思路很清晰。有卡进入时,执行中断服务子程序,无卡时,蜂鸣器不响,显示器不亮。 程序流程图:如图(3.1)所示。开始系统初始化NY是否有中断?调用SPK_OFF子程序调用中断服务子程序调用DISPLAY1子程序结束图3.1 主程序流程图3.2.2 中断服务子程序分析:当有卡进入读卡器的工作范围后,会引起外部中断0,执行中断服务子程序。中断服务子程序是十分重要的部分,其主要实现的功能是:读卡,正常情况下,卡内值减2,LED显示器中显示余额,蜂

29、鸣器“嘟”一声,将93C46中的值读出加2后再写入保存;余额不足时, LED显示器中同样显示余额,蜂鸣器“嘟嘟嘟”,以示警报。开始选中MCM,对MCM软复位调用停机子程序调用读子程序调用Authentication子程序调用Select 子程序调用Request子程序卡内数据2?调用SPK_ON2子程序调用DISPLAY1子程序结束卡内数据减2调用写子程序调用SPK_ON1子程序调用DISPLAY2子程序图3.2 中断服务子程序流程图YN调用EEP_WRITE子程序调用EEP_READ子程序60H中的内容加2后送B程序流程图:如图(3.2)所示。3.2.3 显示程序由于应用共阴极LED显示器,

30、所以段码亮时字形驱动输出“1”有效,位选驱动输出“0”有效。因为采用8路三态反相驱动器74LS240作为字形驱动,6高压输出反相驱动器74LS06作为位选驱动;则对于单片机而言,字形码输出“0”有效,位选扫描电平 “1”有效。字形表TAB中的有效字形码应与共阳极的LED的字形码相同。(一)显示程序一(DISPLAY_OFF)实现功能:LED显示器上无显示。分析:LED显示器中a、b、c、d、e、f、g、dp全不亮,各选通位关闭。程序:DISPLAY_OFF:MOV A,#0FFH MOV P1,A ;显示器各段不亮 CLR P2.4 CLR P2.5 CLR P2.6 ;选通位全部关闭RET(

31、二)显示程序二(DISPLAY_ERR)实现功能:在第三位的LED显示器上显示出错标志E。分析:E的字形码为86H,选通第三位的LED显示器,关闭其余的LED显示器。程序:DISPLAY_ERR:MOV A,#86H MOV P1,A ;显示“E” SETB P2.4 CLR P2.5 CLR P2.6 ;选通第三位,关闭其余选通位 RET(三)显示程序三(DISPLAY)实现功能:将寄存器A中的数据值显示在LED显示器上。分析:1此显示器是作为显示刷卡机余额的,因此涉及的显示字符为09。 2A中的数据格式是十六进制,因此要先将其转换为3位BCD码,百位储存在32H中,十位储存在31H中,个位

32、储存在30H中。 3采用动态方式,即每一位的LED持续点亮10ms后,其他位的LED再点亮;为了提高显示亮度,需要在所有的LED都点亮一次后,再重新开始点亮各位LED,即显示刷新。显示总时间设置约为4S,则计数器R1=100D。字形表如表(3.1)所示。显示字符0123456789字型码C0H表3.1 LED显示器字形码表F9HA4HB0H99H92H82HF8H80H88H程序流程图:如图(3.3)所示。A中数据除以100,商在A中,余数在B中A中内容送入32H单元中,得到百位数B中内容送入A中A中数据除以10,结果商在A中,余数在B中A中内容送入31H单元中,得到十位数B中内容送入30H单

33、元中,得到个位数R1=50D32H单元内容送入A中中据A中内容查表得字型码,并送入A中A中内容送入P1口,并选通第一位调用延时10ms子程序31H单元内容送入A中中据A中内容查表得字型码,并送入A中A中内容送入P1口,并选通第二位调用延时10ms子程序30H单元内容送入A中中据A中内容查表得字型码,并送入A中A中内容送入P1口,并选通第三位调用延时10ms子程序R11R1,判断R1=0? 开始结束YN图3.3 DISPLAY子程序3.2.4 蜂鸣器程序分析:可以通过程序控制P2.0管脚的置低和置高来使蜂鸣器发出声音和关闭。(一)蜂鸣器程序一(SPK_OFF)实现功能:蜂鸣器不响。程序:SPK_

34、OFF:SETB P2.0 RET(二)蜂鸣器程序二(SPK_ON1)实现功能:蜂鸣器响一声,持续时间一秒。程序:SPK_ON1:CLR P2.0 ACALL DELAY1S SETB P2.0 RET(三)蜂鸣器程序三(SPK_ON2)实现功能:蜂鸣器响连续响十声,每声持续时间半秒,间隔时间半秒。程序:SPK_ON2:MOV R1,#0AH ;重复次数为10F2:CLR P2.0 ACALL DELAY500MS ;蜂鸣器响半秒 SETB P2.0 ACALL DELAY500MS ;蜂鸣器不响半秒 DJNZ R1,F2 RET3.2.5 93C46串行EEPROM的读,写程序读,写操作指令

35、与时序图:1操作指令:指令开始位操作码地址(8位结构)Read 1 10A6A0Write表3.2 读,写指令表 1 01A6A02 时序图:(1)读:图3.4 读指令时序图(2)写:图3.5 写指令时序图如图(3.4)所示,在接收到一个读指令和地址(在时钟驱动下从DI 引脚输入)后, DO引脚先输出一个虚拟的低电平,然后数据根据时钟信号移位输出(高位在前)。数据在时钟信号SK的上升沿时输出。在第一个数据移位输出以后只要保持片选信号CS 不变和时钟信号 SK 继续触发,器件会自动将地址加 1 指向下一地址并且连续输出串行数据,器件会把地址不断的增加直到器件的末地址,然后地址回到 0。如图(3.

36、5)所示,在接收到写指令地址和数据以后,片选信号CS 在下降沿的时候器件开动自动时钟去擦除并把数据存放到指定存储器。因为器件有在写入前自动清除的特性,所以没有必要在写入之前将存储器内该地址的内容擦除。开始令R5=0A0H,R7=03H,调用发送子程序(送写指令)令R7=07H,R6=29H调用发送子程序(送地址)令R7=08H,调用发送子程序(送数据)CS=0CS=1结束图3.6 写子程序流程图开始令R5=0C0H,R7=03H,调用发送子程序(送读指令)令R7=03H,调用接收子程序(送写指令)令R6=29H,R7=07H,调用发送子程序(送地址)A(60H)结束图3.7 读子程序流程图 (

37、注:SK高电平最短时间, 低电平最短时间为0.1微秒;CS低电平最短时间为250纳秒)开始SK=0CS=1R5A左移A,将高位移至C中SK=1等待SK=0YNCP2.1开始SK=1等待SK=0P3.5C左移A,使C移至A中低位R71R7,判断是否为0?结束YN图3.9 接收子程序流程图R71R7,判断是否为0?结束图3.8 发送子程序流程图分析:先编写发送子程序和接收子程序。发送子程序:在SK时钟信号上升沿时发送一位数据,通过位寄存器C发送,其中R5中为需要发送的数据,R7中为传送的数据个数。接收子程序:在SK时钟信号上升沿时接收一位数据,通过位寄存器C接收,其中R7中为接收的数据个数。读(或

38、写)程序可以通过设置R5,R7的值,然后调用发送子程序来向93C46串行EEPROM发送读(或写)指令和地址。读程序与写程序的不同在于:读程序在读数据时通过设置R7的值,调用接收子程序来完成读过程;写程序在写数据时通过设置R5,R7的值,调用发送子程序来完成写过程 。读出的数据保存在单片机的60H中,写入的数据保存在93C46串行EEPROM的29H单元中。程序流程图:如图(3.6),图(3.7),图(3.8),图(3.9)所示。3.2.6 读卡器程序(一)Mifare 1 非接触式IC智能(射频)卡说明1.Mifare 1非接触式IC智能射频卡功能组成(如图(3.10)所示):整个卡片包含了

39、两个部分:RF射频接口电路和数字电路部分。(1)RF射频接口电路:在RF射频接口电路中,主要包括有波形转换模块。它可将卡片读写器上的13.56MHZ的无线电调制频率接收,一方面送调制/解调模块,另一方面进行波形转换,将正弦波转换为方波,然后对其整流滤波,由电压调节模块对电压进行进一步的处理。MIFRE 1 S50 CARD IC Clock Data Energy波形转换正弦=方波整流电压调节Modu./DeModu调制/解调 POR (复位)EEPORAntiCollisionATRDigital Section 数字电路部分Select ApplicationAuthentication

40、& Access ControlControl &Arithm. Unit ROMCrypto Unit卡片天线 RAMRF-Interface 射频接口电路图3.10 Mifare 1非接触式IC智能射频卡功能组成图包括稳压等,最终输出供给卡片上的各电路。(2)数字电路部分:总共包含ATR模块,AntiCollision模块,Select Application模块,Authentication & Access Control 模块,控制及算术运算单元,RAM/ROM 单元,数据加密单元和EEPROM存储器及其接口电路八个部分。下面将详细介绍以下三个模块:aATR模块:Answer to

41、Request(“请求之应答”)当一张Mifare 1卡片处在卡片读卡器的天线的工作范围之内时,控制读卡器向卡片发出REQUEST ALL (或REQUEST STD) 命令后,卡片的ATR将启动,将卡片Block 0中的卡片类型(TagType)号共2个字节传送给读卡器,建立卡片与读卡器的第一步通信联络。如果不进行第一步的ATR工作,读卡器对卡片的其他操作将不会进行。卡片的类型(Tagtype)号共2个字节,可能为:0004HbSelect Application 模块:主要用于卡片的选择当卡片与读卡器完成了上述步骤后,控制的读卡器要想对卡片进行读,写操作,则必须对卡片进行“Select”

42、操作。以使卡片真正地被选中。被选中的卡片将卡片上存储在Block 0中的卡片的容量“SIZE”字节传送给读卡器。当读卡器收到这一字节后,就可以明确对卡片进行进一步的操作了。读写器收到的“SIZE” 字节可能为:88Hc Authentication & Access Control 模块:认证及存取控制模块在确认已经选择了一张卡片时,程序员对卡片进行读写操作之前,必须对卡片上已经设置的密码进行认证,如果匹配,则允许进一步的Read/Write操作。Mifare 1卡片上有16个扇区,每个扇区都可分别设置各自的密码,互不干涉。2.Mifare 1卡片的存储结构: Mifare 1卡片的存储容量为

43、8192 BIT * 1位字长(即1K *8位字长),采用EEPROM作为存储介质,整个结构划分为16个扇区,编为扇区015。每个扇区有4个块,分别为块0,块1,块2和块3,每个块有16个字节。如下图(3.11)所示:扇区0块 0(厂商标志代码)块 1块 2块 3(A密码+存取控制+B密码)扇区1Block 0Block 1Block 2Block 3(A密码+存取控制+B密码)。扇区15。Block 0Block 1Block 2块 3(A密码+存取控制+B密码)图 3.11 存储器结构图每个扇区的块3(即第四块) 包含了该扇区的密码A(6个字节)、存取控制(4个字节)、密码B(6个字节),

44、是一个特殊的块。其余三个块是一般的数据块。但扇区0的块0是特殊的,是厂商代码,已固化,不可改写。其中:第04个字节为卡片的序列号,第5个字节为序列号的校验码;第6个字节为卡片的容量“SIZE”字节;第7,8个字节为卡片的类型号字节,即Tagtype字节;其他字节由厂商另加定义。Mifare 1 卡片的扇区0中的块0(Block 0)存储的16个字节的内容可能为:420A7E3937H。(二)MCM读写模块的硬件内核寄存器描述MCU是通过对MCM 内核特殊的内存寄存器的读写来控制MCM的。这些寄存器位于MCM中的ASIC(特殊应用IC)的内部。共有16个寄存器可存取。在对MCM进行读/写操作时,

45、各寄存器担负着不同的功能和作用,并且不是所有的寄存器都是可写或可读的,即有些寄存器只能读而不能写,有些则反之。读取MCM,一般是指向Mifare 1卡请求。MCM实际上是MCU与非接触式IC智能(射频)卡之间信息(数据)交换的“中间人”。任何读取卡片上的数据或写进卡片上的数据均必须通过MCM来传递。写MCM意味着去控制MCM,例如,送一些类型的指令给它。MCM中ASIC内核特殊寄存器一览表如表(3.3)所示。寄存器名地址读(READ)写(WRITE)DATA00H 0READ-BYTEWRITE-BYTESTACON01H 1DV TE PE CE BE AE - -SOR RFS - - 1

46、 1 NRF ACENABLE02H 2N/A1 PR CE CR - - - -BCNTS03H 3N/ABIT-COUNT-SENDBCNTR04H 4N/ABIT-COUNT-RECEIVEBAUDRATE05H 5N/A- - - - 1 1 1 BRTOC06H 6N/ATIMEOUT-COUNTERMODE07H 7N/A 1 1 0 0 0 P2 P1 P0 P0CRCDATA08H 8CRC-BYTE-READCRC-BYTE-WRITECRCSTACON09H 9CV - - - - - - CZC8 - - - - - - CRKEYDATA0AH 10N/AKEY-BYT

47、E-WRITEKEYSTACON0BH 11- - - - - - - -AL 0 - - - - KS1 KS0KEYADDR0CH 12N/AAL AB A5 A4 A3 A2 A1 A00DH 13 RCODE0EH 14N/A- - - - 0 0 RC1 RC00FH 15 表3.3 ASIC内核特殊寄存器一览表下面将详细的介绍几种寄存器:aDATA 寄存器,地址:00H任何传递到MIFARE 1卡的数据或来自MIFRAE 1卡的数据都必须分别地被写入DATA寄存器或从DATA寄存器中读出。例如,MCU向卡片写数据Xi,则Xi必须首先被写入到 DATA寄存器中,然后MCM与Mifar

48、e 1 卡片进行通信,由卡片上的ASIC将DATA寄存器中的数据读取并存放在指定的卡片上的存储器中,从而完成 MCU向MIFRAE 1卡片写数据的过程。 反之亦然。DATA寄存器中有一个16 BYTE的FIFO(先进先出)队列寄存器。 数据写到DATA寄存器后,被存放在这个16 BYTE的FIFO(先进先出)队列寄存器中, 等待向卡片上或MCU传送。如要进行传送DATA寄存器中数据, 则首先必须先设定要传输多少位或多少字节, 即必须对BCNTS寄存器进行有效的正确设置,以确定有多少字节将要被传送。当卡片上的数据流接收结束或没有被接收时,STACON寄存器中的DV标志被置位“1”。如果设置了DV

49、,则STACON寄存器中的出错位将被设置。如果没有相关的出错位被设置,则FIFO寄存器中的数据将被假设为正确,则可以被读出。bSTACON 寄存器,地址:01H SATCON是STATUS CONTROL (状态控制)的缩写,是一个状态控制寄存器。通过将数据写到STACON寄存器中来对MCM进行状态控制。详见下表(3.4)所示:位名名称功能SORSoft Reset(软复位)“0”表示无作用“1” 复位MCM,自动的清除一切RFSRF-Select(RF选择)“0” RF单元0被选中激活“1” RF单元1被选中激活NRFNO RF(无RF)“0”将活动(激活)RF单元接上“1”将活动(激活)R

50、F单元关闭ACAnticollision(防重叠)“0”无作用“1”启动防重叠状态机表3.4 STACON寄存器中的位功能表这里,应该注意,当写数据到STACON寄存器时(即对STACON寄存器进行设置),在写数据到STACON寄存器的这一写周期中,RFS位的设置必须与RF单元相互一致。 读取 STACON寄存器,将告诉我们一系列的MCM及卡片的当前状况信息。以下是读取STACON寄存器后的一系列标志位表。Bit Name 位名Name名称Function功能DVData Valid(数据有效)卡上的数据传输到FIFO寄存器中DV位也可以在正确的认证操作完成后而被设置。TETimeout Error(溢出出错)一个定时记数器溢出发生。PEParity Error(奇/偶校验错)在通讯时有奇/偶校验错CECRC Error(CRC错)在通讯时有CRC错BEBitcount Error(位记数器出错)在BCNTR寄存器中有大量的指定位没有收到。AEAuthentication(认证出错)卡的认证应答码不正确或当执行一个取密码操作时指定的ROM KEY(只读存储器中的密码)不正确。表3.5 STACON寄存器中的标志位表在表(3.5)中,仅当DV位被设置有效时(即DV=“1”) ,T

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论