昕原半导体完成近亿美元Pre-A轮融资
06-17
简介 与其他便携式电子产品一样,血流参数检测仪必须做到小而薄、坚固耐用、性能可靠、待机时间长。
因此,系统设计面临着降低功耗和延长电池寿命的艰巨挑战。
电源管理模块是系统中非常重要的一部分。
它包括电池充电管理、电池电量检测、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.8V; Vio为系统I/O口供电,供电电压为3.3V; Backup为系统备用电池供电,电池电压为3V; Charge是充电电路,用电池电压为3.6V的充电电池; Vdriver为传感器供电电路,电压为±5V; Vlcd是液晶模块的电源,供电电压为3.3V和VCA。
电池充电的电路原理是:当CPU检测到外部供电时,CPU通过ADC检测电池两端的电压,判断是否需要充电;当电池两端电压低于设定值时,充电电路开启。
对电池进行充电并检测充电电流,确保电池安全有效充电。
当电池电量达到设定值时停止充电。
当没有外部电源时,电池为整个系统供电。
CPU检测电池电压。
当低于某一设定电压时,决定报警或停机,以保护电池。
Vcore和Vio分别为系统核心和I/O端口供电,而Vio还为内存供电。
备用电池是系统的备用电池。
Vdriver 为传感器提供±5V 电压并保证25±1mA 的电流。
Vlcd 为 LCD 模块提供两组电压,其中 3.3V 为 LCD 显示提供电压,VAC 为 LCD 背光提供电压。
图2 系统电源管理框图 1.2 驱动程序设计 1.2.1 驱动程序提供接口 系统硬件电源管理模块为系统电源管理功能的实现提供必要的硬件基础,并提供驱动程序提供以下编程接口: ◆ 系统供电模式接口,通过该接口,驱动程序和应用程序可以知道此时系统是由电池供电还是由外部电源供电; ◆ 电池电量检测接口,通过该接口驱动程序可以检测系统的电量,应用程序可以实现显示系统电池电量、电池电量报警等功能; ◆ 电池充电状态,当系统由外部电源供电时,可以对系统内的电池进行充电,通过该接口驱动器可以获取电池的充电状态(正在充电或电池已充满) ; ◆ 电池温度检测接口,通过该接口驱动器可以检测电池的温度,结合电池温度和电池电量可以计算电池的使用时间,并在电池过热时提醒用户(电池问题)提醒用户关机或更换电池。
电源管理驱动部分主要向上层提供以下接口。
(1) 获取电池电量和系统电量使用情况 通过ADC1口读取电池电压。
上限电压为4.2V,下限电压为3.6V,报警电压为3.6V,强制关机电压为3.4V。
数据电压关系:5V; 0-0V。
电池充电管理由硬件实现,但当电池充电到4.2V时,延迟30分钟关闭充电功能(在应用层完成)。
控制口为GPC1,1为外部供电,0为电池供电。
当系统连接外部电源时,系统由外部电源供电。
(2) 电池充电控制 控制端口为GPA9,0表示正在充电,1表示关闭充电。
当电池电量低于3.8V时,GPA9置0,开始充电(应用层完成)。
5V电源仅用于数据采集,不处于数据采集状态时关闭5V电源(在ADC中实现)。
控制端口为GPC2,0表示打开,1表示关闭。
(3)假关机 在关机状态下,只有键盘灯和液晶屏关闭,但系统仍然正常运行。
关闭键盘灯、液晶屏等外设的工作是由上层软件实现的。
? 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()函数实现对设备的各种操作; ◆ 关机进入停止模式,通过中断处理函数power_key_44b0_interrupt()处理关机键对应的中断,按下关机键后使用power_down_timer进行计时。
3s后,power_down_timer对应的动作power_down_timer_call()发生,从而进入停止模式。
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, //读取 NULL , //write NULL, //readdir NULL, //poll power_44b0_ioctl,//ioctl,向上层调用ioctl的实现 NULL, //test_mmap power_44b0_open, //open,打开设备 NULL, //flush power_44b0_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,用户程序使系统进入停止模式界面,调用power_down_timer_call()函数来实现; SYS_ENTER_IDLE_MODE,用户程序使系统进入空闲模式的接口,调用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)。
功能说明:响应关机按钮,进入停止模式。
参数说明:中断号、设备id、寄存器结构。
下面介绍该函数的算法描述。
正常状态下: if(按下电源按钮) { 设置电源按钮状态为按下; 断电定时器开始计数,定时器结束后进入停止模式; 设置电源按钮中断模式为上升沿触发中断; } else//电源按钮抬起 {设置电源按钮状态为抬起; 禁用关机定时器; 设置电源按钮产生的中断模式为下降沿触发中断; } 关机状态下: if(按下电源按钮) { 设置电源按钮状态为按下; 上电定时器开始计时,定时器结束后进入停止模式; 设置开关 机器按键中断方式为上升沿触发中断; } else//电源按钮抬起 { 设置电源按钮状态为抬起; 使开机定时器无效; 设置开关机按键产生的中断方式为下降沿触发中断。
} 2 摘要 仪器配备 mAh 镍氢电池。
经测试,电源管理模块使整个系统功耗降低了60%。
当系统处于数据采集状态时,电池输出电流约为mA;如果处于IDLE状态,总电流消耗为80mA;在STOP状态下(关闭ARM和所有器件,保持32Hz时钟),电流可降至10mA。
实验表明,利用动态电源管理可以实现便携式医疗仪器的有效电源管理。
版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,欢迎发送邮件 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。
标签:
相关文章
06-17
06-17
06-17
06-17
06-18
06-17
06-06
最新文章
PCBA质检员的日常工作内容
美国法院裁定VoIP不属于电信服务,需征税
雷达嵌入式工控主板如何使用?工控主板故障分析
摩托罗拉在西班牙促销Z8手机
中宇买下了一台三星机型,品牌和规模是合作的主要原因
舰载军用加固计算机热设计
谷歌开始对仍由HTC生产的谷歌手机进行内部测试
英国EE分享LTE发展经验教训,面临终端-语音-回传三大挑战