毕业论文-基于atmega16单片机的公交交通智能卡设计与实现_第1页
毕业论文-基于atmega16单片机的公交交通智能卡设计与实现_第2页
毕业论文-基于atmega16单片机的公交交通智能卡设计与实现_第3页
毕业论文-基于atmega16单片机的公交交通智能卡设计与实现_第4页
毕业论文-基于atmega16单片机的公交交通智能卡设计与实现_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

目录摘要1ABSTRACT1第1章绪论211研究背景212设计的意义和目的213系统设计总体要求314系统设计的方案选择3141IC卡的选择3142用户信息的存储3143程序编写4第2章软件的总体设计421系统软件设计思想422系统软件逻辑组成423系统流程图5第三章软件各个模块的设计531主程序532RC522C程序6321SPI相关操作6322读RC632寄存器READRAWADD8323写RC632寄存器WRITEADD,DATA9324清除RC632寄存器CLEARBITMASKREG,MASK9325设置RC632寄存器SETBITMASKREG,MASK9326通讯PCDCOMMF5229327寻卡PCDRUQUESTREG,PTAGTYPE9328放冲撞PCDANTICOLLPSNR9329MC522复位PCDRESET103210开启天线PCDANTENNAON103211关闭天线PCDANTENNAOFF103212端口的初始化INIT_PORT_RC5221033LCDC11331LCD12864写数据WRITE_COMCMD11332LCD12864写数据(WRITE_DATADAT)11333LCD12864定位显示数据WRITE_LCDLINE,ROW,STR,LEN11334LCD12863定位显示数据以L6进制形式显示主要用于显示卡号WRITE_LCD_HEXLINE,ROW,BUF,LEN12335清屏LCD12864(CLR_SCREEN)12336LCD12864初始化INIT_LCD1234BELLC(蜂鸣器)12341初始化蜂鸣器INIT_BELL13342蜂鸣器响BELL_POLL1335USARTC(串口通信)13351USART数据寄存器UDR14352USART控制和状态寄存器UCSRA15353USART控制和状态寄存器UCSRB15354USART控制和状态寄存器UCSRC16355波特率寄存器UBRRL和UBRRH17356初始化串口INIT_USART17357发送数据SEND_DATADATA17358接受数据RECEIVE_DATA1736连接数据库以及PC的串口程序18361连接数据库18362PC串口程序1937MIFARE1非接触式卡说明21371MIFARE1非接触式卡包含两个部分RF射频接口电路和数字电路。21372MIFARE1卡的存储结构22第四章软件测试2341数据库单元测试23411插入元素测试23412更新数据测试2442串口发送卡号单元测试2543集成测试25结论27致谢28参考文献29摘要随着城市规模的扩大,交通已经成为城市发展的一个重要因素。公交车射频卡可以提供更为方便、快捷的服务。面向开放式公交系统的乘客下车站台刷卡系统及数据传输技术的改善,充分运用了交通,电路即传输等专业的知识。本文对公交射频刷卡器的系统设计进行了研究。采用美国ATMEL公司的ATMEGA16单片机位控制核心,应用PHILIPS公司的MIFARE射频技术实现设计。本设计主要是系统软件设计。这部分描述了所应用的各部分的程序原理和代码,运用模块化结构,使程序设计的逻辑关系更加简洁明了;采用软件AVRSTUDIO4软件进行编程,SSCOM串口调试助手以及AVRFIGHTER程序烧录软件进行烧录。ABSTRACTALONGWITHTHEEXTENSIONOFTHECITYSCALE,THETRANSPORTATIONHASALREADYBECOMEANIMPORTANTFACTOROFTHECITYDEVELOPMENTTHEBUSRADIOFREQUENCYCARDCANPROVIDEMORECONVENIENCEANDFASTERSERVANCEPASSENGERSTOGETOFFTHESITECREDITCARDSYSTEMFOROPENBUSSYSTEMDEVELOPMENTISTHEIMPROVEMENTOFEXISTINGPUBLICTRANSPORTCIRCUITANDTRANSMISSIONTECHNOLOGYTHISTEXTCARRYONARESEARCHTOTHESYSTEMDESIGNOFTHEBUSRADIOFREQUENCYCARDMACHINE,ITADOPTEDSINGLECHIPMICROCOMPUTEROFTHEATMEGA16OFTHEAMERICANATMELCOMPANYASTHECONTROLCOREANDAPPLIEDTHEMIFARERADIOFREQUENCYTECHNIQUEOFTHEPHILIPSCOMPANYTOREALIZETHEDESIGN,THISDESIGNOFTHESYSTEMINCLUDETWOPARTSTHEHARDWAREDESIGNANDTHESOFTWAREDESIGNTHEHARDWAREDESIGNPARTDESCRIBEDTHEHARDWARECIRCUITSANDTHEPRINCIPLEOFEACHPART,MAINLYINCLUDEDISPLAYCIRCUITS,THEWATCHDOGCIRCUIT,THE93C46SERIALEEPROM,THEBUFFERCIRCUITANDREADCARDMACHINEALSO,ITGAVETHESYSTEMHARDWAREOFTHEINTEGRALDESIGNPRINCIPLEDIAGRAMAADOPTINGASSEMBLELANGUAGETOEDITTHESOFTWARE,USINGBLOCKINGSTRUCTUREANDGIVINGTHEFLOWCHARTOFEACHBLOCKMAKETHELOGICALRELATIONOFTHEPROGRAMDESIGNMORESIMPLYANDDIRECTLYTOUNDERSTANDITADOPTEDAVRSTUDIO4TODEBUGTHEPROGRAMMOREOVER,THISTEXTALSOGAVEDETAILEDPROGRAMLIST第1章绪论11研究背景随着我国经济的快速发展,各个大中小型城市的发展日新月异,人民生活水平逐渐提高,我国的汽车保有量也在持续的快速的增长,许多国家公共交通部门开始应用先进的信息与通信技术进行公交车定位、车辆监控、自动驾驶、计算机辅助调度及提供各种公共交通信息以提高公共服务水平。其中如美国,日本,加拿大,英国,法国,韩国等国家都投入了较大的人力和物力从事智能公交系统的研究,在国际处于领先地位,并已取得显著的成果。美国城市公共交通管理局(UMTA)已经启动了智能公交系统项目“ADVANCEDPUBLICTRANSPORTATIONSYSTEMSAPTS”,经过现场实验,UMTA关于APTS的评价是”APTS可以显著提高公交交通服务水平,吸引更多乘客采用公交和合伙乘车的出行模式,从而带来了减少交通拥挤,空气污染和能源消耗等一系列社会效益”。根据1998年美国运输部的联邦公交交通信息的实时信息发布理论,以及使用先进的电子,通讯技术提高公交效率和服务水平的实施技术。具体包括车队管理,出行者信息,电子收费和交通需求管理等几个方面的研究。其中车队管理主要研究通信系统,地理信息系统,自动车辆定位系统,自动乘客计数,公交运营软件和交通信号优先。日本城市公交交通智能化的发展经历了三个阶段二十世纪70年代末开始应用公交汽车定位系统公交汽车接近显示系统;80年代初开始应用公交交通运行管理系统,其中包括乘客自动统计,运行监视和运行控制;进入90年代,由于机动车数量的增长和严重交通拥挤的影响,要保持正常的行车速度是十分困难的,由此引起的公交交通的不便性和不可靠性导致乘客数量的急剧减少。东京都交通局开发了城市公共交通运输控制系统(CTCS),旨在改进公共汽车服务,重新赢得乘客。在CTCS中,公共交通运营管理系统的一个基本的框架,其目的是通过掌握运行情况以及乘客数据实现精确平稳的公共交通运营服务。它将运营中的公共汽车和控制室之间建立信息交换,并利用诱导和双向通讯的方法,将服务信息提供给服务人员和驾驶人员,同时这些信息也通过进站汽车指示系统和公交与铁路接驳信息系统提供给乘客。公共交通综合管理系统包括运营数据,乘客计数,监视和控制公共汽车运营和乘客服务等功能,其中乘客服务功能中包括进站汽车指示,信息查询和公共交通与铁路接驳信息提示。公共交通综合管理系统的硬件包括公交主控中心,区域中心以及路边,车库和车载设备等。12设计的意义和目的设计意义公交卡的广泛推广,将使公交管理迈上一个新台阶。公交射频卡不仅避免了因找零引起的尴尬;此外,射频卡的小巧、轻便、美观,便于乘客携带;同时,使用公交射频卡,可减少现金流通量,也减少了疾病传播的途径;减少了乘客上车付费的时间,缩短了公交车到站停靠的时间,一定程度上缓解了城市的交通压力。设计的目的通过此次的系统设计,了解射频卡以及GPS模块的使用原理;掌握单片机原理和接口设计;掌握实用电子信息系统设计与实现的方法。13系统设计总体要求总体要求(一)打开刷卡机,连接上数据库,当读卡器寻到卡时,读卡器会通过串口给PC机发送卡号,然后PC通过接受的卡号,查询数据库,把对应的卡号金额减1,然后通过数据库把计算后的金额发送给单片机,在LCD12864上显示对应的卡号和卡内剩余金额。(二)卡内金额的充值,打开串口,数据库,读卡器寻到卡时,会将卡号发送给PC机,PC根据数据库中的数据匹配卡号,然后输入充值金额,完成充值。(三)卡的注册,打开串口,数据库,读卡器寻到卡时,会将卡号发送给PC机,输入身份证号码,PC将卡号和身份证号码插入数据库。(四)卡的挂失,打开串口,数据库,读卡器寻到卡时,会将卡号发送给PC机,删除数据库中相应的卡号和卡的信息。14系统设计的方案选择141IC卡的选择方案一采用接触式IC卡实现设计方案二采用非接触式IC卡实现设计分析接触式的IC卡通过机械触电从读卡器获取能量和交换数据;非接触式IC卡通过线圈射频感应从读卡器获取能量和交换数据,所以又称射频卡。与接触式IC卡相比非接触式卡更有优势可靠性高,非接触式IC卡与读卡器之间无机械接触,避免了由于接触读写而产生的各种故障;由于非接触通讯,读卡器在10CM范围内就可以对卡片操作,所以不必插拔卡,非常方便用户使用;加密性好,非接触式IC卡有IC芯片,感应天线组成,并完全密封在一个标准PVC卡片中,无外漏部分。显然,射频卡在实际应用中更有优势。因此,在设计过程中,选择第二中方案。142用户信息的存储方案一存储在公交卡内方案二存储在数据库中分析公交刷卡机是应用于公交车上的,各车上的用户数据难以保持同步,除非无线通信,考虑当用户的公交卡丢失时,采用方案一卡中的信息可能造成泄漏,并且挂失的时候由于没有存储用户信息而造成很多困难,可靠性安全性能低。而方案二实现了对公交卡的统一管理,操作方便,可靠性高,易于管理维护。所以选择方案二。143程序编写方案一用汇编编程实现编码程序方案二用C语言实现程序的编写分析单片机可以采用汇编语言和C语言进行编程。汇编语言是机器语言,指令的执行速度快,节省存储空间。在本次设计中,C语言比较好理解,易于编程人员和其他人员看懂,基于C语言的通俗易懂符合人的正常逻辑,所以选择用C语言来编写程序。第2章软件的总体设计21系统软件设计思想系统软件按各电路分模块编写,形成各具独立功能的子程序。主程序则对这些子程序进行调用,以实现功能。当读卡器调用PCDREQUEST函数来寻进入天线内的卡片,寻到卡后,调用PCDANTICOLL函数来防冲撞,防完冲撞后,会把卡的序列号卡的唯一标识放入数组CARDREVBUF中,四个字节。然后调用函数SEND_DATA函数通过串口把卡的序列号发送给PC,PC的串口接收程序是用JAVA来实现,通过调用函数READPORT来接收卡的序列号实现对数据库的相关操作增,删,改,查。通过调用WRITEPORT函数来把更新后的卡中的金额写回卡中,并且通过调用LCD_SHOW_VAL函数来把卡的卡号,金额显示在LCD12864上,随之蜂鸣器响来表示操作成功。22系统软件逻辑组成主要分为RFID程序;RC522程序;LCD程序;USART程序;BELL程序。分析RFID程序为主程序,系统执行的入口,通过调用其它模块的函数实现功能。RC522程序为读卡器程序,来寻到进入天线内的卡,获得卡号。LCD程序为液晶显示程序,来显示主界面和卡的相关信息。USART程序为串口通信程序,来实现单片机与PC中数据库的交互。BELL程序为蜂鸣器程序,来实现提示相关操作成功。23系统流程图刷卡刷卡寻卡防冲撞YN发送卡号YN卡注册N卡中金额减1发送当前金额Y单片机接受LCD12864显示蜂鸣器响操作成功结束图1主程序流程图第三章软件各个模块的设计31主程序分析包含对读卡器,LCD12864,串口的初始化函数。显示界面,以及调用寻卡,防冲撞函数,发送卡的序列号,接受返回的金额数据,蜂鸣器的响来知识操作成功。32RC522C程序分析读卡器是通过SPI总线来与单片机通信读SPI数据,写SPI数据,读RC632寄存器,写RC532寄存器,清除RC532寄存器,设置RC532寄存器,计算CRC16,通过RC522和ISO14443卡通讯,寻卡,防冲撞,选定卡片,复位RC522,设置RC522的工作方式,开启天线,关闭天线,初始化RC522端口,初始化RC522模块。321SPI相关操作SPISERIALPERIPHERALINTERFACE串行外设接口总线系统是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息。SPI有三个寄存器分别为控制寄存器SPCR,状态寄存器SPSR,数据寄存器SPDR。SPI包含4条线MOSI输出数据,MISO输入数据,SCK时钟,SS使能主要特征一全双工,3线同步数据传输二可选择的主/从操作模式三数据传送时,可选择LSB(低位在前)方式或MSB高位在前方式四7种可编程的位传送速率五数据传送结束中断标志六写冲突标志位保护七从闲置模式下被唤醒八倍速(CK/2)SPI传送主机模式下1数据寄存器SPDR图2SPDRSPI数据寄存器为可读/写的寄存器,用于在通用寄存器组与SPI移位寄存器之间传送数据。写数据到该寄存器时,将启动或准备数据传送;读该寄存器时,读到的是移位寄存器配备的接受缓冲区中的值2控制寄存器SPCR图3SPCR位7SPIESPI中断允许。当全局中断触发允许标志位I位1,且SPIE为1时,如果SPCR寄存器的中断标志SPIF位为1,则系统响应SPI中断。位6SPESPI允许。当该位写入1时,允许SPI接口。在进行SPI的任何操作时,必须将该位置位。位5DORD数据溢出顺序。当DORD1时,数据传送为LSB方式,即低位在先;当DORD0时,数据传送为MSB方式,即高位在先。位4MSTR主/从机选择方式。如果SS端口设置为输入,且在MSTR为1时被外部拉低,则MSTR将清除,同时SPSR中的SPIF位置为1,此时SPI由主机模式转换为从机模式。此后用户需要重新设置位MSTR,才能再次将SPI设置为主机方式。位3CPOLSCK时钟极性选择。当该位被设置为1时,SCK在闲置时是高电平;为0时,SCK在闲置时是低电平。CPOL起始沿结束沿0上升沿下降沿1下降沿上升沿位2CPHASCK时钟相位选择。CPHA位的设置决定了串行数据的锁存采样是在SCK时钟的前沿还是后沿。CPOL和CPHA决定了SPI的工作模式。CPHA起始沿结束沿0采样设置1设置采样位10SPR1和SPR0SPI时钟速率选择。这两个标志位与寄存器SPSR中的SPI2X位一起,用于设置主机模式下产生的串行时钟SCK速率。SPR1和SPR0对于从机模式无影响。SPI2XSPR1SPR0SCK频率000FOSC/4001FOSC/16010FOSC/64011FOSC/128100FOSC/2101FOSC/8110FOSC/32111FOSC/643SPI的状态寄存器SPSR图4SPSR位7SPIFSPI中断标志。当串行传送完成时,SPIF位置1如果SPSR中的SPIF位为1,且全局中断允许位I位1,则产生中断。如果SS设置位输入,且在SPI为主机模式时被外部拉低,则也会置位SPIF标志。SPIF标志位的属性为只读。清0SPIF有以下两种方式硬件方式。MCU响应SPI中断,转入SPI中断向量的同时,SPIF位由硬件自动清除。软件方式。先读取SPI状态寄存器SPSR,然后再进行一次对SPI数据寄存器SPDR的操作。位6WCOL写冲突标志。如果在SPI接口的数据传送过程中向SPI的数据寄存器SPDR写入数据,则会置位WCOL。清0WCOL标志只能通过以下软件方式先读取SPI状态寄存器SPCR,然后再实行一次对SPI数据寄存器SPDR的操作。位51保留位位0SPI2X倍速SPI选择。在主机SPI模式下,当该位写为逻辑“1”时,SPI的速度将加倍,这就意味着产生最小的SCK周期为MCU时钟周期的2倍。当SPI设置为从机模式时,SCK必须低于FOSC/4,才能确保有效数据传送。4SPI读时序SPIREADBYTE图6SPI读时序可以看出先使能SS,然后把时钟线SCK拉低,在输入线上MISO读0或1一个BIT,然后把SCK拉高,即可,一次读一个字节。5SPI写时序SPIWRITEBYTEDATA图7SPI写时序写的时候先使能SS,然后把时钟线SCK拉低,在输出线上MOSI写0或1一个BIT,然后把SCK拉高,即可,一次写一个字节。322读RC632寄存器READRAWADD即从寄存器中相应的地址读取数据,地址格式16位是地址位,7位为1是读,8位是0。然后调用SPIWRITEBYTEADDRESS把地址写到总线上。然后调用SPIREADBYTE函数读取相应寄存器里面的数据。323写RC632寄存器WRITEADD,DATA即把数据写到相应的寄存器中,地址格式16位是地址位,7位为0是写,8位是0,然后调用SPIWRITEBYTEADDRESS先写入寄存器地址。然后再调用SPIWRITEBYTEDATA函数把数据写入寄存器。324清除RC632寄存器CLEARBITMASKREG,MASK先调用READRAWREGTMP读取相应寄存器中的数据,然后调用WRITERAWREG,TMP选择8BIT数据流;写命令WRITE_COM0X0C开显示无游标、不反白;写命令WRITE_COM0X01清除显示,并且设定地址指针为00H;写命令WRITE_COM0X06指定在资料的读取及写入时,设定游标的移动方向及指定显示的移位。34BELLC(蜂鸣器)分析蜂鸣器响意味着操作成功。PB1输出控制着蜂鸣器。原理图图10蜂鸣器原理图341初始化蜂鸣器INIT_BELL分析即把PB1设为输出。342蜂鸣器响BELL_POLL分析PORTB_BVPB1PB11010循环蜂鸣器响。_DELAY_MS10035USARTC(串口通信)分析RX发送口PD0,TX接受口PD1用于向电脑发送数据即卡的序列号。原理图图11串口原理图AVR的异步传输接口USART功能(1)全双工通信(相互独立的接受数据寄存器和发送数据寄存器)(2)支持同步或异步传输操作。(3)同步传输操作时,可采用主机时钟同步,也可采用从机时钟同步。(4)独立的高精度波特率发生器,不占用定时/计数器(5)扩展的,支持59为数据位和1位或2位停止位的串行数据帧结构。(6)有硬件支持的奇偶校验位和数据校验。(7)硬件实现的数据溢出检测。(8)硬件实现的帧错误检测。(9)包括错误起始位检测的噪声滤波器和数字低通滤波器。(10)配备3个完全独立的中断源TX发送完成,TX发送数据寄存器和RX接收完成(11)支持多机通信模式(12)支持倍速异步通信模式351USART数据寄存器UDRUDR寄存器有2个物理上分离的寄存器RXB,TXB构成,他们使用相同的I/O地址。写UDR的操作,是将发送的数据写入到寄存器TXB中;读UDR的操作,读取的是接受寄存器RXB的内容。当设定使用5,6的数据帧时,高位未用到的位在发送时被忽略,在接受时有硬件自动清0只有在USART寄存器中的UDRE位置1时(数据寄存器位空),UDR才能被写入;否则写入的数据将被USART忽略。在发送使能的情况下,写入UDR的数据将进入发送器的移位寄存器,由引脚TXD串行移出。352USART控制和状态寄存器UCSRA图12UCSRA位7RXCUSART接受完成。当收到的字符从接受移位寄存器传到UDR中(RXB)且未被读取时,该位置1不论是否有接受错误,该位都设置。当设置禁止接受时,UDR中的数据就会刷新,同时清0RXC标志。RXC的置位会产生完成的中断请求。RXC在读UDR时自动清0位6TXCUSART发送完成。当发送移位寄存器的全部数据移出后,且在数据寄存器UDR中(TXB)没有待发送的数据时,该位置1TXC由硬件自动清0TXC位也可以通过向该位写一个逻辑“1”而清“0”。位5UDREUSART数据寄存器空,当写入UDRTXB的字符被传送到发送移位寄存器中时,该位置1,表示UDR可以写入新的发送数据。UDRE的置1会产生发送数据寄存器空的中断请求。系统复位时,UDRE置1,表示USART数据寄存器为空,数据发送已准备好。位4FE接受帧出错。如果在接受缓冲器中刚收到的数据帧被检测到帧出错,则该位置1FE在收到数据帧的停止位“1”时被清除,此外,重写寄存器USART的操作总是设置FE标志位为“1”。位3DOR接受数据溢出出错。如果接受数据溢出条件被检测到,则该位置“1”。当接受缓冲器满,同时接受器又检测到一个新的起始位时,则接收数据溢出出错发生。该位将一直保持为1,直到接受缓冲UDR被读取。重写寄存器USART的操作总是设置DOR标志位为0位2PE检验错误。在接受允许和校验位比较允许都使能时,接受器检测到刚接受的数据校验出错,那么该位置1该位将一直保持1,直到该接受缓冲UDR被读取。重写寄存器USART的操作总是设置PE标志位为0位1U2XUSART传输速率倍速。该位只有在异步模式下有效,当使用同步模式时,应设置该位为0如果设置该位为1,则将使波特率分频器的分频比由16降到8,其效果是异步通信的传输速率加倍。位0MPCM多机通信模式允许。该位使能多机通信模式。当MPCM位写为“1”时,所有接收到的数据帧,如果不包括地址信息的话,将被USART接受器忽略。USART的发送模块不收MPCM设置的影响。353USART控制和状态寄存器UCSRB图13UCSRB位7RXCIERX接收完成中断允许。当该位置1时,表示允许响应接受额按成中断请求。如果全局中断标志位I为1且RXCIE位为1,那么当标志位RXC置1时,一个接受完成中断服务被执行。位6TXCIETX发送完成中断允许。当该位置1时,表示允许响应发送完成中断请求。如果全局中断标志位I为1,且TXCIE位为1,那么当标志位TXC置1时,一个发送完成中断服务被执行。位5UDRIEUSART数据寄存器空中断允许。当该位置1时,表示允许响应发送数据寄存器UDR空中断请求。如果全局中断标志位I位1且UDRIE为1,那么当标志位UDRE置1时,一个发送数据寄存器空中断服务被执行。位4RXEN数据接受允许。当该位置1时,允许USART接受数据。当接受器使能时,对应引脚的特性由通用数字I/O口转变为RXD。禁止数据接受,将清除接受缓冲器中的数据,并使FE,DOR,PE标志位无效(为0)。当接受数据被禁止后,USART发送器将不再占用RXD引脚。位3TXEN发送数据允许。当该位置1时,允许USART发送数据。当发送器使能时,对应引脚的特性由通用数字I/O口转变为TXD如果在发送数据时禁止发送器,则在移位寄存器中的数据和后续UDR中的数据被全部发送完成后,发送器才会禁止。当发送器禁止后,USART发送器将不再占用TXD引脚。位2UCSZ2数据字位数大小。该位与UCSRC寄存器中的UCSZ10位一起使用,用于设置接收和发送数据帧中数据字位的个数。位1RXB8接收数据的第8位。当采用接收的数据帧格式为9位数据帧时,RXB8中接收到数据的第9数据位。RXB8标志位必须在读UDR之前读取。位0TXB8发送数据的第8位。当采用发送数据帧格式9位数据帧时,TXB8中发送数据的第9位数据位。TXB8标志位必须在URD写入前写入。354USART控制和状态寄存器UCSRC图14UCSRC位7URSEL寄存器选择。该位用于对UCSRC/UBRRH寄存器进行选择。写UCSRC寄存器时,该位必须写入1,读取UCSRC时,该位总是1位6UMSELUSART工作模式选择。该位用于选择USART为同步或异步工作模式。位54UPM10校验方式。这2位用于允许和选择产生或验证校验位的类型。如果使能校验模式,发送器将根据发送的数据,自动产生符合要求的校验位,并附加在每一个数据帧后发送。接收器将对接受的数据帧进行校验,产生校验位,并与UPM0的设置进行比较。如果不匹配,则USART寄存器中的PE标志位将置1。位3USBS停止位选择。该位用于选择插入到发送帧中停止位的个数。位21UCSZ10传送或接受字符长度。这2位同UCSRB寄存器中的UCSZ2位一起使用。位0UCPOL时钟极性选择。该位只在同步模式下使用。在异步模式下,应将该位写为0UCPOL位设定了串行输出数据变化和数据输入采样和同步时钟XCK之间的关系。355波特率寄存器UBRRL和UBRRH图16UBRRH位15URSEL寄存器选择。该位用于对UBRRH/UCSRC寄存器的选择。写UBRRH寄存器时,该位必须写入0,读取UBRRH时,该位总是0位1412保留位。位110UBRR110USART波特率设置寄存器。由寄存器UBRRH低4位和寄存器UBRRL的8位构成一个12位的寄存器,用于对USART传送或接受波特率的设置。如果波特率设置被改变,则正在进行接受和发送将被打断。写UBRRL将立即更新对波特率预分频的设置。356初始化串口INIT_USART分析UCSRA0X00单倍速模式UCSRB_BVRXCIE|_BVTXCIE|_BVRXEN|_BVTXENUCSRC_BVURSEL|_BVUCSZ1|_BVUCSZ0UBRRH0因为晶振7372800HZ的9600波特率。UNSIGNEDINTUNSIGNEDLONGF_CPU/16UNSIGNEDLONGBAUD1UBRRL47357发送数据SEND_DATADATA分析WHILEUCSRA当UDRE位置位时,表示可以写入新的数据UDRDATA358接受数据RECEIVE_DATA分析WHILEUCSRA当RXC位置位时,表示接受到新的数RETURNUDR36连接数据库以及PC的串口程序361连接数据库连接数据库程序用JAVA实现。用ORACLE数据库首先建表BUS其中包含3个字段ID(卡号),CUSTOMERID持卡人的身份证号,MONEY(卡内金额)。首先得有JAVASQL包一JAVASQLDRIVERMANAGER用来转载驱动程序,并为创建新的数据连接提供支持。CLASSFORNAME“ORACLEJDBCDRIVERORACLEDRIVER“建立桥接器。二JAVASQLCONNECTION完成对某一指定数据库的连接。GETCONNECTION“JDBCORACLETHINLOCALHOST1521ORCL“,“BUS“,“BUS“数据库的名字ORCL用户BUS用户密码BUS。三JAVASQLSTATEMENTJDBC一般采用基于STATEMENT对象的查询方法。首先使用STATEMENT类声明一个SQL语句对象,然后通过该连接对象调用CREATESTATEMENT方法创建SQL语句对象PSTMCONPREPARESTATEMENT“SELECTFROMBUS_MANAGEWHEREID“有了SQL对象后,这个对象就调用相应的方法实现对数据库的查询操作。具体的,在STATEMENT对象上,可以使用EXECQUERY方法执行查询语句。EXECQUERY方法的参数是一个STRING对象,即一个SQL的数据处理语句,并将查询结果放在RESULTSET类声明的对象中,然后进行相应的处理。RSPSTMEXECUTEQUERY在SQL中查询操作是通过SELECT语句来完成的,基本的SELECT语句格式SELECTFROM对数据库进行更新操作1插入记录INSERTINSERTINTO表名字段名1,字段名2VALUES值1,值2,注意插入的值必须和列一一对应。插入值的数据类型必须和对应列的数据类型相一致。2更新记录UPDATEUPDATESET字段1值1WHERE3删除记录DELETEDELETEFROMWNERE条件在使用DELETE语句时要特别小心,因为SQL中的DELETE没有相应的UNDO命令可以将删除的数据恢复,因此,为避免错误,最好是在删除前用带相同条件的SELECT语句查询一遍,确认无误后在执行DELETE语句。四消费当做公交车刷卡消费时,应当时接受到的卡的序列号的卡内金额减1具体操作先使用上述方法连接到数据库,然后打开串口程序,当接受到卡的序列号时SQL语句“SELECTFROMBUS_MANAGEWHEREID“先查询到相应的卡RSPSTMEXECUTEQUERY/返回结果集INTTMPRSGETINT21把金额减1后放入TMP中,“UPDATEBUS_MANAGESETMONEYWHEREID“更新语句更新卡的金额。五充值当要充值时,应当时接受到的卡的序列号的卡内金额加上充值的金额具体操作先使用上述方法连接到数据库,然后打开串口程序,当接受到卡的序列号时SQL语句“SELECTFROMBUS_MANAGEWHEREID“先查询到相应的卡RSPSTMEXECUTEQUERY/返回结果集INTBALANCERSGETINT2INTSUMBALANCEMONEY“UPDATEBUS_MANAGESETMONEYWHEREID“更新语句更新卡的金额。六新卡注册执行“INSERTINTOBUS_MANAGEVALUES,“插入语句SETSTRING1,ID设定从串口接受到的IDSETINT2,0设定卡内金额为0SETSTRING3,TEXT设定用户ID身份证号EXECUTEUPDATE更新数据库。七卡的挂失“SELECTFROMBUS_MANAGEWHEREID“先查询接受的卡的ID然后执行“DELETEFROMBUS_MANAGEWHEREID“删除语句,在数据库中删除卡的序列号即卡的相关信息。362PC串口程序JAVA通信串口包串口API概览JAVAXCOMMCOMMPORT这是用于描述一个被底层系统支持的端口的抽象类。它包含一些高层的IO控制方法,这些方法对于所有不同的通讯端口来说是通用的。SERIALPORT和PARALLELPORT都是它的子类,前者用于控制串行端口而后者用于控这并口,二者对于各自底层的物理端口都有不同的控制方法。这里我们只关心SERIALPORT。JAVAXCOMMCOMMPORTIDENTIFIER这个类主要用于对串口进行管理和设置,是对串口进行访问控制的核心类。主要包括以下方法一确定是否有可用的通信端口二为IO操作打开通信端口三决定端口的所有权四处理端口所有权的争用五管理端口所有权变化引发的事件(EVENT)JAVAXCOMMSERIALPORT这个类用于描述一个RS232串行通信端口的底层接口,它定义了串口通信所需的最小功能集。通过它,用户可以直接对串口进行读、写及设置工作。1串口初始化INITCOMM打开硬件资源,并获取串口COMMPORTIDENTIFIERGETPORTIDENTIFIERCOMMNAME设置软件资源,设置进程名称和超时时间COMMPORTIDENTIFIERGETPORTIDENTIFIERCOMMNAMEOPEN“READ“,1000打开数据传输参数SETSERIALPORTPARAMSBPS,DATABIT,STOPBIT,PARITYBIT/比特率9600,8位数据位,1位停止位,无校验位。创建输入流GETINPUTSTREAM创建输出流GETOUTPUTSTREAM;监听端口ADDEVENTLISTENERTHIS接受数据使能NOTIFYONDATAAVAILABLETRUE初始化串口线程为主线程READTHREADNEWTHREADTHIS2获取系统中所用的全部串口(STRINGLISTPORT)COMMPORTIDENTIFIERGETPORTIDENTIFIERS3开始读串口转化为字符串STRINGREADPORT先让输入流使能,然后读书据到BUF中,转换为字符串INTIBYTEBUF0以16进制显示。4写串口以字符串形式发送消息把数据写到输出流上,刷新输出流。5关闭串口CLOSEPORT判断输出流位NULL,关闭输出流和输入流。关闭监听端口REMOVEEVENTLISTENER接受数据禁能NOTIFYONDATAAVAILABLEFALSE6串口监听事件SERIALEVENTSERIALPORTEVENTBI/BREAKINTERRUPT,通讯中断SERIALPORTEVENTOE/OVERRUNERROR,溢位错误/SERIALPORTEVENTFE/FRAMINGERROR,传帧错误/SERIALPORTEVENTPE/PARITYERROR,校验错误/SERIALPORTEVENTCD/CARRIERDETECT,载波检测/SERIALPORTEVENTCTS/CLEARTOSEND,清除发送/SERIALPORTEVENTDSR/DATASETREADY,数据设备就绪/SERIALPORTEVENTRI/RINGINDICATOR,响铃指示/SERIALPORTEVENTDATA_AVAILABLE/串口有可用数据读到缓冲数组输出到终端SERIALPORTEVENTOUTPUT_BUFFER_EMPTY/输出缓冲区清空37MIFARE1非接触式卡说明371MIFARE1非接触式卡包含两个部分RF射频接口电路和数字电路。一RF射频接口电路在RF射频接口电路中,主要包括有波形装换模块。它可将卡片读写器上的1356HZ的无线电调制频率接受,一方面送调制/解调模块,另一方面进行波形装换,将正弦波转换为方波,然后对其整个滤波,由电压调节模块对电压进行进一步的处理图17MIFAREONE二数字电路部分总共包含ATR模块,ANTICOLLISION模块,SELECTAPPLICATION模块,AUTHENTICATIONNOW,WITHITSGLASSBOTTOM,THEBRIDGEISALREADYBEINGREFERREDTOAS“HEROBRIDGE”THEPOPULARCHAINSLONGTIMEEXECUTIVECHEFEMBRACESMAPOTOFUANDOTHEREXOTICELEMENTSFORTHEBURGERDRIVENMENU,LIUZHIHUAREPORTSATTHEAGEOF37,SHANGHAINATIVELINZHENGUHASBECOMEASTARASAWESTERNCUISINECHEFINTHECHINESEMETROPOLIS,ACITYTHATHASAWEALTHOFWESTERNRESTAURANTSTHEEXECUTIVECHEFOFBLUEFROGBARANDGRILL,APOPULARBURGERBASEDRESTAURANTANDBARCHAINONTHECHINESEMAINLAND,LINISTHESOULOFTHERESTAURANTFRANCHISESTEAMOFMORETHAN550CHEFSMANYOFTHEFRANCHISESMOSTPOPULARDISHESAREHISBRAINCHILDLINSAYSHISSECRETOFSUCCESSISINNOVATIONROOTEDINEXPERIENCEHESPENDSMONTHSEVERYYEARTRAVELINGANDEATINGWORLDWIDE,SEEKINGNEWINGREDIENTSANDINSPIRATIONSTHATCOULDIMPROVETHEOFFERINGSOFBLUEFROGRESTAURANTSTHER

温馨提示

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

评论

0/150

提交评论