找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

[嵌入式/ARM] 血流检测仪的动态电源管理模块设计(2)———血流检测仪的动态

[复制链接]
admin 发表于 2013-4-3 23:08:25 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
 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的结果表示。
   66060217990455bb02fe7690c7e4e6522011060916544624399.jpg
    (2)file_operations的值
    电源管理模块驱动的file_operations具体值为:
   0b8a095984b7c04ffb700501c4b919df2011060916544624402.jpg
    (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种操作:
    b5d612953bd2a3552d91268012c070712011060916544624404.jpg
    (4)power_key_44b0_interrupt
    函数原形:static void power_key_44b0_interrupt(int irq, void *dev_id, struct pt_regs *regs) 。
    功能说明:响应关机键,进入stop模式。
    参数说明:中断号,设备id,寄存器结构。
    下面介绍函数的算法描述。
    在正常状态下:
   821aafdd4199d47c34627f84e8b6b9602011060916544624405.jpg
    2 总结
    仪器配置2200mAh的镍氢电池,经过测试,电源管理模块使整个系统的功耗降低了60%。系统在数据采集状态下,由电池的输出电流为220mA左右;如果处于IDLE状态,则电流总消耗为80mA;在STOP状态(关闭ARM和所有设备,维持一个32768 Hz的时钟),电流可降到10mA。实验表明,利用动态电源管理,可对便携式医疗仪器实现有效电源管理。
    参考文献
    1 马忠梅. ARM嵌入式处理器结构与应用基础. 北京:北京航空航天大学出版社,2002
    2 许海燕. 嵌入式系统技术与应用. 北京:机械工业出版社,2002
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2025-1-11 07:58 , Processed in 0.064091 second(s), 10 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表