




已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于RFID技术的电子钱包的设计与实现的方案摘要随着社会与经济的发展需要,RFID技术在各行各业的认可,得到了广泛的应用与发展,尤其是在安全系数较高的行业,为人们日常生活提供了诸多便利,保障了人们的生活安全。RFID技术,可通过无线电讯号识别特定目标并读写相关数据,是一种通信技术。本文剖析了RFID技术的国内外现状、未来发展趋势等问题,提出了基于RFID技术的电子钱包的设计与实现的方案。对从系统的可行性研究分析及需求分析过渡到系统的硬件电路设计、软件设计等做出了详细介绍。基于RFID技术的电子钱包采用了基于MF RC522的FS_RFID开发套件进行研究,能读写Mifare非接触式射频卡,当有卡片进入读写器的操作范围时,自动识别是否为M1射频卡,随之对卡内数据块进行读写操作,并将卡的序列号及相关数据通过串口读写程序存放在数据库中,同时将最新数据实时刷新显示在网页上,以便用户获取所需要的信息。关键词:RFID技术;电子钱包;MF RC522;M1射频卡AbstractWith the needs of the development of society and economy, the RFID technology in all walks of life has been a wide range of applications and development, especially the industry safety coefficient is higher, to the peoples daily life provides many convenience and guarantee the safety of peoples life. RFID technology, also known as radio frequency identification, is a kind of communication technology, which can identify the specific target and read and write data through the radio.This paper analyzes the research status of RFID technology at home and abroad, the future development trends and other issues, and puts forward the design and implementation of electronic wallet based on RFID technology. From the system feasibility study analysis and the demand analysis transition to the system hardware circuit design, software design and so on has made the detailed introduction.Electronic purse based on RFID technology uses based on MF rc522 FS RFID development kit, be able to read and write Mifare contactless RF card, when the card into the operating range of the device to read and write, automatically identify whether the M1 RF card, along with the card data block read and write operation, and the card serial number and related data through the serial port to read write programs are stored in the database. At the same time, the latest data real-time refresh the display on the page, so that users can obtain needed information.Key words:the RFID technology; Electronic purse; MF rc522; the M1 RF card1 绪论1.1课题研究的背景及意义RFID技术发展迅速,作为20世纪的十大技术之一,已经在工业、交通、物流等多个领域得到了越来越广泛的应用,并且日益显示出它的巨大潜力。 随着RFID技术的不断发展和标准的不断完善,RFID产业链从硬件制造技术、中间件到系统集成应用等各环节都得到提升和发展。 RFID技术的产品实现了多样化,由单一识别向多功能识别发展。RFID产业与其他IT产业一样,当标准和关键技术解决和突破之后,与其他产业融合将形成更大的产业集群,并得到更加广泛的应用,实现跨地区、跨行业应用。 当RFID系统应用普及到一定程度时,每件产品都能通过RFID技术赋予身份标识。RFID技术与互联网、电子商务结合将是一种必然趋势,它将极大地改变传统的生活、工作和学习方式。RFID技术已经涉及人们日常生活的各个方面,并被广泛应用于工业自动化、商业自动化、交通运输控制管理等众多领域,如火车的交通监控系统、高速公路自动收费系统、物品管理、流水线生产自动化、门禁系统、金融交易、仓储管理、畜牧管理、车辆防盗等,RFID技术已经成为未来信息社会建设的一项基础技术。1.2课题研究现状1.2.1国外研究现状从全球的范围来看,美国政府是RFID应用的积极推动者,在其推动下美国在RFID标准的建立、相关软硬件技术的开发与应用领域均走在世界前列。欧洲RFID标准追随美国主导的EPCglobal标准。在封闭系统应用方面,欧洲与美国基本处在同一阶段。日本虽然已经提出UID标准,但主要得到的是本国厂商的支持,如要成为国际标准还有很长的路要走。RFID在韩国的重要性得到了加强,政府给予了高度重视,但至今韩国在RFID的标准上仍模糊不清。目前,美国、英国、德国、瑞典、瑞士、日本、南非等国家均有较为成熟且先进的RFID产品。从全球产业格局来看,目前RFID产业主要集中在RFID技术应用比较成熟的欧美市场。飞利浦、西门子、ST、TI等半导体厂商基本垄断了RFID芯片市场;IBM、HP、微软、SAP、Sybase、Sun等国际巨头抢占了RFID中间件、系统集成研究的有利位置;Alien、Intermec、Symbol、Transcore、Matrics、Impinj等公司则提供RFID标签、天线、读写器等产品及设备。1.2.2国内研究现状相较于欧美等发达国家或地区,我国在RFID产业上的发展还较为落后。目前,我国RFID企业总数虽然超过100家,但是缺乏关键核心技术,特别是在超高频RFID方面。从包括芯片、天线、标签和读写器等硬件产品来看,低高频RFID技术门槛较低,国内发展较早,技术较为成熟,产品应用广泛,目前处于完全竞争状况;超高频RFID技术门槛较高,国内发展较晚,技术相对欠缺,从事超高频RFID产品生产的企业很少,更缺少具有自主知识产权的创新型企业。从产业链上看,RFID的产业链主要由芯片设计、标签封装、读写设备的设计和制造、系统集成、中间件、应用软件等环节组成。目前我国还未形成成熟的RFID产业链,产品的核心技术基本还掌握在国外公司的手里,尤其是芯片、中间件等方面。中低、高频标签封装技术在国内已经基本成熟,但是只有极少数企业已经具备了超高频读写器设计制造能力。国内企业基本具有RFID天线的设计和研发能力,但还不具备应用于金属材料、液体环境上的可靠性RFID标签天线设计能力。系统集成是发展相对较快的环节,而中间件及后台软件部分还比较弱。1.3课题设计任务基于RFID技术的电子钱包的设计主要由两大部分:硬件系统和软件系统。硬件系统包括射频系统电路的设计;软件系统包括射频卡的读写程序、串口读写程序、数据库、Web程序等的设计编写。电子钱包基于RFID技术,可通过FS_RC522 RFID模块实现卡的识别并进行数据读写,完成读取卡的序列号及卡内金额增、减值操作的功能,并可完成将相关数据实时刷新显示在HTML网页上的功能。1.4论文结构1 绪论2 RFID技术概述3 系统的可行性研究与需求分析4 系统总体设计5 系统详细设计6 系统测试7 系统使用手册2 RFID技术概述RFID系统是一种非接触式的自动识别系统,通过射频无线信号自动识别目标对象,并获取相关数据。RFID系统以电子标签来标识某个对象,电子标签通过无线电波与读写器进行数据交换,读写器可将主机命令传达到电子标签,再把电子标签返回的数据传达到主机,主机的数据交换与管理系统负责完成电子标签数据的存储、管理和控制。2.1 RFID系统的构成RFID系统一般由电子标签、读写器及外部主机(PC机)组成。图2.1RFID系统的构成电子标签是指由IC芯片和无线通信天线组成的超微型的小标签,其内置的射频天线用于和读写器进行通信。电子标签附着在物体上标识目标对象,具有唯一的编码,存储被识别对象的相关信息。根据应用场合不同表现为不同的应用形态,如电子狗牌、门禁卡、交通卡等。图2.2电子标签的内部结构读写器是利用射频技术读写电子标签信息的设备,一般由天线、射频接口和逻辑控制单元三部分组成。工作时,读写器发射一个特定的询问信号,当电子标签感应到这个信号后,就会给出应答信号,应答信号中含有电子标签携带携带的数据信息。读写器读取到数据后,对其进行处理,最后将数据返回给外部主机系统,进行相应操作处理。图2.3读写器组成2.2 RFID系统的工作流程RFID利用无线射频方式,在读写器和电子标签之间进行非接触式双向数据传输,以达到目标识别和数据交换的目的。RFID工作流程如下:2.3 Mifare非接触式射频卡Mifare非接触式射频卡是菲利普下属子公司恩智浦生产的芯片卡,广泛使用的有S50和S70型号,简称M1卡。属于非接触式卡片,避免了读写器与卡之间的物理接触,避免了卡的磨损,可在无须人工干涉的情况下进行识别工作。2.3.1 M1卡主要指标2.3.2 M1卡的存储结构1. M1卡分为16个扇区,每个扇区由4块(块0、块1、块2、块3)组成,如下图所示:扇区0块0 数据块0块1数据块1块2数据块2块3密码A 存取控制 密码B控制块3 扇区1块0数据块4块1数据块5块2数据块6块3密码A 存取控制 密码B控制块7 扇区15 块0数据块60 块1数据块61 块2数据块62 块3密码A 存取控制 密码B控制块63图2.4 M1卡的存储结构2. 第0扇区的块0(即绝对地址0块),它用于存放厂商代码,已经固化,不可更改。3. 每个扇区的块0、块1、块2为数据块,可用于存贮数据。数据块可作两种应用:A. 用作一般的数据保存,可以进行读、写操作。B. 用作数据值,可以进行初始化值、加值、减值、读值操作。4. 每个扇区的块3为控制块,包括了密码A、存取控制、密码B。具体结构如下图所示:A0 A1 A2 A3 A4 A5 FF 07 80 69 B0 B1 B2 B3 B4 B5密码A(6字节) 存取控制(4字节) 密码B(6字节) 图2.5 控制块3结构5. 每个扇区的密码和存取控制都是独立的,可以根据实际需要设定各自的密码及存取控制。存取控制为4个字节,共32位,扇区中的每个块(包括数据块和控制块)的存取条件是由密码和存取控制共同决定的,在存取控制中每个块都有相应的三个控制位,定义如下表所示:块0C10C20C30块1C11C21C31块2C12C2C32块3C13C23C33表2.1 存取控制-控制位三个控制位以正和反两种形式存在于存取控制字节中,决定了该块的访问权限(如进行减值操作必须验证KEY A,进行加值操作必须验证KEY B,等等)。存取控制(4字节,其中字节9为备用字节)结构如下表所示:bit 7bit 6bit 5bit 4bit 3bit 2bit 1bit 0字节6C23_bC22_bC21_bC20_bC13_bC12_bC11_bC10_b字节7C13C12C11C10C33_bC32_bC31_bC30_b字节8C33C32C31C30C23C22C21C20字节9表2.2 存取控制(4字节)结构6. 数据块(块0、块1、块2)的存取控制,如下表所示: 控制位(X=0.2) 访问条件(对数据块 0、1、2)C1XC2XC3XReadWriteIncrementDecrement, transfer,Restore000KeyA|BKeyA|BKeyA|BKeyA|B010KeyA|BNeverNeverNever100KeyA|BKeyBNeverNever110KeyA|BKeyBKeyBKeyA|B001KeyA|BNeverNeverKeyA|B011KeyBKeyBNeverNever101KeyBNeverNeverNever111NeverNeverNeverNever表2.3 数据块的存取控制7. 控制块3的存取控制与数据块不同,如下表所示:控制位密码A存取控制密码BC13C23C33ReadWrite ReadWriteReadWrite000NeverKeyA|BKeyA|BNeverKeyA|BKeyA|B010NeverNeverKeyA|BNeverKeyA|BNever100NeverKeyBKeyA|BNeverNeverKeyB110NeverNeverKeyA|BNeverNeverNever001NeverKeyA|BKeyA|BKeyA|BKeyA|BKeyA|B011NeverKeyBKeyA|BKeyBNeverKeyB101NeverNeverKeyA|BKeyBNeverNever111NeverNeverKeyA|BNeverNeverNever表2.4 控制块的存取控制2.4.3 M1卡与读写器的通讯3 系统的可行性研究与需求分析3.1所建议技术的可行性分析3.1.1对系统的简要概述电子钱包基于RFID技术,可通过FS_RC522 RFID模块实现卡的识别并进行数据读写,完成读取卡的序列号及卡内金额增、减值操作的功能,并可完成将相关数据实时刷新显示在HTML网页上的功能。3.1.2处理流程和数据流程图3.1系统流程图3.1.3系统技术分析A. 对硬件电路的可行性分析在硬件方面我们采用的samsung公司的S5PV210处理器,该处理器采用了ARM公司的ARM Cortex-A8的内核。Cortex-A8基于ARMv7体系结构,能够将速度从600MHz提高到1GHz以上,64/32位内部总线结构,32/32KB的数据/指令一级缓存,512KB的二级缓存,可以实现2000DMIPS(每秒运算20亿条指令集)的高性能运算能力。相关数据如下表所示:集成了手持设备和通用嵌入式系统的解决方案32/32KB的数据/指令存储控制器支持LPDDR1,LPDDR2和DDR2类型的RAM提供了丰富的外围接口增强的ARM MMU体系结构支持WinCE, EPOC 32 和 Linux操作系统指令缓存、数据缓存、写缓冲器和RAM物理地址标签减少了主存储器带宽和潜在性能的影响支持ARM调试体系结构支持小/大端模式寻址空间: 共4G字节支持1个USB HOST2.0,1个USB OTG2.0接口支持1路RS232串口接口(调试串口)支持100M以太网卡支持LED 灯显示 (1个电源显示,2个用户 LED 灯)支持标准JTAG接口调试接口:20-pin,2.54mm标准JTAG接口工作温度:-20+70(电气指标:符合CE,FCC,CCC规范要求)表3.1 S5PV210处理器相关数据从可行性的角度来讲,这款芯片完全可以满足我们系统应用的要求。B. 对网络的可行性分析系统可以通过网络来支持用户远程登陆和监控,在网络方面,采用ADSL+路由的方式上网,在有线网络方面,我们正是利用了这种网络结构。首先ADSL拨号上网能够提供给用户一个公网IP,这是整个系统实现的关键,因为我们的设备要作为一个网络上的服务器端,必定要有一个公网IP来提供访问,当然这需要其他技术的支持。有了公网IP,我们可以利用动态域名解析技术来将我们每次登录后的动态IP地址映射成一个固定的网络域名,这样我们在就可以使用域名随意访问系统。在研发阶段我们可以使用解析内网IP的方式,利用现有团队的网络资源,进行研发。相应的技术都是已经成熟的,只是需要进行相应的移植工作。在用户设备端,可以和用户家中的电脑同时接入路由,同时需要设置路由,将路由的80端口映射到设备端的内网IP,这样就可以结合动态域名解析和路由的映射功能在网上提供web服务。C. 对核心技术的可行性分析1. RFID技术的可行性分析M1卡片的电气部分只由一个天线和ASIC组成,每一张卡都有自己唯一的序列号。读写器分上下两层,上层包括天线板,RC522(读写卡芯片),下层包括LPC1111,M0单片机。M1卡通过无线与读写器进行数据交换,读写器可将主机命令传达到M1卡,再把M1卡返回的数据传达到主机,主机的数据交换与管理系统负责完成M1卡数据的存储、管理和控制。2. 外部CGI和BOA服务器外部CGI程序与WWW服务器进行通信、传递有关参数和处理结果是通过环境变量、命令行参数和标准输入来进行的。服务器提供了客户端(浏览器)与CGI扩展程序之间的信息交换的通道。CGI的标准输入是服务器的标准输出,而CGI的标准输出是服务器的标准输入。客户的请求通过服务器的标准输出传送给CGI的标准输入,CGI对信息进行处理后,将结果发送到它的标准输入,然后由服务器将处理结果发送给客户端。系统可以采用BOA+CGI的程序设计方式进行编程,WWW和CGI的工作原HTTP协议是WWW的基础,它基于客户/服务器模型,一个服务器可以为分布在网络中处的客户提供服务;它是建立在TCP/IP协议之上的“无连接”协议,每次连接只处理一个请求。在服务器上,运行产着一个守护进程对端口进行监听,等待来自客户的请求。当一个请求到来时,将创建一个子进程为用户的连接服务。根据请求的不同,服务器返回HTML文件或者通过CGI调用外部应用程序,返回处理结果。服务器通过CGI与外部程序和脚本之间进行交互,根据客户端在进行请求时所采取的方法,服务器会收集客户所提供的信息,并将该部分信息发送给指定的CGI扩展程序。CGI扩展程序进行信息处理并将结果返回服务器,然后服务器对信息进行分析,并将结果发送回客户端。3.2所建议系统经济可行性分析所建议系统开发所需经济预算,如下表所示:序号物品数量单价系统开发端1开发板1个8002RFID模块2个200小计1200用户系统1手机/pc机1个1000小计1000合计2200表3.2 经济预算上表所示,经济预算在合理可承受范围。3.3系统需求分析3.3.1功能需求根据电子钱包的具体需求,本系统应具备一下几个方面的功能要求:1. 电子钱包要实现的基本功能是通过刷卡进行加钱或减钱操作,通过刷卡实现卡内余额的变化。2. 确保两个读写器,并分别烧写加钱程序和减钱程序。卡片刷加钱读写器时卡内金额会相应增加,刷减钱读写器时卡内金额会相应减少。3. 读写器通过UARTSend发送相关数据,开发板执行主程序接收数据,并将其存放数据库中。4. 相应.cgi程序并行执行,读取数据库中的数据,将数据传给AJAX,实现网页上数据的实时刷新。3.3.2用例及用例描述电子钱包的用例图如下图所示:图3.1用例图电子钱包的用例包括信息查看(见表3.3)、刷卡减钱(见表3.4)、刷卡加钱(见表3.5)3个部分,它们的主要参与者是用户。用例名:信息查看主要参与者:用户简短描述:这个用例描述的是用户对卡内信息的查看触发事件:用户想查看信息时主要输入:描述 来源用户查询卡的信息 用户主要输出:描述 来源卡的信息 详细信息显示主要执行步骤:用户打开页面表3.3信息查看用例名:刷卡减钱主要参与者:用户简短描述:这个用例描述的是用户刷卡减钱触发事件:用户刷卡主要输入:描述 来源用户刷卡 用户主要输出:描述 来源卡内金额减少 网页显示主要执行步骤:1、 用户将卡放在减钱读写器区2、 读写器进行操作3、 网页上查看金额变化表3.4刷卡减钱用例名:刷卡加钱主要参与者:用户简短描述:这个用例描述的是用户刷卡加钱触发事件:用户刷卡主要输入:描述 来源用户刷卡 用户主要输出:描述 来源卡内金额增加 网页显示主要执行步骤:1、 用户将卡放在加钱读写器区2、 读写器进行操作3、 网页上查看金额变化表3.5刷卡加钱4 系统总体设计4.1电子钱包系统结构图及工作原理读写器分为加钱读写器和减钱读写器,用户使用IC卡(即射频卡),在特定读写器处刷卡,读写器与卡进行通信,当有卡进入读写器的操作范围时,自动识别是否为M1射频卡,随之对卡内数据块进行读写操作。当用户选定减钱读写器(或加钱读写器)时,每次刷卡便会减去(或加上)读写器中设定的金额数,并将卡的序列号及卡内余额数据通过串口读写程序存放在数据库中,同时将最新数据实时刷新显示在网页上,以便用户获取所需要的信息。电子钱包系统结构如下图所示:图4.1系统结构图4.2读写器模块的总体设计4.2.1读写器的硬件总体设计读写器分为天线板和底板。天线板包括天线和MF RC522(读写卡芯片);底板包括基于M0芯片的微控制器LPC1111。下面主要介绍读写卡芯片MF RC522。MF RC522 利用了先进的调制和解调概念,完全集成了在13.56MHz 下所有类型的被动非接触式通信方式和协议。支持 ISO14443A 的多层应用。其内部发送器部分可驱动读写器天线与ISO 14443A/MIFARE卡和应答机的通信,无需其它的电路。接收器部分提供一个坚固而有效的解调和解码电路,用于处理ISO14443A 兼容的应答器信号。数字部分处理ISO14443A 帧和错误检测(奇偶 &CRC)。此外,它还支持快速CRYPTO1 加密算法,用于验证MIFARE 系列产品。MFRC522 支持MIFARE更高速的非接触式通信,双向数据传输速率高达424kbit/s。它与主机间的通信采用连线较少的串行通信,且可根据不同的用户需求,选取SPI、I2C 或串行UART(类似RS232)模式之一,有利于减少连线,缩小PCB 板体积,降低成本。MF RC522芯片具有下表所示特性:高集成度的调制解调电路支持ISO/IEC 14443 TypeA和MIFARE通信协议支持SPI、I2C、UART接口64字节发送和接收的FIFO缓存4页,每页16个寄存器,共64个寄存器具有硬件掉电、软件掉电、发送掉电三种节电模式工作温度范围-30+855mm5mm0.85mm 的超小体积表4.1MF RC522芯片特性MF RC522芯片的原理图,如下图所示:图4.2 MF RC522芯片的原理图MF RC522芯片的引脚信息,如下表所示:符号HVQFN32类型描述I2C1II2C使能PVDD2PWR引脚电源DVDD3PWR数字电源PVSS5PWR引脚电源第RST6I不复位和掉电SIGIN7I信号输入SIGOUT8O信号输出TESTPIN9不连接:三态引脚TX111O发送器1TVDD12PWR发送器电源TX213O发送器2TVSS14PWR发送器地AVDD15PWR模拟电源VMID16PWR内部参考电压RX17I接收器输入AVSS18PWR模拟地AUX119O辅助输出:用于测试AUX220OOSCIN21I晶振输入OSCOUT22O晶振输出IRQ23O中断请求SDA24I串行数据线DVSS4PWR数字地不同接口的数据引脚D125I/OD226I/OD327I/OD428I/OD529I/OD630I/OD731I/OEA32I外部地址:用来编码I2C地址表4.2 MF RC522芯片的引脚信息4.2.2读写器的软件总体设计读写器中烧写的程序实现对M1卡的操作,程序中最主要的.c文件分别是RC522.c和main.c。RC522.c中编写的读写卡需要的功能函数的完整定义,是与M1卡通信的驱动函数。main.c中编写读写卡的执行过程,用于外部调用的接口函数。读写器软件流程图如下图所示:图4.3 读写器软件流程图4.3 数据库模块的总体设计4.3.1 SQlite数据库本系统使用的数据库是SQLite,是一款轻型的数据库,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。 整个数据库(定义、表、索引和数据本身)都在宿主主机上存储在一个单一的文件中。4.3.2数据库设计串口接收到数据后,通过执行数据库语句,将数据插入到数据库中。在RFID.DB中生成一张RFID表,数据库的结构如下图所示:图4.4 RFID.db结构图表中包括五个字段(id,username,cardID,balance,time),如下表所示:字段名称字段类型字段描述idinteger刷卡次数usernamevarchar用户名字cardIDvarchar卡的序列号balancevarchar卡内余额timevarchar刷卡时间表4.3 RFID表结构4.4 CGI模块的总体设计CGI是外部应用程序(CGI程序)与Web服务器之间的接口标准,是在CGI程序和Web服务器之间传递信息的规程。在物理上是一段程序,运行在服务器上,提供同客户端HTML页面的接口。绝大多数的CGI程序被用来解释处理来自表单的输入信息,并在服务器产生相应的处理,或将相应的信息反馈给浏览器。CGI程序使网页具有交互功能。4.4.1 CGI的工作原理1. 浏览器通过HTML表单或超链接请求指向一个CGI应用程序的URL。2. 服务器收发到请求。3. 服务器执行指定CGI应用程序。4. CGI应用程序执行所需要的操作,通常是基于浏览者输入的内容。5. CGI应用程序把结果格式化为网络服务器和浏览器能够理解的文档(通常是HTML网页)。6. 网络服务器把结果返回到浏览器中。图4.5 CGI工作原理图4.4.2 CGI设计说明本系统中编写readRFID.c文件,并编译成readRFID.cgi文件作为进程,与主进程并行执行。ReadRFID.c文件主要实现对数据库中所需信息的读写。1. 编译readRFID.c文件arm-cortex_a8-linux-gnueabi-gcc I /sqlite-3.7.3/sqlite_install/include/ -L /source/rootfs/lib lsqlite3 -o readRFID.cgi readRFID.c 2. 将readRFID.cgi复制到cgi目录下cp readRFID.cgi /source/rootfs/www/cgi-bin/ 4.5 HTML模块的总体设计4.5.1 BOA服务器在嵌入式Linux系统中移植BOA服务器,提供web服务。BOA是一款非常小巧的Web服务器,源代码开放、性能优秀、支持CGI通用网关接口技术,特别适合应用在嵌入式系统中。运行于客户端的浏览器首先要与嵌入式Web服务器BOA端建立连接,打开一个套接字虚拟文件,此文件建立标志着SOCKET连接建立成功然后客户端浏览器通过套接字SOCKET以GET或者POST参数传递方式向Web服务器提交请求,Web浏览器提交请求后,通过HTTP协议传送给Web服务器。Web服务器接到请求后,根据请求的不同进行事务处理,返回HTML文件或者通过CGI调用外部应用程序,返回处理结果。4.5.2 HTML页面使用javascript在HBuilder上设计静态页面,通过AJAX创建交互式网页,连接到相应得cgi程序上。页面设计如下如所示:图4.6 HTML页面设计5系统详细设计5.1程序结构图图5.1程序结构图5.2读写器模块详细设计5.2.1程序流程图5.1读写卡程序流程图5.2.2主要功能代码#include #include LPC11xx.h#include uart.h#include gpio.h#include rc522.h#include ssp.hunsigned char data116= 0x12,0x34,0x56,0x78,0xED,0xCB,0xA9,0x87,0x12,0x34,0x56,0x78,0x01,0xFE,0x01,0xFE ;/M1卡的某一块写为如下格式,则该块为钱包,可接收扣款和充值命令/4字节金额(低字节在前)+4字节金额取反+4字节金额+1字节块地址+1字节地址取反+1字节块地址+1字节地址取反unsigned char data24 = 0x01,0,0,0;unsigned char DefaultKey6 = 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF; void delay(void)unsigned int temp ;for(temp = 10000000; temp !=0; temp-); unsigned char RFID_CheckSum(unsigned char *databuf) unsigned charnumb=0, chksum =0;for(numb=0;numbdatabuf0;numb+) chksum += databufnumb; return chksum; int main (void) unsigned char status = 0; unsigned char g_ucTempbuf4; unsigned char g_ucTempbuf216; int i; SystemInit(); UARTInit(115200); SSP_IOConfig( 0 ); SSP_Init( 0 ); GpioRc522(); /GPIO_RC522初始化PcdReset();/初始化射频芯片PcdAntennaOff();/关闭天线PcdAntennaOn();/打开天线for(i=0;i16;i+)g_ucTempbuf2i=data1i;while(1) /寻卡 status = PcdRequest(PICC_REQALL, g_ucTempbuf); if(status != MI_OK)/是否有错误 continue; /防冲撞处理,执行成功g_ucTempbuf得到卡的序列号 status = PcdAnticoll(g_ucTempbuf); if(status != MI_OK) continue; /选择卡片status = PcdSelect(g_ucTempbuf); if(status != MI_OK) continue; /发送卡的序列号 UARTSend(g_ucTempbuf,4); /验证卡片密码 status=PcdAuthState(PICC_AUTHENT1A, 1, DefaultKey, g_ucTempbuf); if (status != MI_OK) continue; /向卡写入数据 status = PcdWrite(1, g_ucTempbuf2); if (status != MI_OK) continue; /操作钱包,这里是减钱 status = PcdValue(PICC_DECREMENT,1,data2); if (status != MI_OK) continue; /读卡的数据 status = PcdRead(1, g_ucTempbuf2); if (status != MI_OK) LED3_OFF; continue; else UARTSend(g_ucTempbuf2,4); LED3_ON; delay();PcdHalt(); 5.3数据库模块详细设计5.3.1 sqlite3数据库的移植工具链: arm-cortex_a8-linux-gnueabi-平台:处理器:S5PV210 内核:linux-3.0.8#cd/home/linux/sqlite-3.7.3/ #mkdir sqlite_install#./configure -host=arm-cortex_a8-linux-gnueabi -prefix=/home/linux/sqlite-3.7.3/sqlite_install #make#make install#sudo cp sqlite3 /source/rootfs/usr/bin#cp lib/* /source/rootfs/lib5.3.2 主要功能代码saveRFID.c中包括创建表的函数和插入数据的函数,readRFID.c中包括查询数据的函数。主要代码如下:1. 创建表和插入数据int saveID()printf(saveID!n);char sql1024;char sqla100;char sqlb100;sqlite3 *db;char *err_msg=0;int recode;time_t tt; char tmpbuf20;tt=time(NULL); strftime(tmpbuf,20,%Y-%m-%d %H:%M:%S0n,localtime(&tt);sprintf(sql,create table if not exists RFID(id integer primary key autoincrement, username varchar(10) not null, cardID varchar(10) not null, balance varchar(10) not null, time varchar(20) not null);); /创建表RFID(刷卡次数,用户名字,卡的ID,余额,刷卡时间);recode = sqlite3_open(/RFID.db,&db);/指定数据库的位置printf(Open DB!n);if(recode!=SQLITE_OK)printf(Cant Open Database:%s!n,sqlite3_errmsg(db);sqlite3_close(db);elserecode=sqlite3_exec(db,sql,0,0,&err_msg);printf(DB create!n);if(recode!=SQLITE_OK)printf(Error:%s,err_msg);sqlite3_close(db);elsesqlite3_close(db);sprintf(sqla,%x%x%x%x,a0,a1,a2,a3);sprintf(sqlb,%d,(int)b3)*1000+(int)b2)*100+(int)b1)*10+(int)b0);sprintf(sql,insert into RFID values(null,%s,%s,%s,%s);,c,sqla,sqlb,tmpbuf);recode = sqlite3_open(/RFID.db,&db);if(recode!=SQLITE_OK)printf(Cant Open Database:%s!n,sqlite3_errmsg(db);sqlite3_close(db);elserecode=sqlite3_exec(db,sql,0,0,&err_msg);printf(SQL EXEC!n);if(recode!=SQLITE_OK)printf(Error:%sn,err_msg);sqlite3_close(db);elsesqlite3_close(db);printf(quit DB!n);return 0;2. 查询数据/查询刷卡次数最大的一次刷哭记录的所有信息sprintf(sql,select * from RFID where ID=(select max(ID) from RF
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025广东江门新会区会城街道今古洲社区公益性岗位招聘1人模拟试卷及参考答案详解1套
- 2025年中国地质调查局西安矿产资源调查中心招聘(26人)考前自测高频考点模拟试题及完整答案详解
- 2025年永康市属事业单位考试试卷
- 2025衡水冀州区招聘第二批社区工作者72名模拟试卷及答案详解(考点梳理)
- 2025江苏盐城选聘物业管理营商环境体验员考前自测高频考点模拟试题及答案详解(有一套)
- 2025内蒙古赤峰市喀喇沁旗锦山第三中学“绿色通道”引进教师第二次3人模拟试卷及一套参考答案详解
- 2025年浙江宁波市卫生健康委部分直属事业单位公开招聘高层次人才69人(第二批)考前自测高频考点模拟试题及1套参考答案详解
- 2025广东广州市公安局招聘辅警48人考前自测高频考点模拟试题及一套答案详解
- 2025江西上饶市信州区投资控股集团有限公司第一次招聘6人模拟试卷及答案详解一套
- 2025黑龙江哈尔滨工程大学后勤基建处前期采购办公室管理岗位招聘1人模拟试卷含答案详解
- 型钢混凝土结构钢筋施工
- 石群邱关源电路(第1至7单元)白底课件
- JJF 1338-2012相控阵超声探伤仪校准规范
- GB/T 40529-2021船舶与海洋技术起货绞车
- GB 31603-2015食品安全国家标准食品接触材料及制品生产通用卫生规范
- 关于公布2016年度中国电力优质工程奖评审结果的通知
- 港口集团绩效考核方案
- 送达地址确认书(诉讼类范本)
- 2023版北京协和医院重症医学科诊疗常规
- 三坐标测量基础知识(基础教育)
- 宜家战略分析(课堂PPT)
评论
0/150
提交评论