非接触式CPU卡读写系统的设计
扫描二维码
随时随地手机看文章
引 言
伴随着国家金卡工程的持续推进,在 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 InterruptController,NVIC),可以使终端的响应速度变快。
2.2 射频读写模块
对比了成本、封装类型、开发复杂度、代码移植性等多种因素,本文以具有较强兼容性和稳定性的由NXP 半导体公司研发的RC632 芯片作为射频收发芯片的首选[2]。
2.3 与上位机的通信模块
USB 的中文名为 通用串行总线 ,考虑到产品的可移植性、适用性等因素,设计了与上位机通信的 USB 通信电路 [3]。USB 具有以下优点:
应用较广泛。USB即通用串行总线,是目前我们最常用也是市场上应用最广的一种外部通信总线。日常生活中, 从电脑 PC机到键盘音箱鼠标,甚至到大部分机械设备都会配备USB 接口。目前为止,我们所见到的USB 接口大多为 2.0 和 3.0版本规范,该规范是由Intel公司和微软公司联合提出的一种标准,目的在于规范 USB和PC等设备之间的通信。
应用便捷。其热插拔和即插即用的特性完全满足了人们对设备使用方便灵活的需求。
传输较快。USB2.0接口标准的理论传输速度可达
480 Mbit/s,远超普通串口的传输速度(9 600 bit/s)[4]。
2.4 人机交互模块
2.4.1 LCD显示模块
本文的液晶显示屏采用KD240IT002[5]。屏幕尺寸为 2.4 英寸,控制器采用经典的 ILI9341,拥有标准的 37Pin 通用接口, 分辨率为 320240,支持 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]。