非接触式CPU卡读写系统的设计
2018-05-15狄辉王彬郝永放王飞
狄辉 王彬 郝永放 王飞
摘 要:上世纪,射频技术的出现和快速发展,使卡的信息传输告别了传统的接触式方式,产生了非接触式IC卡。为此,文中设计了一款以STM32为CPU,可实现非接触式IC卡准确读写的系统。但需要说明的是,文中的研究仅针对Type A类型IC卡的读写终端。
关键词:射频识别;CPU智能卡;读写终端;ARM;人机交互
中图分类号:TP393 文献标识码:A 文章编号:2095-1302(2018)04-0-02
0 引 言
伴随着国家金卡工程的持续推进,在20多年的发展历程中,中国金融IC卡事业不断升级。基于射频识别技术的各类智能卡早已渗透到我们生活的各个方面,小到个人的电话卡、信用卡,大到市民一卡通等,在这些技术方便我们生活的同时,消费者对于安全的渴求也越来越高。CPU卡内部芯片相当于一个微处理器,含有定制的COS操作系统,可执行严谨的加密运算,安全性高,灵活性强,储存容量较大。
1 射频识别技术
射频识别(Radio Frequency Identification,RFID)通过空中信道获取数据,读写相关目标,无需物理直接接触、光学可视与人工干预即可完成信息的输入和处理[1],是一种领先的非接触式通信方式。在不同的领域,RFIID的构成有所不同,但一个典型的RFID系统需包括电子标签、读写器和PC机(后台应用软件)等三部分。RFID系统基本组成如图1所示。
RFID最大的优点是能够实现非接触式数据交互,通过电磁场传输信息,快速实现物物互联。在整个通信过程中无需人为干预,可自动识别,弥补了传统接触式识别的不足。
2 硬件设计
硬件电路系统是本次设计的一个重点,需要确定整体思路。首先,根据项目和功能的需求,确定整体思路和设计框架;其次,运用模块化思想进行分块设计,明确哪些模块可以拓展、改进;再次,根据硬件电路的设计思路绘制原理图、电路图和PCB等;最后对硬件进行调试和测试。
该硬件系统包含如下5个模块:
(1)MCU控制模块:该模块主要负责各种信息的处理和功能拓展,由芯片、电源、复位电路、振荡电路等组成。
(2)射频读写模块:该模块为系统的核心模块,负责实现与非接触CPU卡的通信,由射频收发芯片的应用电路和天线线圈组成。
(3)与上位机的通信模块:该模块用以实现读写终端与PC机的通信。
(4)外部拓展模块:包括外部拓展的E2,FLASH模块等。
(5)人机交互模块:包括LCD显示屏部分和键盘等。
硬件系统总体框图如图2所示。
2.1 微控制器模块
相较于8位单片机,32位的高性能ARM处理器拥有更高的通信效率、更多可扩展外设、更强的控制能力,因此STM32系列MCU主控制器成为了本系统的首选,Coetex-M3内核具有较高的性能、较高的代码密度、实时性较好,方便使用,凭借其超低功耗等优点使得CM3成为理想的微处理器。
CM3采用的是哈弗结构而非冯·诺依曼结构体系,所以其数据和指令总线各自独立,互不干扰,可实现并行独立的取指和数据访问,极大地改善了运行速度和性能。CM3内核中的嵌套向量中断控制器,即NVIC(Nested Vector Interrupt Controller,NVIC),可以使终端的响应速度变快。
2.2 射频读写模块
对比了成本、封装类型、开发复杂度、代码移植性等多种因素,本文以具有较强兼容性和稳定性的由NXP半导体公司研发的RC632芯片作为射频收发芯片的首选[2]。
2.3 与上位机的通信模块
USB的中文名为“通用串行总线”,考虑到产品的可移植性、适用性等因素,设计了与上位机通信的USB通信电路[3]。USB具有以下优点:
(1)应用较广泛。USB即通用串行总线,是目前我们最常用也是市场上应用最广的一种外部通信总线。日常生活中,从电脑PC机到键盘音箱鼠标,甚至到大部分机械设备都会配备USB接口。目前为止,我们所见到的USB接口大多为2.0和3.0版本规范,该规范是由Intel公司和微软公司联合提出的一种标准,目的在于规范USB和PC等设备之间的通信。
(2)应用便捷。其热插拔和即插即用的特性完全满足了人们对设备使用方便灵活的需求。
(3)传输较快。USB2.0接口标准的理论传输速度可达480 Mbit/s,远超普通串口的传输速度(9 600 bit/s) [4]。
2.4 人机交互模块
2.4.1 LCD显示模块
本文的液晶显示屏采用KD240IT002[5]。屏幕尺寸为2.4英寸,控制器采用经典的ILI9341,拥有标准的37Pin通用接口,分辨率为320×240,支持90°,180°,270°,360°四个显示方向。为了在满足性能要求的前提下节省I/O 口资源,我们采用8线并口方式。
2.4.2 键盘电路模块
出于安全角度的考量,在每张卡片扣款前,必须先输入密码以校验其合法性,因此键盘电路必不可少。同时考虑到设计的便捷性与压缩成本,我们采用4×4薄膜键盘,它独立于MCU主控电路模块,用8根线即可控制16个按键。
3 系统软件设计
系统软件设计主要包括控制模块的软件程序设计、射频读写模块的软件设计、人机交互模块的软件设计、与上位机通信模块以及PC端后臺应用软件的设计。
3.1 软件设计概要
我们选择“时间片轮转调度算法”实现该功能。
时间片轮转调度算法也称为RR调度,是一种非常简单实用的算法。时间片是该算法的重要概念,该算法为每个进程分配了一个时间段,该时间段代表了该进程能被允许的运行时间,通常称之为时间片。RR调度采用一种霸道但公平的思想,即剥夺策略。在系统运行过程中按照先到先得的原则排队,等待接收CPU的指令。当第一个时间片运行完毕后,计时器会发出中断请求,这时程序就会停止执行并将其送往队尾。然后继续给下一个或新进的队首发出指令执行下一个时间片。考虑到该项目成本较低且较简单,故不使用嵌入式操作系统。此外,由于每个任务量都不大,我们还可以简化算法,将各任务依次“流水”执行即可。
本文系统中CPU为STM32F103RBT6。我们需要执行的主要任务大致包括轮询扫描感应区是否出现CPU智能卡、处理来自上位机的指令、按键输入扫描任务。所以此处轮询是指处理器需要不断地询问扫描各个任务,看是否有任务满足执行条件,一旦确定,将在一个时间段内执行该任务,进程结束后继续重复扫描,执行下一个任务。
3.2 射频读写模块软件设计
射频读写模块是软件系统中的重要组成部分,是读卡器和CPU智能卡之间的信息桥梁,帮助两者实现数据交换[6]。工作流程如图3所示。
4 结 语
随着技术的不断发展革新,人们对读写系统的安全性、便捷性、功能性要求越来越高,而智能卡也成为我们生活中不可或缺的一部分。非接触式CPU智能卡满足了人们对卡的需求,只需轻轻一挥,就能立即支付,非常方便。
随着国家对IC卡工程的大力支持,读写器终端必将发生巨大的变革并大力发展,其安全性会更高、功能更加丰富,可以满足支付多样性需求的读写器终端将如山洪般涌现[1]。
参考文献
[1]周晔,余晓松.RFID系统及其安全性问题研究[J].电脑知识与技术,2012(11): 7468-7471.
[2]宋岩.ARM Cortex-M3权威指南[M].北京:北京航空航天大学出版社,2009.
[3]朱炳瑞,裴焕斗,刘春力.基于RFID的单片机系统设计[J].电子世界,2013(1): 129-130.
[4]钟志彬.基于单片机的USB设备的研究与设计[D].合肥:安徽农业大学,2010.
[5]韩斌.高速USB控制器的应用[J].成都信息工程学院学报,2004,19(4): 481-485.
[6]姜标,李昌群.液晶材料的发展[C].国际精细化工原料及中间体市场研讨会暨全国精细化工原料及中间体行业协作组年会,2003: 1-9.
[7]温丽.基于MSP430单片机的射频IC卡读写系统研究设计与实现[D].武汉:武汉科技大学,2010.
[8]曾敬.时间片轮询模式在构建单片机实时系统中的应用[J].智能計算机与应用,2010(2): 15-16.
[9]徐丽华.射频识别卡读写模块的设计与应用[D].苏州:苏州大学,2005.
[10]莫卫平.金融IC卡整合公共服务领域应用思考[J].金融科技时代,2013(12): 56-57.