水文遥测系统通常由终端机、中继站和中心站三部分组成。由于终端机是用来直接测量雨量、水位等水文数据,是整个遥测系统信息的来源,故其设计成为整个遥测系统的关键。遥测终端机一般处于河流上游或者湖泊边缘,分布分散,维护起来很不方便,需要长期工作在无人值守的环境中,并且往往无交流电源提供,需要靠太阳能浮充和免维护蓄电池供电,因此在终端机的设计过程中低功耗和高可靠性尤为重要。
现有的遥测终端机通常采用MCS51微控制器作为控制芯片并配以较多的模拟电路和逻辑门电路,其设计复杂,功耗和可靠性难以得到保证,所以很有必要利用新型的性能更高的器件来对终端机重新设计。TI公司的MSP430系列集成了大量的外围部件,是低工作电压、超低功耗、高性能的微控制器,在电池供电的便携式设备和仪器中有着广泛的应用。和MCS51等其他微控制器相比,MPS430具有很多优势:它能够工作在1.8~3.6V的宽电压范围内;在1MHz时钟、2.2V电压的典型工作条件下,静态电流仅为
225μA;具有5种低功耗工作模式,在不同的模式下消耗电流为 0.1~340μA,用中断方式将微控制器从低功耗模式唤醒至激活模式下,仅需要6μs。本文以MSP430F147作为控制芯片,同时结合其他外围低功耗器件分别从硬件和软件两个方面介绍一种新型低功耗终端机的设计。
终端机工作原理
终端机采用自报工作方式,在雨量或水位数据没有变化时处于低功耗的值守模式,此时CPU、主时钟(MCLK)以及内部数字振荡器(DCO)均不工作,微控制器仅由低速辅助时钟(ACLK)来驱动,系统功耗很低。当水位或雨量变化一个单位或定时发送时,便会使微控制器立即进入激活模式,并且启动FM发射机发送一次数据,数据发送完后再转入低功耗模式,直到下一次发送数据。终端机除具有雨量、水位、定时发送等基本功能外,为了便于维护,还具有强发和编程功能,各个功能的描述如下。
雨量发送
当雨量计产生一个通断信号时,由雨量传感器输出一个具有一定宽度的雨量脉冲信号,此信号作为外部中断,唤醒处于低功耗模式的微控制器,在6μs内微控制器转入激活工作状态,并控制供电电路给处于掉电状态的电路和FM发射机供电,使之上电工作。此时微控制器将检测到的雨量信号进行累加和保存,并读入测量站站址和电池状态,将以上数据装帧后传送给FM发射机,由FM发射机将数据发送给中继站,发送完毕后控制相关电路掉电后转入低功耗模式工作。
水位发送
与雨量发送的过程相似,水位发送只是当微控制器检测到水位脉冲信号后,从水位计上读入此时的水位值,并与上次所读入值相比较。若有变化则读入测量站站址、电池状态后发送数据;若无变化则直接返回低功耗模式工作。
定时发送
微控制器由内部定时中断唤醒后,首先读入编程开关状态,依据编程开关设置确定由EEPROM中读入水位数据还是雨量数据,然后再发送。
强发功能
按下强发键并持续0.5s将迫使终端机发送数据,以此达到维护和检查终端机的目的。
编程功能
通过外部DIP编程开关,可以对终端机的站址、是否清除已有数据以及定时发送何种数据进行编程设置。由于外部EEPROM存储器的擦写次数有限,“清除”可使外部EEPROM内的数据更换新地址,从而延长其使用寿命。同时还可以通过此开关设置定时发送水位数据还是雨量数据,或者两者一起发送,从而使终端机配置水位终端机、雨量终端机或者水文终端机。
硬件电路设计
由于硬件电路是主要的耗电部分,故在芯片选择和电路设计过程中主要考虑低功耗的因素。终端机硬件电路如图1所示,雨量、水位和电压信息分别通过各自的传感器接到微控制器的I/O口,微控制器对这些数据进行采集,然后进行相应的处理。
(1) 控制单元
整个硬件电路的核心是MSP430F147微控制器,它控制各个单元协调工作,是整个电路主要的耗电部分,对它的功耗控制主要是系统交替工作于高速、低速两种时钟和通过软件设置其不同工作模式来完成,这两部分的设置和实现将在时钟电路和软件设计部分介绍。
(2) 电源管理电路
终端机由太阳能浮充的免维护蓄电池供电,该蓄电池除了给FM发射机提供+12V电源外,还给控制电路提供 +3V的电源,这就需要电压转换电路。Maxim公司的电源管理ICL7663的静态
工作电流只有10μA,输入电压范围1.5~16V,输出电压范围1.3~16V,由于它功耗极低,非常适合于电池供电的设备中,故采用ICL7663可以进一步降低终端机的功耗。输出电压可由式(1)得出。
(1)式(1)中Vset的典型值为1.3V,R1、R2为偏置电阻,用来设置输出电压。图1电路中中选择R1=1MΩ、R2=1.3MΩ,经式(1)计算可得输出电压Vout=3V。
输出电流可以通过限流电阻Rcl来设置,由式(2)得出。(2)图1电路中选择Rcl=20Ω,经计算输出电流为35mA,满足本设计的要求。
(3) 时钟电路
在CMOS数字逻辑器件中,功耗与系统时钟频率f(clk)成正比,见式(3)。(3)式(3)中C是COMS的负载电容,V是电源电压,E(sw)是跳变频率。由式(3)可知在负载电容、电源电压和跳变频率基本不变的前提下,要实现低功耗就需要降低微控制器的工作频率。MSP430F147的特色是具有两个外部时钟源,一个为低速的辅助时钟(ACLK),另一个为高速的主时钟(MCLK)。ACLK可以使用32.768Hz的手表晶振,它可以给系统提供稳定的时间基准并且降低微控制器的功耗,而MCLK可以使用4MHz的晶振,并可以配置成在需要系统全速工作时由中断唤醒,从而高效执行相应的程序和高速处理数据。
(4) 外部存储器和复位电路
这部分电路采用Xicor公司的X25045,该芯片将可编程看门狗、电压监控、EEPROM集于一体,具有体积小、占用I/O少等优点,应用于系统中可以简化微控制器系统的设计。芯片采用SPI口与微控制器数据交换,通过片内可选时间的看门狗定时器可以在微控制器程序跑飞或者死锁时复位,这样便提高了系统的可靠性。
软件设计
在软件方面,主要通过模式的选择和片内模块的使用两方面来降低功耗。
(1) MSP430F147的低功耗工作模式
MSP430F147共有5种低功耗工作模式(LPM0~LPM4)和一个激活模式(AM),任何低功耗的模式都可以由任何允许的中断唤醒,从而回到激活模式,且转换时间低于6μs。
MSP430F147的不同低功耗模式是通过配置状态寄存器SR中CPUOFF、OSCOFF、SCG0、SCG1 4个模式控制位来实现的,这四位有效与否的不同组合可以达到控制微控制器时钟系统的目的。根据终端机的低功耗设计要求,可以配置状态寄存器SR使微控制器工作于LPM3模式。此时CPUOFF、OSCOFF、SCG0、SCG1 4个模式控制位的值分别为1、0、1、1。在该模式下,CPU、主时钟(MCLK)和内部数字振荡器(DCO)均不工作,微控制器仅由辅助时钟(ACLK)驱动,此时工作电流仅为2μA,功耗很低。处于该模式的微控制器可以由雨量、水位等外部中断或者内部定时中断唤醒,唤醒后进入激活工作模式,此时被关闭的各部分电路将恢复正常工作。由此可以在终端机需要发送数据的时候激活微控制器,不发送的时候则使微控制器进入LPM3模式,这样就大大降低了系统的功耗。
(2) 片内模块的考虑
MSP430F147集成了较多的模拟模块,如ADC、Comparator A、SVS等。对于模拟模块,工作频率对供电电流几乎没有影响,而工作电压却有较大影响,故对于不使用的模块应该在程序初始化时将其关闭,从而通过软件设置降低功耗。
(3) 软件流程
终端机的软件流程如图2所示。整个程序采用查询式结构,分为主程序和
中断程序。主程序包括端口、变量和内部寄存器的初始化以及数据处理。中断程序用于响应事件并对相应标志置位,然后将参数返回给主程序处理。将微控制器从低功耗模式唤醒至激活模式共有两类中断:外部中断和内部中断。由于雨量、水位、强发信号具有随机性,故由微控制器的外部中断响应这三个事件。另外由片内定时器产生内部定时中断,用于在无水位和雨量变化时定时发送数据。对于清除、站址等编程功能,则在主程序中通过对外部编程开关的读取来完成。