论文部分内容阅读
摘要:本文根据工业测控现场微功耗测温系统的设计原则,结合微功耗性能突出的MSP430单片机和高精度数字式测温芯片TMPl00,详细阐述了能满足现场测温要求的最小功耗系统的设计思路和具体实现方法。
关键字:测温、微功耗、MSP430、TMPl00
引言
在工业测控及自动化控制的许多领域中,经常需要实时监测现场环境的实际温度,甚至还需要组建现场环境下的分布式微功耗的测温网络。因此,相应的测温系统就必须有最小的平均功耗、尽量小的硬件成本和体积。这都是设计者必须重点考虑和解决的问题。
当把测温系统作为一个由电池供电的独立功能模块看待时,设计者应该从更高的层面看待系统的微功耗设计问题。即在系统的总体设计过程中,应把电池对系统的支持时间作为一个关键指标予以考虑。尤其近年来随着电子技术的进步,越来越多的新器件的出现使得这种测温系统在电池供电条件下,无需更换电池就可以使用几年的时间。
微功耗测温系统方案设计
微功耗测温系统是一个典型的最小功耗的单片机应用系统,要达到近乎苛刻的功耗设计指标,必须在总体设计时就选择具有本质微功耗特性的器件。这里所说的“本质微功耗”就是指器件本身在静、动态运行条件下已经具有很低的功耗水平。
国内出于成本和体积的考虑,目前工控领域中用得较多的是8051系列中的2051单片机和DSl820组合在一起的温度测量解决方案。2051作为十几年前的8位单片机产品,其功耗水平、性能及运行速度已经远远不能与近几年出现的新型16位单片机相提并论。因此应该选用功耗水平、性能优势更为突出的微控制器和温度测量芯片。
微控制器
能满足电池供电的测温系统的微控制器(MCU),应该在功耗和成本上具有突出优势。而TI公司的MSP430F1101单片机(以下简称为F1101)正是具有超低功耗特点的16位单片机,其功耗已经达到了微安级,且其成本极低,在MSP430单片机系列中具有极佳的性价比。
F1101单片机具有1KB flash程序存储器,128B的数据RAM,一个slopeA/D,14个I/O口,一个16位看门狗定时器,1个16位(含3个捕获/比较寄存器)的定时器及一个比较器。
F1101的软件结构也是针对微功耗应用环境而设计的。如从低功耗休眠模式唤醒MCU仅需6pS。其中断和子程序调用无层次限制,这种丰富的中断能力减少了系统查询的需要,可以方便地设计出基于中断结构的测温程序。
Fl101是MSP430系列中功能最简化的一款单片机,其价格也最低,非常适合对功耗、成本及性能均有较高要求的应用环境。
温度测量芯片
TI公司近几年新推出的TMP100数字式温度传感器芯片也是为微功耗应用环境而设计的。在TI公司的网站上还将MSP430单片机与TMPl00作为微功耗应用的典型搭配予以推荐。
TMPl00芯片的数据传输采用了二线12C接口,同时兼容SMBus。能直接输出9~12位精度的温度数据,可以达到0.0625℃的温度精度。其静态电流仅为45pA,待机电流0.1pA,工作电压2.7~5.5V,测温范围达到了-55℃~+125℃,采用SOT23-6封装,体积很小。
TMPl00除了上拉电阻、去藕电容外无需任何外围器件,允许在一根总线上同时链接8片芯片,是工业控制、环境监测及消费类电子产品中非常适用的温度测量及监控芯片。
MSP430F1 101单片机与TMPl00数字式温度传感器芯片构成的测温系统的特色和优势就在于其超低的功耗、较低的成本和较强的性能。这些对于一个电池供电或试图免于维护的测温系统往往至关重要。
实现方法及技巧
TMPl00与FC总线
TMPl00只能作为12C总线中的从器件(slave device)进行工作,作为主器件(master device)的MSP430F1 101单片机提供数据传输所需要的时钟信号和各种控制信号。F1101与TMPl00的硬件联接方式也极为简单:TMPl00的SCL、SDA引脚与MSP430F1101单片机的两个I/O口相连。另外还要在TMPl00的SCL、SDA引脚上各接一个10K上拉电阻,其V.引脚接一个O.1pF的去藕电容。
图1中配置寄存器(configurationRegister)是一个8位可读/写寄存器,其内存放着控制温度传感器工作模式的各个控制位。配置寄存器内各个控制位的定义如下表所示:
TMPl00上电或重启后配置寄存器内的所有位均为O(OS/ALERT位除外)。
通过置位SD位可以使TMPl00进入关断模式,此时TMPl00除了12C接口逻辑外,所有的内部电路均被关闭,因此仅消耗不到lpA电流。在TMPl00处于关断模式时(SD=1),当前温度转换一结束,TMPl00就会自动关断;而SD=O时,TMPl00将保持连续温度转换。
另外,TMPl00芯片还具有一种one-shot温度测量模式,当TMPl00处于关断模式时,对OS/ALERT位置1将启动一次温度转换,且此次转换完毕后TMPl00将自动回到关断模式。这对降低TMPl00在温度测量中的功耗具有非常重要的意义。
对TMPl00进行读/写时,Fl101单片机必须首先发送一个从地址(slaveaddress)字节寻址到要访问的TMPl00芯片。该从地址由7个地址位和1个方向位(确定是读还是写操作)构成。TMPl00通过ADD0、ADDl两个引脚不同逻辑状态(0、1及悬空)的组合,可以具有8种不同的从地址。因此F1101单片机只需两根I/O口线就可以在一个12C总线上同时联接8片TMPl00芯片。从地址字节的具体格式如下:
其中高四位1001可以认为是TMP100芯片在12C总线中的特征码。A2A1A0表示TMP100芯片在I2C总线上的从地址,其范围是:000~111。R/W=1时,为读操作;=0,为写操作。
F1101单片机、TMPl00芯片作为12C总线中的主、从器件,对操作时序具有特殊的要求:即F1101访问TMP100时,其读写时序及规则均必须遵循12C总线协议的规定。Fl101单片机作为主器件,可以在12C总线上产生串行时钟信号、寻址信号、起始(sTART)和停止(sTOP)信号等。主、从器件都可以发送数据到总线上或从总线上接收数据。 在访问TMP100时,必须先由Fl101单片机产生起始条件:即在SCL保持为高电平时,将SDA由高电平拉到低电平。起始条件产生后,F1101发出一个从地址字节指定要访问的TMPl00芯片和操作类型(读或写),在第9个时钟周期,被寻址的TMPl00芯片发出一个确认信号(acknowledge)回应F1101,并拉低SDA。其后的8个时钟周期将再传送一个字节,然后又是一个确认信号。在数据传输过程中,SCL保持为高,而SDA必须保持稳定。在所有的数据被传输完毕后,由F1101单片机产生停止条件:即在SCL保持为高电平时,将SDA由低电平拉到高电平。
温度测量及流程
在温度测量程序中,Fl 101单片机对T M P 1 0 0的操作主要有:设置TMPl00的工作模式;启动TMPl00进行一次温度测量及转换;读取TMPl00的测温结果。根据TMPl00的操作要求和12C总线协议,可以将F1101单片机访问TMPl00芯片的操作归纳为两种:对T M P 1 O 0发送控制命令;读取TMPl00的测温结果。
TMPl00输出不同精度的温度数据(9~12位)时,其所需的转换时间(conversi’onti‘me)是不同的,9位精度时需要40m s,12位精度时达到了320ms。对于无需高温度精度的应用环境而言,降低TMPl00输出的温度结果的位数能有效缩短其工作时间,进而能有效降低系统功耗。
根据I2c总线的规范,同时结合TMPl00的厂家器件手册,对TMPl00发送控制命令和读取TMPl 00测温结果的程序流程分别如图2、图3所示。
12C是一种时序要求较严格的总线规范,其对时钟信号的高、低电平保持时间,数据保持时间等都有严格要求。因此进行温度测量时,应该保证Fl 101单片机与TMPl00芯片组成的测温系统有稳定可靠的时钟信号源(即使在系统进入低功耗休眠状态时也是如此)。同时,为了系统可靠性的考虑,不宜过于提高访问速度而降低时序冗余度。
从图2、图3可以看出,“确认”过程对于I2C总线上的数据传输非常重要,可以认为是12C总线上主器件和从器件之间的一种特定“握手”方式,以此来使数据发送方能确定数据接收方是否接收到数据,以及是否继续发送数据。因此每接收到一个字节(地址或数据),接收方都必须发出一个“确认”动作,否则就被发送方视为放弃本次数据传输。即接收方在接收到字节后,必须将SDA置为低电平以表示其成功地收到了这个字节(此时SCL为高)。这个“确认”动作应在收到每个字节的8位数据之后的第9个时钟周期发出。无论主或从器件,只要是字节的接收方,“确认”动作就由其发出。
需要注意的是:每次TMPl00发出“确认”信号后,必须通过对F1101编程来检测此信号是否有效;而对于F1101发出的“确认”信号,TMPl00的内部逻辑可以自动处理并进入下面的操作(无需编程控制)。另外,F1101单片机作为主器件,也可以用“不确认”(Not-Acknowledge)信号来中止从器件的数据传输。
程序设计及分析
选择MsP430F11 0l单片机与TMPl00的硬件组合满足了硬件设计中的本质微功耗原则,更进一步的微功耗设计可以通过控制程序进行精细地功耗管理来实现。在程序设计中,功耗管理的最终目标是:最大程度地减少系统运行中的平均功耗。这就要认真分析应用系统运行中的有效运行时间,追求最小时、空占空比的任务安排。
TMPl00的one-shot工作模式显示出其在微功耗设计中的特有优势:这种模式使得TMPl00可以在每次温度转换完毕立即进入关断状态,因此在每次转换的空闲间隔里,TMPl00仅消耗O.1luA电流。MSP430单片机的软件结构保证其中断和子程序调用无层次限制,结合其多种低功耗休眠方式(LPM3仅消耗1.6faA电流)、6us的唤醒时间)TMPl00的one-shot模式可以提供一个最小功耗系统、最少活动时间的软件流程。
基于微功耗设计原则的测温程序的流程如图所示:
在测温程序中,将32768Hz晶振作为ACLK的时钟信号源,Timer A定时器设置为增计数模式,这样即使Fl 101单片机处于LPM3的低功耗休眠模式,ACLK信号仍然处于活动状态。因此可以保证每1s后Timer_A定时器能够产生中断唤醒F1101,并进入相应的中断服务子程序。
图4中,将TMPl00设置为0.25℃(即10位数据位)的输出精度,此时其转换所需时间为80ms。从图4的程序流程可见,主循环的1s定时间隔是由16位硬件定时器Timer_A完成。Timer_A被设置为增计数模式,可以循环计数定时,每个ls定时间隔结束时,Timer_A产生硬件中断使系统进入中断服务子程序。而且即使系统在中断服务子程序中处理任务时,Timer_A也仍然在计数,不会造成定时误差。这样每次TMPl00以one-shot模式测量温度的实际时间间隔为1s,完全能满足TMPl00对转换时间的要求。因此本系统中通过程序流程的精心设计,省去了一个用于转换时间定时的硬件定时器,降低了硬件开销。
为便于精确分析和管理系统的功耗,应该对系统的平均功耗进行精确计算。系统的平均消耗电流的计算公式如下所示:
平均电流=Σ(各器件的电流之和i×时间间隔i)/主循环的时间
需要对此公式进行说明的是:
(1)i表示不同的功耗状态,分别对应于各器件某一时间段的电流之和,以及这一时间段;
(2)所有的时间间隔之和应该与主循环的时间相等;
(3)分子中的求和是指所有功耗状态与时间乘积的求和,既包括活动状态,又包括休眠状态。
具体到本系统中,在1s的主循环时间内,仅仅只在中断服务子程序中F1101和TMPl00才处于活动状态,而读取测温结果和启动下一次温度转换等操作只需要几毫秒的时间,1s主循环的其余时间内F1 101均处于LPM3的低功耗休眠状态,TMPl00则处于关断状态。因此在整个ls的主循环时间内,其平均功耗计算下来仅为几个微安。测温系统即使只采用容量仅为220mA·时的CR-2032扣式电池,其可用时间也可以达到几年。
在许多需要温度监测的应用环境中,1℃的测量精度已经可以满足要求。而TMPl00输出的是9~12位的温度数据(最高位在前),因此1℃的测量精度就意味着F1101只需要接收TMPl00发出的前一个数据字节(8位),即F1101在接收到第一个温度字节后无需发送确认信号即可返回。可见在满足需要的前提下,适当降低测温精度能有效减少F1101单片机和TMPl00芯片的活动时间,进而降低系统的平均功耗。
从系统平均电流的计算公式也可见,系统中的主要功耗来源于活动状态下的各器件消耗的电流,而分母是主循环时间,因此根据不同系统对测温的时间间隔的需要(即测温频度),可以适当延长主循环的定时时间,进而进一步降低测温系统的平均功耗。
综上所述,微功耗测温系统的设计本质上是最小功耗系统的设计。设计过程中,不仅需要采用具有本质微功耗特点的硬件(意味着更低的动态功耗和静态功耗),精细的程序设计同样至关重要(尽可能优化流程、减少各器件的活动时间)。因此最小功耗系统的设计,就是在具有本质微功耗特点的硬件系统支持下,利用控制程序实现“零功耗”的精细管理。
结语
如本文中所述,由MSP430F1101单片机与TMPl00数字式温度传感器芯片构成的测温系统可以在平均功耗上达到仅有几个微安的设计目标,系统成本也很低。
关键字:测温、微功耗、MSP430、TMPl00
引言
在工业测控及自动化控制的许多领域中,经常需要实时监测现场环境的实际温度,甚至还需要组建现场环境下的分布式微功耗的测温网络。因此,相应的测温系统就必须有最小的平均功耗、尽量小的硬件成本和体积。这都是设计者必须重点考虑和解决的问题。
当把测温系统作为一个由电池供电的独立功能模块看待时,设计者应该从更高的层面看待系统的微功耗设计问题。即在系统的总体设计过程中,应把电池对系统的支持时间作为一个关键指标予以考虑。尤其近年来随着电子技术的进步,越来越多的新器件的出现使得这种测温系统在电池供电条件下,无需更换电池就可以使用几年的时间。
微功耗测温系统方案设计
微功耗测温系统是一个典型的最小功耗的单片机应用系统,要达到近乎苛刻的功耗设计指标,必须在总体设计时就选择具有本质微功耗特性的器件。这里所说的“本质微功耗”就是指器件本身在静、动态运行条件下已经具有很低的功耗水平。
国内出于成本和体积的考虑,目前工控领域中用得较多的是8051系列中的2051单片机和DSl820组合在一起的温度测量解决方案。2051作为十几年前的8位单片机产品,其功耗水平、性能及运行速度已经远远不能与近几年出现的新型16位单片机相提并论。因此应该选用功耗水平、性能优势更为突出的微控制器和温度测量芯片。
微控制器
能满足电池供电的测温系统的微控制器(MCU),应该在功耗和成本上具有突出优势。而TI公司的MSP430F1101单片机(以下简称为F1101)正是具有超低功耗特点的16位单片机,其功耗已经达到了微安级,且其成本极低,在MSP430单片机系列中具有极佳的性价比。
F1101单片机具有1KB flash程序存储器,128B的数据RAM,一个slopeA/D,14个I/O口,一个16位看门狗定时器,1个16位(含3个捕获/比较寄存器)的定时器及一个比较器。
F1101的软件结构也是针对微功耗应用环境而设计的。如从低功耗休眠模式唤醒MCU仅需6pS。其中断和子程序调用无层次限制,这种丰富的中断能力减少了系统查询的需要,可以方便地设计出基于中断结构的测温程序。
Fl101是MSP430系列中功能最简化的一款单片机,其价格也最低,非常适合对功耗、成本及性能均有较高要求的应用环境。
温度测量芯片
TI公司近几年新推出的TMP100数字式温度传感器芯片也是为微功耗应用环境而设计的。在TI公司的网站上还将MSP430单片机与TMPl00作为微功耗应用的典型搭配予以推荐。
TMPl00芯片的数据传输采用了二线12C接口,同时兼容SMBus。能直接输出9~12位精度的温度数据,可以达到0.0625℃的温度精度。其静态电流仅为45pA,待机电流0.1pA,工作电压2.7~5.5V,测温范围达到了-55℃~+125℃,采用SOT23-6封装,体积很小。
TMPl00除了上拉电阻、去藕电容外无需任何外围器件,允许在一根总线上同时链接8片芯片,是工业控制、环境监测及消费类电子产品中非常适用的温度测量及监控芯片。
MSP430F1 101单片机与TMPl00数字式温度传感器芯片构成的测温系统的特色和优势就在于其超低的功耗、较低的成本和较强的性能。这些对于一个电池供电或试图免于维护的测温系统往往至关重要。
实现方法及技巧
TMPl00与FC总线
TMPl00只能作为12C总线中的从器件(slave device)进行工作,作为主器件(master device)的MSP430F1 101单片机提供数据传输所需要的时钟信号和各种控制信号。F1101与TMPl00的硬件联接方式也极为简单:TMPl00的SCL、SDA引脚与MSP430F1101单片机的两个I/O口相连。另外还要在TMPl00的SCL、SDA引脚上各接一个10K上拉电阻,其V.引脚接一个O.1pF的去藕电容。
图1中配置寄存器(configurationRegister)是一个8位可读/写寄存器,其内存放着控制温度传感器工作模式的各个控制位。配置寄存器内各个控制位的定义如下表所示:
TMPl00上电或重启后配置寄存器内的所有位均为O(OS/ALERT位除外)。
通过置位SD位可以使TMPl00进入关断模式,此时TMPl00除了12C接口逻辑外,所有的内部电路均被关闭,因此仅消耗不到lpA电流。在TMPl00处于关断模式时(SD=1),当前温度转换一结束,TMPl00就会自动关断;而SD=O时,TMPl00将保持连续温度转换。
另外,TMPl00芯片还具有一种one-shot温度测量模式,当TMPl00处于关断模式时,对OS/ALERT位置1将启动一次温度转换,且此次转换完毕后TMPl00将自动回到关断模式。这对降低TMPl00在温度测量中的功耗具有非常重要的意义。
对TMPl00进行读/写时,Fl101单片机必须首先发送一个从地址(slaveaddress)字节寻址到要访问的TMPl00芯片。该从地址由7个地址位和1个方向位(确定是读还是写操作)构成。TMPl00通过ADD0、ADDl两个引脚不同逻辑状态(0、1及悬空)的组合,可以具有8种不同的从地址。因此F1101单片机只需两根I/O口线就可以在一个12C总线上同时联接8片TMPl00芯片。从地址字节的具体格式如下:
其中高四位1001可以认为是TMP100芯片在12C总线中的特征码。A2A1A0表示TMP100芯片在I2C总线上的从地址,其范围是:000~111。R/W=1时,为读操作;=0,为写操作。
F1101单片机、TMPl00芯片作为12C总线中的主、从器件,对操作时序具有特殊的要求:即F1101访问TMP100时,其读写时序及规则均必须遵循12C总线协议的规定。Fl101单片机作为主器件,可以在12C总线上产生串行时钟信号、寻址信号、起始(sTART)和停止(sTOP)信号等。主、从器件都可以发送数据到总线上或从总线上接收数据。 在访问TMP100时,必须先由Fl101单片机产生起始条件:即在SCL保持为高电平时,将SDA由高电平拉到低电平。起始条件产生后,F1101发出一个从地址字节指定要访问的TMPl00芯片和操作类型(读或写),在第9个时钟周期,被寻址的TMPl00芯片发出一个确认信号(acknowledge)回应F1101,并拉低SDA。其后的8个时钟周期将再传送一个字节,然后又是一个确认信号。在数据传输过程中,SCL保持为高,而SDA必须保持稳定。在所有的数据被传输完毕后,由F1101单片机产生停止条件:即在SCL保持为高电平时,将SDA由低电平拉到高电平。
温度测量及流程
在温度测量程序中,Fl 101单片机对T M P 1 0 0的操作主要有:设置TMPl00的工作模式;启动TMPl00进行一次温度测量及转换;读取TMPl00的测温结果。根据TMPl00的操作要求和12C总线协议,可以将F1101单片机访问TMPl00芯片的操作归纳为两种:对T M P 1 O 0发送控制命令;读取TMPl00的测温结果。
TMPl00输出不同精度的温度数据(9~12位)时,其所需的转换时间(conversi’onti‘me)是不同的,9位精度时需要40m s,12位精度时达到了320ms。对于无需高温度精度的应用环境而言,降低TMPl00输出的温度结果的位数能有效缩短其工作时间,进而能有效降低系统功耗。
根据I2c总线的规范,同时结合TMPl00的厂家器件手册,对TMPl00发送控制命令和读取TMPl 00测温结果的程序流程分别如图2、图3所示。
12C是一种时序要求较严格的总线规范,其对时钟信号的高、低电平保持时间,数据保持时间等都有严格要求。因此进行温度测量时,应该保证Fl 101单片机与TMPl00芯片组成的测温系统有稳定可靠的时钟信号源(即使在系统进入低功耗休眠状态时也是如此)。同时,为了系统可靠性的考虑,不宜过于提高访问速度而降低时序冗余度。
从图2、图3可以看出,“确认”过程对于I2C总线上的数据传输非常重要,可以认为是12C总线上主器件和从器件之间的一种特定“握手”方式,以此来使数据发送方能确定数据接收方是否接收到数据,以及是否继续发送数据。因此每接收到一个字节(地址或数据),接收方都必须发出一个“确认”动作,否则就被发送方视为放弃本次数据传输。即接收方在接收到字节后,必须将SDA置为低电平以表示其成功地收到了这个字节(此时SCL为高)。这个“确认”动作应在收到每个字节的8位数据之后的第9个时钟周期发出。无论主或从器件,只要是字节的接收方,“确认”动作就由其发出。
需要注意的是:每次TMPl00发出“确认”信号后,必须通过对F1101编程来检测此信号是否有效;而对于F1101发出的“确认”信号,TMPl00的内部逻辑可以自动处理并进入下面的操作(无需编程控制)。另外,F1101单片机作为主器件,也可以用“不确认”(Not-Acknowledge)信号来中止从器件的数据传输。
程序设计及分析
选择MsP430F11 0l单片机与TMPl00的硬件组合满足了硬件设计中的本质微功耗原则,更进一步的微功耗设计可以通过控制程序进行精细地功耗管理来实现。在程序设计中,功耗管理的最终目标是:最大程度地减少系统运行中的平均功耗。这就要认真分析应用系统运行中的有效运行时间,追求最小时、空占空比的任务安排。
TMPl00的one-shot工作模式显示出其在微功耗设计中的特有优势:这种模式使得TMPl00可以在每次温度转换完毕立即进入关断状态,因此在每次转换的空闲间隔里,TMPl00仅消耗O.1luA电流。MSP430单片机的软件结构保证其中断和子程序调用无层次限制,结合其多种低功耗休眠方式(LPM3仅消耗1.6faA电流)、6us的唤醒时间)TMPl00的one-shot模式可以提供一个最小功耗系统、最少活动时间的软件流程。
基于微功耗设计原则的测温程序的流程如图所示:
在测温程序中,将32768Hz晶振作为ACLK的时钟信号源,Timer A定时器设置为增计数模式,这样即使Fl 101单片机处于LPM3的低功耗休眠模式,ACLK信号仍然处于活动状态。因此可以保证每1s后Timer_A定时器能够产生中断唤醒F1101,并进入相应的中断服务子程序。
图4中,将TMPl00设置为0.25℃(即10位数据位)的输出精度,此时其转换所需时间为80ms。从图4的程序流程可见,主循环的1s定时间隔是由16位硬件定时器Timer_A完成。Timer_A被设置为增计数模式,可以循环计数定时,每个ls定时间隔结束时,Timer_A产生硬件中断使系统进入中断服务子程序。而且即使系统在中断服务子程序中处理任务时,Timer_A也仍然在计数,不会造成定时误差。这样每次TMPl00以one-shot模式测量温度的实际时间间隔为1s,完全能满足TMPl00对转换时间的要求。因此本系统中通过程序流程的精心设计,省去了一个用于转换时间定时的硬件定时器,降低了硬件开销。
为便于精确分析和管理系统的功耗,应该对系统的平均功耗进行精确计算。系统的平均消耗电流的计算公式如下所示:
平均电流=Σ(各器件的电流之和i×时间间隔i)/主循环的时间
需要对此公式进行说明的是:
(1)i表示不同的功耗状态,分别对应于各器件某一时间段的电流之和,以及这一时间段;
(2)所有的时间间隔之和应该与主循环的时间相等;
(3)分子中的求和是指所有功耗状态与时间乘积的求和,既包括活动状态,又包括休眠状态。
具体到本系统中,在1s的主循环时间内,仅仅只在中断服务子程序中F1101和TMPl00才处于活动状态,而读取测温结果和启动下一次温度转换等操作只需要几毫秒的时间,1s主循环的其余时间内F1 101均处于LPM3的低功耗休眠状态,TMPl00则处于关断状态。因此在整个ls的主循环时间内,其平均功耗计算下来仅为几个微安。测温系统即使只采用容量仅为220mA·时的CR-2032扣式电池,其可用时间也可以达到几年。
在许多需要温度监测的应用环境中,1℃的测量精度已经可以满足要求。而TMPl00输出的是9~12位的温度数据(最高位在前),因此1℃的测量精度就意味着F1101只需要接收TMPl00发出的前一个数据字节(8位),即F1101在接收到第一个温度字节后无需发送确认信号即可返回。可见在满足需要的前提下,适当降低测温精度能有效减少F1101单片机和TMPl00芯片的活动时间,进而降低系统的平均功耗。
从系统平均电流的计算公式也可见,系统中的主要功耗来源于活动状态下的各器件消耗的电流,而分母是主循环时间,因此根据不同系统对测温的时间间隔的需要(即测温频度),可以适当延长主循环的定时时间,进而进一步降低测温系统的平均功耗。
综上所述,微功耗测温系统的设计本质上是最小功耗系统的设计。设计过程中,不仅需要采用具有本质微功耗特点的硬件(意味着更低的动态功耗和静态功耗),精细的程序设计同样至关重要(尽可能优化流程、减少各器件的活动时间)。因此最小功耗系统的设计,就是在具有本质微功耗特点的硬件系统支持下,利用控制程序实现“零功耗”的精细管理。
结语
如本文中所述,由MSP430F1101单片机与TMPl00数字式温度传感器芯片构成的测温系统可以在平均功耗上达到仅有几个微安的设计目标,系统成本也很低。