基于MSP430F149的手持式RFID读写器低功耗设计
射频识别RFID(Radio Frequency Identification)技术是利用无线射频方式进行非接触式双向通信,以达到识别目标和交换数据的目的,实现对各种对象在不同状态下的自动识别和管理的一种技术。射频标签具有快速扫描、体积小、易封装、抗污染能力和耐久性、可重复使用、穿透性和无屏阅读、数据的记忆容量大、安全等特点。目前广泛应用于身份识别和门禁管理、防伪、商业供应链、公共交通管理、物流管理、生产线的自动化及过程控制、动物的跟踪及管理、容器识别等领域[1]。
射频识别读写器根据应用场合可分为固定式读写器和手持式读写器等。手持式读写器具有比较大的灵活性,通常由操作人员手持设备在某一区域内完成对射频标签相关信息的采集及显示,并将相应数据存储于读写器的存储器中,待与计算机连接后通过串行通信接口或USB接口传送到本地计算机,也可通过网络接口传送到远程网络计算机,以便计算机系统进行相应的数据处理及应用。
手持式RFID读写器一般采用可充电电池供电,而电池的容量和使用时间有限,因此,必须对读写器进行低功耗设计,以便提高电池使用时间。
1 系统硬件组成及工作原理
手持式RFID读写器主要由主控制模块、RF收发模块、通信模块、键盘及显示模块、电源系统等组成,其硬件组成结构图如图1所示。
主控制模块可采用单片机等微处理器作为读写器的主控制器,负责接收用户命令并对发送信号进行编码及对接收信号进行解码,主控制器与射频标签的通信由射频收发模块实现。扩展存储模块用于扩展单片机的存储器空间,以便于手持式读写器单独使用时保存所需的射频标签数据,以待数据上传计算机,同时也可以保存用于显示的用户字库。键盘与显示模块用于输入或显示相关的信息,实现用户操作所需的人机界面。实时时钟模块用于提供准确的日期时间以便记录特定事件和操作时间。USB接口、串行通信接口、以太网接口等通信接口用于满足二次开发时根据具体应用场合与计算机进行数据通信的需要,可适当选择是否保留。同时,为适应手持式RFID读写器在不同场合的工作需要,电源系统采用了AC电源、USB电源及电池供电相结合的模式,以便为读写器进行供电、充电。
2 系统硬件低功耗设计
在单片机系统中,系统的功耗由静态功耗Ps和动态功耗Pd组成,如式(1)、式(2)所示[2-4]。
式中,UDD为工作电源电压,IDD为静态时由电源流向电路内部的电流,ITC为脉冲电流的时间平均值,CT为芯片的负载电容,f为芯片的工作频率。
由式(1)、式(2)可知,对系统的功耗影响最大是工作电源电压,其次是工作频率,再就是负载电容。对设计人员而言,负载电容一般是不可控的,故在不影响系统性能的前提下,系统低功耗设计主要是选择的器件有尽可能低的工作电压,并在电路设计中使用低频率的时钟。
为了尽量减少系统功耗,在手持式RFID读写器的硬件设计中尽量采用低功耗器件,并根据不同工作状态对系统的工作时钟频率进行调节。
2.1 低功耗器件的选型
RFID读写器的主控制器选用MSP430F149单片机,它是一款高性能、超低功耗的单片机,在1MHz时钟条件下,工作电流视工作模式不同为0.1μA~400μA,工作电压为1.8V~3.6V。大多数指令都可以单时钟周期执行,访问为16位总线,存储模块由模块内部允许信号自动选中,以减少总的电流消耗。同时,MSP430F149提供了活动模式(AM)和五种低功耗模式0~4(LPM0~LPM4),能不同程度地减少系统的功耗[5]。
在设计接口电路时还必须考虑节省功耗,接口芯片应尽量选用低电压器件,尽量减小接口器件的负载电容。手持式RFID读写器的相应接口电路中也分别选用电压工作为3.3V以下的低电压器件,如RF收发模块选用FM1702SL射频卡读写芯片,扩展存储模块选用AT45DB161B串行FLASH存储器,显示模块及驱动芯片选用P13501显示模块(包括P13501显示屏及内置驱动芯片SSD1303), USB接口选用IPS1582,串行通信接口选用MAX3232、网络接口模块选用ENC28J60、实时时钟等。相应器件的工作电压如表1所示。
2.2 系统工作时钟频率的调节
MSP430F14x系列单片机的基础时钟模块主要由低频晶体振荡器(LFXT1)、高频晶体振荡器(XT2)、数字控制振荡器(DCO)、锁频环(FLL)及FLL+等模块组成,可以提供主系统时钟(MCLK)、子系统时钟(SMCLK)及辅助时钟(ACLK)三种时钟信号[5]。
MCU的工作电压越高、时钟频率越快,则系统功耗越大,因此,MSP430F149可在能够正常满足系统性能的前提下,通过软件对基本时钟系统控制寄存器BCSCTL1、BCSCTL1及DCO控制寄存器DCOCTL中的RSELx、DCOx、MODx位进行编程设置DCO的频率用作MCLK、SMCLK的时钟源,其范围为32 768Hz~8MHz。在手持式RFID读写器设计中,为优化低功耗特性,根据不同的工作状态,ACLK可采用32 768Hz的LFXT1CLK以提供稳定的系统时基和低功耗的备用工作时钟频率;MCU在执行程序时所需的MCLK由可快速启动的DCOCLK提供;子系统时钟SMCLK可采用DCOCLK作为扩展FLASH的时钟信号,以满足扩展FLASH读写操作时序的要求。
3 低功耗的软件控制
手持式RFID读写器的基本工作主要包括射频标签的读写、键盘操作、信息显示、数据通信等,其中射频标签的读写操作所需功耗最大,且使用最频繁。因此,在低功耗硬件的基础上,通过软件利用MSP430F149可编程中断结构编程进行系统工作模式的管理及外围模块的开关连接,从而控制读写器降低系统功耗。
3.1 工作模式的管理
MSP430F149通过软件可对状态寄存器SR中CPUOff、OSCOff、SCG0与SCG1进行组合,提供6种工作模式来实现其模块的智能运行管理和MCU工作模式组合应用,以满足超低功耗的各种要求。
为了充分利用MSP430F149的低功耗功能,根据手持式RFID读写器的工作状态,可将工作模式分为射频模式、通信模式和待机模式。其中射频模式应用于操作人员进行射频识别的读写操作,对应地在射频标签进入工作区域时产生中断,使MSP430F149由低功耗模式LPM3切换到活动模式AM;通信模式应用于读写器进行USB通信或RS232通信或网络通信等操作,由键盘中断,使MSP430F149由低功耗模式LPM4切换到活动模式AM;待机模式则在系统无操作时由键盘中断或定时超时中断,使MSP430F149由其他模式进入低功耗模式LPM4。
在正常工作时,MSP430F149使用活动模式MCU全速运行,其他相关模块与外设进行相应数据的传输、保存、显示等工作,功耗最大;在待机模式下,MSP430F149被设为低功耗模式,MCU以及内部总线停止运行,直到键盘或射频收发模块发出中断信号,MSP430F149才会重新处于活动状态。通过软件对三种工作模式进行智能管理与控制,使得读写器在满足正常工作的条件下尽可能减少了系统的功耗。
3.2 内部模块及相关接口的开关控制
MSP430F149内部除基础时钟模块外,还包括看门狗定时器WDT、两个16位定时器模块A3及B7、两个串行通信模块USART0及USART1、一个模拟比较器模块A和一个12位模数转换模块ADC12等[5],这些模块都可单独控制使其进入禁用状态,从而可降低系统的功耗。RF收发模块等外围模块通过MCU并行端口P1~P6进行接口,在不同的工作状态也可通过软件将接口电路设置为高阻状态或将相应模块工作在省电工作模式,从而也可降低系统的功耗。如RF收发模块选用的FM1702SL提供了硬件电源关闭、软件电源关闭及待机等三种省电模式,可由MCU的 IO信号或通过软件设置FM1702SL控制寄存器进行省电模式设置,从而实现接口的低功耗控制。
4 实验结果与分析
手持式RFID读写器的电源系统采用了AC电源、USB电源以及电池相结合方式对系统供电,提供3.3V和5V两路电压输出,其中5V为FM1702SL发射电路提供工作电源,3.3V为其他模块提供工作电源。在射频模式、USB通信模式及待机模式下可采用电池供电,电池采用1 900mAh 3.6V~4.2V锂电池。USB通信模式还可采用USB电源供电,而RS232串口、以太网络通信模式下则只能使用AC适配器供电。
为测试手持式RFID读写器使用电池供电的系统功耗,在相应功耗测试程序中,将MSP430F149的辅助时钟ACK固定为3 2768Hz,主系统时钟MCLK及子主系统时钟SMCLK分别为8MHz、1MHz、400kHz时钟频率,并对相应模块开或关控制条件进行测试。其中射频模式下系统中MCU设为活动模式、RF收发模块的发射电路连续发射载波信号、模拟及数字电路正常工作,OLED显示信息,其他通信模块关闭;USB通信模式下系统中MCU设为活动模式、USB通信模块工作,OLED显示信息,其他模块关闭;待机模式下MCU设为低功耗模式LPM4,其他模块都关闭。相应条件下测得系统的消耗电流如表2所示。
虽然芯片的个体差异及功耗测试程序可能存在差异,测试时得到的数据会不完全相同,但从表2中的数据仍然可以很明显看出:降低系统的工作时钟频率并适当关闭空闲模块,可以降低读写器的功耗,同时,采用低功耗的工作模式可使读写器的功耗得到明显的改善,特别是待机模式的功耗最高可降低到射频模式的1/10以下,效果明显。应用证明,电池使用时间得到了提高,手持式RFID读写器具有更好的竞争力,可在不同应用领域中针对具体应用进一步进行二次开发使用。