深海海底边界层原位监测中电源管理系统的设计
摘要:电源管理系统是深海海底边界层原位检测系统的供电模块。系统以MSP430F149单片机为主控制器件,控制7块程序可控DC/DC模块,IAR Embedded Workbench IDE为软件平台,提供实时、稳定、有效的电源管理与控制。该系统采用程序控制各个DC/DC模块工作与否的方式,达到电源管理与控制的目的。该系统随东方红2号与海洋4号2次出海试验结果表明,这种设计达到了项目的要求,极大地降低了系统的功耗。
关键词:边界层;MSP430F149单片机;DC/DC;功耗
0 引言
深海海底原位监测技术是一种对海底界面生物地球化学过程进行长期、原位、多参数同步测量的水下监测技术。该技术在海底水合物系统及其勘探试采过程中的环境效应监测评估等方面有重要的应用前景。
因系统在深海海底长期使用且更换电池不方便,故电源管理系统的主要功能是使其工作时电流消耗尽可能的小、不工作时电源可以被切断,以及采集模拟量。单片机在不断电的情况下,实现长期控制整个电源系统的功能。由于海底原位监测工作具有长期性的特点,要求系统具有较高的稳定性和较低的功耗。
1 电源管理系统结构和总设计方案
系统框图如图1所示,包括27 V电池组、锂电池、MSP430F149单片机、7块可控DC/DC、一块普通DC/DC、电平转换芯片、继电器等。主板ARM1和ARM2,串口服务器、交换机为上位机;DO,PH,CO2,CH4传感器,高度计、电机、录像机为深海设备。
本电源系统以MSP430F149为主控制器件,是一款16位超低功耗的单片机,其CPU功耗可以通过开关状态寄存器的控制位来控制:正常运行时电流160μA,备用时为0.1 μA,低功耗的优点为系统设计提供了有利条件;内部集成了8路12位具有高速、通用特点的ADC12模块,可在没有CPU干预的情况下进行16次独立采样并保存结果,系统中用到2路模拟通道来分别采集模拟量DO和PH;其所有的I/O端口的管脚都是双向的,设置I/O口可控制DC/DC模块,图1中C1~C6为单片机I/O口输出的DC/DC模块的Ctrl信号,即通过I/O口输出1或者0控制DC/DC模块的开启或关断。
因外部电池组只能提供一个固定的电压,为了实现输出多路不同数值的直流电压的目的,采用不同的DC/DC模块。比较论证之后选择了金升阳科技有限公司的芯片,其具有程序可控、输出效率高、宽输入电压范围、输出过压保护、过流保护以及短路保护的特点。
2 电源管理系统软件设计
整个系统的管理主要分为3个阶段:甲板上设置参数阶段、设备投放阶段、数据采集阶段。甲板上设置参数阶段主要是对单片机进行对时、设置投放阶段睡眠的时间长度以及数据采集周期。设备投放阶段主要是控制上位机和深海设备处于断电状态并且单片机进入低功耗状态,等待先前设置的投放阶段睡眠的时间长度到了之后退出低功耗,给上位机供电,然后等待上位机的命令。数据采集阶段主要是周期性的给上位机供电,上位机给单片机命令给相应的深海设备供电或断电。系统的设计中涉及到功耗、时钟切换、RTC等,以下是各个部分的具体实现过程。
2.1 低功耗设计
系统的功耗可以由公式P=CV2f计算出来,式中C为负载电容,V为电源电压,f为系统工作频率,可见一个系统的功耗主要由电源电压决定,其次是工作频率、负载电容。因负载电容不可控制,要设计一个低功耗的系统,在不影响其性能的前提下,应该尽可能地降低电源电压和使用低频率的时钟。
电源电压方面,一方面MSP430F149具有1.8~3.6 V的低电源电压工作范围;另一方面,系统中使用的DC/DC模块为程序可控的,即只有在要求给相应的负载供电时,才会程序控制相应的DC/DC模块开启,否则其一直处于关断状态。从以上2个方面,降低了整个系统电源电压以降低整个系统的功耗。
系统工作频率方面,MSP430F149内部的基础时钟主要是由低频晶体振荡器LFXT1、高频晶体振荡器LFXT2及数字控制振荡器DCO组成。可以根据需要选择合适的振荡频率,并在不需要时关闭振荡器以降低功耗。一方面,为了降低系统工作频率,系统中ACLK(辅助时钟)以及MCLK(主系统时钟)均使用的是由低频晶体振荡器LFXT1产生的32768 Hz;另一方面,通过设置状态寄存器中SCG0位关闭了DCO。
另外,MSP430F149具有1种活动模式和5种低功耗模式(LPM0-LPM4),通过程序控制可使单片机在指定的时刻通过定时器中断退出低功耗模式进入活动模式,其他时刻均处于LPM3模式下。因系统中用定时器B实现软时钟,定时器B的时钟源选择的是ACLK,LPM4模式下CPU及所有的时钟(包括ACLK)都停止工作,但是系统要求软时钟即使在低功耗的状态下可用且可中断唤醒CPU,故选择的是LPM3模式。
系统设计中有两路模拟量采集用到ADC模块,此模块仅在单片机接收到上位机发送来的采集这两路模拟量的时候才开启,采集完之后可通过程序控制把ADC模块关闭,在一定程度上这也可以降低系统功耗。
2.2 时钟切换设计
由2.1知,从低功耗的角度出发,选择了较低的工作频率,但是系统中涉及到单片机控制步进电机。MCLK为32768 Hz时,由此时钟延时产生的矩形脉冲的频率太低,导致步进电机不能转动,所以在系统中考虑到时钟的切换,即在调整步进电机时,要把单片机的主系统时钟(MCLK)从LFXT1切换到LFXT2。BCSCTL2=SELM1+SELM0该语句实现的是选择MCLK的时钟源为LFXT1,即设置了BCSCTL2寄存器的高两位为1(默认为0)。当要把MCLK的时钟源选择为LFXT2时,如果寄存器BCSCTL2的各个位仍为默认值,则只需BCSCTL2=SELM1语句便可成功的设置MCLK的时钟源为LFXT2,但是程序没能达到预期目标。分析发现寄存器BCSCTL2被设置过之后,被设置的相应位的默认值就发生了改变,在进行下一次设置之前要保证把上一次设置过的相应位恢复为默认值,然后再进行设置才能达到预期目标,意思就是说在语句BCSCTL2=SELM1前面加上语句BCS CTL2=0X3F即可成功的将MCLK的时钟源由LFXT1切换到LFXT2。
2.3 实时时钟RTC的设计
一方面,系统长期工作于深海海底,甲板上设置好参数后,从投放到回收期间,不会再有外部工作人员的干预,系统自动化的完成数据的采集工作,对电源管理系统提出了能够按点、按周期周期性给嵌入式系统和深海设备加电的要求;另一方面,深海海底原位监测的DO,PH,CO2,CH4等要在严格的准同步下测得,才具有研究的意义和价值。以上两方面要求电源管理系统要有RTC,能够接受上位机发送来的时间,并以此时间为基准开始计时。程序能记录上次数据采集的时刻,并计算出下次数据采集的时刻。每次数据采集完单片机关闭电源,进入LPM3模式,等待到下一个数据采集时刻从低功耗状态退出然后给上位机供电,然后等待上位机命令给哪些深海设备供电与断电。
2.4 系统的健壮性
系统从硬件和软件2个方面来保证系统运行的稳定性。
2.4.1 硬件方面
单片机的电源由两部分来提供,锂电池作为备用电池,一旦外部电池组出现故障,便由锂电池给单片机供电,防止单片机意外断电给整个系统带来风险。
2.4.2 软件方面
(1)与上位机的通信协议:为保证通讯的准确性和完整性,单片机和嵌入式系统之间采用数据包的方式进行通讯,包括采集数据,关闭电源,设置周期和校准RTC时钟。帧格式如图2所示。
(2)核对工作状态:ARM板相对于单片机有3个阶段,且其信息断电不丢失,而单片机一旦出现意外断电,其信息将全部丢失,程序被重新初始化,就会出现单片机和ARM板的工作状态不一致。为了消除因两者工作状态不一致给整个系统带来的风险,程序中设置了接收上位机核对工作状态的命令,单片机一旦发现两者工作状态不一致,将修改自己的状态,以与ARM板保持同步。系统流程图如图3所示。
3 结语
通过2次海试,结果表明系统可以稳定地实时给上位机供电,系统功耗低,程序结构灵活稳定,修改方便,能够满足深海原位监测的要求。
评论