《電子技術應用》
您所在的位置:首頁 > 电源技术 > 业界动态 > 血流检测仪的动态电源管理模块设计

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

2008-07-24
作者:周宽久 李德华

  引言

  與其他便攜式電子產(chǎn)品一樣,血流參數(shù)檢測儀要做到小巧纖薄,堅固耐用,性能可靠,而且待機時間長。因此,系統(tǒng)設計要面對降低功耗及延長電池壽命的艱巨挑戰(zhàn)。電源管理模塊是系統(tǒng)非常重要的組成部分,它包括電池充電管理、電池電量檢測、CPU狀態(tài)轉換、LCD和鍵盤背光控制。本文將從硬件電路和軟件設計兩個角度實現(xiàn)這幾方面功能。

  大量實踐證明,系統(tǒng)處于空閑的時間占整個運行時間的一大部分。電源管理" title="電源管理">電源管理就是為了減少系統(tǒng)在空閑時間的能量消耗,使嵌入式系統(tǒng)的有效能量供給率最大化,從而延長電池的供電時間。為了延長電池的使用時間,在硬件領域,低功耗硬件電路的設計方法得到了廣泛應用。然而僅僅利用低功耗硬件電路仍然不夠,在系統(tǒng)設計中,提出采用“動態(tài)電源管理”概念,即把系統(tǒng)中不在使用的組件關閉或者進入低功耗模式(待機模式)。另外一種更加有效的方法就是動態(tài)可變電壓DVS和動態(tài)可變頻率DFS,即在運行時動態(tài)地調節(jié)CPU頻率或者電壓。這樣可以在滿足瞬時性能的前提下,使得有效能量供給率最大化。

  1 系統(tǒng)設計

  整個儀器設計采用S3C44B0芯片和uClinux操作系統(tǒng)。S3C44B0芯片是業(yè)界應用較多、功耗較低、成本低的中檔產(chǎn)品。它提供五種工作狀態(tài):NORMAL、SLOW、IDLE、STOP和SL_IDLE[1]。系統(tǒng)正常工作在NORMAL狀態(tài),當用戶無操作時段大于某一閾值時,則進入IDLE狀態(tài),用戶按假關機鍵進入STOP狀態(tài),這時系統(tǒng)功耗很低。為了便于管理,應用層對電源管理狀態(tài)進行了細劃,引入電源管理的六個狀態(tài):數(shù)據(jù)采集" title="數(shù)據(jù)采集">數(shù)據(jù)采集狀態(tài)、正常工作狀態(tài)、準備狀態(tài)、休息狀態(tài)、IDLE狀態(tài)和STOP狀態(tài)。其中,IDLE狀態(tài)和STOP狀態(tài)與芯片提供的內容相同,由應用程序負責狀態(tài)的遷移。整個儀器功耗最大的組件是背光(EL背光和鍵盤LED)、LCD和傳感器驅動,其次才是CPU,電源管理狀態(tài)遷移如圖1所示。

系統(tǒng)的電源管理狀態(tài)遷移

圖1 系統(tǒng)的電源管理狀態(tài)遷移

  1.1 電源管理模型

  圖2是電源管理的原理框圖,其中包含6個模塊:Vcore,Vio,Backup,Charge,Vdriver和Vlcd,它們分別為系統(tǒng)各部分供電。

系統(tǒng)的電源管理框圖

圖2 系統(tǒng)的電源管理框圖

  Vcore為系統(tǒng)內核供電,供電電壓為1.8 V;Vio為系統(tǒng)的I/O口供電,供電電壓為3.3V;Backup為系統(tǒng)備份電池供電,電池電壓" title="電池電壓">電池電壓為3 V;Charge為充電電路,電池電壓為3.6V的充電電池;Vdriver為傳感器供電電路,電壓為±5 V;Vlcd為LCD模塊供電,供電電壓為3.3V和200VCA。

  電池充電" title="電池充電">電池充電的電路原理為:當CPU檢測到有外接電源時,CPU使用ADC檢測電池二端的電壓,并判斷是否需要充電;當電池兩端電壓低于設定值時,打開Charge電路給電池充電,并檢測充電電流,以保證電池安全有效的充電,充電至設定值時停止充電;當無外接電源時,電池為整個系統(tǒng)供電,CPU檢測電池電壓,當?shù)陀谀骋辉O定電壓時,決定報警還是關機,以保護電池。

  Vcore和Vio分別為系統(tǒng)的內核和I/O口供電,同時Vio也為存儲器供電。Backup電池為系統(tǒng)的備份電池。

  Vdriver為傳感器提供±5 V的電壓,并保證電流為25±1 mA。

  Vlcd為LCD模塊提供二組電壓,其中3.3 V為LCD顯示提供電壓,200VAC為LCD的背光提供電壓。

  1.2 驅動程序設計

  1.2.1 驅動提供接口

  系統(tǒng)硬件電源管理模塊為系統(tǒng)電源管理功能的實現(xiàn)提供必要的硬件基礎,并為驅動程序提供如下編程接口:

  ◆ 系統(tǒng)供電方式接口,通過此接口驅動和應用程序,可知道系統(tǒng)此時是由電池供電還是由外接電源供電" title="電源供電">電源供電;

  ◆ 電池電量檢測接口,通過此接口驅動程序可檢測到系統(tǒng)的電量,應用程序由此可實現(xiàn)系統(tǒng)電池電量的顯示及電池電量報警等功能;

  ◆ 電池充電狀態(tài),當系統(tǒng)使用外接電源供電時,可對系統(tǒng)中的電池充電,通過此接口驅動可獲取電池的充電狀態(tài)(正在充電或電池已充滿);

  ◆ 電池溫度檢測接口,通過此接口驅動程序可檢測到電池的溫度,電池溫度和電池電量相結合可用來計算電池的使用時間,同時在電池過熱(電池有問題)時向用戶報警,提醒用戶關機或更換電池。

  電源管理驅動部分主要給上層提供如下接口。

  (1)取得電池電量及系統(tǒng)用電情況

  通過端口ADC1讀取電池電壓。上限電壓為4.2 V,下限電壓為3.6 V ,報警電壓為3.6 V,強行關機電壓為3.4V。數(shù)據(jù)電壓關系:1024-5 V ;0-0 V。

  電池充電管理由硬件實現(xiàn),但在電池充電到4.2 V時,延時30min關閉充電功能(應用層完成)。

  控制端口為GPC1,1為外部電源供電,0為電池供電。在系統(tǒng)接有外接電源時,系統(tǒng)由外部電源供電。

 ?。?)電池充電控制

  控制端口為GPA9,0為充電,1為關閉充電,當電池電源低于3.8 V時,GPA9設為0,開始充電(應用層完成)。

  5V電源只用于數(shù)據(jù)采集,非數(shù)據(jù)采集狀態(tài)下關閉5 V電源(在ADC中實現(xiàn))。控制端口是GPC2,0為打開,1為關閉。

 ?。?)假關機

  關機狀態(tài)下,只關閉鍵盤燈和液晶屏,但系統(tǒng)仍處于正常運行狀態(tài)。關閉鍵盤燈、液晶屏以及其他外設的工作由上層軟件實現(xiàn)。

?

  1.2.2 程序流程

  uClinux啟動時調用module_init(Power_44b0_init)函數(shù),進而power_44b0_init被調用,進行相關的初始化:

  ◆ power0_44b0_reg_init()初始化硬件寄存器;

  ◆ power_44b0_device_register()注冊power_44b0_fops以及中斷處理函數(shù)power_key_44b0_interrupt(),并且初始化定時器power_down_timer;

  ◆ 用戶程序通過power_44b0_open()函數(shù)打開/dev/power設備,通過power_44b0_release()函數(shù)釋放/dev/power設備,通過power_44b0_ioctl()函數(shù)實現(xiàn)對設備的各種操作;

  ◆ 關機進入stop模式,通過中斷處理函數(shù)power_key_44b0_interrupt()處理關機鍵對應的中斷,按下關機鍵后用power_down_timer計時,當3s后,power_down_timer對應的動作power_down_timer_call()發(fā)生,從而進入stop模式。

  1.2.3 接口設計與接口函數(shù)實現(xiàn)

  (1)數(shù)據(jù)結構說明

  電源和設備狀態(tài)由power_status_t的結果表示。

程序

 ?。?)file_operations的值

  電源管理模塊驅動的file_operations具體值為:

程序

  (3)power_44b0_ioctl()函數(shù)設計

  函數(shù)原形:static int power_44b0_ioctl (struct inode *inode, struct file *filp,unsigned int cmd, unsigned int arg)。

  功能說明:設備ioctl的操作函數(shù)。

  參數(shù)說明:inode,文件指針,執(zhí)行操作類型,根據(jù)操作類型指定不同參數(shù)。

  返回值:0表示成功,否則返回ENOTTY。

  判斷cmd的值,根據(jù)cmd的不同值進行不同的操作,電源設備的ioctl主要實現(xiàn)以下14種操作:

程序

點擊看原圖

 ?。?)power_key_44b0_interrupt

  函數(shù)原形:static void power_key_44b0_interrupt(int irq, void *dev_id, struct pt_regs *regs) 。

  功能說明:響應關機鍵,進入stop模式。

  參數(shù)說明:中斷號,設備id,寄存器結構。

  下面介紹函數(shù)的算法描述。

  在正常狀態(tài)下:

程序

  2 總結

  儀器配置2200mAh的鎳氫電池,經(jīng)過測試,電源管理模塊使整個系統(tǒng)的功耗降低了60%。系統(tǒng)在數(shù)據(jù)采集狀態(tài)下,由電池的輸出電流為220mA左右;如果處于IDLE狀態(tài),則電流總消耗為80mA;在STOP狀態(tài)(關閉ARM和所有設備,維持一個32768 Hz的時鐘),電流可降到10mA。實驗表明,利用動態(tài)電源管理,可對便攜式醫(yī)療儀器實現(xiàn)有效電源管理。

  參考文獻

  1 馬忠梅. ARM嵌入式處理器結構與應用基礎. 北京:北京航空航天大學出版社,2002

  2 許海燕. 嵌入式系統(tǒng)技術與應用. 北京:機械工業(yè)出版社,2002

本站內容除特別聲明的原創(chuàng)文章之外,轉載內容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創(chuàng)文章及圖片等內容無法一一聯(lián)系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。