血流檢測儀的動(dòng)態(tài)電源管理模塊設計
uClinux啟動(dòng)時(shí)調用module_init(Power_44b0_init)函數,進(jìn)而power_44b0_init被調用,進(jìn)行相關(guān)的初始化:
本文引用地址:http://dyxdggzs.com/article/86126.htm◆ power0_44b0_reg_init()初始化硬件寄存器;
◆ power_44b0_device_register()注冊power_44b0_fops以及中斷處理函數power_key_44b0_interrupt(),并且初始化定時(shí)器power_down_timer;
◆ 用戶(hù)程序通過(guò)power_44b0_open()函數打開(kāi)/dev/power設備,通過(guò)power_44b0_release()函數釋放/dev/power設備,通過(guò)power_44b0_ioctl()函數實(shí)現對設備的各種操作;
◆ 關(guān)機進(jìn)入stop模式,通過(guò)中斷處理函數power_key_44b0_interrupt()處理關(guān)機鍵對應的中斷,按下關(guān)機鍵后用power_down_timer計時(shí),當3s后,power_down_timer對應的動(dòng)作power_down_timer_call()發(fā)生,從而進(jìn)入stop模式。
1.2.3 接口設計與接口函數實(shí)現
?。?)數據結構說(shuō)明
電源和設備狀態(tài)由power_status_t的結果表示。
?。?)file_operations的值
電源管理模塊驅動(dòng)的file_operations具體值為:
?。?)power_44b0_ioctl()函數設計
函數原形:static int power_44b0_ioctl (struct inode *inode, struct file *filp,unsigned int cmd, unsigned int arg)。
功能說(shuō)明:設備ioctl的操作函數。
參數說(shuō)明:inode,文件指針,執行操作類(lèi)型,根據操作類(lèi)型指定不同參數。
返回值:0表示成功,否則返回ENOTTY。
判斷cmd的值,根據cmd的不同值進(jìn)行不同的操作,電源設備的ioctl主要實(shí)現以下14種操作:
?。?)power_key_44b0_interrupt
函數原形:static void power_key_44b0_interrupt(int irq, void *dev_id, struct pt_regs *regs) 。
功能說(shuō)明:響應關(guān)機鍵,進(jìn)入stop模式。
參數說(shuō)明:中斷號,設備id,寄存器結構。
下面介紹函數的算法描述。
在正常狀態(tài)下:
2 總結
儀器配置2200mAh的鎳氫電池,經(jīng)過(guò)測試,電源管理模塊使整個(gè)系統的功耗降低了60%。系統在數據采集狀態(tài)下,由電池的輸出電流為220mA左右;如果處于IDLE狀態(tài),則電流總消耗為80mA;在STOP狀態(tài)(關(guān)閉ARM和所有設備,維持一個(gè)32768 Hz的時(shí)鐘),電流可降到10mA。實(shí)驗表明,利用動(dòng)態(tài)電源管理,可對便攜式醫療儀器實(shí)現有效電源管理。
參考文獻
1 馬忠梅. ARM嵌入式處理器結構與應用基礎. 北京:北京航空航天大學(xué)出版社,2002
2 許海燕. 嵌入式系統技術(shù)與應用. 北京:機械工業(yè)出版社,2002
評論