RFID应用系统软件_第1页
RFID应用系统软件_第2页
RFID应用系统软件_第3页
RFID应用系统软件_第4页
RFID应用系统软件_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

浙江科技学院本科毕业设计(论文) 30-RFID应用系统软件摘要:近年来,随着射频识别技术(RFID)的进步和成熟,这项技术的应用领域日益扩大,现已涉及到人们日常生活的各个方面,并将成为未来信息社会建设的一项基础技术。RFID在城市交通的应用也是一个重要的方面。城市公共交通在我国城市交通中占有重要的地位,是同我国城市居民生产、生活等活动密切相关的系统.如今在城市交通中,很多城市已经用IC卡代替了原有的纸制月票,杜绝了公交月票的假冒行为,缓解了高峰客流,提高了服务水平,为公司运营提供了科学的管理手段,社会反映良好。另一方面,通过公交IC卡可使城市公共交通实现智能化。城市公共交通实行智能化能够把握客流数据的变化规律,随着公交采用IC卡进行公交收费的普及,使得我们有了新的客流数据采集方式。本次探讨、设计的公交IC卡充值系统将具有售卡、充值等一系列功能。以单片机为控制器的IC卡读写器可以实现制卡、售卡、自动收费等功能,具有安全、实用、方便、快捷、可靠性高的特点,解决了城市公共交通服务行业既频繁又琐碎的收费管理问题。关键词:RFID;城市公交;读卡器Abstract:Inrecentyears,withtheprogressandmatureoftheradiofrequencyidentification(RFID)Technology,theapplicationofthistechnologyinthefieldareexpanding.Peoplehavebeeninvolvedinallaspectsofdailylife,andwillbecomeatechnicalbasisofthefuturebuildingoftheinformationsociety.Theapplicationintheurbanpublictransportisalsooneoftheimportantaspects.UrbanpublictransportincitytrafficoccupyanimportantpositionofChina'surbanresidentsisthesameproduction,lifeactivitiescloselyrelatedtothesystem.Nowinurbantraffic,ManycitiesalreadyuseICcardsinsteadoftheoriginalpaperpass,stopthetransitofcounterfeittickets,easingthepeakpassengerflow,improvethelevelofservice,theoperationofthecompanyandprovidesascientificmeansofmanagement,reflectthesocialgood.Ontheotherhand,urbanpublictransportcanintelligentbybusICcard.Theintelligenturbanpublictransportimplementcangraspthelawofthechangesdataflow.WiththeuniversaluseintheurbanpublictransportICcardssystem,wehaveanewacquisitionmodeofthedataflow.ThisdesignofpublictransportICcardrechargingsystemhasaseriesfunction.MicroprocessorcontrollerICCardReadercardsystemcanbeachieved,automaticcharges,andotherfunctions,issafe,practicalandconvenient,fast,highreliability.Itsolvestheproblemofthefrequentlytrivialurbanpublictransportchargesmanagement.Keywords:RFID;Urbanpublictransport;reader1绪论近年来,随着射频识别技术的进步和成熟,这项技术的应用领域日益扩大,现已涉及到人们日常生活的各个方面,并将成为未来信息社会建设的一项基础技术。RFID典型应用包括:在物流领域用于仓库管理、生产线自动化、日用品销售;在交通运输领域用于集装箱与包裹管理、高速公路收费与停车收费;在农牧渔业用于羊群、鱼类、水果等的管理以及宠物、野生动物跟踪;在医疗行业用于药品生产、病人看护、医疗垃圾跟踪;在制造业用于零部件与库存的可视化管理;RFID还可以应用于图书与文档管理、门禁管理、定位与物体跟踪、环境感知和支票防伪等多种应用领域。城市公共交通在我国城市交通中占有重要的地位,是同我国城市居民生产、生活等活动密切相关的系统.如今在城市交通中,很多城市已经用IC卡代替了原有的纸制月票,杜绝了公交月票的假冒行为,缓解了高峰客流,提高了服务水平,为公司运营提供了科学的管理手段,社会反映良好。以单片机为控制器的IC卡读写器可以实现制卡、售卡、自动收费等功能,具有安全、实用、方便、快捷、可靠性高的特点,解决了城市公共交通服务行业既频繁又琐碎的收费管理问题。另一方面,通过公交IC卡使城市公共交通实现智能化。城市公共交通实行智能化能够把握客流数据的变化规律,随着公交采用IC卡进行公交收费的普及,使得我们有了新的客流数据采集方式。与人工调查相比,利用IC卡收费系统进行客流数据采集的投入小得多,几乎不需要额外成本,并且可以提供大量详细、准确的动态数据,对数据进行进一步挖掘也更容易。因此公交IC卡系统对城市公交以及公交的智能化调度、线路的开辟、优化、站点的设置等都具有极其重要的意义。基于上述原因,设计一款以射频识别为核心技术的公交收费系统将给城市公交带来长期的效益。本次探讨、设计的应用系统将具有售卡、充值等一系列功能。2系统总体设计介绍2.1系统功能介绍将RFID技术应用到公交充值系统中,实现公交充值系统的以下功能。制卡制卡功能专门用于对卡片进行初始化,卡片在正式投入使用前必须经过初始化,初始化的工作就是对卡片内的空间按照规定进行化分,然后将密钥、存取权限写入卡内。[1]售卡充值乘客可到车站的售卡充值系统中办理购卡、充值手续。该系统现场为用户的IC卡写入充值金额,并将用户信息输入管理系统数据库中保存。退卡、挂失、解挂退卡:删除数据库中该用户的记录,收回旧卡。旧卡经过数据清理可实现再利用。挂失:将原卡进行备注,列入黑名单。用户可重新办理新卡,并将旧卡中的余额写入新卡中,减少用户损失。解挂:可重新使卡有效。信息管理通过上位机软件可查看数据库中的信息,获息用户相关信息。2.2RFID简介2.2.1RFID系统组成最基本的RFID系统由三部分组成:标签(Tag,即非接触式IC卡):由耦合元件及芯片组成,标签含有内置天线,用于和射频天线间进行通信。读卡器:读取(在读写卡中还可以写入)标签信息的设备。天线:在标签和读取器间传递射频信号。[2]2.2.2RFID通讯原理系统的基本工作流程是:读卡器通过发射天线发送一定频率的射频信号,卡片内有一个LC串联谐振电路,其频率与读卡器发射的频率相同,在电磁波的激励下,LC谐振电路产生共振,从而使电容内有了电荷,在这个电容的另一端,接有一个单向导通的电子泵,将电容内的电荷送到另一个电容内储存,当所积累的电荷达到2V时,此电容可做为电源为其它电路提供工作电压。因此当射频卡进入发射天线工作区域时产生感应电流,射频卡获得能量被激活;射频卡将自身编码等信息通过卡内置发送天线发送出去;系统接收天线接收到从射频卡发送来的载波信号,经天线调节器传送到读写器,读卡器对接收的信号进行解调和解码然后送到后台主系统进行相关处理;主系统根据逻辑运算判断该卡的合法性,针对不同的设定做出相应的处理和控制,发出指令信号控制执行机构动作。2.2.3非接触式IC卡的优点与接触式IC卡相比较,非接触式IC卡具有以下优点:可靠性高非接触式IC卡与读写器之间无机械接触,避免了由于接触读写而产生的各种故障。例如:

由于粗暴插卡,非卡外物插入,灰尘或油污导致接触不良造成的故障。此外,非接触式卡表面无裸露芯片,无须担心芯片脱落,静电击穿,弯曲损坏等问题,既便于卡片印刷,又提高了卡片的使用可靠性。操作方便由于非接触通讯,读写器在10CM范围内就可以对卡片操作,所以不必插拨卡,非常方便用户使用。非接触式卡使用时没有方向性,卡片可以在任意方向掠过读写器表面,既可完成操作,这大大提高了每次使用的速度。防冲突非接触式卡中有快速防冲突机制,能防止卡片之间出现数据干扰,因此,读写器可以"同时"处理多张非接触式IC卡。这提高了应用的并行性,无形中提高系统工作速度。可以适合于多种应用非接触式卡的序列号是唯一的,制造厂家在产品出厂前已将此序列号固化,不可再更改。非接触式卡与读写器之间采用双向验证机制,即读写器验证IC卡的合法性,同时IC卡也验证读写器的合法性。

非接触式卡在处理前要与读写器之间进行三次相互认证,而且在通讯过程中所有的数据都加密。此外,卡中各个扇区都有自己的操作密码和访问条件。

接触式卡的存储器结构特点使它一卡多用,能运用于不同系统,用户可根据不同的应用设定不同的密码和访问条件。加密性能好非接触式IC卡由IC芯片,感应天线组成,并完全密封在一个标准PVC卡片中,无外露部分。非接触式IC卡的读写过程,通常由非接触型IC卡与读写器之间通过无线电波来完成读写操作。

非接触型IC卡本身是无源体,当读写器对卡进行读写操作时,读写器发出的信号由两部分叠加组成:一部分是电源信号,该信号由卡接收后,与其本身的L/C产生谐振,产生一个瞬间能量来供给芯片工作。另一部分则是结合数据信号,指挥芯片完成数据、修改、存储等,并返回给读写器。由非接触式IC卡所形成的读写系统,无论是硬件结构,还是操作过程都得到了很大的简化,同时借助于先进的管理软件,可脱机的操作方式,都使数据读写过程更为简单。

2.2.4射频卡的标准及分类目前生产RFID产品的很多公司都采用自己的标准,国际上还没有统一的标准。目前,可供射频卡使用的几种标准有ISO10536、ISO14443、ISO15693和ISO18OOO。应用最多的是ISO14443和ISO15693,这两个标准都由物理特性、射频功率和信号接口、初始化和反碰撞以及传输协议四部分组成。按照不同得方式,射频卡有以下几种分类:按供电方式分为有源卡和无源卡。有源是指卡内有电池提供电源,其作用距离较远,但寿命有限、体积较大、成本高,且不适合在恶劣环境下工作;无源卡内无电池,它利用波束供电技术将接收到的射频能量转化为直流电源为卡内电路供电,其作用距离相对有源卡短,但寿命长且对工作环境要求不高。按载波频率分为低频射频卡、中频射频卡和高频射频卡。低频系统主要用于短距离、低成本的应用中,如多数的门禁控制、校园卡、动物监管、货物跟踪等。中频系统用于门禁控制和需传送大量数据的应用系统;高频系统应用于需要较长的读写距离和高读写速度的场合,其天线波束方向较窄且价格较高,在火车监控、高速公路收费等系统中应用。按调制方式的不同可分为主动式和被动式。主动式射频卡用自身的射频能量主动地发送数据给读写器;被动式射频卡使用调制散射方式发射数据,该类技术适合用在门禁或交通应用中,因为读卡器可以确保只激活一定范围之内的射频卡。按作用距离可分为密耦合卡(作用距离小于1厘米)、近耦合卡(作用距离小于15厘米)、疏耦合卡(作用距离约1米)和远距离卡(作用距离从1米到10米,甚至更远)。按芯片分为只读卡、读写卡和CPU卡。[2]2.2.5RFID技术发展的瓶颈隐私权问题失业问题国际标准的制定与推行成本的降低技术的突破2.3系统硬件结构系统的上位机主要负责传输读写命令给下位机,进行用户数据信息的统一管理,并实现良好的人机交互。系统的下位机主要负责和读卡器之间进行数据传输,再通过读卡器和IC卡进行数据交换,并将响应数据传回给上位机。图1系统硬件结构图图1系统硬件结构图图1为系统的硬件结构图。系统的IC卡采用Mifare标准IC卡MF1ICS50,读卡器采用周立功内置PHILIPS高集成ISO14443A读卡芯片MFRC500的ZLG500AT读卡模块。系统的MCU采用MICROCHIP公司的PIC系列单片机,采用内部的USART模块与读卡器进行通信,通过RC500芯片与IC卡进行无线数据收发,并通过RS485与计算机相连接。另外,下位机还带有显示功能。上位机软件通过ACCESS数据库对用户数据信息进行管理。2.4上位机控制界面设计采用VisualC++编写上位机软件程序,运用MFC中的CRecordSet类与Access数据库相连接,行进数据交换。界面采用树和列表的视图方式,实现良好的人机交互功能。上位机与下位机的通信采用485通信,运用VC中的MSCOMM控件来控制计算机的串口数据的接收和发送。2.5下位机软件流程下位机的工作流程为:PIC单片机通过控制ZLG500AT读卡模块中的MFRC500读卡芯片,与Mifare标准IC卡进行数据通信,并通过RS485与计算机交换数据信息的。首先,单片机上电后对各模块进行初始化,然后接收上位机的指令,根据不同的指令,对卡实行不同的数据操作。下图为软件流程图:图2系统软件流程图图2系统软件流程图3PIC16F877单片机3.1PIC16F877系统硬件概况3.1.1内核及外围模块图3PIC图3PIC16F877内核与外围模块3.1.2内核结构的特点采用哈佛结构程序空间8K字节,共35条指令512字节RAM,使用寄存器文档的概念8层硬件堆栈指令采用流水线机制,指令顺序执行时只需一个指令周期,程序分支跳转需2个字节具有独立看门狗3.1.3存储器寻址方式数据寄存器寻址:直接寻址:由于在指令编码中只有最低7位数据代表了寻址操作数地址,而有512字节RAM,因此需要利用STATUS中的RP1:RP0来实现高2位的寻址,即划分BANK区。间接寻址:利用特殊寄存器FSR和STATUS的第7位IRP来表示9位地址,用INDF寄存器来实现间接寻址。即对INDF的任何操作,操作对象都被转到FSR+IRP构成的9位地址处的寄存器。程序存储器寻址:直接寻址:由于在指令编码中只有11位数据代表了跳转的目的地址,而程序空间有8K字节,因此需要利用PCLATH的3:4位来实现高2位的寻址,即分页的概念。当执行跳转指令时,会自动把两者结合送入PC中,实现程序的正确跳转。间接寻址:由PCLATH的低5位和PCL来表示13位地址。当指令的操作数为PCL时,那么当指令把结果写回PCL的同时,内核会自动把PCLATH的低5位同步写入PCH中,实现程序的正确跳转。[3]3.1.4中断机制PIC系列单片机只有一个中断入口(004H),所有的中断都通过该入口进入中断服务子程序,至于是哪一个中断源,只有在进入中断服务子程序后查询中断标志才能确认。该单片机没规定中断的优先级,也没有用于设定中断优先级的寄存器,中断的优先级是由于中断服务子程序中断查询中断标志的顺序确定的。CPU响应一个中断并进入中断服务程序后,全局中断允许位GIE被自动清零,CPU在此期间不响应其它中断,也不能形成中断嵌套。中断大致可以分为两类:一类是由中断控制器INTCON直接控制的中断,包括外部引脚中断INT的RB口电平变化中断以及定时器TMRO溢出中断,它们的中断允许位和中断标志都在INTCON寄存器中。引脚中断INT和定时器TMRO溢出中断与其它微处理器相同。RB口电平变化中断是PIC单片机特有的中断,当把RB口高4位I/O口线设置为输入时,只要这4位I/O口线上的电平发生变化就会引起中断;另一类是外围接口中断,包括定时器TMR1溢出中断、TMR溢出或匹配中断、同步串行口中断、异步串行口中断、并行从动口中断、A/D转换完成中断和CCP(Capture/Compare/PWM)中断等。这些中断的允许位分别在PIE1和PIE2寄存器,而中断标志则分别在PIR1和PIR2中。图4PIC图4PIC16F877中断逻辑图3.2USART通信模块通用同步异步接收发送模块(USART)是二线制串行通信接口,它可以被定义如下三种工作方式:全双工异步方式、半双工同步主控方式、半双工同步从动方式。USART功能模块含有两个8位可读/写的状态/控制寄存器,它们是发送状态/控制寄存器TXSTA和接收状态/控制寄存器RCSTA。USART带有一个8位波特率发生器BRG(BaudRatoGenerator),这个BRG支持USART的同步和异步工作方式。用SPBRG寄存器控制一个独立的8位定时器的周期。在异步方式下,发送状态/控制寄存器TXSTA的BRGH位也被用来控制波特率。在发送或接收数据时,通过查询发送/接收中断标志位即可判断是否发送完一个数据/接收到一个数据。发送/接收中断标地不需要也不用软件复位。在异步串行发送的过程中,只要TXREG寄存器为空,中断标志TXIF就置位。因此,TXIF为1并不是发送完毕的标志,但仍可以用TXIF标志来判断。因此当TXREG为空时,将数据送入后,数据会保留在TXREG寄存器中,直到前一个数据从发送移位寄存器中移出,即前一个数据发送完。图5USART发送模块图5USART发送模块图6USART接收模块图6USART接收模块本系统中利用USART模块的异步通信功能,通过MAX485芯片实现和上位机的通信。为了把RC6和RC7分别设置成串行通信接口的发送/时钟(TX/CK)线和接收/数据(TX/DT)线,必须首先把SPEN位(TCSTAT的RD7)和方向寄存器TRISC的D7:D6置1。3.3定时器3.3.1定时器0Timer0是一个8位定时器,只要程序在运行,TMR0的递增计数就不会停止,TMR0寄存器用来存放计时值。Timer0的时钟源选择是由0PTl0N_REG寄存器中的T0CS位来决定的,将此位设为0表示使用内部的时钟源,设为1则使用外部时钟。使用内部时钟时,定时器会每一个指令周期增量一次,也就是时钟频率为Fosc/4(在不使用顿分频器的情况下)。Timer0有一个预定标器(也叫预分频器),通过预分频器的使用,可以使得定时器可计算的时间范围增加不少。这个预分频器也可分配给WDT作为后分频器使用,至于预分频器是给WDT还是Timer0使用,则是由0PTION_REG寄存器中的PSA位来决定的。当PSA位为0时,表示作为Timer0的预分频器:当PSA位为1时,表示作为WDT的后分频器。这个预分频器的比例由OPTlON_REG寄存器中PS2、PSl与PS0三个标志位来设置。3.3.2定时器116位计数宽度。可工作在同步定时器方式,同步计数器方式,异步计数器方式。Timer1的外部时钟输入引脚有2个,分别是RC0/T10SO/T1CKI和RCl/T1OSI/CCP2引脚。在单片机内部,这2个引脚之间内置了一个振荡器电路。在进入休眠模式后,振荡器依然会继续输出,因此可以继续Timer1的累计动作。和CCP模块功能结合时,必须工作于同步模式。3.3.3定时器28位计数宽度。有一个前置预分频器和后置预分频器。Timer2另外一个特点就是带有一个PR2寄存器,称之为周期寄存器,这个寄存器可以被填入适当的值。当TMR2寄存器的值增量到与PB2寄存器的值相等时,便会产生Timer2的中断。可于CCP模块结合,产生PWM。4Mifare标准IC卡MF1ICS504.1Mifare标准IC卡MF1ICS50简介4.1.1主要指标容量为8K位EEPROM分为16个扇区,每个扇区为4块,每块16个字节,以块为存取单位每个扇区有独立的一组密码及访问控制每张卡有唯一序列号,为32位具有防冲突机制,支持多卡操作无电源,自带天线,内含加密控制逻辑和通讯逻辑电路数据保存期为10年,可改写10万次,读无限次工作频率:13.56MHZ通信速率:106KBPS[4]图7图7MF1ICS50示意图4.1.2结构组成RF接口:调制器解调器,整流器,时钟再生器,上电复位,电压调整器反冲突:在同一区域中的卡可以被顺序选中执行操作确认:确认过程确保只有通过每个段的两个密钥才能对这个段进行任何存储器操作控制和算术逻辑单元:值以特殊的冗余格式保存而且可以增加和减少EEPROM接口Crypto单元:Mifare经典系列经区域验证的CRYPTO1流密码确保数据交换的保密性EEPROM:有1K字节分成16个区每区又分成4段每一段中有16个字节每个区的最后一个段叫尾部它包括两个密钥和这个区中每一个段的访问条件。图8USART接收模块图8USART接收模块4.2EEPROM存储器4.2.1存储结构M1卡分为16个扇区,每个扇区4段(段0、段1、段2、段3),每段16字节。第0扇区的段0,它用于存放厂商代码,已经固化,不可更改。每个扇区的段0、段1、段2为数据段,可用于存贮数据。数据段可作两种应用:一般的数据保存,可以进行读、写操作;数据值,可以进行初始化值、加值、减值、读值操作。每个扇区的段3为控制块,包括了密码A、存取控制、密码B。图9卡捏存储结构图图9卡捏存储结构图4.2.2存储器访问每个扇区的密码和存取控制都是独立的,可以根据实际需要设定各自的密码及存取控制。每个数据段和区尾的访问条件由3个位来定义它们以取反和不取反的形式保存在指定区的区尾中。存取控制为4个字节,共32位。扇区中的每个块(包括数据块和控制块)的存取条件是由密码和存取控制共同决定的,在存取控制中每个块都有相应的三个控制位,定义如下:块0:C10C20C块1:C11C21C块2:C12C22C块3:C13C23C三个控制位以正和反两种形式存在于存取控制字节中。密钥和访问位的读写访问可分为从不、密钥A、密钥B或密钥A|B。详细的数据段及尾区的访问条件如下表所示。根据系统需要,各访问权限设定为:段3:011,段2-0:110。表1尾区的访问条件列表表1尾区的访问条件列表表2数据段的访问条件列表表2数据段的访问条件列表4.3流程示意图10图10IC卡工作流程图请求标准所有(request): 当有卡片进入读写器的操作范围时,读写器以特定的协议与它通讯,从而确定该卡是否为M1射频卡,即验证卡片的卡型;若没有则一直处于等待状态。反冲突环(Anticollision):反冲突环可以读出卡的序列号。如果在RWD的工作范围内有几张卡RWD,通过唯一的序列号来区别它们,而且每次选择其中一张卡进行下一步操作,没有被选中的卡会回到准备模式等待新的请求命令。选择卡(SelectTag):RWD使用选择卡命令选中其中一张卡进行确认和存储器相关操作。卡返回AnswerToSelect(ATS)码(=08h),RWD通过ATS可以确定被选中的卡的类型。3轮确认(3PassAuthentication):选中了一张卡之后,RWD指出了接着要访问的存储器位置,然后使用相应的密钥进行3轮确认,在成功确认后所有的存储器操作都是保密的。[4]存储器操作:确认之后可以执行以下的任何操作:读存储器段写存储器段减存储器段的内容并将结果保存在临时的内部数据寄存器中增加存储器段的内容并将结果保存在数据寄存器中恢复将存储器段的内容移到数据寄存器传送将临时内部数据寄存器的内容写到值存储器段中4.4保密性这个卡一个特殊的要点是保密,防止欺骗。需要通过3轮相互询问和响应确认(ISO/IECDIS9798-2),数据保密和报文确认检查防止系统受到任何干扰,RF信道的数据加密,有重放攻击保护,使购票应用更有吸引力。每个设备有唯一的序列号,且该序列号不可修改,保证了每张卡都是唯一的。每个区有两套独立的密钥,支持带密钥层次的多应用,在运输过程中访问EEPROM有传输密钥保护。4.5数据存储地址根据系统需要,将用户账号、卡类、剩余金额、车载机号及最后刷卡时间等数据存储到如下地址:变量长度地址账号3个字节30(0,1,2)卡类1个字节30(3)金额2个字节29(0,1)车载机号2个字节29(2,3)时间5个字节29(4年,5月,6日,7时,8分)表3系统数据存储地址表3系统数据存储地址5ZLG500A读卡模块5.1模块特性概述ZLG500AT读卡模块内置最新PHILIPS高集成ISO14443A读卡芯片MFRC500,能读写RC500内EEPROM。采用三线SPI接口(三线分别为片选SS时钟线SCLK和数据线SDATA),能与任何MCU接口。模块采用四层电路板设计,双面表贴,EMC性能优良。无源蜂鸣器信号输出口能用软件控制输出频率及持续时间。[5]下图为天线一体化的读卡模块:图11图11天线一体化模块5.2MFRC500芯片5.2.1概述MFRC500是应用于13.56MHz非接触式通信中高集成读卡IC系列中的一员。该读卡IC系列利用了先进的调制和解调概念,完全集成了在13.56MHz下所有类型的被动非接触式通信方式和协议。MFRC500支持ISO14443A所有的层。内部的发送器部分不需要增加有源电路就能够直接驱动近操作距离的天线可达100mm。接收器部分提供一个坚固而有效的解调和解码电路,用ISO14443A兼容的应答器信号。数字部分处理ISO14443A帧和错误检测(奇偶&CRC)。此外,它还支持快速CRYPTO1加密算法用于验证MIFARE系列产品。方便的并行接口可直接连接到任何8位微处理器,这样给读卡器/终端的设计提供了极大的灵活性。5.2.2内部结构图图12图12RC500内部结构图并行微控制器接口自动检测连接的8位并行接口的类型。它包含一个易用的双向FIFO缓冲区和一个可配置的中断输出。这样就为连接各种MCU提供了很大的灵活性。即使使用非常低成本的器件也能满足高速非接触式通信的要求。数据处理部分执行数据的并行-串行转换。它支持的帧包括CRC和奇偶校验。它以完全透明的模式进行操作,因而支持ISO14443A的所有层。状态和控制部分允许对器件进行配置以适应环境的影响并使性能调节到最佳状态。当与MIFAREStandard和MIFARE产品通信时,使用高速CRYPTO1流密码单元和一个可靠的非易失性密匙存储器。模拟电路包含了一个具有非常低阻抗桥驱动器输出的发送部分。这使得最大操作距离可达100mm。接收器可以检测到并解码非常弱的应答信号。由于采用了非常先进的技术,接收器已不再是限制操作距离的因素了。[6]5.3串行接口5.3.1接口原理图13图13ZLG500AT与PIC16F877的接口图示接口空闲时主机SS=1,SCLK=0,SDATA=0,从机SS=1,SCLK=1,SDATA=0。其中SS和DATA是双向的,而时钟线SCLK是单向的,即时钟只能由主控制器产生,该信号必须严格遵守时序规范,否则将出现通信错误,读卡模块必须释放该线。SS为数据发送使能,若一方有数据要发送给另一方,则该方控制SS线为低,并在发送结束后将该线置高,接收数据方不得控制该线。双方必须遵守通信协议,不得同时控制该线。SDATA为数据线,由数据发送端控制,数据接收端必须释放该线。该线在一次传输开始时还同时作为数据接收端的响应信号。5.3.2时序图图14图14ZLG500AT与PIC16F877的接口图示t1—数据接收器响应至MCU产生第一个SCLK上升沿的时间t2—两个字节传输之间,SCLK低电平的持续时间t3—传输最后一个字节的最后一位的SCLK信号的上升沿至SS上升沿的时间tH—SCLK信号的高电平持续时间tL—SCLK信号的低电平持续时间5.3.3数据读写写数据:除响应信号外,三根线上的信号全由MCU产生。MCU在SS线上产生一个下降沿。发出请求数据传输的信号,等待ZLG500响应后,本次数据传输开始,ZLG500将在SCLK为高时读取SDATA线上的数据。传输完毕后,MCU应在SS线上产生一个上升沿结束本次传输。传输过程中,必须严格遵守以下时间要求:t1>7us,t2>14us,tH>7us,tL>9us,t3=任意。读数据:响应信号、SCLK信号由MCU产生,SS信号和SDATA信号由ZLG500产生。ZLG500会在SS线上产生一个下降沿,发出请求数据传输的信号,等待MCU响应后,本次数据传输开始,MCU将在SCLK为高时读取SDATA线上的数据。传输完毕后,ZLG500将会在SS线上产生一个上升沿结束本次传输。传输过程中必须严格遵守以下时间要求:t1>14us,t2>16us,tH>6us,tL>6us,t3>9us。5.4数据传输协议5.4.1协议描述通信必须先由MCU发送命令和数据给ZLG500,ZLG500执行命令完毕后,将命令执行的状态和响应数据发回MCU。开始通信前,收发双方必须处于空闲状态。首先MCU发出SS下降沿信号,然后等待ZLG500在SDATA线上的响应。若在50ms内未检测到此响应,则退出本次传输。若ZLG500正确响应,则MCU可将命令和数据发送出去。然后MCU等待ZLG500发回的状态和响应数据。也即等待SS线上的下降沿的产生,此时的MCU可用软件查询,也可用外部中断。若在500ms内未检测到此信号,则退出本次传输。若正确检测到SS信号则可接收状态和数据5.4.2数据块格式MCU->ZLG500命令模式:SeqNr:1Byte数据交换包的序号Command:1Byte命令字符Len:1Byte数据的长度Data[]:LenByte数据字节BCC:1Byte的BCC校验ZLG500->MCU响应模式:SeqNr:1Byte数据交换包的序号Status:1Byte状态字符Len:1Byte数据的长度Data[]:LenByte数据字节BCC:1Byte的BCC校验612864液晶模块6.18位并行连接时序图模块有并行和串行两种连接方法,当PSB脚接高电时(模块背面S/P的短路电阻在“P”侧),模块将进入并行传输模式;在并行传输模式下,可由指令位(DLFLAG)来选择8-BIT或4-BIT接口,主控制系统将配合(RS,RW,E,DB0..DB7)来完成传输动作。系统中采用8位并行连接的方式。图15MCU写数据到模块的时序图图15MCU写数据到模块的时序图6.2汉字显示坐标文本显示RAM提供8个×4行的汉字空间,显示中文字形时,将两字节编码写入DDRAMK,范围为A1A0H-F7FFH(GB码)或A140H-D75FH(BIG5码)的编码。表4汉字显示坐标表4汉字显示坐标6.3几个主要的功能指令代码清除显示:显示状态开/关:设定DDRAM位址:读取忙碌状态:写数据到RAM:7上位机控制界面设计7.1上位机控制主界面主界面采用树和列表的视图方式,左边是树,显示数据库中对应的表;右边是数据列表,显示用户信息:卡号、姓名、证件号、办卡日期、卡类、金额、备注,通过选择左边树的某一项即能在右边的列表模式中显示该项的相关信息;最上面是工具栏,包括初始化、办卡、充值、挂失、解挂、查询、退卡等功能按钮。通过该工具栏可进入其它功能子界面,实现功能需要。图16上位机图16上位机控制主界面7.2单片机与计算机的通讯使用MSCOMM控件控制计算机的串口,实现上位机与下位机的通信。其传输协议为:起始字节+命令字节/状态字节+数据长度+数据。上位机传送IC卡读写指令和相关数据给下位机,下位机执行指令,并将IC卡读写状态信息传回给上位机,上位机将传回的数据进行处理,保存到数据库中。[7]串口初始化程序如下:m_Com1.SetCommPort(1); //选择串口1 m_Com1.SetInBufferSize(30); //设置缓冲大小 m_Com1.SetOutBufferSize(30); m_Com1.SetInputMode(1); //二进制传输 m_Com1.SetSettings("9600,n,8,1"); //设置波特率if(!m_Com1.GetPortOpen()) //打开串口 { m_Com1.SetPortOpen(true); }各指令的传输数据见下表:上位机命令发送数据接收数据命令执行成功命令执行失败初始化0xF0+Cmd_Initialize+0x04+账号和卡类 0xF0+OpRight+0x000xF0+WriteError/MissWrite/MissKey/MissData/MissCmd/CardNoReady+0x00办卡0xF0+Cmd_ReadCard+0x000xF0+OpRight+0x06+账号、卡类和金额0xF0+MissRead/MissKey/MissData/MissCmd/CardNoReady+0x000xF0+Cmd_WriteCard+0x02+金额0xF0+OpRight+0x000xF0+WriteError/MissWrite/MissKey/MissData/MissCmd/CardNoReady+0x00充值0xF0+Cmd_ReadCard+0x000xF0+OpRight+0x06+账号、卡类和金额0xF0+MissRead/MissKey/MissData/MissCmd/CardNoReady+0x000xF0+Cmd_WriteCard+0x02+金额0xF0+OpRight+0x000xF0+WriteError/MissWrite/MissKey/MissData/MissCmd/CardNoReady+0x00查询0xF0+Cmd_ReadCard+0x000xF0+OpRight+0x06+账号、卡类和金额0xF0+MissRead/MissKey/MissData/MissCmd/CardNoReady+0x00退卡0xF0+Cmd_ReadCard+0x000xF0+OpRight+0x06+账号、卡类和金额0xF0+MissRead/MissKey/MissData/MissCmd/CardNoReady+0x00表5上位机指令传输数据表5上位机指令传输数据7.3数据库几中常用的数据库接口。ODBC(OpenDataBaseConnectivity),MFCODBC(MicrosoftFoundationClassesODBC),DAO(DataAccessObject),OLEDB(ObjectLinkandEmbeddingDataBase),ADO(ActiveXDataObject)。ODBC(OpenDatabaseConnectivity开放数据库连接),提供了应用程序接口(API),使得任何一个数据库都可以通过ODBC驱动器与指定的DBMS相联。用户的程序就可以通过调用ODBC驱动管理器中相应的驱动程序达到管理数据库的目的。用MFCAppwizard(exe)创建一个数据库处理的SDI/MDI程序,只需在向导的第二步中选中“Databaseviewwithoutfilesupport”或“Databaseviewwithfilesupport”即可。[8]本系统使用Access数据库来保存用户数据资料。VC程序通过使用MFCODBC中的CRecordSet类与数据库建立联系,查看、编辑其中的数据记录。另外,使用CRecordSet类的成员变量m_strFilter、m_strSort还可以对表进行记录的查询和排序。数据库中保存的信息主要包括:卡号、姓名、证件号、办卡日期、卡类、金额、备注等。CRecordSet类的主要成员函数如下:Open(); //打开记录集AddNew(); //在表的末尾增加新记录Update(); //将新记录存入数据库MoveLast(); //将当前记录位置定位到最后一个记录MoveFirst(); //将当前记录位置定位到第一个记录MoveNext(); //将当前记录位置下移一个Edit(); //编辑当前记录Delete(); //删除当前记录7.4功能子界面设计点击最上方工具栏中的按钮,即可进入其它功能子界面,实现初始化、办卡、充值、挂失、解挂、查询、退卡等服务功能。其中办卡和挂失的界面如下图:图17上位机控制功能子界面图17上位机控制功能子界面另外,为提高系统的安全性,在进入系统前,设置了一个系统登陆对话框。其界面如下图所示:图18系统软件登陆框图18系统软件登陆框8系统的调试8.1单片机和读卡器通信部分的调试8.1.1调试过程连接电路及调试工具:连接PIC与ZLG500间的接口,连接PIC与ICD2的在线编程调试接口,连接ICD2与计算机的串口,连接+12V电源线。调试程序:打开MPLABIDEv7.5调试软件,打开软件工作区,配置系统数据,编译,链接,下载,调试。观察数据的收发状况。8.1.2调试结果实现了ZLG500与PIC单片机之间的正确通信,包括模块初始化,请求,防冲突,选择,密码验证,读数据,写数据,挂起,蜂鸣器、复位等命令,并能通过读卡器访问IC卡内部的存储器,实现数据存储的功能,在多张卡的情况下能实现防冲突的功能。8.1.3发现的问题在执行buzzer命令后,需要延时和蜂鸣时间相应的时间长度才能和ZLG500进行通信。因为ZLG芯片中的MCU是51,没有PWM,其驱动的蜂鸣器又是无源的,要靠振荡才会发出声音,所以在发出声音的时候,ZLG不接收其他指令,其内部程序不能执行其他服务程序。在以后的改进中,可用PIC直接控制蜂鸣器。8.2单片机和上位机通信部分的调试8.2.1调试过程编写单片机程序、上位机控制界面及数据库。连接电路及调试工具:连接PIC与ZLG500间的接口,连接PIC与ICD2的在线编程调试接口,连接ICD2与计算机的串口,连接+12V电源线。通过RS-232转RS-485接口连接单片机和上位机。调试程序:打开MPLABIDEv7.5调试软件,打开软件工作区,配置系统数据,编译,链接,下载,调试。观察数据的收发状况,实现系统功能。8.2.2调试结果实现公交充值系统的以下功能:初始化:制卡功能专门用于对卡(新卡或再利用的卡)进行初始化。卡片在正式投入使用前必须经过初始化,将密钥、存取权限及卡号写入卡内。办理新用户:登记用户信息,写金额到卡中的寄存器。充值:为IC卡写入充值金额。同时,数据库中更新数据。挂失:当用户遗失卡时,可通过此功能进行挂失。解挂:将已挂失的卡解除其挂失状态。查询:可查询卡内余额,及其它用户信息。退卡:用户退还卡,删除数据库中的相关信息。8.3系统调试 连接系统所有设备进行调试:连接PIC与ZLG500间的接口,连接PIC与液晶模块的接口,连接PIC与ICD2的在线编程调试接口,连接ICD2与计算机的串口,连接+12V电源线。通过RS-232转RS-485接口连接单片机和上位机。使液晶模块实现其相应的显示功能,完善整个系统功能。 最后,虽然本次设计的系统运行基本正常,但还需要很多的改进。8.4系统的后续设计方向由于在ZLG500控制蜂鸣器工作时,单片机不能和其进行数据通信,导致读写卡的效率降低,因此可改用PIC单片机直接控制蜂鸣器,以提高工作效率。或者可以脱离ZLG500,PIC直接与RC500读卡模块通信。本系统只完成了公交IC卡收费系统中的办卡充值系统的功能,在后续的工作上还须要设计车载收费系统以及数据采集系统。其中车载收费系统只须在现

温馨提示

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

评论

0/150

提交评论