来源:RFID世界网 作者:不详 发布时间:2012-09-27 10:05:13 字体:[大 中 小]
摘 要:本文介绍一款便携式巡更机(射频读写器)的设计。该读写器主要由MCU、射频IC卡读写模块、天线及USB通信接口等部分组成。为了方便对巡更情况的实时记录,系统采用了具有时间基准功能的时钟芯片。
图3 蜂鸣器驱动电路
时钟电路设计
实时时钟采用低功耗的CMOS实时时钟/日历芯片PCF8563实现,PCF8563提供一个可编程时钟输出,一个中断输出和掉电检测器,其所有地址和数据通过I2C 总线接口串行传递(由STC89LE58R的P1.6和P1.7构成模拟I2C串行口)。时钟电路主要是采集实时时间,以便进行实时跟踪记录。同时考虑到PCF8563为实时时钟芯片,在没有外接电源时仍然要求连续供电,以保持时间的准确无误。所以,该部分电路还加了掉电保护功能。
通信接口设计
本系统采用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语言编程,系统软件流程图如图4所示。
图4 系统软件流程图
读写器的功耗测试结果
当对设计好的系统进行实际测试时,经常发现功耗并不像理论上计算的那样小。此时,首先要分清电能主要是MCU本身消耗了还是I/O引脚驱动外围电路消耗了。最简单的判断方法是分别测出MCU电源输入引脚的电流和MCU接地引脚的电流,只有当两者的数值基本相等时,整个系统的功耗最低。可从以下几个方面进行分析:所有输入引脚不能悬空。如果悬空的将使得数字输入缓冲区产生切换电流,从而增大功耗。所有未用的引脚设置为输出,并设置为固定的高电平或低电平。如果MCU电源输入引脚电流和接地引脚流出电流不相等,则I/O引脚一定输出或吸收了电流,应该仔细查找输出或吸收电流的I/O引脚并采取的措施以降低功耗。检查是否所有片上的外围电路都给关闭了,否则外围电路会消耗额外的电流。
本设计的测试结果如下:待机电流为7mA,在读写 IC卡时电流为38mA。读写器的功耗和输入电压密切相关,输入电压升高,读写器的功耗也相应加大,所以合理选项用输入电压很重要。若以3节5号镍氢电池供电,读写器可连续工作半年以上。对设计实现的读写器进行测试,结果表明:一般环境中可在0~8cm范围内寻到IC卡;读写距离为0~4cm,正常完成各项工作设计功能,运行稳定,基本达到了技术指标要求。
然而,本次设计在很多方面需要改进,例如,可为读写器加上LCD显示,加装键盘;本设计没有考虑到上位机的软件设计问题;应用程序可以进一步的优化,以提高程序的执行效率。
推荐文章
论坛热帖