引言
射频识别(RFID)技术近年来在国内外得到了迅速发展。对于需要电池供电的便携式系统,功耗也越来越受到人们的重视。本文将具体阐述基于MSP430F2012和CC1100低功耗设计理念的双向主动式标签的软硬件实现方法。
低功耗设计
低功耗概述
功耗基本定义为能量消耗的速率,可分为瞬态功耗和平均功耗两类。两者意义不同,有不同的应用背景和优化策略,通常被笼统地概括为低功耗设计。实际研究中可根据不同情况区分为:
(1)瞬态功耗优化:目标是降低峰值功耗,解决电路可靠性问题。
(2)平均功耗优化:目标是降低给定时间内的能量消耗,主要针对电池供电的便携电子设备,以延长电池寿命或减轻设备重量。
功耗的物理来源
芯片电路的功耗主要来自两方面:动态功耗和静态功耗。动态功耗主要是电容的充放电和短路电流。静态功耗主要是漏电流,包括PN结反向电流和亚阈值电流,以及穿透电流。如果工作时序及软件算法设计有缺陷,会降低系统工作效率、延长工作时间,也会直接增加系统能量的消耗。
低功耗设计策略
算法级功耗优化:在电路设计的开始,就要进行算法的选择,应该尽量选择功耗效率高的算法。首先,从实现算法所需逻辑的大小来看,算法中操作的数目、所需要的带宽、存储操作、端口操作越少,此算法应用到的电路功耗越低。在实际的设计中,需要按照应用的要求进行总体性能和功耗的均衡。同时,算法中需要的协处理必须考虑,算法所需的协处理越简单、协作模块越少、实现算法所需要的功耗就越小。此外,算法中临时变量少、临时变量有效的时间短、循环的合理运用都会降低算法所需的功耗。
系统级功耗设计与管理:系统级的功耗管理主要是动态功耗管理。通常的做法是处于空闲状态的时候,运作于睡眠状态,只有部分设备处于工作之中;当产生一个中断时,由这个中断唤醒其它设备。实际上,这一部分需要硬件的支持,如:电源系统的低功耗技术;系统软硬件的划分,在于决定哪些功能模块由软件来实现功耗较小,哪些功能模块由硬件实现功耗较小;低功耗处理器的选择。
![]() |
系统硬件设计
综合考虑系统功耗来源与低功耗设计策略,硬件设计选择具有低功耗特性的单片机及射频收发芯片,并尽量简化电路减少功耗开支。
主要芯片的选择
MSP430系列单片机的结构完全以系统低功耗运行为核心,电源采用1.8~3.6V 低电压,活动模式耗电250μA/MIPS,RAM数据保持方式下耗电仅0.1μA。由于系统在90%以上的时间内都是处于休眠或低功耗状态,因此漏电流成为影响系统功耗的另一个重要因素,其I/O输入端口的漏电流最大仅为50nA。加上有独特的时钟系统设计,包括两个不同的时钟系统:基本时钟系统和锁频环(FLL和FLL+)时钟系统或DCO数字震荡器时钟系统。由时钟系统产生CPU和各功能模块所需的时钟,并且这些时钟可以在指令的控制下打开或关闭,从而实现对总体功耗的控制。由于系统运行时使用的模块不同,即采用不同的工作模式,芯片的功耗会有明显的差别。在系统中共有一种活动模式(AM)和五种低功耗模式(LPM0~LPM4)。另外,MSP430系列单片机采用矢量中断,支持十多个中断源,并可以任意嵌套。用中断请求把CPU唤醒只需要6μs,通过合理编程,既可以降低系统功耗,又可以对外部请求做出快速响应。
射频芯片是整个RFID卡最核心的部分,直接关系到标签的读写距离和可靠性,同时也直接影响到整个系统的功耗。CC1100是Chipcon公司推出的单片UHF无线发射芯片,体积小,功耗低,数据速率支持1.2~500kbps的可编程控制,其工作电压范围为1.9~3.6V,可以工作在915MHz.、868MHz.、433MHz和315MHz四个波段,还可通过程序配置在所有频段提供-30~10 dBm输出功率内置地址解码器、先入先出堆栈区、调制处理器、时钟处理器、GFSK滤波器、低噪声放大器、频率合成器,功率放大器等功能模块。它具有两种低功耗工作模式:关机模式和空闲模式,在关机模式下工作电流小于200nA。本文中CC1100工作在433MHz的频率上,采用FSK调制方式,数据速率为100kbps,信道间隔为200kHz。
电路设计
为简化系统结构,本系统仅由必须的微处理器单元、射频收发单元、天线及电池单元组成。省去电池到器件之间的稳压电路,直接由电池给系统供电。节省了稳压电路所带来的静态电流消耗,使电池寿命进一步延长。为防止发射状态较大的电流造成电池电压瞬态降低,使用较大容量电容与电池并联。MSP430F2012内部集成的零功耗欠压复位(BOR)保护功能,可以在电压低于安全操作范围时执行完全复位,很好地解决了单片机复位不完全而产生的随机错误操作问题。
软件设计
尽量用软件来代替硬件也是低功耗系统设计常常采取的措施。本次程序开发综合考虑了时序调度和工作效率两方面问题,以降低系统的功耗。
合理设计工作时序
由于CPU的运行时间对系统的功耗影响极大,应尽可能缩短其工作时间,较长地处于空闲方式或掉电方式是软件设计降低单片机系统功耗的关键。程序运行流程图如图2(a)、(b)所示,当系统上电完成初始化操作即刻进入低功耗模式,只在系统接收到正确信息产生中断时才会唤醒单片机进入工作模式,尽量在短时间内完成对信息或数据的处理,当处理结束立即返回低功耗模式等待下一个中断到来。
![]() |
提高工作效率
用宏定义来代替子程序调用。因为CPU进入子程序时,会首先将当前CPU寄存器推入堆栈(RAM),在离开时又将CPU寄存器弹出堆栈,这样至少带来两次对RAM的操作,所以读RAM会比读Flash带来更大的功耗。用宏定义来代替子程序调用,无疑会降低系统的功耗。
尽量减少CPU的运算量,将一些运算的结果预先算好,放在Flash中,用查表的方法替代实时的计算,减少CPU的运算工作量,可以有效降低CPU的功耗;不可避免的实时计算,精度够了就结束;尽量使用短的数据类型:如尽量使用字符型的8位数据替代16位的整型数据,尽量使用分数运算而避免浮点数运算等。
让I/O模块间歇运行,不用的I/O模块或间歇使用的I/O模块要及时关掉,以节省电能。不用的I/O引脚要设置成输出或设置成输入,用上拉电阻拉高。若引脚没有初始化,可能会增大单片机的漏电流。