本文介绍一款便携式巡更机(射频读写器)的设计。该读写器主要由MCU、射频IC卡读写模块、天线及USB通信接口等部分组成。为了方便对巡更情况的实时记录,系统采用了具有时间基准功能的时钟芯片。
随着近年来智能小区、智能大厦的迅猛发展,巡更系统将有着广泛的应用前景。手持式读写器的主要开发指标包括微型化、低功耗、便携式及方便的数据传输接口。
读写器总体设计方案
便携式IC卡读写器主要由电池供电。由于读写器不断发射无线电波,功耗较大,所以必须从每一个细节来考虑如何降低功耗,从而尽可能地延长电池的使用时间。硬件上采用低功耗设计,如低功耗器件、低压、模块化供电等;软件上采用规模化设计,尽量减少处理器的工作时间,使其处于低功耗运行模式。
读写器的设计要达到以下要求:具有自检功能,开机时能首先自检设备有无故障;能够准确、快捷地读取非接触式IC卡内的信息;具有声光报警电路;电池直接供电,可由3节AA镍氢电池供电,开机静态电流不大于10mA,工作电流不大于40mA;具有USB通信接口;体积小,成本低,性能稳定可靠。
系统功能概述
根据不同场合对巡更系统的要求,需要及时了解巡更人员巡逻的情况,以确保小区、商场、铁路沿线等场合的安全。
因此,本系统应具有以下功能:在确定的巡更线路上安装一系列代表不同点的射频卡,到达各点时巡更人员用手持式巡更机靠近巡道检测点,把代表该点的卡号和时间同时记录下来;巡更完成后巡更机把采集到的信息通过USB接口芯片存储到U盘中或直接传给计算机软件处理。
系统硬件设计
图1是便携式射频读写器的原理框图。
图1 读卡模块系统原理框图
系统以MCU STC89LE58为核心,负责整个系统的监控。FM1702N是非接触式读卡机专用芯片(兼容MF RC500),采用并行通信方式和MCU连接,在MCU控制下,读写器通过射频模块及其天线与卡片进行通信。系统采用低功耗的实时时钟/日历芯片记录采集数据的时间,采用虚拟I2C总线进行数据交换;CH375通过串行输入、串行输出和中断输出与MCU相连接,它支持各种常用的USB全速设备,MCU通过CH375按照相应的USB协议与USB设备通信。在对各模块进行操作时由电池向其供电,提供电压为3.3~3.6V。
1 主控模块设计
读写器主控模块由MCU及其外围电路组成。可参考MCU的工作电压和所提供的低功耗模式,并结合设计的需要选择集成所需外围芯片的MCU。依据以上三个原则,选择了超强抗干扰、高速、低功耗的MCU STC89LE58,其内部有16KB的EEPROM。此外,由于其工作电压范围较宽(2~3.8V),功耗低,特别适合用于电池供电系统。
图2是主控模块电路原理图,USB接口芯片CH375与读写器芯片FM1702N与MCU通信都采用并口通信方式,直接挂接到MCU的系统总线上。
图2 主控模块电路原理图
2 射频模块设计
读写模块是射频IC卡与外界通信的媒介,读写模块连接着的天线与IC卡线圈产生共振,进行数据传递,完成读写模块与卡之间的通信。本设计使用的FM1702N支持13.56MHz频率下TYPE A 非接触通信协议,它是与非接触式IC卡实现无线通信的核心模块,也是关键接口芯片。它根据寄存器的设计对发送缓冲区中的数据进行调制得到发送的信号,通过由TX1、TX2引脚驱动的天线以电磁波的形式发出去,IC卡采用RF场的负载调制进行响应。天线拾取IC卡的响应信号经过天线匹配电路送到RX引脚,FM1702N内部接收缓冲器对信号进行检测和解调并根据寄存器的设定进行处理。处理后的数据发送到并行接口由MCU读取。
3 天线设计
为了与非接触式IC卡进行通信,读写器必须有能发射和接受射频信号的天线。可以针对不同的应用设计不同大小和形状的天线。天线设计具体步骤为:设定读写器工作环境,优化读写器与应答器之间的耦合系数,确定天线线圈和电容。非接触式IC卡天线利用电感耦合产生磁通,磁通用来向应答器提供电源,并且在两者间传输数据。因此对读写器天线的构造有以下几个基本要求:使天线线圈的电流最大,用于产生最大的磁通量Φ;功率匹配,以最大程度地利用产生磁通量的可用能量;足够的带宽以无失真地传送数据调制的载波信号。
4 蜂鸣器驱动电路设计
蜂鸣器是在每次读卡操作不成功的时候发出报警指示音。由于MCU的I/O口驱动能力有限,一般不能直接驱动压电式蜂鸣器,因此选用一 PNP 型晶体管组成晶体管驱动电路,MCU I/O口(P3.4)输出经驱动电路放大后即可驱动蜂鸣器。本设计选用蜂鸣器的工作电流为10mA,其驱动电路如图3所示。
图3 蜂鸣器驱动电路
5 时钟电路设计
如图4所示,实时时钟采用低功耗的CMOS实时时钟/日历芯片PCF8563实现,PCF8563提供一个可编程时钟输出,一个中断输出和掉电检测器,其所有地址和数据通过I2C 总线接口串行传递(由STC89LE58R的P1.6和P1.7构成模拟I2C串行口)。时钟电路主要是采集实时时间,以便进行实时跟踪记录。同时考虑到PCF8563为实时时钟芯片,在没有外接电源时仍然要求连续供电,以保持时间的准确无误。所以,该部分电路还加了掉电保护功能。
图4 时钟电路
6 通信接口设计
本系统采用USB进行通信,USB接口芯片采用的是CH375,支持HOST主机方式和SLAVE设备方式。在USB主机方式下,CH375提供了并行和串行两种通信方式,本次设计中采用并口通信方式,通过8位被动并行接口的D7~D0、RD、WR、A0、CS直接挂接到MCU的系统总线上,电路连接简单。CH375内置了处理海量存储设备的专用通信协议的固件,所以读写器系统的MCU可通过CH375按照相应的USB协议与USB设备通信,可将U盘作为可移动的大容量存储器,无须详细了解USB通信协议,便可能数据进行读写操作。
系统软件设计
系统软件设计主要分为三部分,即对FM1702N的应用程序设计、USB接口程序设计和主程序设计。
读写器从休眠中被唤醒后进行卡探测,如果有卡或有通信请求,就进行读卡、写记录、通信等正常的工作过程,工作结束就进入休眠。如果无卡,就直接进入休眠状态。唤醒脉冲固定500ms一次,正常工作状态时,屏蔽唤醒中断。所以终端在无卡状态下,每间隔500ms被唤醒一次,进行卡探测。卡探测的时间就是电流的主要消耗时间,因此缩短卡探测的时间是很关键的。本设计的系统卡探测时间为2ms,这样,终端在无外界干预的情况下实现卡探测,功耗很低。在无卡状态下,每个500ms循环中,有2~3ms处于工作状态,瞬态最大电流为40mA,有497~498ms处于休眠状态,电流只有几个微安,总体平均电流为50μA,从而达到手持式终端的低功耗的要求。
MCU采用C51语言编程,系统软件流程图如图5所示。
图5 系统软件流程图
读写器的功耗测试结果
当对设计好的系统进行实际测试时,经常发现功耗并不像理论上计算的那样小。此时,首先要分清电能主要是MCU本身消耗了还是I/O引脚驱动外围电路消耗了。最简单的判断方法是分别测出MCU电源输入引脚的电流和MCU接地引脚的电流,只有当两者的数值基本相等时,整个系统的功耗最低。可从以下几个方面进行分析:所有输入引脚不能悬空。如果悬空的将使得数字输入缓冲区产生切换电流,从而增大功耗。所有未用的引脚设置为输出,并设置为固定的高电平或低电平。如果MCU电源输入引脚电流和接地引脚流出电流不相等,则I/O引脚一定输出或吸收了电流,应该仔细查找输出或吸收电流的I/O引脚并采取的措施以降低功耗。检查是否所有片上的外围电路都给关闭了,否则外围电路会消耗额外的电流。
本设计的测试结果如下:待机电流为7mA,在读写IC卡时电流为38mA。读写器的功耗和输入电压密切相关,输入电压升高,读写器的功耗也相应加大,所以合理选项用输入电压很重要。若以3节5号镍氢电池供电,读写器可连续工作半年以上。对设计实现的读写器进行测试,结果表明:一般环境中可在0~8cm范围内寻到IC卡;读写距离为0~4cm,正常完成各项工作设计功能,运行稳定,基本达到了技术指标要求。
然而,本次设计在很多方面需要改进,例如,可为读写器加上LCD显示,加装键盘;本设计没有考虑到上位机的软件设计问题;应用程序可以进一步的优化,以提高程序的执行效率。