- 相關推薦
鐵路交通信息系統(tǒng)PDA的低功耗設計
摘要:闡述在集成傳呼功能、基于嵌入式處理器EP7211開發(fā)實現(xiàn)的二合一鐵路交通信息系統(tǒng)PDA中,為了降低系統(tǒng)的功耗,從硬件和軟件兩方面采取的各種措施。這些措施基于一定的低功耗設計原則,具有普遍性,適合一般的嵌入式系統(tǒng)開發(fā)。
關鍵詞:PDA EP7211 低功耗 時間復雜度
引言
PDA即Personal Digital Assitant(個人數(shù)字助理)的縮寫,是近年來繼尋呼機和移動電話之后,在國內(nèi)市場迅速崛起的便攜式電子產(chǎn)品。目前,國內(nèi)傳統(tǒng)性能的PDA產(chǎn)品經(jīng)過前幾年的高速發(fā)展后,市場需求基本飽和。不過,經(jīng)過行業(yè)應用改造后的PDA產(chǎn)品,如文曲星、藍火等已經(jīng)在國內(nèi)市場大顯身手了。分析市場需求,我們研發(fā)了集成傳呼功能的、專門面向交通行業(yè)應用的鐵路交通信息系統(tǒng)PDA。本PDA系統(tǒng)除了具備傳統(tǒng)PDA的個人名片管理、辭典檢索、信息速記功能外,更重要的是提供交通領域的民航各種航班查詢和全國鐵路列車的刻表查詢,通過傳呼系統(tǒng)及時廣播鐵路和民航行業(yè)應用方面的如航班晚點、車次晚點、剩余票額等相關行業(yè)信息。
PDA系統(tǒng)屬于便攜式電子產(chǎn)品。這類產(chǎn)品,(范文先生網(wǎng)www.gymyzhishaji.com收集整理)性能指標日益向?qū)嵱没、方便化發(fā)展。產(chǎn)品不僅要求功能完備,用戶界面友好,操作方便簡潔,而且要求產(chǎn)品壽命長,功耗低。
產(chǎn)品低功耗設計一般從硬件和軟件兩個角度來考慮。本文重點闡述該PDA系統(tǒng)所采用的降低系統(tǒng)功耗的各種措施。
1 鐵路交通信息系統(tǒng)PDA的體系結構
在分析本PDA系統(tǒng)的功能性和非功能需求,充分了解市場硬件行性的基礎上,設計了本PDA系統(tǒng),其硬件體系結構框圖如圖1所示。
嵌入式處理器EP7211(核心模塊)進行數(shù)據(jù)處理,傳呼譯碼芯片接收傳呼信息并根據(jù)傳呼協(xié)議自動譯碼;LCD提供數(shù)據(jù)顯示輸出,觸摸屏提供用戶輸入接口;Flash用來存儲可執(zhí)行應用程序和數(shù)據(jù);SRAM為程序運行提供內(nèi)存空間;語音錄放電路完成快速語音記憶功能;串口和紅外口完成相關的數(shù)據(jù)通信工作;電源電路為嵌入式處理器和各外圍設備提供所需要的工作電壓。
嵌入式處理器EP7211是Cirrus Logic公司專門為低成本、超低功耗的嵌入式應用設計。它包含基于RISC體系結構的ARM7TDMI處理器內(nèi)核和豐富的外圍接口,如CODEC音頻接口、SPI串行A/D接口、單色LCD接口、RAM接口、串行紅外接口、PWM接口、實時時鐘RTC以及電源檢測接口等。這些豐富的外圍接口,不僅降低了系統(tǒng)的設計難度,同時也提高了系統(tǒng)工作的可靠性。EP7211的內(nèi)核電路工作在2.5V,而外圍電路工作在3.3V。它可根據(jù)具體情況對內(nèi)核的時鐘進行動態(tài)編程控制,可工作在18MHz、36MHz、49MHz和74MHz。另外,EP7211還有三種基本的工作狀態(tài):正常操作(operating)、空閑(idle)和等待(standby)。在等待模式時,主時鐘被關斷,整個CPU及相關外圍(除中斷和RTC)關斷,但可通過觸摸屏中斷、傳呼中斷或復位按鈕來喚醒。
系統(tǒng)軟件開發(fā)平臺采用了我們自主開發(fā)研制的、專門面向嵌入式應用系統(tǒng)開發(fā)的XGW平臺。XGW開發(fā)平臺措鑒Windows消息驅(qū)動機制,是用C語言開發(fā)實現(xiàn)的;它功能強大,模塊化設計,擴展性強,產(chǎn)品升級容易,而且開發(fā)人員較為熟悉,開發(fā)成本低,其總體框架如圖2所示。
圖2全面反應了XGW軟件開發(fā)平臺的體系結構,包括事件消息驅(qū)動機制(XGW軟件開發(fā)平臺中的消息分為鼠標消息、鍵盤消息和定時器消息等三類)、內(nèi)存管理、字符和圖形顯示輸出、圖形組件庫等。圖形組件庫中的編輯框、列表框、按鈕、進度條等圖形控件為用戶應用程序開發(fā)提供了應用編程接口API。不過,XGW平臺對于系統(tǒng)硬件的中斷響應沒有提供統(tǒng)一的入口和出口,需要開發(fā)人員單獨處理。
2 硬件低功耗
硬件低功耗主要從芯片制造工藝流程和硬件體系架構的角度出發(fā),基本原理是盡量選用能夠滿足功能要求的功耗低的芯片。不過,芯片自身的功耗參數(shù)由制造廠商來決定,此處主要闡述CMOS芯片動態(tài)功耗以及動態(tài)電源管理兩個方面。
(1)CMOS芯片動態(tài)功耗
隨著半導體制造技術的發(fā)展,數(shù)字電路從TTL工藝轉(zhuǎn)向CMOS工藝。TTL工藝為電流注入型電路,靜態(tài)和動態(tài)電流消耗接近。CMOS工藝是壓控型的,理想情況下("0"、"1"的恒定狀態(tài))靜態(tài)電流為0,實際情況下也是很小的。動態(tài)("0"、"1"間的跳變狀態(tài))電流消耗占絕對主導地位。CMOS動態(tài)功耗計算公式為
式中: Pd--CMOS芯片動態(tài)功耗;
Ce--CMOS芯片等效電容;
V--CMOS芯片工作電壓;
f--CMOS芯片工作頻率或工作狀態(tài)的切換頻率。
從式(1)及各參數(shù)含義看,CMOS芯片動態(tài)功耗的數(shù)值正比于工作電壓的平方,同時正比于工作頻率。在滿足系統(tǒng)功能需求的條件下,降低芯片工作電壓和工作頻率,都可以極大減少芯片的動態(tài)功耗。以處理器工作頻率為例,如果工作頻率降低一半,則該芯片動態(tài)功耗幾乎也隨之減半。在本PDA系統(tǒng)中,盡管ARM7處理器提供了18MHz、;36MHz、49MHz和74MHz四種工作頻率,但我們采用2.5V為低壓供電,18MHz工作頻率。這些參數(shù)在降低系統(tǒng)功耗的同時,也滿足了系統(tǒng)性能的需求。
(2)動態(tài)電源管理
動態(tài)電源管理技術是指有選擇地將閑置的系統(tǒng)模塊置于低能狀態(tài)。一個較為復雜的嵌入式系統(tǒng),除了處理器外還有很多外設電路模塊,它們協(xié)調(diào)工作,共同完成系統(tǒng)功能。 但在分析完成系統(tǒng)功能的過程中可以看出,并不是所有模塊在任何時間都處在工作狀態(tài)。除了嵌入式處理器外,絕大多數(shù)外設模塊都是在執(zhí)行某項具體功能的時候(它自己的有效操作期間)才需要供電。如音頻模塊,有語音輸入或者輸出時才需要工作;在進行串口通信時,串口芯片需要處在工作狀態(tài);而在更多的時間里,這些芯片都是不需要工作的。
為了系統(tǒng)功耗最小,動態(tài)電源管理的原則是系統(tǒng)完成某項功能,只有參與這項功能的模塊才供電,其它模塊設置在電源切斷狀態(tài)。在電路設計時,需要充分考慮到這個問題,盡可能為各外設模塊提供切換供電機制的引腳控制信號,而且允許通過軟件編程的措施來完成其電路開關的切換工作。
本PDA系統(tǒng)中,除了嵌入式處理器外,還有異步串口、語音編譯碼芯片、音頻功放、傳呼、LCD、收音機等外部設備。傳呼的接收具有隨機性,需要一直處在工作狀態(tài)。串口、語音芯片、功放電路、LCD等可以通過一定口地址的設置來控制電源開關,使之在工作的時候提供電壓,在不工作的時候切斷電源。
各外設模塊電源口地址配置如表1所列。
表1
3 軟件低功耗
嵌入式系統(tǒng)開發(fā)中除了硬件低功耗措施外,也可以從軟件方面來設計。嵌入式系統(tǒng)軟件低功耗措施一般涉及到處理器工作狀態(tài)間的切換、應用模塊軟件算法的選擇和系統(tǒng)整體的數(shù)據(jù)調(diào)度三個方面。
(1)處理器工作狀態(tài)
便攜式系統(tǒng)工作過程中,處理器并不是任何時候都一直忙于運行,尤其是PDA來產(chǎn)品。如今的嵌入式處理器(包括EP7211)一般都為應用開發(fā)提供了三種工作狀態(tài):運行、空閑和休眠。大量的實際使用表明,更多情況下,大部分時間里系統(tǒng)是處在休眠狀態(tài)的,一旦獲得工作信號,會迅速切換到工作狀態(tài)。當系統(tǒng)在工作狀態(tài)下一定時間內(nèi)沒有獲得下一次需要處理的信號時,則應該自動切空閑或者休眠狀態(tài)。因為在不同的工作狀態(tài),處理器內(nèi)部工作電路有所變化,功耗大小差別較大。
本PDA系統(tǒng)采用的ARM處理器,在不同工作條件和狀態(tài)下的功耗哪表2所列。
表2
注:直流供電電壓2.5V
從表2中明顯看出,處理器不同條件和狀態(tài)下的功耗參數(shù)大小的差別。在18MHz頻率下,運行功耗(20mA)是空閑功耗(6mA)的近4倍,空閑功耗又是休眠功耗300μA的20倍。我們的目的是在不影響系統(tǒng)正常運行的過程中,盡最大可能使系統(tǒng)處在空閑休眠狀態(tài)來降低系統(tǒng)功耗;因此,我們應該通過預測系統(tǒng)執(zhí)行過程的措施來切換處理器的工作狀態(tài)。分析式(1)可知,我們又不能頻繁過快地進行處理器狀態(tài)切換,中間要留有一定的穩(wěn)定時間間隔。
XGW軟件開發(fā)平臺采用事件消息驅(qū)動機制。消息采用查詢方式,能夠?qū)崟r響應外部中斷。在消息循環(huán)過程中,系統(tǒng)需要查詢消息隊列:當有消息出隊時,處理器在運行狀態(tài)處理這個消息所對應的事件;如果一這時間間隔(如2s)消息隊列一直是空,系統(tǒng)預測在最近相當長的時間內(nèi)不會有事件產(chǎn)生,軟件編程措施把處理器從運行狀態(tài)切到空閑狀態(tài);如果系統(tǒng)在更長的時間內(nèi)(如20s)沒有事件產(chǎn)生,則系統(tǒng)預測用戶需要自動軟關機,此時處理器進入休眠狀態(tài)。在休眠狀態(tài)下,處理器能夠響應實時時鐘匹配中斷、傳呼接收中斷以及復位按鍵;一旦系統(tǒng)捕獲到這類信號,則迅速轉(zhuǎn)入到正常工作狀態(tài)。處理器在運行狀態(tài)和空閑狀態(tài)間的切換間隔是必需的,如果切換速度過快,并不能達到降低系統(tǒng)功耗的目的。
為了縮短處理器從空閑或者運行狀態(tài)切換到休眠狀態(tài)的時間,系統(tǒng)同時提供了用戶手動軟關機措施,即通過觸筆直接點擊屏幕某一指定區(qū)域來實現(xiàn)。
本PDA系統(tǒng)中,ARM7處理器三種工作狀態(tài)的轉(zhuǎn)換如圖3所示。
圖3中各數(shù)字含義如表3所列。
表3
(2)軟件算法的選擇
在應用程序編程實現(xiàn)過程中,求解同一個問題,可以有許多不同的算法。評價一個算法好壞的常用參數(shù)是算法時間復雜度、算法空間復雜度和算法的易理解編碼和調(diào)試性。算法時間復雜度定義為算法的時間耗費,即算法所求解問題規(guī)模(求解問題的輸入量)n的函數(shù)。時間復雜度一般用O(n)來表示,當n達到一定規(guī)模時,時間復雜度越小,執(zhí)行效率越高,招待時間越短,系統(tǒng)功耗越低。算法空間復雜度定義為該算法所耗費的存儲空間,它也是問題規(guī)模n的函數(shù)。
我們總是希望選用一個所占存儲空間小、運行時間短、其它性能也好的算法。然而實際上很難做到十全十美,原因是上述要求有時相互抵觸,如節(jié)約算法執(zhí)行時間需要以犧牲一定的存儲空間為代價,反之亦然。因此,我們只能根據(jù)具體情況有所側(cè)重。在本PDA系統(tǒng)中具體硬件配置時,CPU工作頻率不高,存儲空間運行不大;但應用程序數(shù)據(jù)量大,而且某些應用程序如辭典互譯、時刻表檢索時數(shù)據(jù)運算量也大。
如要在本PDA系統(tǒng)中實現(xiàn)英漢辭典互譯,首先會想到采用順序檢索法。這種算法對用戶輸入詞匯排列順序沒有要求,編程實現(xiàn)和理解起來都比較簡單,其算法時間復雜度為O(n)=n。當n值較小時,這是可以允許的;但是當系統(tǒng)詞匯量近10 000個時,算法檢索效率不高,表現(xiàn)為當詞語位置偏后時系統(tǒng)檢索延遲過大。為了提高檢索效率,滿足一定的系統(tǒng)反應實時性要求,我們采用了有序表二分搜索算法,其算法時間復雜度O(n)=log2n。假設n=16 384=2 14已經(jīng)超出系統(tǒng)的數(shù)據(jù)規(guī)模(10 000詞左右)。二分檢索所需要的最壞檢索次數(shù)是14次;但是對于順序檢索而言,在最壞查找的情況下,檢索次數(shù)是16 384次,故效率提高了16 284/14=1170倍。這個數(shù)目是相當可觀的,而且,即使系統(tǒng)數(shù)據(jù)規(guī)模進一步擴大,二分檢索表現(xiàn)出來的所增加的檢索次數(shù)也是很小的。辭典互譯實現(xiàn)二分檢索所要做的附加工作,就是將原來無序的辭典數(shù)據(jù)文件轉(zhuǎn)換成有序的辭典數(shù)據(jù)文件。不過,這個轉(zhuǎn)換工作可以在PC機上完成從而減輕本嵌入式系統(tǒng)的負荷。辭典數(shù)據(jù)排序和檢索過程中英漢辭典依據(jù)ASCII碼進行,漢英辭典根據(jù)漢字的區(qū)位碼進行。本PDA系統(tǒng)的民航時刻表、鐵路時刻表等應用模塊,也都涉及到了算法選擇問題。
(3)數(shù)據(jù)調(diào)度
在許多應用程序中,存儲器訪問是功耗的主要部分。有資料表明,內(nèi)存?zhèn)鬏斒瞧駷橹笴PU完成的操作中代價最高的:一次內(nèi)存?zhèn)鬏斚牡哪芰渴且淮渭臃ㄟ\算的33倍多。優(yōu)化能量消耗的最大收益之一,來源于合理組織內(nèi)存中的數(shù)據(jù)和指令:一般措施是盡量做到數(shù)據(jù)的寄存器訪問和緩存訪問。
隨著存儲技術理論的發(fā)展和工藝水平的提高,現(xiàn)在存儲器體系結構一般都是三級,而且支持虛擬存儲技術,如圖4所示。
處理器進行數(shù)據(jù)訪問時,離CPU越近的地方,數(shù)據(jù)存取速度越快,功耗越低。本PDA系統(tǒng)中,由于Flash存儲器(作為數(shù)據(jù)存儲器件)寫操作的特殊性(以扇區(qū)大小為單位、執(zhí)行時間長、執(zhí)行功耗大),要求盡量少地進行;谶@種策略,本PDA系統(tǒng)在數(shù)據(jù)安排方面采取了以下一些優(yōu)化措施:
①LCD幀緩存的安排。EP7211內(nèi)置38 400字節(jié)大小的RAM空間,LCD分辨率是320×240,每像素4級灰度用2比特位表示,故顯存大小為320×240×2/8=19 200字節(jié),被安排在內(nèi)置RAM空間的前19 200字節(jié)。這樣安排,加快了顯示速度,減少了處理器訪問片外SRAM空間。
②個人傳呼信息、公共傳呼信息接收頻度大,不需要永久存儲;傳呼接收過程需要開臂兩塊緩沖區(qū),這些空間都被安排在內(nèi)部RAM后19 200字節(jié),其目的是減少了CPu對片外SRAM的訪問。
③部分系統(tǒng)信息資源,如字庫信息,在系統(tǒng)啟動后直接從Flash存儲區(qū)拷貝到固定位置的SRAM區(qū),這樣字符輸出時直接從內(nèi)存讀取數(shù)據(jù),而不需要訪問Flash。
④為減少Flash寫操作執(zhí)行次數(shù),在電話簿、記事本、日程以及系統(tǒng)設定等編輯修改后,首先改動的信息是在內(nèi)存中直接保存,等到用戶是退出當前整個應用模塊時,才進行一個性Flash寫操作。
⑤在進行復雜數(shù)據(jù)查找過程中,為減少數(shù)據(jù)訪問量,可以通過建立若干級索引表方式加快數(shù)據(jù)檢索速度。如在辭典文件的詞匯排序過程中,同時建立了每個單詞位置的數(shù)據(jù)索引,而且作為索引文件定改Flash。在查找過程中,索引項的存在能夠減少檢索次數(shù),從而快速確定單詞起始位置以及整個單詞項目長度,供顯示輸出。不過在增加索引時,也會增加一定的空間復雜度。
另外,系統(tǒng)還可以通過代碼壓縮減少總線上的傳輸量;編譯器優(yōu)化,消除冗余代碼;消除編程中的遞歸過程調(diào)用、減少函數(shù)調(diào)用的開銷;有效使用寄存器等措施來降低系統(tǒng)功耗。有關這些措施請見參考文獻[2]。
4 低功耗設計綜合闡述
以上分別從硬件和軟件兩方面闡述了嵌入式系統(tǒng)開發(fā)中低功耗設計的一些原則及在本產(chǎn)品中的某些具體體現(xiàn)。經(jīng)試驗測得,本PDA系統(tǒng)功耗如表4所列。
表4
本PDA產(chǎn)品除了提代外接電源供電電路,同時還提供內(nèi)置可充鎳氫雙電池供電系統(tǒng)。設單節(jié)電池容量是500mA,則系統(tǒng)待機時間是1000小時/8=125小時,基本上可以滿足實際應用的需要。隨著對嵌入式系統(tǒng)低功耗設計的深刻理解和硬軟件方面某些措施的改進,包括借鑒目前國內(nèi)外一些廠家低功耗設計經(jīng)驗,則在改進的產(chǎn)品中,表4的某些數(shù)據(jù)還可能再降低一些,更好地滿足產(chǎn)品的低功耗要求。
其實嵌入式系統(tǒng)開發(fā)中低功耗設計是個系統(tǒng)的概念,硬件上既要在單元級考慮,也要在單元逐步集成系統(tǒng)的階段上全面評估。因此,即使系統(tǒng)中每個模塊都是嚴格采用低功耗設計的,但在集成整個系統(tǒng)時也不一定能完全保證整個系統(tǒng)是低功耗的,低功耗設計階段應該在進行系統(tǒng)規(guī)劃的同時就充分考慮進去,而且需要建立模型進行低功耗評估,一旦不滿足設計要求導致偏差較大時,應該及時修正模型。應用軟件在數(shù)據(jù)結構的安排上,也要考慮到具體的硬件配置。因為有些效率的提高,比如考慮引表的建立,是以犧牲一定的存儲空間為代價的。如果存儲空間太小,就需要權衡兩者的矛盾。
【鐵路交通信息系統(tǒng)PDA的低功耗設計】相關文章:
SoC系統(tǒng)的低功耗設計08-06
低功耗模擬前端電路設計08-06
水表集抄系統(tǒng)的低功耗設計08-06
嵌入式系統(tǒng)面向低功耗的協(xié)同設計08-06
PDA市場調(diào)查08-17
PDA市場調(diào)查08-06
煙葉烤房監(jiān)測儀中的低功耗設計08-06