RFID应用系统软件

更新时间:2024-03-26 00:57:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

浙江科技学院本科毕业设计(论文)

RFID应用系统软件

章 灵

(自动化与电气工程学院 指导教师:项 小 东)

摘要:近年来,随着射频识别技术(RFID)的进步和成熟,这项技术的应用领域日益扩大,现已涉及到人们日常生活的各个方面,并将成为未来信息社会建设的一项基础技术。RFID 在城市交通的应用也是一个重要的方面。城市公共交通在我国城市交通中占有重要的地位, 是同我国城市居民生产、生活等活动密切相关的系统.如今在城市交通中,很多城市已经用IC卡代替了原有的纸制月票,杜绝了公交月票的假冒行为,缓解了高峰客流,提高了服务水平,为公司运营提供了科学的管理手段,社会反映良好。另一方面,通过公交IC卡可使城市公共交通实现智能化。城市公共交通实行智能化能够把握客流数据的变化规律,随着公交采用IC 卡进行公交收费的普及,使得我们有了新的客流数据采集方式。

本次探讨、设计的公交IC卡充值系统将具有售卡、充值等一系列功能。以单片机为控制器的IC卡读写器可以实现制卡、售卡、自动收费等功能,具有安全、实用、方便、快捷、可靠性高的特点,解决了城市公共交通服务行业既频繁又琐碎的收费管理问题。 关键词:RFID;城市公交;读卡器

Abstract:In recent years, with the progress and mature of the radio frequency identification (RFID) Technology, the application of this technology in the field are expanding. People have been involved in all aspects of daily life, and will become a technical basis of the future building of the information society. The application in the urban public transport is also one of the important aspects. Urban public transport in city traffic occupy an important position of China's urban residents is the same production, life activities closely related to the system. Now in urban traffic, Many cities already use IC cards instead of the original paper pass, stop the transit of counterfeit tickets, easing the peak passenger flow, improve the level of service, the operation of the company and provides a scientific means of management, reflect the social good. On the other hand, urban public transport can intelligent by bus IC card. The intelligent urban public transport implement can grasp the law of the changes data flow. With the universal use in the urban public transport IC cards system, we have a new acquisition mode of the data flow.

This design of public transport IC card recharging system has a series function. Microprocessor controller IC Card Reader card system can be achieved, automatic charges, and other functions, is safe,

- 1 -

浙江科技学院本科毕业设计(论文)

practical and convenient, fast, high reliability. It solves the problem of the frequently trivial urban public transport charges management.

Keywords:RFID;Urban public transport;reader

1 绪 论

近年来,随着射频识别技术的进步和成熟,这项技术的应用领域日益扩大,现已涉及到人们日常生活的各个方面,并将成为未来信息社会建设的一项基础技术。RFID 典型应用包括:在物流领域用于仓库管理、生产线自动化、日用品销售;在交通运输领域用于集装箱与包裹管理、高速公路收费与停车收费;在农牧渔业用于羊群、鱼类、水果等的管理以及宠物、野生动物跟踪;在医疗行业用于药品生产、病人看护、医疗垃圾跟踪;在制造业用于零部件与库存的可视化管理;RFID 还可以应用于图书与文档管理、门禁管理、定位与物体跟踪、环境感知和支票防伪等多种应用领域。

城市公共交通在我国城市交通中占有重要的地位, 是同我国城市居民生产、生活等活动密切相关的系统.如今在城市交通中,很多城市已经用IC卡代替了原有的纸制月票,杜绝了公交月票的假冒行为,缓解了高峰客流,提高了服务水平,为公司运营提供了科学的管理手段,社会反映良好。以单片机为控制器的IC卡读写器可以实现制卡、售卡、自动收费等功能,具有安全、实用、方便、快捷、可靠性高的特点,解决了城市公共交通服务行业既频繁又琐碎的收费管理问题。

另一方面,通过公交IC卡使城市公共交通实现智能化。城市公共交通实行智能化能够把握客流数据的变化规律,随着公交采用IC 卡进行公交收费的普及,使得我们有了新的客流数据采集方式。与人工调查相比,利用IC 卡收费系统进行客流数据采集的投入小得多, 几乎不需要额外成本,并且可以提供大量详细、准确的动态数据, 对数据进行进一步挖掘也更容易。因此公交IC卡系统对城市公交以及公交的智能化调度、线路的开辟、优化、站点的设置等都具有极其重要的意义。

基于上述原因,设计一款以射频识别为核心技术的公交收费系统将给城市公交带来长期的效益。本次探讨、设计的应用系统将具有售卡、充值等一系列功能。

2 系统总体设计介绍

2.1 系统功能介绍

将RFID技术应用到公交充值系统中,实现公交充值系统的以下功能。 ? 制卡

制卡功能专门用于对卡片进行初始化,卡片在正式投入使用前必须经过初始化,初始化的工作就是对卡片内的空间按照规定进行化分,然后将密钥、存取权限写入卡内。[1]

- 2 -

浙江科技学院本科毕业设计(论文)

? 售卡充值

乘客可到车站的售卡充值系统中办理购卡、充值手续。该系统现场为用户的IC卡写入充值金额,并将用户信息输入管理系统数据库中保存。 ? 退卡、挂失、解挂

退卡:删除数据库中该用户的记录,收回旧卡。旧卡经过数据清理可实现再利用。

挂失:将原卡进行备注,列入黑名单。用户可重新办理新卡,并将旧卡中的余额写入新卡中,减少用户损失。

解挂:可重新使卡有效。 ? 信息管理

通过上位机软件可查看数据库中的信息,获息用户相关信息。 2.2 RFID简介 2.2.1 RFID系统组成

最基本的RFID系统由三部分组成:

1) 标签(Tag,即非接触式IC卡):由耦合元件及芯片组成,标签含有内置天线,用于和射

频天线间进行通信。

2) 读卡器:读取(在读写卡中还可以写入)标签信息的设备。 3) 天线:在标签和读取器间传递射频信号。[2] 2.2.2 RFID通讯原理

系统的基本工作流程是:读卡器通过发射天线发送一定频率的射频信号,卡片内有一个LC串联谐振电路,其频率与读卡器发射的频率相同,在电磁波的激励下,LC谐振电路产生共振,从而使电容内有了电荷,在这个电容的另一端,接有一个单向导通的电子泵,将电容内的电荷送到另一个电容内储存,当所积累的电荷达到2V时,此电容可做为电源为其它电路提供工作电压。因此当射频卡进入发射天线工作区域时产生感应电流,射频卡获得能量被激活;射频卡将自身编码等信息通过卡内置发送天线发送出去;系统接收天线接收到从射频卡发送来的载波信号,经天线调节器传送到读写器,读卡器对接收的信号进行解调和解码然后送到后台主系统进行相关处理;主系统根据逻辑运算判断该卡的合法性,针对不同的设定做出相应的处理和控制,发出指令信号控制执行机构动作。 2.2.3 非接触式IC卡的优点

与接触式IC卡相比较, 非接触式IC卡具有以下优点:

- 3 -

浙江科技学院本科毕业设计(论文)

1) 可靠性高

非接触式IC卡与读写器之间无机械接触,避免了由于接触读写而产生的各种故障。例如: 由于粗暴插卡,非卡外物插入,灰尘或油污导致接触不良造成的故障。此外,非接触式卡表面无裸露芯片,无须担心芯片脱落,静电击穿,弯曲损坏等问题,既便于卡片印刷,又提高了卡片的使用可靠性。

2) 操作方便

由于非接触通讯,读写器在10CM范围内就可以对卡片操作,所以不必插拨卡,非常方便用户使用。非接触式卡使用时没有方向性,卡片可以在任意方向掠过读写器表面,既可完成操作,这大大提高了每次使用的速度。

3) 防冲突

非接触式卡中有快速防冲突机制,能防止卡片之间出现数据干扰,因此,读写器可以\同时\处理多张非接触式IC卡。这提高了应用的并行性,无形中提高系统工作速度。

4) 可以适合于多种应用

非接触式卡的序列号是唯一的,制造厂家在产品出厂前已将此序列号固化,不可再更改。 非接触式卡与读写器之间采用双向验证机制,即读写器验证IC卡的合法性,同时IC卡也验证读写器的合法性。

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

接触式卡的存储器结构特点使它一卡多用,能运用于不同系统,用户可根据不同的应用设定不同的密码和访问条件。

5) 加密性能好

非接触式IC卡由IC芯片,感应天线组成,并完全密封在一个标准PVC卡片中,无外露部分。非接触式IC卡的读写过程,通常由非接触型IC卡与读写器之间通过无线电波来完成读写操作。

非接触型IC卡本身是无源体,当读写器对卡进行读写操作时,读写器发出的信号由两部分

叠加组成:一部分是电源信号,该信号由卡接收后,与其本身的L/C产生谐振,产生一个瞬间能量来供给芯片工作。另一部分则是结合数据信号,指挥芯片完成数据、修改、存储等,并返回给读写器。由非接触式IC卡所形成的读写系统,无论是硬件结构,还是操作过程都得到了很大的

- 4 -

浙江科技学院本科毕业设计(论文)

简化,同时借助于先进的管理软件,可脱机的操作方式,都使数据读写过程更为简单。 2.2.4 射频卡的标准及分类

目前生产RFID产品的很多公司都采用自己的标准,国际上还没有统一的标准。目前,可供射频卡使用的几种标准有ISO10536、 ISO14443、ISO15693和ISO18OOO。应用最多的是ISO14443和ISO15693,这两个标准都由物理特性、射频功率和信号接口、初始化和反碰撞以及传输协议四部分组成。

按照不同得方式,射频卡有以下几种分类:

1) 按供电方式分为有源卡和无源卡。有源是指卡内有电池提供电源,其作用距离较远,但寿命有限、体积较大、成本高,且不适合在恶劣环境下工作;无源卡内无电池,它利用波束供电技术将接收到的射频能量转化为直流电源为卡内电路供电,其作用距离相对有源卡短,但寿命长且对工作环境要求不高。

2) 按载波频率分为低频射频卡、中频射频卡和高频射频卡。低频系统主要用于短距离、低成本的应用中,如多数的门禁控制、校园卡、动物监管、货物跟踪等。中频系统用于门禁控制和需传送大量数据的应用系统;高频系统应用于需要较长的读写距离和高读写速度的场合,其天线波束方向较窄且价格较高,在火车监控、高速公路收费等系统中应用。

3) 按调制方式的不同可分为主动式和被动式。主动式射频卡用自身的射频能量主动地发送数据给读写器;被动式射频卡使用调制散射方式发射数据,该类技术适合用在门禁或交通应用中,因为读卡器可以确保只激活一定范围之内的射频卡。

4) 按作用距离可分为密耦合卡(作用距离小于1厘米)、近耦合卡(作用距离小于15厘米)、疏耦合卡(作用距离约1米)和远距离卡(作用距离从1米到10米,甚至更远)。

5) 按芯片分为只读卡、读写卡和CPU卡。[2] 2.2.5 RFID技术发展的瓶颈 ? 隐私权问题 ? 失业问题

? 国际标准的制定与推行 ? 成本的降低 ? 技术的突破 2.3 系统硬件结构

系统的上位机主要负责传输读写命令给下位机,进行用户数据信息的统一管理,并实现良好

- 5 -

浙江科技学院本科毕业设计(论文)

的人机交互。系统的下位机主要负责和读卡器之间进行数据传输,再通过读卡器和IC卡进行数据交换,并将响应数据传回给上位机。

数据库RS485PIC16F877三线SPIZLG500能量 Mifare 标准 IC卡数据蜂鸣器液晶显示电源

图1 系统硬件结构图 图1为系统的硬件结构图。系统的IC卡采用 Mifare 标准IC卡MF1 IC S50,读卡器采用周立功

内置PHILIPS 高集成ISO14443A 读卡芯片MF RC500的ZLG500AT读卡模块。系统的MCU采用MICROCHIP公司的PIC系列单片机,采用内部的USART模块与读卡器进行通信,通过RC500芯片与IC卡进行无线数据收发,并通过RS485与计算机相连接。另外,下位机还带有显示功能。上位机软件通过ACCESS数据库对用户数据信息进行管理。

2.4 上位机控制界面设计

采用Visual C++ 编写上位机软件程序,运用MFC中的CRecordSet类与Access数据库相连接,行进数据交换。界面采用树和列表的视图方式,实现良好的人机交互功能。

上位机与下位机的通信采用485通信,运用VC中的MSCOMM控件来控制计算机的串口数据的接收和发送。 2.5 下位机软件流程

下位机的工作流程为:PIC单片机通过控制ZLG500AT读卡模块中的MF RC500读卡芯片,与Mifare 标准IC卡进行数据通信,并通过RS485与计算机交换数据信息的。首先,单片机上电后对各模块进行初始化,然后接收上位机的指令,根据不同的指令,对卡实行不同的数据操作。下图为软件流程图:

- 6 -

浙江科技学院本科毕业设计(论文)

开始ZLG500复位定时器、通信模块、液晶模块初始化判断上位机指令类型读卡指令ZLG500初始化配置密码确认是否通过写卡指令密码确认初始化指令密码确认No是否通过No是否通过No是否接受到上位机的正确命令Yes单片机发送请求命令给ZLG500NoYes读取卡内数据Yes写数据到卡内Yes配置新密码、读卡权限配置卡中数据读卡响应是否正确No是否有卡Yes蜂鸣器提示液晶显示No写卡响应是否正确No初始化响应是否正确NoYes发反冲突、选卡指令Yes蜂鸣器提示液晶显示Yes蜂鸣器提示液晶显示响应是否正确YesNo发送ZLG响应的状态和数据给上位机

图2 系统软件流程图

3 PIC16F877单片机

- 7 -

浙江科技学院本科毕业设计(论文)

3.1 PIC16F877系统硬件概况 3.1.1 内核及外围模块

图3 PIC16F877内核与外围模块 3.1.2 内核结构的特点 ? 采用哈佛结构

? 程序空间8K字节,共35条指令

- 8 -

浙江科技学院本科毕业设计(论文)

? 512字节RAM,使用寄存器文档的概念 ? 8层硬件堆栈

? 指令采用流水线机制,指令顺序执行时只需一个指令周期,程序分支跳转需2个字节 ? 具有独立看门狗 3.1.3 存储器寻址方式 3.1.3.1 数据寄存器寻址:

直接寻址:由于在指令编码中只有最低7位数据代表了寻址操作数地址,而有512字节RAM,因此需要利用STATUS中的RP1:RP0来实现高2位的寻址,即划分BANK区。

间接寻址:利用特殊寄存器FSR和STATUS的第7位IRP来表示9位地址,用INDF寄存器来实现间接寻址。即对INDF的任何操作,操作对象都被转到FSR+IRP构成的9位地址处的寄存器。

3.1.3.2 程序存储器寻址:

直接寻址:由于在指令编码中只有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口线上的电

- 9 -

浙江科技学院本科毕业设计(论文)

平发生变化就会引起中断;另一类是外围接口中断,包括定时器TMR1溢出中断、TMR溢出或匹配中断、同步串行口中断、异步串行口中断、并行从动口中断、A/D转换完成中断和CCP(Capture/Compare/PWM)中断等。这些中断的允许位分别在PIE1和PIE2寄存器,而中断标志则分别在PIR1和PIR2中。

3.2 USART通信模块

图4 PIC16F877中断逻辑图 通用同步异步接收发送模块(USART)是二线制串行通信接口,它可以被定义如下三种工作方式:全双工异步方式、半双工同步主控方式、半双工同步从动方式。

USART功能模块含有两个8位可读/写的状态/控制寄存器,它们是发送状态/控制寄存器TXSTA和接收状态/控制寄存器RCSTA。USART带有一个8位波特率发生器BRG(Baud Rato Generator),这个BRG支持USART的同步和异步工作方式。用SPBRG寄存器控制一个独立的8位定时器的周期。在异步方式下,发送状态/控制寄存器TXSTA的BRGH位也被用来控制波特率。在发送或接收数据时,通过查询发送/接收中断标志位即可判断是否发送完一个数据/接收到一个数据。发送/接收中断标地不需要也不用软件复位。在异步串行发送的过程中,只要TXREG寄存器为空,中断标志TXIF就置位。因此,TXIF为1并不是发送完毕的标志,但仍可以用TXIF标志来判断。因此当TXREG为空时,将数据送入后,数据会保留在TXREG寄存器中,直到前一个数据从发送移位寄存器中移出,即前一个数据发送完。

- 10 -

浙江科技学院本科毕业设计(论文)

图5 USART发送模块

图6 USART接收模块 本系统中利用USART模块的异步通信功能,通过MAX485芯片实现和上位机的通信。为了把RC6和RC7分别设置成串行通信接口的发送/时钟(TX/CK)线和接收/数据(TX/DT)线,必须首先把SPEN位(TCSTAT的RD7)和方向寄存器TRISC的D7:D6置1。 3.3 定时器 3.3.1 定时器0

Timer0是一个8位定时器,只要程序在运行,TMR0的递增计数就不会停止,TMR0寄存器用来存放计时值。Timer0的时钟源选择是由0PTl0N_REG寄存器中的T0CS位来决定的,将此位设为0表示使用内部的时钟源,设为1则使用外部时钟。使用内部时钟时,定时器会每一个指令周期增量一次,也就是时钟频率为Fosc/4(在不使用顿分频器的情况下)。

- 11 -

浙江科技学院本科毕业设计(论文)

Timer0有一个预定标器(也叫预分频器),通过预分频器的使用,可以使得定时器可计算的时间范围增加不少。这个预分频器也可分配给WDT作为后分频器使用,至于预分频器是给WDT还是Timer0使用,则是由0PTION_REG寄存器中的PSA位来决定的。当PSA位为0时,表示作为Timer0的预分频器:当PSA位为1时,表示作为WDT的后分频器。这个预分频器的比例由OPTlON_REG寄存器中PS2、PSl与PS0三个标志位来设置。 3.3.2 定时器1

16位计数宽度。可工作在同步定时器方式,同步计数器方式,异步计数器方式。Timer1的外部时钟输入引脚有2个,分别是RC0/T10SO/T1CKI和 RCl/T1OSI/CCP2引脚。在单片机内部,这2个引脚之间内置了一个振荡器电路。在进入休眠模式后,振荡器依然会继续输出,因此可以继续Timer1的累计动作。和CCP模块功能结合时,必须工作于同步模式。 3.3.3 定时器2

8位计数宽度。有一个前置预分频器和后置预分频器。Timer2另外一个特点就是带有一个PR2寄存器,称之为周期寄存器,这个寄存器可以被填入适当的值。当TMR2寄存器的值增量到与PB2寄存器的值相等时,便会产生Timer2的中断。 可于CCP模块结合,产生PWM。 4 Mifare 标准IC卡MF1 IC S50 4.1 Mifare 标准IC卡MF1 IC S50简介 4.1.1 主要指标

? 容量为8K位EEPROM

? 分为16个扇区,每个扇区为4块,每块16个字节,以块为存取单位 ? 每个扇区有独立的一组密码及访问控制 ? 每张卡有唯一序列号,为32位 ? 具有防冲突机制,支持多卡操作

? 无电源,自带天线,内含加密控制逻辑和通讯逻辑电路 ? 数据保存期为10年,可改写10万次,读无限次 ? 工作频率:13.56MHZ ? 通信速率:106KBPS

[4]

- 12 -

浙江科技学院本科毕业设计(论文)

图7 MF1 IC S50 示意图

4.1.2 结构组成 ? ? ? ? ? ? ?

RF 接口:调制器解调器,整流器,时钟再生器,上电复位,电压调整器 反冲突:在同一区域中的卡可以被顺序选中执行操作

确认:确认过程确保只有通过每个段的两个密钥才能对这个段进行任何存储器操作 控制和算术逻辑单元:值以特殊的冗余格式保存而且可以增加和减少 EEPROM接口

Crypto 单元:Mifare?经典系列经区域验证的CRYPTO1流密码确保数据交换的保密性 EEPROM:有1K 字节分成16 个区每区又分成4 段每一段中有16 个字节每个区的最后一个段叫尾部它包括两个密钥和这个区中每一个段的访问条件。

图8 USART接收模块 - 13 -

浙江科技学院本科毕业设计(论文)

4.2 EEPROM存储器 4.2.1 存储结构 ? ? ?

M1卡分为16个扇区,每个扇区4段(段0、段1、段2、段3),每段16字节。 第0扇区的段0,它用于存放厂商代码,已经固化,不可更改。

每个扇区的段0、段1、段2为数据段,可用于存贮数据。数据段可作两种应用:一般的数据保存,可以进行读、写操作;数据值,可以进行初始化值、加值、减值、读值操作。

?

每个扇区的段3为控制块,包括了密码A、存取控制、密码B。

图9 卡捏存储结构图 - 14 -

浙江科技学院本科毕业设计(论文)

4.2.2 存储器访问

每个扇区的密码和存取控制都是独立的,可以根据实际需要设定各自的密码及存取控制。每个数据段和区尾的访问条件由3 个位来定义它们以取反和不取反的形式保存在指定区的区尾中。存取控制为4个字节,共32位。扇区中的每个块(包括数据块和控制块)的存取条件是由密码和存取控制共同决定的,在存取控制中每个块都有相应的三个控制位,定义如下:

块0: C10 C20 C30 块1: C11 C21 C31 块2: C12 C22 C32 块3: C13 C23 C33

三个控制位以正和反两种形式存在于存取控制字节中。密钥和访问位的读写访问可分为从不、密钥A、密钥B或密钥A|B。详细的数据段及尾区的访问条件如下表所示。根据系统需要,各访问权限设定为:段3:011,段2-0:110。

表1 尾区的访问条件列表

- 15 -

浙江科技学院本科毕业设计(论文)

4.3 流程示意

表2 数据段的访问条件列表

图10 IC卡工作流程图 1) 请求标准所有(request):

当有卡片进入读写器的操作范围时,读写器以特定的协议与它通讯,从而确定该卡是否为M1射频卡,即验证卡片的卡型;若没有则一直处于等待状态。

- 16 -

浙江科技学院本科毕业设计(论文)

2) 反冲突环(Anticollision):

反冲突环可以读出卡的序列号。如果在RWD的工作范围内有几张卡RWD,通过唯一的序列号来区别它们,而且每次选择其中一张卡进行下一步操作,没有被选中的卡会回到准备模式等待新的请求命令。

3) 选择卡(Select Tag):

RWD使用选择卡命令选中其中一张卡进行确认和存储器相关操作。卡返回Answer To Select(ATS)码(=08h),RWD通过ATS可以确定被选中的卡的类型。

4) 3 轮确认(3 Pass Authentication):

选中了一张卡之后,RWD指出了接着要访问的存储器位置,然后使用相应的密钥进行3 轮确认,在成功确认后所有的存储器操作都是保密的。

5) 存储器操作:

确认之后可以执行以下的任何操作: ? 读存储器段 ? 写存储器段

? 减存储器段的内容并将结果保存在临时的内部数据寄存器中 ? 增加存储器段的内容并将结果保存在数据寄存器中 ? 恢复将存储器段的内容移到数据寄存器

? 传送将临时内部数据寄存器的内容写到值存储器段中 4.4 保密性

?? 这个卡一个特殊的要点是保密,防止欺骗。需要通过3轮相互询问和响应确认(ISO/IEC DIS9798-2),数据保密和报文确认检查防止系统受到任何干扰,RF 信道的数据加密,有重放攻击保护,使购票应用更有吸引力。每个设备有唯一的序列号,且该序列号不可修改,保证了每张卡都是唯一的。每个区有两套独立的密钥,支持带密钥层次的多应用,在运输过程中访问EEPROM有传输密钥保护。

4.5 数据存储地址

根据系统需要,将用户账号、卡类、剩余金额、车载机号及最后刷卡时间等数据存储到如下地址:

[4]

- 17 -

浙江科技学院本科毕业设计(论文)

变量 账号 卡类 金额 车载机号 时间

长度 3个字节 1个字节 2个字节 2个字节 5个字节 30(0,1,2) 30(3) 29(0,1) 地址 29(2,3) 29(4年,5月,6日,7时,8分) 表3 5 系统数据存储地址 ZLG500A读卡模块5.1 模块特性概述

ZLG500AT读卡模块内置最新PHILIPS 高集成ISO14443A 读卡芯片MF RC500,能读写RC500内EEPROM。采用三线SPI接口(三线分别为片选SS 时钟线SCLK和数据线SDATA),能与任何MCU 接口。模块采用四层电路板设计,双面表贴,EMC性能优良。无源蜂鸣器信号输出口能用软件控制输出频率及持续时间。[5]

下图为天线一体化的读卡模块:

5.2 MF RC500芯片 5.2.1 概述

MF RC500 是应用于13.56MHz 非接触式通信中高集成读卡IC 系列中的一员。该读卡IC 系列利用了先进的调制和解调概念,完全集成了在13.56MHz 下所有类型的被动非接触式通信方式和协议。

MF RC500 支持ISO14443A 所有的层。

内部的发送器部分不需要增加有源电路就能够直接驱动近操作距离的天线可达100mm。 接收器部分提供一个坚固而有效的解调和解码电路,用ISO14443A 兼容的应答器信号。 数字部分处理ISO14443A 帧和错误检测(奇偶&CRC)。此外,它还支持快速CRYPTO1 加密算法用于验证MIFARE 系列产品。

- 18 -

图11 天线一体化模块 浙江科技学院本科毕业设计(论文)

方便的并行接口可直接连接到任何8 位微处理器,这样给读卡器/终端的设计提供了极大的灵活性。

5.2.2 内部结构图

图12 RC500内部结构图 并行微控制器接口自动检测连接的8 位并行接口的类型。它包含一个易用的双向FIFO 缓冲区和一个可配置的中断输出。这样就为连接各种MCU 提供了很大的灵活性。即使使用非常低成本的器件也能满足高速非接触式通信的要求。

数据处理部分执行数据的并行-串行转换。它支持的帧包括CRC 和奇偶校验。它以完全透明的模式进行操作,因而支持ISO14443A 的所有层。

状态和控制部分允许对器件进行配置以适应环境的影响并使性能调节到最佳状态。 当与MIFARE Standard 和MIFARE 产品通信时,使用高速CRYPTO1 流密码单元和一个可靠的非易失性密匙存储器。

模拟电路包含了一个具有非常低阻抗桥驱动器输出的发送部分。这使得最大操作距离可达100mm。接收器可以检测到并解码非常弱的应答信号。由于采用了非常先进的技术,接收器已不再是限制操作距离的因素了。[6]

- 19 -

浙江科技学院本科毕业设计(论文)

5.3 串行接口 5.3.1 接口原理

图13 ZLG500AT与PIC16F877的接口图 接口空闲时主机SS=1,SCLK=0,SDATA=0,从机SS=1,SCLK=1,SDATA=0。其中SS和DATA是双向的,而时钟线SCLK是单向的,即时钟只能由主控制器产生,该信号必须严格遵守时序规范,否则将出现通信错误,读卡模块必须释放该线。SS 为数据发送使能,若一方有数据要发送给另一方,则该方控制SS线为低,并在发送结束后将该线置高,接收数据方不得控制该线。双方必须遵守通信协议,不得同时控制该线。SDATA为数据线,由数据发送端控制,数据接收端必须释放该线。该线在一次传输开始时还同时作为数据接收端的响应信号。

5.3.2 时序图

图14 ZLG500AT与PIC16F877的接口图示 t1—数据接收器响应至MCU 产生第一个SCLK上升沿的时间 t2—两个字节传输之间,SCLK低电平的持续时间

t3—传输最后一个字节的最后一位的SCLK信号的上升沿至SS 上升沿的时间 tH—SCLK信号的高电平持续时间 tL—SCLK信号的低电平持续时间

- 20 -

浙江科技学院本科毕业设计(论文)

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: 1 Byte 数据交换包的序号 Command: 1 Byte 命令字符 Len: 1 Byte 数据的长度

- 21 -

浙江科技学院本科毕业设计(论文)

Data[ ]: Len Byte 数据字节 BCC: 1Byte的BCC 校验 ZLG500->MCU 响应模式:

SeqNr: 1 Byte 数据交换包的序号 Status: 1 Byte 状态字符 Len: 1 Byte 数据的长度 Data[ ]: Len Byte 数据字节 BCC: 1Byte的BCC 校验

6 12864液晶模块

6.1 8位并行连接时序图

模块有并行和串行两种连接方法,当PSB 脚接高电时(模块背面S/P 的短路电阻在“P”侧),模块将进入并行传输模式;在并行传输模式下,可由指令位(DL FLAG)来选择8-BIT 或4-BIT 接口,主控制系统将配合(RS,RW,E,DB0..DB7)来完成传输动作。系统中采用8位并行连接的方式。

6.2 汉字显示坐标

图15 MCU写数据到模块的时序图

文本显示RAM 提供8 个×4 行的汉字空间,显示中文字形时,将两字节编码写入DDRAMK ,范围为A1A0H-F7FFH(GB 码)或A140H-D75FH(BIG5 码)的编码。

- 22 -

浙江科技学院本科毕业设计(论文)

表4 汉字显示坐标 6.3 几个主要的功能指令代码 清除显示:

显示状态开/关:

设定DDRAM位址:

读取忙碌状态:

写数据到RAM:

7 上位机控制界面设计

7.1 上位机控制主界面

主界面采用树和列表的视图方式,左边是树,显示数据库中对应的表;右边是数据列表,显示用户信息:卡号、姓名、证件号、办卡日期、卡类、金额、备注,通过选择左边树的某一项即能在右边的列表模式中显示该项的相关信息;最上面是工具栏,包括初始化、办卡、充值、挂失、解挂、查询、退卡等功能按钮。通过该工具栏可进入其它功能子界面,实现功能需要。

- 23 -

浙江科技学院本科毕业设计(论文)

7.2 单片机与计算机的通讯 图16 上位机控制主界面 使用MSCOMM控件控制计算机的串口,实现上位机与下位机的通信。其传输协议为:起始字节 + 命令字节/状态字节 + 数据长度 + 数据。上位机传送IC卡读写指令和相关数据给下位机,下位机执行指令,并将IC卡读写状态信息传回给上位机,上位机将传回的数据进行处理,保存到数据库中。[7]

串口初始化程序如下:

m_Com1.SetCommPort(1);

//选择串口1

m_Com1.SetInBufferSize(30); m_Com1.SetOutBufferSize(30); m_Com1.SetInputMode(1);

//设置缓冲大小

//二进制传输

m_Com1.SetSettings(\ //设置波特率 if(!m_Com1.GetPortOpen())

//打开串口

{

m_Com1.SetPortOpen(true);

- 24 -

浙江科技学院本科毕业设计(论文)

}

各指令的传输数据见下表: 上位机命令 接收数据 发送数据 命令执行成功 0xF0+OpRight+0x00 命令执行失败 0xF0+WriteError/MissWrite/ MissKey/MissData/MissCmd/CardNoReady+0x00 0xF0+MissRead/MissKey/MissData/MissCmd/CardNoReady +0x00 0xF0+WriteError/MissWrite/ MissKey/MissData/MissCmd/CardNoReady +0x00 0xF0+Cmd_Initialize+初始化 0x04+账号和卡类 0xF0+Cmd_ReadCard+0x00 办卡 0xF0+OpRight+0x06+账号、卡类和金额 0xF0+Cmd_WriteCard 0xF0+OpRight+0x00 +0x02+金额 0xF0+Cmd_ReadCard+0x00 充值 0xF0+MissRead/MissKey/M0xF0+OpRight+0x06+账号、issData/MissCmd/CardNoRe卡类和金额 ady +0x00 0xF0+WriteError/MissWrite/ MissKey/MissData/MissCmd/CardNoReady +0x00 0xF0+MissRead/MissKey/MissData/MissCmd/CardNoReady +0x00 0xF0+Cmd_WriteCard 0xF0+OpRight+0x00 +0x02+金额 0xF0+Cmd_ReadCard+0x00 0xF0+Cmd_ReadCard+0x00 0xF0+OpRight+0x06+账号、卡类和金额 查询 退卡

0xF0+MissRead/MissKey/M0xF0+OpRight+0x06+账号、issData/MissCmd/CardNoRe卡类和金额 ady +0x00 表5 上位机指令传输数据 7.3 数据库

几中常用的数据库接口。ODBC (Open DataBase Connectivity),MFC ODBC (Microsoft Foundation Classes ODBC) ,DAO (Data Access Object) ,OLE DB (Object Link and Embedding DataBase) ,ADO (ActiveX Data Object) 。ODBC(Open Database Connectivity 开放数据库连接),提供了应用程序接口(API),使得任何一个数据库都可以通过ODBC驱动器与指定的DBMS相联。 用户的程序就可以通过调用ODBC驱动管理器中相应的驱动程序达到管理数据库的目的。用MFC Appwizard(exe)创建一个数据库处理的SDI/MDI程序,只需在向导的第二步中选中“Database view without file support”或“Database view with filesupport”即可。

本系统使用Access数据库来保存用户数据资料。VC程序通过使用 MFC ODBC 中的CRecordSet类与数据库建立联系,查看、编辑其中的数据记录。另外,使用CRecordSet类的成员

- 25 -

[8]

浙江科技学院本科毕业设计(论文)

变量m_strFilter、m_strSort还可以对表进行记录的查询和排序。数据库中保存的信息主要包括:卡号、姓名、证件号、办卡日期、卡类、金额、备注等。CRecordSet类的主要成员函数如下:

Open();

//打开记录集

//在表的末尾增加新记录 //将新记录存入数据库

//将当前记录位置定位到最后一个记录 //将当前记录位置定位到第一个记录 //将当前记录位置下移一个 //编辑当前记录 //删除当前记录

AddNew(); Update();

MoveLast(); MoveFirst(); MoveNext(); Edit(); Delete();

7.4 功能子界面设计

点击最上方工具栏中的按钮,即可进入其它功能子界面,实现初始化、办卡、充值、挂失、解挂、查询、退卡等服务功能。其中办卡和挂失的界面如下图:

图17 上位机控制功能子界面 另外,为提高系统的安全性,在进入系统前,设置了一个系统登陆对话框。其界面如下图所示:

- 26 -

浙江科技学院本科毕业设计(论文)

图18 系统软件登陆框 8 系统的调试

8.1 单片机和读卡器通信部分的调试 8.1.1 调试过程

1) 连接电路及调试工具:连接PIC与ZLG500间的接口,连接PIC与ICD2的在线编程调试接口,连接ICD2与计算机的串口,连接+12V电源线。

2) 调试程序:打开MPLAB IDE v7.5调试软件,打开软件工作区,配置系统数据,编译,链接,下载,调试。

3) 观察数据的收发状况。 8.1.2 调试结果

实现了ZLG500与PIC单片机之间的正确通信,包括模块初始化,请求,防冲突,选择,密码验证,读数据,写数据,挂起,蜂鸣器、复位等命令,并能通过读卡器访问IC卡内部的存储器,实现数据存储的功能,在多张卡的情况下能实现防冲突的功能。 8.1.3 发现的问题

在执行buzzer命令后,需要延时和蜂鸣时间相应的时间长度才能和ZLG500进行通信。因为ZLG芯片中的MCU是51,没有PWM,其驱动的蜂鸣器又是无源的,要靠振荡才会发出声音,所以在发出声音的时候,ZLG不接收其他指令,其内部程序不能执行其他服务程序。在以后的改进中,可用PIC直接控制蜂鸣器。 8.2 单片机和上位机通信部分的调试 8.2.1 调试过程

1) 编写单片机程序、上位机控制界面及数据库。

2) 连接电路及调试工具:连接PIC与ZLG500间的接口,连接PIC与ICD2的在线编程调试

- 27 -

浙江科技学院本科毕业设计(论文)

接口,连接ICD2与计算机的串口,连接+12V电源线。通过RS-232转RS-485接口连接单片机和上位机。

3) 调试程序:打开MPLAB IDE v7.5调试软件,打开软件工作区,配置系统数据,编译,链接,下载,调试。

4) 观察数据的收发状况,实现系统功能。 8.2.2 调试结果

实现公交充值系统的以下功能:

? 初始化:制卡功能专门用于对卡(新卡或再利用的卡)进行初始化。卡片在正式投入使

用前必须经过初始化,将密钥、存取权限及卡号写入卡内。 ? 办理新用户:登记用户信息,写金额到卡中的寄存器。 ? 充值:为IC卡写入充值金额。同时,数据库中更新数据。 ? 挂失:当用户遗失卡时,可通过此功能进行挂失。 ? 解挂:将已挂失的卡解除其挂失状态。 ? 查询:可查询卡内余额,及其它用户信息。 ? 退卡:用户退还卡,删除数据库中的相关信息。

8.3 系统调试

连接系统所有设备进行调试:连接PIC与ZLG500间的接口,连接PIC与液晶模块的接口,

连接PIC与ICD2的在线编程调试接口,连接ICD2与计算机的串口,连接+12V电源线。通过RS-232转RS-485接口连接单片机和上位机。使液晶模块实现其相应的显示功能,完善整个系统功能。

最后,虽然本次设计的系统运行基本正常,但还需要很多的改进。

8.4 系统的后续设计方向

1) 由于在ZLG500控制蜂鸣器工作时,单片机不能和其进行数据通信,导致读写卡的效率降低,因此可改用PIC单片机直接控制蜂鸣器,以提高工作效率。或者可以脱离ZLG500,PIC直接与RC500读卡模块通信。

2) 本系统只完成了公交IC卡收费系统中的办卡充值系统的功能,在后续的工作上还须要设计车载收费系统以及数据采集系统。其中车载收费系统只须在现有的基础上稍加改动即可。而数据采集系统则将涉及到远距离无线数据传输或短距离无线数据传输,例如可使用红外线数据传

- 28 -

浙江科技学院本科毕业设计(论文)

输技术,GPRS技术等。[9]

3) 作为一个功能稳定齐全的公交IC卡收费系统,必须要有一个功能强大的数据库支持,因此在以后的设计中建议使用SQL Server 2000、Oracle等大型数据库。

9 总 结

经过几个月的努力,毕业设计已经结束。回看整个设计过程,虽然在设计过程中遇到过许多困难,但通过自己的不懈努力和指导老师的悉心指点,解决了大部分设计过程中碰到的各种困难,现已基本完成课题中的软件设计、硬件规划,整个系统的运行基本达到了预期目标。

通过这次设计,我对专业有了更深刻更具体的认识。理论上的学习跟实际上的操作存在着很大的差距,以前头脑中认为是很简单的事,等到实际做起来总是显得特别困难。要做一个设计必须重新学习很多知识,有些是以前学得不够深入、认识得不够贴近实际的,另一些是以前根本就没接触过的。

在学习的过程中,进一步培养了我的自学能力以及挑选信息的能力。有些材料我们不可能像以前学习课本知识那样从头看到尾,而是要选择有用的,需要的信息。

通过实践我还对自己所学的各个方面的知识进行了总结,提高了自我学习能力和获取新知识的能力。通过对系统的分析、设计以及测试等各种环节使我提高了发现问题、解决问题的能力,并且对问题的观察比以前更加敏锐了,考虑问题也更加全面了。

在实践的过程中,让我学会了耐心。设计过程中遇到过很多困难,有时只是知道某个地方出错了,而很难一下子弄清楚问题出在哪里,不知道从哪里下手,没有任何头绪。这时我们能做的就是耐心,手忙脚乱对解决问题不会有任何帮助。耐心、仔细、开阔思维是解决问题的关键。

实践一方面把以前所学的理论知识提高到了一个更高的层次,增强了自己动手实践的能力。另一方面,实践生活锻炼了我的意志品质,培养了我的个人素养,提高了我的各方面素质。因此,我觉得这次毕业设计对我来说是具有十分重要的意义,将是我走上社会岗位前的一次大锻炼。我很庆幸我在这次毕业设计中已经尽心尽力,让我学到了很多很多意想不到的东西。

致 谢

对于本次毕业设计,在此深深感谢我的指导老师项小东老师,在毕业设计期间对我的悉心指导和亲切关怀,感谢实验室同学的热情帮助和细心指点。同样要感谢各科的老师在四年来的学习

- 29 -

浙江科技学院本科毕业设计(论文)

生活中给予我的精心指导、照顾和鼓励。衷心感谢所有那些给过我帮助的老师、同学和朋友。 参考文献:

[1] 中银信息系统工程有限公司. 公交IC卡收费系统综述[PDF]. http://www.cnki.net/index.htm,

2006年.

[2] RFID技术与应用[PDG]. http://www.irfid.cn,2007年.

[3] Microchip. PIC16F87X Data Sheet[PDF]. http://www.microchip.com/,2001年.

[4] Philips. Mifare Standard Card IC MF1 IC S50 Functional Specification[PDF].

http://www.zlgmcu.com/home.asp,2001年5月.

[5] 广州周立功单片机发展有限公司. ZLG500A读卡模块使用指南[PDF]. http://www.zlgmcu.com,

2004年8月.

[6] MF RC500 高集成ISO14443A 读卡芯片[PDF]. http://www.rfidworld.com.cn/,2007年. [7] 李现勇. Visual C++串口通信技术与工程实践(第二版)[M]. 人民邮电出版社,2004年7月. [8] 求是科技. Visual C++ 6.0数据库开发技术与工程实践[M]. 人民邮电出版社,2004年1月. [9] 陈学武 戴霄 陈茜. 公交IC卡信息采集、分析与应用研究[J]. 土木工程学报.2004年2月,

第37卷第2期.

[10] 金宝顺. 杭州市公交IC卡电子收费系统[PDF]. http://www.cnki.net/index.htm,2003年4月. [11] 张俊谟. 单片机中级教程(原理与应用)[M]. 北京航空航天大学出版社,2000年6月. [12] 深圳市清华茂物信息技术有限公司. 非接触式IC卡公交管理系统设计方案

[PDF] .http://www.cnki.net/index.htm,2005年.

[13] 王珊 李盛恩. 数据库基础与应用[M]. 人民邮电出版社,2002年8月. [14] 何立民. 单片机应用系统设计[M]. 北京航天航空大学出版社,1990年7月. [15] 周晓云 吴兆根. RFID在公共交通领域的应用[J]. 中国无线电.2005年,第5期.

[16] 肖维 徐任婷 陆林军. 基于RFID 的智能化城市公共交通系统[J]. 道路交通与安全.2006年,

第9期.

[17] An Inside Look at RFID Technology[PDF]. http://www.doaj.org/,2007年.

- 30 -

本文来源:https://www.bwwdw.com/article/3zyr.html

Top