好久没逛论坛,一年多的时间都在准备考试,发现对STM32都有点生疏了,今天突然发现有这么一个活动,感觉挺好的,就借此机会重新学习下STM32单片机吧。 基于射频识别的公共伞具租赁系统这个项目是当初我参加的一个省新苗项目中的一部分,作为团队的一员,我主要是负责下位机的程序设计开发部分。以下是我在完成项目之余写的一篇小论文(文中图片见附录),希望大家指正与交流。 1. 公共伞具租赁系统简介 公共伞具租赁系统分为数据库开发管理、上位机通讯、下位机伞具管理和GPRS数据传输四个模块。在下位机伞具管理模块中可分为伞具租赁IC卡的注册充值模块、伞具的租借还伞模块和伞具租借扣钱模块。下位机伞具管理模块用ST公司的STM32F103RBT6作为主控芯片。系统的整体框图结构如图1所示。 对于用户来说,如果需要借伞,首先需要去IC卡注册处进行注册,将IC卡号发送给上位机并录入数据库。注册后若用户需要借伞,可用IC卡在伞具出租处借伞。IC卡 https://www.stmcu.org.cn/file:///C:UsersfeiAppDataLocalTempksohtmlwps_clip_image-12321.png 图1 公共伞具租赁系统整体结构框图 读卡器识别后打开操作界面,用户根据液晶显示上的操作提示进行操作。在操作成功的情况下,用户即可借伞和还伞,同时MCU将对应的操作记录写入到IC卡中或者从IC卡中删除借伞记录,并且通过GPRS无线发送模块发送给主机上的上位机并录入数据库中。 从框图中可以看到RFID射频技术在系统中起到重要作用。本系统利用IC卡非接触双向通讯以及有一定容量的储存器供用户随机存取数据[2]的特点,取代人工伞具管理中用户登记带来的不便。利用IC卡卡号的唯一性以及IC卡在使用过程中必须进行密码校验操作的特点,使用户具有唯一的用户名,在使用过程中避免与其他用户之间的冲突,更加安全。并且IC卡识别工作无须人工干预,可工作于各种恶劣环境。 2. MFRC522模块的工作原理 MFRC522高度集成的调制解调电路,采用少量外部器件即可将输出驱动级接至天线。支持 ISO14443TypeA接口和MIFARE通信协议。支持SPI、I2C或串行UART(类似RS232)多种主机接口[4]。同时MFRC522模块还集成CRC校验协处理器,使模块具有CRC和奇偶校验功能。MFRC522芯片的内部功能框图如图2所示。 https://www.stmcu.org.cn/file:///C:UsersfeiAppDataLocalTempksohtmlwps_clip_image-28763.png 图2 MFRC522芯片的内部功能框图 MCU通过对读卡器MFRC522模块的控制来进行对IC卡内信息的读取及写入。当MCU根据MFRC522支持的通讯方式向读卡器发送寻卡指令后,读卡器就会发送射频信号进行寻卡。若有卡进入读卡器射频区域,IC卡内的LC谐振电路(谐振频率与读卡器发送的电磁波频率相同)在电磁波的激励作用下,产生共振,在卡片内部电压泵的作用下不断为其另一端的电容充电,从而获得能量。IC卡获得能量后即会开始工作,向读卡器回复卡片的类型,自此读卡器与IC卡之间就建立了通讯联系[5]。同时为防止多张卡片之间的通讯混乱,MFRC522模块还自带有防冲撞检测机制,将会对进入射频范围内的多张卡号进行选择。选择好之后,被选的IC卡将会将它的卡号发送给读卡器。读卡器接收到卡号之后,读卡器要对需要进行操作的存储区进行密码校验操作,若密码校验成功,则即可对该片存储区进行读写操作。MFRC522操作流程如图3所示。 3. 软件工作流程介绍 3.1充值注册模块 充值注册模块利用串行串口通讯。当MFRC522读卡器获取IC卡的卡号后,通过串口发送卡号给上位机,若上位机查询数据库时未发现此卡,则发送指令给下位机警报此卡未注册,无法充值。若发现此卡已注册,则可以进行充值操作。上位机在充值成功之后会把充值的金额发送给MCU,MCU再将充值金额写入IC卡内。成功写入IC卡后,MCU https://www.stmcu.org.cn/file:///C:UsersfeiAppDataLocalTempksohtmlwps_clip_image-22616.png 图3 MFRC522工作流程图 会发送指令给上位机表示已成功充值。若需要注册或者注销IC卡,在MCU接收到注册和注销对应的指令后,会把IC卡内已有的数据进行删除,并发送特殊指令给上位机表示已操作成功。该模块流程图如图4所示。 https://www.stmcu.org.cn/file:///C:UsersfeiAppDataLocalTempksohtmlwps_clip_image-24084.png 图4 充值注册模块流程图 3.2 借还伞模块的程序流程 借伞还伞模块利用串行串口通讯方式将用户的操作记录发送给GPRS模块,由GPRS无线模块负责发送给主机上的上位机软件。首先,为了节约能源,本系统在无人借伞的情况下自动进入低功耗休眠模式,降低功耗。当用户开启系统,并检测到已注册的IC卡时,系统就会开启操作界面,提示用户操作信息。同时,MCU读取IC卡内的余额值以及此卡已借伞的数量。当用户按下借伞按键时,在卡内余额超过20元并且借伞数量低于10把的情况下允许借伞。MCU在遍历查询到IC卡内没有被使用的数据存储区时,会把借伞的信息写入到该扇区,便于还伞时计算应扣除的金额。当用户按下还伞按键时,首先,MCU会遍历查询到IC卡内记录的最早的借伞记录,计算完应扣金额后,MCU会把IC卡内这条借伞记录擦除。当按下查询按键时,用户可以在12864液晶显示上看到自己IC卡内的余额以及已借伞的数量。该模块流程图如图5所示。 https://www.stmcu.org.cn/file:///C:UsersfeiAppDataLocalTempksohtmlwps_clip_image-11451.png 图5 借伞还伞模块流程图 4. 结论及特点 本文主要介绍MFRC522射频识别模块在公共伞具租赁系统中的应用,经过实验证明,MFRC522模块在该系统中运行稳定,具有反应速度快、通信可靠稳定、数据存储量大等 特点。公共伞具租赁系统充分利用MFRC522等先进电子技术,解决人工管理伞具租赁带来的诸多不便,满足人们对于公共基础设施 的要求,将会在实际应用中具有广阔的前景。 https://www.stmcu.org.cn/file:///C:UsersfeiAppDataRoamingTencentUsers997630690QQWinTempRichOleGOIQY79XZ5]}YH`Q56PAN6E.jpghttps://www.stmcu.org.cn/file:///C:UsersfeiAppDataRoamingTencentUsers997630690QQWinTempRichOleGOIQY79XZ5]}YH`Q56PAN6E.jpg https://www.stmcu.org.cn/file:///C:UsersfeiAppDataRoamingTencentUsers997630690QQWinTempRichOleGOIQY79XZ5]}YH`Q56PAN6E.jpg https://www.stmcu.org.cn/file:///C:UsersfeiAppDataRoamingTencentUsers997630690QQWinTempRichOleGOIQY79XZ5]}YH`Q56PAN6E.jpg |