工控网首页
>

应用设计

>

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

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

2010/4/12 11:39:00
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。实验表明,利用动态电源管理,可对便携式医疗仪器实现有效电源管理

  参考文献

  1 马忠梅. ARM嵌入式处理器结构与应用基础. 北京:北京航空航天大学出版社,2002

  2 许海燕. 嵌入式系统技术与应用. 北京:机械工业出版社,2002

投诉建议

提交

查看更多评论
其他资讯

查看更多

助力企业恢复“战斗状态”:MyMRO我的万物集·固安捷升级开工场景方案

车规MOSFET技术确保功率开关管的可靠性和强电流处理能力

未来十年, 化工企业应如何提高资源效率及减少运营中的碳足迹?

2023年制造业“开门红”,抢滩大湾区市场锁定DMP工博会

2023钢铁展洽会4月全新起航 将在日照触发更多商机