赵 越,赵宇红(通讯作者)
(北方工业大学电子信息工程学院 北京 100041)
基于ARM Cortex-M4的IC卡收费系统设计
赵 越,赵宇红(通讯作者)
(北方工业大学电子信息工程学院 北京 100041)
本课题基于ARM Cortex-M4架构的嵌入式系统作为主控制器,实现IC卡的计时收费功能,并通过Wi-Fi将IC卡数据上传至基站进行建卡充值等操作;本文分别从软件和硬件两个方面详细的介绍了该系统的设计方案。硬件方面在秉火开发板上实现各功能模块调试,软件方面应用了MDK开发环境,通过J-Link仿真器完成软件调试,该计时收费系统拥有非常广泛的适用性,因此具有较好的发展前景。
IC卡收费;Cortex-M4;嵌入式;Wi-Fi
IC卡具有存储容量大,安全保密性好,不容易被复制等诸多优点。成为当今国际电子信息产业的热点产品之一,本文主要研究如何实现IC卡信息的收集、存储、处理等功能。硬件设计主要基于ARM Cortex-M4的STM32作为主控制器完成IC卡刷卡收费的设计,感应模块采用的是RFID控制芯片MFRC522,通过近距离非接触可以实现对IC卡身份的识别,软件设计通过对库函数调用进行编写读卡器模块,并移植了FATFS文件系统用以保存用户数据来实现对各模块包括IC卡天线的控制以及数据传输处理,以此完成所需功能要求。
IC卡计时收费系统的总体框图如图1所示,系统以Cortex-M4为系统核心,通过Wi-Fi通信模块与PC端构建TCP/IP底层协议完成实时的数据通信;感应模块非接触式读写卡芯片MFRC522与主机间采用连线较少的串行通信;标准5寸TFT-LCD屏幕控制屏幕内容的显示;使用MCU的一个GPIO以及一个驱动电路即可控制无源蜂鸣器响或不响,来提示IC卡已经被成功读取。此外,PC端采用了人性化的窗口提示功能以及较为通俗易懂的界面设计。使系统的使用更加方便。
图1 系统结构框图
本系统采用了基于ARM Cortex-M4内核的开发板,内部集成了32位STM32F429高性能低功耗微处理器。该处理器整合了数字信号处理器,主频最高可达180MHz,并且内置了自适应实时(ART)加速技术能够实现了闪存执行零等待,增强了ARM Cortex-M4内核的处理性能。该微处理器具有高达2MB的读写可同时进行的FLASH存储空间,高达256KB的SRAM内存空间,还可以通过SRAM,PSRAM,SDRAM接口拓展Flash/NOR/NAND空间。
本系统选用的Wi-Fi通信模块为EMW1062模块,该模块利用直接序列扩频和OFDM / CCK技术,实现无线调制解调功能,并集成2.4GHz IEEE802.11b/g/n(MAC/基带/射频),功率放大器(PA)和电源管理单元(PMU),SDIO2.0或SPI接 口,3.3V单 电 源 供 电。802.11n/HT20在800ns GI下的最大数据传输速率是65Mbps,在400ns GI下的最大数据传输速率是72.2Mbps,因此符合IEEE802.11b/g/n标准。EMW1062可以通过SDIO或者SPI接口由主机控制,主机中可以运行MiCO物联网操作系统,MiCO系统包含完整的TCP/IP协议栈、WiFi驱动、硬件接口驱动,可以使开发者快速完成主机与EMW1062的开发对接。
本系统在LCD显示模块上选择了标准的5寸TFT-LCD屏幕,TFT-LCD也叫做真彩液晶显示器,主要由背光模组、TFT模组两大部分组成,液晶显示屏分辨率为800*600。STM32F429芯片带有LTDC显示控制外设,大大提高了图像质量,为屏幕显示提供了极大的便利。
本系统采用的IC卡感应模块是支持ISO 14443A标准的MFRC522芯片。MFRC522是高度集成的非接触式芯片,此模块的发送模块利用调制和解调原理,并将它们完全集成到各种非接触式通信方法和协议中。该芯片是一款低电压、低成本、体积小的非接触式读写卡芯片。接收器部分提供一个坚固而有效的解调和解码电路,用于处理ISO14443A 兼容的应答器信号。此外,它还支持快速CRYPTO1加密算法。MFRC522支持更高速的非接触式通信,双向数据传输速率高达424kbit/s。MFRC522与主机间的通信采用连线较少的串行通信,且可根据不同的用户需求,选取SPI、I2C或串行UART(类似RS232)模式之一,有利于精简电路。本设计选择SPI模式与MCU通信,MCU作为主机,MFRC522作从机。SPI时钟SCK由主机产生;数据通过 MOSI线从主机传输到从机;数据通过MISO线从MFRC522发回到主机。
本系统的通信模块采用TCP/IP协议进行与嵌入式的通信,TCP/IP协议中文译名为传输控制协议/网际协议,又叫网络通讯协议,这个协议是最基本的协议,本系统利用TCP/IP协议完成STM32F429与PC客户端的通信。程序执行时首先循环判断是否有客户进入到系统,当判断出有客户进入时,接收用户发送的数据并根据客户发送的数据提取RFID命令,根据RFID命令处理数据将结果发送到客户端,即为完成一次用户命令。Tcp/ip网络连接流程如图2所示。
本系统的数据库管理模块使用sqlite语言实现,sqlite 使用标准C 语言实现,对系统和外部库的支持要求不高,便于移植到嵌入式设备中。用sqlite管理数据库可以更高效的实现数据的管理、使用和维护。本系统的数据库管理模块分为增加、删除、更新功能。
本系统计费显示功能模块主要负责计算费用和显示计费信息。程序的开始先查找数据记录并显示查找到的数据列表,如果判断已经接收到新的RFID命令,则执行RFID命令并更新数据库,将更新后的数据显示到界面中。计费显示模块程序流程如图3所示。
图2 Tcp/ip网络连接流程图
图3 计费显示模块程序流程图
本系统开机时会自动连接Wi-Fi实现与PC端软件的连接,成功连接Wi-Fi后即可正常使用。首次刷卡时PC端软件系统会读出卡的id号并会提示用户进行建卡操作,在建卡操作中用户可以设置IC卡的名称与充值金额,设置完成后点击“建卡”按键后完成建卡操作。本系统断电后数据不丢失,再次上电后保留上次数据,因此每张卡进行一次建卡操作即可,如果需要对IC卡进行充值、删卡、修改信息等操作可以在PC软件端中右键IC卡信息栏完成。每一步操作完成后,在软件的下方会显示用户所进行过的操作。该系统第一次刷卡进入计费,下一次刷卡进行签出,硬件系统上的LCD屏幕上会显示当前IC卡里所拥有的余额以及当前IC卡的信息。
经过多次测验,本系统能够正常、稳定的显示所需内容;并且可以正确迅速的检测到IC卡并在PC端上实现建卡、充值等操作;操作界面简单易懂,系统操作简捷,便于用户使用;信息处理速度快,运行流畅;不仅如此,其体积较小、容易携带的特点,更是让这个系统在任何有Wi-Fi的地方都能进行用户IC卡的信息管理,因此具有较好的发展前景。
[1]蒋建春,曾素华,陈家佳.嵌入式系统原理及应用实例[M].北京:北京航空航天大学出版社,2015:34-35.
[2]刘火良,杨森.STM32库开发实战指南[M].北京:机械工业出版社,2014:101-102.
[3]郭稳涛,何怡刚.基于RFID的智能停车场管理系统的研究与设计[J].自动化技术与应用,2010,29(6):59-63.
TP391 【文献标识码】A 【文章编号】1009-5624(2018)01-0041-03
2017北京市大学生科学研究与创业行动计划