血流检测仪的动态电源管理模块设计
时间:06-25
来源:EDN
点击:
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计时,当3s后,power_down_timer对应的动作power_down_timer_call()发生,从而进入stop模式。
1.2.3 接口设计与接口函数实现
(1)数据结构说明
电源和设备状态由power_status_t的结果表示。
(2)file_operations的值
电源管理模块驱动的file_operations具体值为:
(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种操作:
(4)power_key_44b0_interrupt
函数原形:static void power_key_44b0_interrupt(int irq, void *dev_id, struct pt_regs *regs) 。
功能说明:响应关机键,进入stop模式。
参数说明:中断号,设备id,寄存器结构。
下面介绍函数的算法描述。
在正常状态下:
2 总结
仪器配置2200mAh的镍氢电池,经过测试,电源管理模块使整个系统的功耗降低了60%。系统在数据采集状态下,由电池的输出电流为220mA左右;如果处于IDLE状态,则电流总消耗为80mA;在STOP状态(关闭ARM和所有设备,维持一个32768 Hz的时钟),电流可降到10mA。实验表明,利用动态电源管理,可对便携式医疗仪器实现有效电源管理。
- 用DVS功能实现系统节能(05-10)
- 嵌入式系统动态电源管理技术研究(01-09)
- 复合量程微加速度计动态特性分析(10-15)
- 固态继电器的动态功耗和设计考量(01-24)
- 基于柔性锁相环路的动态电压恢复器控制方案的研究(04-17)
- 动态LED显示系统 (11-28)