當(dāng)前位置:首頁 > 電源 > 數(shù)字電源
[導(dǎo)讀]電源管理是嵌入式便攜式產(chǎn)品重要的功能部件,高效的電源管理方法能夠有效降低系統(tǒng)功耗,延長系統(tǒng)的待機(jī)時間和電池使用壽命

摘要:電源管理是嵌入式便攜式產(chǎn)品重要的功能部件,高效的電源管理方法能夠有效降低系統(tǒng)功耗,延長系統(tǒng)的待機(jī)時間和電池使用壽命,而僅僅通過電路設(shè)計優(yōu)化已不能有效解決待機(jī)時間短、電池使用壽命短等問題,因此需要引入軟件算法與硬件電路協(xié)同工作解決這些問題。本文提出動態(tài)電源管理模型,并應(yīng)用于已完成的嵌入式血流參數(shù)檢測設(shè)計中,實踐證明,系統(tǒng)空閑時間的功耗得到大幅度降低,待機(jī)時間延長。

關(guān)鍵詞:嵌入式系統(tǒng) 動態(tài)電源管理 S3C44B0X

引 言

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

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

1 系統(tǒng)設(shè)計

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

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

  1.1 電源管理模型

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

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

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

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

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

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

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

  1.2 驅(qū)動程序設(shè)計

  1.2.1 驅(qū)動提供接口

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

  ◆ 系統(tǒng)供電方式接口,通過此接口驅(qū)動和應(yīng)用程序,可知道系統(tǒng)此時是由電池供電還是由外接電源供電;
  ◆ 電池電量檢測接口,通過此接口驅(qū)動程序可檢測到系統(tǒng)的電量,應(yīng)用程序由此可實現(xiàn)系統(tǒng)電池電量的顯示及電池電量報警等功能;
  ◆ 電池充電狀態(tài),當(dāng)系統(tǒng)使用外接電源供電時,可對系統(tǒng)中的電池充電,通過此接口驅(qū)動可獲取電池的充電狀態(tài)(正在充電或電池已充滿);
  ◆ 電池溫度檢測接口,通過此接口驅(qū)動程序可檢測到電池的溫度,電池溫度和電池電量相結(jié)合可用來計算電池的使用時間,同時在電池過熱(電池有問題)時向用戶報警,提醒用戶關(guān)機(jī)或更換電池。

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

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

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

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

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

  (2) 電池充電控制

  控制端口為GPA9,0為充電,1為關(guān)閉充電,當(dāng)電池電源低于3.8 V時,GPA9設(shè)為0,開始充電(應(yīng)用層完成)。

  5 V電源只用于數(shù)據(jù)采集,非數(shù)據(jù)采集狀態(tài)下關(guān)閉5 V電源(在ADC中實現(xiàn))??刂贫丝谑荊PC2,0為打開,1為關(guān)閉。

  (3) 假關(guān)機(jī)

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

  1.2.2 程序流程

  uClinux啟動時調(diào)用module_init(power_44b0_init)函數(shù),進(jìn)而power_44b0_init被調(diào)用,進(jìn)行相關(guān)的初始化:

  ◆ 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設(shè)備,通過power_44b0_release()函數(shù)釋放/dev/power設(shè)備,通過power_44b0_ioctl()函數(shù)實現(xiàn)對設(shè)備的各種操作;
  ◆ 關(guān)機(jī)進(jìn)入stop模式,通過中斷處理函數(shù)power_key_44b0_interrupt()處理關(guān)機(jī)鍵對應(yīng)的中斷,按下關(guān)機(jī)鍵后用power_down_timer計時,當(dāng)3 s后,power_down_timer對應(yīng)的動作power_down_timer_call()發(fā)生,從而進(jìn)入stop模式。

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

  (1)數(shù)據(jù)結(jié)構(gòu)說明

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

  typedef struct {?
    unsigned long battery_quantity;//電池電量
            //目前只提供電池電壓?
    unsigned long device_status;//系統(tǒng)中各設(shè)備的運行狀態(tài)
            //Bit0:系統(tǒng)供電方式,0:電池;1:外接電源?
            //Bit1:LCD狀態(tài),0:正常運行;1:關(guān)閉?
            //Bit2:LCD背光狀態(tài),0:打開;2:關(guān)閉?
    unsigned char system_status; //系統(tǒng)運行狀態(tài):0為正常模?
            //式,1為STOP模式?
  } power_status_t

 ?。?)file_operations的值

  電源管理模塊驅(qū)動的file_operations具體值為:

  struct file_operations power_44b0_fops={?
    NULL,      //struct module *owner;?
    NULL,      //llseek?
    NULL,      //read?
    NULL,      //write?
    NULL,      //readdir?
    NULL,      //poll?
    power_44b0_ioctl,//ioctl,對上層調(diào)用ioctl的實現(xiàn)?
    NULL,      //test_mmap?
    power_44b0_open, //open,打開設(shè)備?
    NULL,      //flush?
    power_44b0_release,//release,關(guān)閉設(shè)備?
  };

 ?。?)power_44b0_ioctl()函數(shù)設(shè)計

  函數(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主要實現(xiàn)以下14種操作:

  GET_POWER_STATUS,獲得由power_status_t結(jié)構(gòu)表示的電源與設(shè)備狀態(tài);

  SET_BATTARY_CHARGE_OFF,通過寫GPA9寄存器來停止充電;

  SET_BATTARY_CHARGE_ON,寫GPA9寄存器來開始充電;

  GET_SYS_STAT,獲得當(dāng)前系統(tǒng)狀態(tài);

  START_VOLTAGE_CONVERSION,通道ADC1開始轉(zhuǎn)換電源電壓;

  STOP_VOLTAGE_CONVERSION,通道ADC1停止轉(zhuǎn)換電源電壓;

  GET_CHARGE_STATUS,取得當(dāng)前可否充電的狀態(tài);

  SYS_ENTER_STOP_MODE,用戶程序使系統(tǒng)進(jìn)入stop模式接口,調(diào)用power_down_timer_call()函數(shù)來實現(xiàn);

  SYS_ENTER_IDLE_MODE,用戶程序使系統(tǒng)進(jìn)入idle模式的接口,調(diào)用enter_IDLE_mode()函數(shù)實現(xiàn);

  SYS_ENTER_SL_IDLE_MODE,用戶程序使系統(tǒng)進(jìn)入sl_idle模式的接口,調(diào)用enter_SL_IDLE_mode()函數(shù)實現(xiàn);

  ENABLE_LCD,調(diào)用enable_lcd()使LCD工作;

  DISABLE_LCD,調(diào)用disable_lcd()使LCD停止工作;

  ENANLE_LED,鍵盤燈有效工作;

  DISABLE_LED,停止鍵盤燈工作。

 ?。?)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ù)說明:中斷號,設(shè)備id,寄存器結(jié)構(gòu)。

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

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

  if (按下開關(guān)機(jī)鍵)?
    { 設(shè)置開關(guān)機(jī)鍵狀態(tài)為按下;
     關(guān)機(jī)計時器開始計時,計時結(jié)束時進(jìn)入stop模式;?
     設(shè)置開關(guān)機(jī)鍵產(chǎn)生中斷方式為上升沿觸發(fā)中斷;
    }?
  else//開關(guān)機(jī)鍵抬起?
    { 設(shè)置開關(guān)機(jī)鍵狀態(tài)為抬起;?
     使關(guān)機(jī)定時器失效;?
     設(shè)置開關(guān)機(jī)鍵產(chǎn)生中斷方式為下降沿觸發(fā)中斷;?
    }
  在關(guān)機(jī)狀態(tài)下:
  if (按下開關(guān)機(jī)鍵)?
    { 設(shè)置開關(guān)機(jī)鍵狀態(tài)為按下;
     開機(jī)計時器開始計時,計時結(jié)束時進(jìn)入stop模式;?
     設(shè)置開關(guān)機(jī)鍵產(chǎn)生中斷方式為上升沿觸發(fā)中斷;?
    }?
  else//開關(guān)機(jī)鍵抬起?
    { 設(shè)置開關(guān)機(jī)鍵狀態(tài)為抬起;?
     使開機(jī)定時器失效;?
     設(shè)置開關(guān)機(jī)鍵產(chǎn)生中斷方式為下降沿觸發(fā)中斷。?
    }

2 總結(jié)

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

                參考文獻(xiàn)

1 馬忠梅. ARM嵌入式處理器結(jié)構(gòu)與應(yīng)用基礎(chǔ). 北京:北京航空航天大學(xué)出版社,2002
2 許海燕. 嵌入式系統(tǒng)技術(shù)與應(yīng)用. 北京:機(jī)械工業(yè)出版社,2002

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉