基于51单片机的公交智能收费系统.docx
- 文档编号:27533196
- 上传时间:2023-07-02
- 格式:DOCX
- 页数:59
- 大小:557KB
基于51单片机的公交智能收费系统.docx
《基于51单片机的公交智能收费系统.docx》由会员分享,可在线阅读,更多相关《基于51单片机的公交智能收费系统.docx(59页珍藏版)》请在冰豆网上搜索。
基于51单片机的公交智能收费系统
2014届毕业设计
基于51单机片的公交智能收费系统
院、部:
电气与信息工程学院
学生姓名:
刘波波
指导教师:
黄海波职称讲师
专业:
电子信息工程
班级:
电子1003班
完成时间:
2014年5月30日
摘要
公交智能收费系统要求实现读卡、收费、LED显示、时钟电路和计算机的通讯功能,其中读卡过程(即自动识别用户的过程)是整个系统的重要部分,本设计对读卡器的设计作详细介绍。
采用PHILIPS公司的Mi-fare卡作IC卡,制作的IC卡读写器可以实现制卡、售
卡、自动收费等功能,公交IC卡读写器以射频识别技术为核心,读写器内主要使用了1片Mifare卡专用的读写处理芯片--MMM微模块,单片机采用89C52。
P1口与串行器件24C64和显示、报警电路连接;P0口与MMM微模块相连,用作数据线;P2口用作时钟电路连接;P3口用于读写控制和中断。
程序主要包括IC卡读写操作程序、键盘扫描程序、显示程序、存储器读写程序和通信程序。
在读写器中,单片机与PC机之间的通信主要由TC232来实现。
读写器中,单片机程序可采用C语言进行编程。
C语言有功能丰富的库函数,运算速度快、编译效率高、可移植性好、软件的可读性强,便于改进和扩充。
本设计所研究的技术和方法不仅对于公交智能收费系统有着重要的作用,而且在其他各领域如校园卡、考勤卡等也具有广泛的应用价值。
关键词:
单片机;非接触式IC卡;读写器;串口通信
ABSTRACT
Theintelligentchargingsystemrequirementstoachievethecard,charge,LEDdisplay,clockcircuitandcomputercommunicationfunction,whereinthecardreadingprocess(i.e.,automaticrecognitionofuserprocess)isanimportantpartofthewholesystem,thedesignofcardreadertoreadthedetaileddesign.
UsingPHILIPS'sMi-farecardICcard,ICcardreadercanmaketheimplementationofthebusinesscardprinting,Cardsaling,automaticchargingandotherfunctions,thepublictransportationICcardreaderbasedonradiofrequencyidentificationtechnologyasthecore,thereaderismainlyused1piecesofMifarecardread-writeprocessingchip--MMMmicromodule,single-chipmicrocomputerwith89C52.TheP1portandserialdevice24C64anddisplay,alarmcircuit;P0andMMMmicromodule,isusedasadataline;P2isusedastheclockcircuitisconnected;P3portusedtoreadandwritecontrolandinterrupt.TheprogramincludesICcardread-writeoperationprocedure,keyboardscanningprocedures,displayprogram,memoryreadandwriteprogramandcommunicationprogram.Inthereader,thecommunicationbetweenMCUandPCismainlyimplementedbyTC232.Reader,microcontrollerprogramcanbeprogrammedinClanguage.Clanguagelibraryfunctionrich,fastoperation,highefficiencytocompile,goodportability,softwarereadable,easytoimproveandexpand。
Technologyandmethodsoftheresearchofthisdesignnotonlyforbusintelligentchargingsystemplaysanimportantrole,butalsoinotherfieldssuchascampuscard,attendancecardalsohasextensiveapplicationvalue。
Keywordsmonolithic;non-contacttype;reader-writer;serialcommunication
1绪论
公交如今已成为都市重要的交通工具,收费的时候有人为的收费也有采用了智能的收费系统。
利用智能收费先是便利,再是快捷,还有就是有利于减少现金流动。
公交车智能收费系统在公交系统中极大地促进了非接触式IC卡的发展。
国外已有许多知名的公司已使用这方面的技术。
中国虽开始较晚,但成长迅速。
公交IC卡作为非接触卡,操作方便,可靠性高,寿命长,发展潜力巨大。
公交收费系统的读写操作,只需要将卡在读写某一区间内可以实现数据交换装置附近,没有任何接触,使用十分方便,速度快,不易损坏。
所以,除了用在公交系统,在门禁、学校、企业等人事管理、娱乐场所等领域有极大的应用前景。
1.1公交智能收费系统现状及发展趋势
公交车收费系统一般采取接触式IC卡,因为卡在读写器上操作时常造成磨损引起的接触不良,从而导致数据传输故障,此外卡跟读写器的磨擦也极大地减短了卡和读写器的使用年限。
随着技术的进步,公交车收费系统慢慢地被射频技术所替代,即非接触式的IC卡。
读写器用射频识别技术为核心,每当射频卡靠近读写器的时候,因受读写器的电磁波激励的作用,LC谐振电路就开始产生共振和接收电磁波能量。
每当射频卡一收集到充足的能量时,就会把卡内存储的识别卡和其他的数据传输的无线电波,读者和接受读者卡上的数据和进一步的操作。
在环境多变的公交车上,这种收费系统一定有很大发展前景。
1.1.1概述
公交智能收费体系构造复杂,所以,公交车IC卡的读写器最少包含公交车载机公交车售卡机、公交车制卡机的三个读写器。
以下主要介绍公交车载机读写器的设计,主要部件是由单片机、MMM微模块、单片机、存储器、和监控电路还有PC通信的TC232通讯接口电路等部件构成。
Mifare卡专门使用的芯片MFRC500,它是由一个微型的且最大操作间距达100mm的Mifare读/写设备的核心部件,其功能包括调制、解调、安全管理和防碰撞机制等。
读写器是收取费用现场的,且读写器编写的时候,只会进行读卡片的操作,且具备自动地收取费用的机能。
1.1.2现状
当今,虽然接触式IC卡在交通中得以普遍的使用。
但在接触IC卡的推广使用中,慢慢发现了许多缺点:
卡在读写器上频繁的拔插的操作造成的磨损使得接触性不良,继而导致数据传送报错,另外卡与读写器之间的磨损也很大缩短了卡和读写器的使用年限;而且,此IC卡的通信效率很低,还有再个插拔卡的动作造成的延误,导致每次交易都要长久的等待。
现在更多的应用不仅对卡的接口给予了不一样的需求,而且对传统非接触卡应用也提出了更多的需求。
起先非接触卡的指令很简单,功能也很少。
实现一个高难度的操作就像建立一个普通文件一样需要对卡的数据结构十分熟悉并且需要编很多指令。
尤其是卡中大部分资料都是很敏感的,比如剩余金额的数目,所以在对这些资料进行操作的时候,万一出现意外使得操作突然停止,就要面临怎样地正确恢复资料的难题,这非常需要高软件技巧。
以上所有的这些问题都大大防碍了非接触卡的应用创新。
然而公交车智能系统非接触式IC卡也是应用里最大的领域之一。
自2O03年以来我国就有许多城市开始陆续采用非接触式IC卡的电子车票体系。
但也在很多城市中没有普及开来。
人们还不理解公交卡所拥有的优势,还有就是收费体系做的也还不够完善,比如受公交环境差的影响使得系统出错率高等。
1.1.3发展
现在国际ISO拟定了主要两个非接触IC卡国际准则,一个菲利蒲和西门子的公司的TYPEA标准,另外一个则是摩托罗拉和意法半导体公司的TYPEB标准。
两个标准各有各的优点和缺点。
然而TYPEA标准。
则是目前运用较多的一种标准MIFARE标准。
TYPEB与A的主要不同是卡跟读写器的调制方式的差异。
而TYPEA采用的则是间断的调制原理,信息“1”为时,即有信号传到卡,信息显示是“0”时,则就无信号传到卡,并且时间的间隔非常短暂,基本不会影响到卡的正常工作。
用这种方式信息区别会很明显,而且受环境影响的可能性小,很难会误操作。
然而缺点就是在不断地传输能量到非接触卡的时候,能量会有几率发生波动。
公共汽车上干扰因素很多,打卡时间又极短,错误信号发生的机率越小越好,因此,采用TYPEA相对来会好很多。
而且,鉴于国情影响,车在较短时间里使用非接触CPU卡的可能性小,而使用逻辑加密卡。
因为使用非接触逻辑加密卡时,因为没有CPU在工作,所以对能量的持续性要求很强,因此TYPEA可以很好胜任这工作。
我国引进的射频IC卡主要有PHILIPS公司的Mifare和ATMEL公司的Demic卡。
制作的IC卡读写器可以实现制卡、售卡、自动收费等功能,具有安全、方便、快捷、可靠性高等的特点,解决了城市公共交通服务行业既频繁又琐碎的收费管理问题,有广泛的利用远景。
在我国最广使用的就是MifareIC卡。
其每一年销售量达几亿张的IC卡,促使我国迅速成为IC卡应用发展速度最快的国家之一。
此外,近些年售出的非接触式卡里近一半是在公共交通中使用的。
1.2本文的内容
此设计研究的是公交智能收费系统(B)标准,其重点进行卡的读写程序设计,它是以非接触式通信为技术基础。
本课题设计是以射频技术为基础,铺以单片机编程来控制MFRC500的读写卡操作,然后卡里的内容跟时钟信息一起存放在存储器里,然后显示模块显示卡的扣除费用金额等,同时蜂鸣器在操作无误时就响一声。
而DS1232为控制芯片,能解决程序跑飞的问题。
然而在存储器存储的信息到顶时,就会通过TC232和上位机相接,然后把信息发给PC机。
2设计方案
设计的基本思想:
一有Mifare1射频卡距离射频天线100mm内时,读写器就能够获取到卡中的数据信息。
然后单片机把读取得数据进行处理,条件符合,蜂呜器就响一声。
然后把数据跟当时的时间同时储存在单片机EEPROM内.接着在LED上显示所读数据。
然而当无卡在其工作范围时,就会在LED上显示此刻的时间。
如果读卡出错,则显示出错的标志。
在和上位机通讯时,把单片机里EEPROM存入的信息发向上位机。
单片机的程序主要有:
时钟生成程序、读写卡程序、跟上位机的中断通信程序、时钟生成程序、显示驱动程序、数据存储程序、蜂鸣器报警程序。
2.1硬件设计选择
MCU采用单片机89C52,是因为89C52开发简单,运行稳定。
89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器和256字节的RAM,比51多一倍。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
公交收费系统结构复杂,环节较多,因此,公交非接触IC卡的读写器至少应包括公交售卡机、公交车载机和公交制卡机三个读写器。
除了售卡机要求有键盘外,其余的硬件组成大体相同。
图1为非接触IC卡及其读写器硬件电路原理图,主要由MMM微模块、单片机、键盘、显示、存储器、天线和监控电路以及与PC机通信的TC232串行通信接口电路等部分组成。
图1智能系统原理图
2.289C52的接口介绍
图289C52的引脚图
2.2.1I/O口介绍
P0口:
P0口是一个8位漏极开路的双向I/O口。
作为输出口,每位能驱动8个TTL逻辑电平。
对P0端口写“1”时,引脚用作高阻抗输入。
当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。
在这种模式下,P0具有内部上拉电阻。
在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。
程序校验时,需要外部上拉电阻。
P1口:
P1口是一个具有内部上拉电阻的8位双向I/O口,p1输出缓冲器能驱动4个TTL逻辑电平。
对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
P2口:
P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。
对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址。
在这种应用中,P2口使用很强的内部上拉发送1。
在使用8位地址(如MOVX@RI)访问外部数据存储器时,P2口输出P2锁存器的内容。
在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。
P3口:
P3口是一个具有内部上拉电阻的8位双向I/O口,p2输出缓冲器能驱动4个TTL逻辑电平。
对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
P3口亦作为AT89S52特殊功能(第二功能)使用。
2.2.289C52的功能口介绍
RST:
复位输入。
晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。
ALE/PROG:
地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。
在flash编程时,此引脚(PROG)也用作编程输入脉冲。
在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。
然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。
如果需要,通过将地址为8EH的SFR的第0位置“1”,ALE操作将无效。
这一位置“1”。
这个ALE使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。
中断寄存器:
各中断允许位在IE寄存器中,六个中断源的两个优先级也可在IE中设置。
AT89C52有6个中断源,2个中断优先级,IE寄存器控制各中断位,IP寄存器中6个中断源的每一个可定为2个优先级。
T2CON:
定时器/计数器2控制寄存器
串行口控制寄存器:
SCON是一个可位寻址的专用寄存器,用于串行数据通信的控制。
其单元地址为98H,位地址为98H-9FH。
REN:
接收允许控制位。
由软件置位以允许接收,又由软件清0来禁止接收。
TB8:
是要发送数据的第9位。
在方式2或方式3中,要发送的第9位数据,根据需要由软件置1或清0。
例如,可约定作为奇偶校验位,或在多机通信中作为区别地址帧或数据帧的标志位。
RB8:
接收到的数据的第9位。
在方式0中不使用RB8。
在方式1中,若(SM2)=0,RB8为接收到的停止位。
在方式2或方式3中,RB8为接收到的第9位数据。
TI:
发送中断标志。
在方式0中,第8位发送结束时,由硬件置位。
在其它方式的发送停止位前,由硬件置位。
TI置位既表示一帧信息发送结束,同时也是申请中断,可根据需要,用软件查询的办法获得数据已发送完毕的信息,或用中断的方式来发送下一个数据。
TI必须用软件清0。
RI:
接收中断标志位。
在方式0,当接收完第8位数据后,由硬件置位。
在其它方式中,在接收到停止位的中间时刻由硬件置位(例外情况见于SM2的说明)。
RI置位表示一帧数据接收完毕,可用查询的办法获知或者用中断的办法获知。
RI也必须用软件清0。
电源控制寄存器:
PCON寄存器主要是为CHMOS型单片机的电源控制而设的专用寄存器,单元地址为87H,最高位SMOD是串口波特率倍增位。
当SMOD=1时,串行口波特率加倍。
系统复为时SMOD=0。
AT89C52有6个中断源:
两个外部中断(INT0和INT1),三个定时中断(定时器0、1、2)和一个串行中断。
每个中断源都可以通过置位或清除特殊寄存器IE中的相关中断允许控制位分别使得中断源有效或无效。
IE还包括一个中断允许总控制位EA,它能一次禁止所有中断。
如下表所示,IE.6位是不可用的。
对于AT89C52,IE.5位也是不能用的。
用户软件不应给这些位写1。
它们为AT89系列新产品预留。
定时器2可以被寄存器T2CON中的TF2和EXF2的或逻辑触发。
程序进入中断服务后,这些标志位都可以由硬件清0。
实际上,中断服务程序必须判定是否是TF2或EXF2激活中断,标志位也必须由软件清0。
定时器0和定时器1标志位TF0和TF1在计数溢出的那个周期的S5P2被置位。
它们的值一直到下一个周期被电路捕捉下来。
然而,定时器2的标志位TF2在计数溢出的那个周期的S2P2被置位,在同一个周期被电路捕捉下来。
2.3软件设计选择
读卡器的软件控制可采用汇编语言和C语言编程,这两种语言各有各的特点,汇编:
效率高,对硬件的可操控性更强,体积小,不易维护,可移植性很差且汇编语言是低级语言,能够直接操作硬件,并且生成机器码的效率高。
但汇编对平台的依赖性强,可移植性差,开发效率低。
C语言:
移植性比较好,代码效率也比较高,可以对部分硬件直接访问。
开发效率较高。
写得好的C代码,可移植性是很好的,很多时候都不用修改或者只做少量修改。
在目前的嵌入式系统中,C语言是使用最广泛的语言。
所以,两者各有优缺点,本设计采用的是汇编语言的软件设计方案。
3硬件设计
系统程序重点任务是能够系统变量初始化,检测并且使用IC卡,并将结果存储跟显示、然后记录送入PC机中。
读卡器里应用I2C存储器24C64,存储的内容主要是:
机号(1个字节)、总金额(3个字节)和总记录(2个字节)。
每一张卡的信息应该包括:
加卡金额(1字节)、卡身份号(4字节)、售卡日期(2字节)跟售卡人编号(1字节)。
每当射频卡距离天线一定范围时,读卡器就读到卡中的信息。
系统单片机要把所读信息进行分析和处理,一旦符合条件,就读卡成功,然后指示灯亮一下,蜂鸣器鸣向一声。
然后卡片数据跟此刻时间一起存储在单片机内的存储器24C64里。
同时LED显示器上显示卡所读数据。
要是无卡在读卡器的范围内时,则LED上显示此刻的时间。
倘若读卡出错什么的,并显示出错了错误标志。
则在和上位机进行通讯的时候,把单片机里EEPROM岁存储的信息发向上位机。
主程序流程如图3所示:
图3主程序流程图
3.1读/写卡程序
图4读写流程图
卡的读写过程是相当复杂的一个执行过程,要完成许多的操作指令,调用很多的函数。
其中应该包括装载密码,选卡,询卡,防冲突,读写卡,验证密码,停卡的操作。
并且所有的这些流程都一定要按着固定的顺序执行。
在无Mifare卡在天线的有效距离里面时,就会显示那个时候的时间,然而一旦有Mifare卡在天线的有效范围里的时候,并且在读卡程序验证密码和卡正确无误后,把读卡时间和卡号以及相关数据信息当作一条记录存储在E2PROM里,同时在显示器上显示当前的金额数目[4]。
如图4所示:
读写器针对IC卡的操作流程图。
3.2显示电路
显示部分采用数码显示,使用串行输入BCD码--十进制译码驱动显示器件MC14499来完成和单片机系统的显示接口,以显示输入的数据、读写器工作状态或读出卡中剩下和出错的信息等。
此器件主要有1个多路输出器、1个锁存器和1个20位移位寄存器。
当输出器输出的BCD码经译码后,变成小数点DP和七段码(abcdefg)输送到段驱动器输出。
在显示电路中,用P1口3根I/O口线(P1.0、P1.1、P1.2)分别提供时钟信号(CLK)、串行数据(DA)和使能信号(EN)。
MC14499一次可接收20位串行输入数据,前面4位可以用于控制数码管的小数点显示,而后16位则是4个数码管的BCD码输入数据。
而在每帧数据传送之前,必须把EN置0;然后传送20位数,
数据传送完后,再将EN置1。
图5显示流程图
3.3I2C存储器24C64
读写器中设计了存储器。
存储器选用24CXX系列的串行E2PROM。
在车载机中主要存放乘客IC卡号、司机号和刷卡总数等信息。
正常工作后,每隔一段时间要把读写器拿到公交管理中心将读写器储存的信息回放到PC机中保存处理。
读写器中存储器可采用24C64,其存储量为8KB,因此最大能存储1023张售卡记录。
如有需要也可用容量更大的存储器如24C128或24C256等。
24C64为I2C总线的E2PROM。
SCL为400kHz时钟线,SDA为双向数据线,A2、A1、A0三位为片选地址,即I2C总线上最多可并联8个串行E2PROM芯片。
对E2PROM的操作方式由读写控制命令字决定,如下图所示。
其中"1010"为4位读写控制码,R/W为读写控制位:
"0"为写操作,"1"为读操作。
所以结合电路图可知A2H为写控制命令字,A3H为读控制命令字。
对存储器写操作,首先,单片机向24C64发一个START命令,产生启动信号;然后,发写命令控制字(如A2H)。
当24C64应答后,进入一个写周期,再由单片机发送写数据地址,即确定数据写入到存储器的哪个地址;当有应答,单片机将要存储的数据送入到SDA数据线上;写周期结束时,单片机再发一停止位(STOP)。
对存储器读操作,首先,单片机向24C64发一个START命令,产生启动信号;然后由单片机给出读数据地址;发送成功后,单片机又向24C64发一个START命令,产生开始条件,然后发读命令控制字(A3H);当24C64应答后,进入一个读周期,单片机从SDA数据线上读出指定存储地址中的数据。
读周期结束时,单片机再发一停止位(STOP)。
值得注意的是,对存储器操作时,每读写一个字节,单片机必须送一个应答位(ACK),释放一下SDA数据线,以便存储器能继续接收数据
图624C64读写流程图
3.4监控电路概述
监控电路为DS1232L芯片——又称看门狗定时器,功能是:
断电和上电时向89C52产生复位信号;看门狗进行系统监控,以防范死机的出现。
该定时器的ST信号能够在微处理器的数据信号、控制信号或地址信号里获得,但是不管哪一种信号都必须能周期性的访问DS1232。
在DS1232计数没有溢出时单片机发一信号就能使DS1232再进行重新计数,若一定时间内DS1232计数清零未完车,则
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 51 单片机 公交 智能 收费 系统