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