打印

无线多功能读卡器GD32F207

[复制链接]
450|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主

使用特权

评论回复
沙发
wangjiahao88|  楼主 | 2019-7-30 15:03 | 只看该作者
主控芯片部分:主控芯片也就是MPU,是整个设备的核心元器件。设备的诸多功能模块均由其来控制完成操作。相当于设备的大脑,许多复杂功能的实现以及各功能模块的协调均有赖于它。随着现代技术的发展,MPU内部集成的外设越来越多样化,功能越来越强劲,这也使得设计者在设计设备时能够更加方便的降低外围元器件的使用,从而简化了产品PCB板的布局,缩小了产品的尺寸,降低了设备的成本。因此在本文读一卡器设备设计之初,最先需要选定的就是MCUo考虑到本设计的实际情况,功能模块较多,设备程序复杂且通讯手段多样话。这就要求选择的MCL1必须具有IO引脚多、通讯类外设丰富且内部ROM及RAM的大小足够容纳整套程序。同时由于本设备的大部分应用场合需要通过电池供电,因此怎样在保持性能达到要求的同时尽量降低功耗也是必须考虑的重中之重。基于以上设计初衷,最终选择了国产芯片厂商Gigadevice基于Cortex-M3内核的GD32F207IGT6芯片。这款芯片主频能够达到120MHz,拥有多大140个IO口并且具有1M的ROM以及256K的RAM,在性能上完全满足本设计的需求。同时内置外设包含USB-FS,ETH,LCD-TFT接口,以及加密过程涉及的CRYP/RNG/HASH模块,大大简化了芯片外围电路的设计,也能更好的控制功耗。

使用特权

评论回复
板凳
wangjiahao88|  楼主 | 2019-7-30 15:05 | 只看该作者
读卡接口部分为设备功能实现的核心部分。用以读取各类型的IC卡或设备。为了满足大部分卡或设备的信息交互,其分为接触式IC卡接口、NFC接口两部分。接触式IC卡接口负责与IC卡之间的卡信息获取、认证、加密通讯等操作。由于IC卡与读卡器设备通过机械触点连接,因此需要支持热插拔功能,且设备必须能够识别卡的插入及拔出操作。同时由于IC卡类型广泛,供电电压也不尽相同,因此在读取卡类型信息后,设备还需要调整适应卡的工作电压,并为卡提供供电。这些功能均由智能卡接口芯片完成。NFC接口负责与非接触式IC卡间的信息获取、认证、加密通讯等操作。由于NFC协议兼容常见非接触式IC卡通讯协议,如IS014443TYPEA.TYPEB,IS015693等等,因此仅需要使用一颖NFC芯片就可以实现RFII)卡的读取,同时又可以满足NFC特有的模拟卡功能,因此选用NFC芯片做为非接触式IC卡读取接口。防伪认证模块部分:用于实现读卡器设备自身的防伪功能,并可以用于激活授权其余同型号读卡器设备。IC卡相较之前的磁卡等媒介,安全性能得到提高,使得在卡片端的复制、**变得异常困难。但在读卡器端,暂时并没有通用的防伪或认证方式,不法分子可以通过仿制的未得到授权的读卡器设备冒充合格读卡器,用以窃取用户输入的密码,从而实现盗刷,故在读卡器端存在安全隐患。因此本设计加入了防伪认证模块,在读卡器端实现认证激活的功能,从而在一定程度上避免了上述的隐患。此功能使用NFC模块模拟卡功能实现。用户拿到本设计读卡器后,需使用专门设备或另一台已经激活的读卡器设备,对手中设备进行激活操作。只有正确激活的设备才可以正常工作,否则无法正常与卡片进行交互。每台设备均设置有唯一ID号,并存储于NFC模块中,任何外设均没有权限读取,防止D号泄露。未激活设备在首次上电后,工作于模拟卡状态,此时可使用专门设备或己经激活的另一台读卡器设备对其实行激活操作。激活操作过程中用于激活的设备将使用特殊频段与模拟卡状态的设备进行射频通讯,未激活设备在收到该频段信号指令后将ID号以此频段传输给激活用设备。激活用设备在收到该ID号后,将其发往云端或后台服务器与服务器中的数据进行对比,认证通过后对未激活设备发出激活指令从而解锁设备。防伪认证操作流程见软件部分的相关介绍。人机交互接口部分:人机交互接口负责设备与用户的信息交流。将设备的实时状态、电量、信号强度,插入卡信息等显示在LCD屏上,同时将用户通过按键输入的指令或密码传递给设备,并执行相对应的指令。整个人机交互接口由LCD显示屏、4*3按键和摇杆、电压检测构成。LCD通过MCU上的LCD-TFT接口通讯,按键及摇杆则直接接到MCU的IO口上,由MCU定时扫描IO口实现按键检测。而电压检测则是通过MCU内置ADC采样实现,并未增加成本。

使用特权

评论回复
地板
wangjiahao88|  楼主 | 2019-7-30 15:05 | 只看该作者

使用特权

评论回复
5
wangjiahao88|  楼主 | 2019-7-30 15:28 | 只看该作者
驱动层:主要负责外围芯片设备以及内核外设的驱动开发。由板级支持开发板BSP和硬件抽象层HAL构成。BSP主要完成板级资源的功能实现。如蜂鸣器、LED灯等开关设备的开关操作,外围芯片的读写操作,芯片外设的寄存器读写操作等。本设计软件部分在该层实现了LCD驱动(通过LCD-TFT接口实现)、键盘及摇杆驱动(通过扫描IO口实现)、VJIFI驱动(通过SPI通讯实现)、ETH驱动、GPRS驱动(通过USART通讯实现)、USB驱动等。HAL位于BSP之上,实现具体设备的具体功能,提供设备使用的API接口,如设备初始化,设备功能使能失能,设备具体功能类函数,如实现在LCD屏上画点画线,框图按钮等功能的GUI,实现设备工作所需软件协议,例如以太网通讯使用到的TCP/IP,USB使用到的FULLSPEED协议栈,NFC通讯使用到的libNFC,WIFI通讯使用的ATCommand等,其中也包括MCU外设的固件库。系统层:主要负责整体软件系统的运行,在本设计中采用FreeRTOS实现。通过它,实现不同任务的实时切换,以达到多线程工作能力,并为系统各任务提供滴答时间,保证各线程根据需要的时间自由运行挂起。同时维护整个系统的堆栈使用,保证系统资源使用率的最大化。FreeRTOS自带的DEBUG功能,更是能够在软件调试的过程中帮助编程人员跟踪代码运行,及时发现BUG所在位置,保证所编写的软件安全可靠的运行。应用层:作为整个软件架构的最上层,应用层实现用户所需要的各种功能,就本设计而言,主要是实现与卡片的安全认证、加密读写、自身防伪认证,与后台服务器通讯进行数据交换以及人机交互的功能。同时提供在线升级能力,用户可以对读卡器设备固件进行在线升级,保证设备隐含的BUG能被最快更新消除,达到固件性能的优化,保证了固件程序运行的稳定。设计者利用下层提供的各类API函数,在系统层的框架下对应用层程序进行开发,这样的分层结构使得应用层的程序可以在该程序框架下的任何设备上进行移植,大大缩短了程序的开发周期,同时便于维护。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

461

主题

7476

帖子

29

粉丝