血流检测仪的动态电源管理模块设计

发布时间:2012-11-29 阅读量:753 来源: 我爱方案网 作者:

【导读】电源管理是嵌入式便携式产品重要的功能部件,高效的电源管理方法能够有效降低系统功耗,延长系统的待机时间和电池使用寿命,而仅仅通过电路设计优 化已不能有效解决待机时间短、电池使用寿命短等问题,因此需要引入软件算法与硬件电路协同工作解决这些问题。本文提出动态电源管理模型,并应用于已完成的 嵌入式血流参数检测设计中,实践证明,系统空闲时间的功耗得到大幅度降低,待机时间延长。

引 言  

与其他便携式电子产品一样,血流参数检测仪要做到小巧纤薄,坚固耐用,性能可靠,而且待机时间长。因此,系统设计要面对降低功耗及延长电池寿命的艰巨挑战。电源管理模块是系统非常重要的组成部分,它包括电池充电管理、电池电量检测、CPU状态转换、LCD和键盘背光控制。本文将从硬件电路和软件设计两个角度实现这几方面功能。  

大量实践证明,系统处于空闲的时间占整个运行时间的一大部分。电源管理就是为了减少系统在空闲时间的能量消耗,使嵌入式系统的有效能量供给率最大化,从而延长电池的供电时间。为了延长电池的使用时间,在硬件领域,低功耗硬件电路的设计方法得到了广泛应用。然而仅仅利用低功耗硬件电路仍然不够,在系统设计中,提出采用“动态电源管理”概念,即把系统中不在使用的组件关闭或者进入低功耗模式(待机模式)。另外一种更加有效的方法就是动态可变电压DVS和动态可变频率DFS,即在运行时动态地调节CPU频率或者电压。这样可以在满足瞬时性能的前提下,使得有效能量供给率最大化。

1 系统设计 

整个仪器设计采用S3C44B0芯片和uClinux操作系统。S3C44B0芯片是业界应用较多、功耗较低、成本低的中档产品。它提供五种工作状态:NORMAL、SLOW、IDLE、STOP和SL_IDLE[1]。系统正常工作在NORMAL状态,当用户无操作时段大于某一阈值时,则进入IDLE状态,用户按假关机键进入STOP状态,这时系统功耗很低。为了便于管理,应用层对电源管理状态进行了细划,引入电源管理的六个状态:数据采集状态、正常工作状态、准备状态、休息状态、IDLE状态和STOP状态。其中,IDLE状态和STOP状态与芯片提供的内容相同,由应用程序负责状态的迁移。整个仪器功耗最大的组件是背光(EL背光和键盘LED)、LCD和传感器驱动,其次才是CPU,电源管理状态迁移如图1所示。
图1 系统的电源管理状态迁移  

1.1 电源管理模型
  

图2是电源管理的原理框图,其中包含6个模块:Vcore,Vio,Backup,Charge,Vdriver和Vlcd,它们分别为系统各部分供电。  

Vcore为系统内核供电,供电电压为1.8 V;Vio为系统的I/O口供电,供电电压为3.3 V;Backup为系统备份电池供电,电池电压为3 V;Charge为充电电路,电池电压为3.6 V的充电电池;Vdriver为传感器供电电路,电压为±5 V;Vlcd为LCD模块供电,供电电压为3.3V和200VCA。  

电池充电的电路原理为:当CPU检测到有外接电源时,CPU使用ADC检测电池二端的电压,并判断是否需要充电;当电池两端电压低于设定值时,打开Charge电路给电池充电,并检测充电电流,以保证电池安全有效的充电,充电至设定值时停止充电;当无外接电源时,电池为整个系统供电,CPU检测电池电压,当低于某一设定电压时,决定报警还是关机,以保护电池。  

Vcore和Vio分别为系统的内核和I/O口供电,同时Vio也为存储器供电。Backup电池为系统的备份电池。  

Vdriver为传感器提供±5 V的电压,并保证电流为25±1 mA。  

Vlcd为LCD模块提供二组电压,其中3.3 V为LCD显示提供电压,200VAC为LCD的背光提供电压。
图2 系统的电源管理框图  
[member]
 

1.2 驱动程序设计  

1.2.1 驱动提供接口
  

系统硬件电源管理模块为系统电源管理功能的实现提供必要的硬件基础,并为驱动程序提供如下编程接口:  
◆ 系统供电方式接口,通过此接口驱动和应用程序,可知道系统此时是由电池供电还是由外接电源供电;  
◆ 电池电量检测接口,通过此接口驱动程序可检测到系统的电量,应用程序由此可实现系统电池电量的显示及电池电量报警等功能;  
◆ 电池充电状态,当系统使用外接电源供电时,可对系统中的电池充电,通过此接口驱动可获取电池的充电状态(正在充电或电池已充满);  
◆ 电池温度检测接口,通过此接口驱动程序可检测到电池的温度,电池温度和电池电量相结合可用来计算电池的使用时间,同时在电池过热(电池有问题)时向用户报警,提醒用户关机或更换电池。  

电源管理驱动部分主要给上层提供如下接口。  

(1) 取得电池电量及系统用电情况  

通过端口ADC1读取电池电压。上限电压为4.2 V,下限电压为3.6 V ,报警电压为3.6 V,强行关机电压为3.4 V。数据电压关系:1024-5 V ;0-0 V。  

电池充电管理由硬件实现,但在电池充电到4.2 V时,延时30 min关闭充电功能(应用层完成)。

控制端口为GPC1,1为外部电源供电,0为电池供电。在系统接有外接电源时,系统由外部电源供电。  

(2) 电池充电控制  

控制端口为GPA9,0为充电,1为关闭充电,当电池电源低于3.8 V时,GPA9设为0,开始充电(应用层完成)。  

5 V电源只用于数据采集,非数据采集状态下关闭5 V电源(在ADC中实现)。控制端口是GPC2,0为打开,1为关闭。  

(3) 假关机  

关机状态下,只关闭键盘灯和液晶屏,但系统仍处于正常运行状态。关闭键盘灯、液晶屏以及其他外设的工作由上层软件实现。  

1.2.2 程序流程  

uClinux启动时调用module_init(power_44b0_init)函数,进而power_44b0_init被调用,进行相关的初始化:  

◆ power0_44b0_reg_init()初始化硬件寄存器;  
◆ power_44b0_device_register()注册power_44b0_fops以及中断处理函数power_key_44b0_interrupt(),并且初始化定时器power_down_timer;  
◆ 用户程序通过power_44b0_open()函数打开/dev/power设备,通过power_44b0_release()函数释放/dev/power设备,通过power_44b0_ioctl()函数实现对设备的各种操作;  
◆ 关机进入stop模式,通过中断处理函数power_key_44b0_interrupt()处理关机键对应的中断,按下关机键后用power_down_timer计时,当3 s后,power_down_timer对应的动作power_down_timer_call()发生,从而进入stop模式。  

1.2.3 接口设计与接口函数实现  

(1)数据结构说明  

电源和设备状态由power_status_t的结果表示。  
typedef struct {   
   unsigned long battery_quantity;//电池电量            
                                 //目前只提供电池电压    
   unsigned long device_status;//系统中各设备的运行状态            
                               //Bit0:系统供电方式,0:电池;1:外接电源                             
                              //Bit1:LCD状态,0:正常运行;1:关闭                     
                             //Bit2:LCD背光状态,0:打开;2:关闭   
   unsigned char system_status; //系统运行状态:0为正常模                                              
                                                           //式,1为STOP模式  
} power_status_t  

(2)file_operations的值  

电源管理模块驱动的file_operations具体值为:  
struct file_operations power_44b0_fops={   
   NULL,      //struct module *owner;   
   NULL,      //llseek    
   NULL,      //read    
   NULL,      //write   
   NULL,      //readdir    
   NULL,      //poll    
   power_44b0_ioctl,//ioctl,对上层调用ioctl的实现    
   NULL,      //test_mmap    
   power_44b0_open, //open,打开设备   
   NULL,      //flush    
   power_44b0_release,//release,关闭设备  
};  

(3)power_44b0_ioctl()函数设计  

函数原形:static int power_44b0_ioctl (struct inode *inode, struct file *filp,unsigned int cmd, unsigned int arg)。  

功能说明:设备ioctl的操作函数。  

参数说明:inode,文件指针,执行操作类型,根据操作类型指定不同参数。  

返回值:0表示成功,否则返回ENOTTY。  

判断cmd的值,根据cmd的不同值进行不同的操作,电源设备的ioctl主要实现以下14种操作:  

GET_POWER_STATUS,获得由power_status_t结构表示的电源与设备状态; 

SET_BATTARY_CHARGE_OFF,通过写GPA9寄存器来停止充电;  

SET_BATTARY_CHARGE_ON,写GPA9寄存器来开始充电;  

GET_SYS_STAT,获得当前系统状态;  

START_VOLTAGE_CONVERSION,通道ADC1开始转换电源电压;  

STOP_VOLTAGE_CONVERSION,通道ADC1停止转换电源电压;  

GET_CHARGE_STATUS,取得当前可否充电的状态;  

SYS_ENTER_STOP_MODE,用户程序使系统进入stop模式接口,调用power_down_timer_call()函数来实现; 

SYS_ENTER_IDLE_MODE,用户程序使系统进入idle模式的接口,调用enter_IDLE_mode()函数实现;

SYS_ENTER_SL_IDLE_MODE,用户程序使系统进入sl_idle模式的接口,调用enter_SL_IDLE_mode()函数实现;  

ENABLE_LCD,调用enable_lcd()使LCD工作;  

DISABLE_LCD,调用disable_lcd()使LCD停止工作;  

ENANLE_LED,键盘灯有效工作;  

DISABLE_LED,停止键盘灯工作。  

(4)power_key_44b0_interrupt     

函数原形:static void power_key_44b0_interrupt(int irq, void *dev_id, struct pt_regs *regs) 。  

功能说明:响应关机键,进入stop模式。  

参数说明:中断号,设备id,寄存器结构。  

下面介绍函数的算法描述。  

在正常状态下:  
if (按下开关机键)    
   { 设置开关机键状态为按下;     
     关机计时器开始计时,计时结束时进入stop模式;    
     设置开关机键产生中断方式为上升沿触发中断;   
  }  
else//开关机键抬起    
   { 设置开关机键状态为抬起;    
     使关机定时器失效;     
     设置开关机键产生中断方式为下降沿触发中断;    
    }  
在关机状态下:  
if (按下开关机键)    
   { 设置开关机键状态为按下;     
     开机计时器开始计时,计时结束时进入stop模式;     
     设置开关机键产生中断方式为上升沿触发中断;    
    }  
else//开关机键抬起    
   { 设置开关机键状态为抬起;     
     使开机定时器失效;
    设置开关机键产生中断方式为下降沿触发中断。  
    }
 

2 总结
  

仪器配置2200 mAh的镍氢电池,经过测试,电源管理模块使整个系统的功耗降低了60%。系统在数据采集状态下,由电池的输出电流为220mA左右;如果处于IDLE状态,则电流总消耗为80mA;在STOP状态(关闭ARM和所有设备,维持一个32 768 Hz的时钟),电流可降到10mA。实验表明,利用动态电源管理,可对便携式医疗仪器实现有效电源管理。

相关资讯
“中国芯”逆袭时刻:新唐携7大新品打造全场景AIoT解决方案矩阵

在万物互联与智能化浪潮席卷全球的今天,新唐科技以颠覆性创新奏响行业强音。4月25日,这场历时10天、横跨七城的科技盛宴在深圳迎来高潮,以"创新驱动AI、新能源与车用科技"为主题,汇聚全球顶尖行业领袖,首次公开七大核心产品矩阵,展现从芯片设计到智能生态的全链条创新能力,为半导体产业转型升级注入新动能。

半导体先进制程技术博弈:台积电、英特尔与三星的差异化路径

在2025年北美技术研讨会上,台积电正式宣布其A14(1.4nm)工艺将于2028年量产,并明确表示无需依赖ASML最新一代High NA EUV光刻机。这一决策背后,折射出全球半导体巨头在技术路线、成本控制和市场竞争中的深层博弈。

嵌入式主板EMB-3128:轻量级边缘计算的工业级解决方案

随着AIoT技术的快速落地,智能设备对高性能、低功耗嵌入式硬件的需求持续攀升。华北工控推出的EMB-3128嵌入式主板,搭载Intel® Alder Lake-N系列及Core™ i3-N305处理器,以高能效比设计、工业级可靠性及丰富的接口配置,成为轻量级边缘AI计算的理想选择。该主板支持DDR5内存、多模态扩展接口及宽温运行环境,可广泛应用于智能家居、工业自动化、智慧零售等场景,助力产业智能化升级。

从ASMI财报看行业趋势:AI芯片需求爆发如何重塑半导体设备市场?

作为全球半导体沉积设备领域的龙头企业,荷兰ASM国际(ASMI)近日发布2024年第一季度财报,展现强劲增长动能。财报显示,公司当季新增订单额达8.34亿欧元(按固定汇率计算),同比增长14%,显著超出市场预期的8.08亿欧元。这一表现主要受益于人工智能芯片制造设备需求激增与中国市场的战略性突破,同时反映出半导体产业技术迭代与地缘经济博弈的双重影响。

车规级SerDes国产替代提速:解析纳芯微NLS9116/NLS9246技术优势与市场潜力

随着汽车智能化加速,车载摄像头、激光雷达、显示屏等传感器数量激增,数据传输带宽需求呈指数级增长。传统国际厂商基于私有协议(如TI的FPD-Link、ADI的GMSL)垄断车载SerDes市场,导致车企供应链弹性不足、成本高企。2025年4月,纳芯微电子发布基于HSMT公有协议的全链路国产化SerDes芯片组(NLS9116加串器与NLS9246解串器),通过协议解耦、性能优化与供应链自主可控,为ADAS、智能座舱等场景提供高性价比解决方案,标志着国产车规级芯片从“跟跑”迈向“并跑” 。