新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 鐵路交通信息系統PDA的低功耗設計

        鐵路交通信息系統PDA的低功耗設計

        作者: 時間:2011-08-29 來源:網絡 收藏
        3 軟件低

        本文引用地址:http://www.104case.com/article/150277.htm

          嵌入式系統開發中除了硬件低措施外,也可以從軟件方面來。嵌入式系統軟件低措施一般涉及到處理器工作狀態間的切換、應用模塊軟件算法的選擇和系統整體的數據調度三個方面。

          (1)處理器工作狀態 便攜式系統工作過程中,處理器并不是任何時候都一直忙于運行,尤其是來產品。如今的嵌入式處理器(包括EP7211)一般都為應用開發提供了三種工作狀態:運行、空閑和休眠。大量的實際使用表明,更多情況下,大部分時間里系統是處在休眠狀態的,一旦獲得工作信號,會迅速切換到工作狀態。當系統在工作狀態下一定時間內沒有獲得下一次需要處理的信號時,則應該自動切空閑或者休眠狀態。因為在不同的工作狀態,處理器內部工作電路有所變化,功耗大小差別較大。 本系統采用的ARM處理器,在不同工作條件和狀態下的功耗哪表2所列。

          

          表2 名 稱頻率/MHz 消耗電流最大值/mA 條 件 休眠狀態  300μA 32kHz時鐘晶振工作,I/O口處于禁止 空閑狀態 18 6 晶振都在工作,LCD刷新處于激活狀態,CPU是靜態的 空閑狀態 36 12 同上 運行狀態 18 20 整個系統處于激活狀態,正在執行程序 運行狀態 36 40 同上注:直流供電電壓2.5V 從表2中明顯看出,處理器不同條件和狀態下的功耗參數大小的差別。在18MHz頻率下,運行功耗(20mA)是空閑功耗(6mA)的近4倍,空閑功耗又是休眠功耗300μA的20倍。我們的目的是在不影響系統正常運行的過程中,盡最大可能使系統處在空閑休眠狀態來降低系統功耗;因此,我們應該通過預測系統執行過程的措施來切換處理器的工作狀態。分析式(1)可知,我們又不能頻繁過快地進行處理器狀態切換,中間要留有一定的穩定時間間隔。 XGW軟件開發平臺采用事件消息驅動機制。消息采用查詢方式,能夠實時響應外部中斷。在消息循環過程中,系統需要查詢消息隊列:當有消息出隊時,處理器在運行狀態處理這個消息所對應的事件;如果一這時間間隔(如2s)消息隊列一直是空,系統預測在最近相當長的時間內不會有事件產生,軟件編程措施把處理器從運行狀態切到空閑狀態;如果系統在更長的時間內(如20s)沒有事件產生,則系統預測用戶需要自動軟關機,此時處理器進入休眠狀態。在休眠狀態下,處理器能夠響應實時時鐘匹配中斷、傳呼接收中斷以及復位按鍵;一旦系統捕獲到這類信號,則迅速轉入到正常工作狀態。處理器在運行狀態和空閑狀態間的切換間隔是必需的,如果切換速度過快,并不能達到降低系統功耗的目的。 為了縮短處理器從空閑或者運行狀態切換到休眠狀態的時間,系統同時提供了用戶手動軟關機措施,即通過觸筆直接點擊屏幕某一指定區域來實現。 本系統中,ARM7處理器三種工作狀態的轉換如圖3所示。

          

          圖3中各數字含義如表3所列。

          

          表3 序 號狀態轉換條件 1、3 系統20s內一直不能捕捉到消息或者人為點擊屏幕某一指定區域 2 實時時鐘匹配中斷、傳呼中斷、按鍵喚醒 4 運行狀態下系統2s內一直不能捕捉到消息 5 產生中斷信號、捕捉到消息事件。

          (2)軟件算法的選擇 在應用程序編程實現過程中,求解同一個問題,可以有許多不同的算法。評價一個算法好壞的常用參數是算法時間復雜度、算法空間復雜度和算法的易理解編碼和調試性。算法時間復雜度定義為算法的時間耗費,即算法所求解問題規模(求解問題的輸入量)n的函數。時間復雜度一般用O(n)來表示,當n達到一定規模時,時間復雜度越小,執行效率越高,招待時間越短,系統功耗越低。算法空間復雜度定義為該算法所耗費的存儲空間,它也是問題規模n的函數。 我們總是希望選用一個所占存儲空間小、運行時間短、其它性能也好的算法。然而實際上很難做到十全十美,原因是上述要求有時相互抵觸, 如節約算法執行時間需要以犧牲一定的存儲空間為代價,反之亦然。因此,我們只能根據具體情況有所側重。在本PDA系統中具體硬件配置時,CPU工作頻率不高,存儲空間運行不大;但應用程序數據量大,而且某些應用程序如辭典互譯、時刻表檢索時數據運算量也大。 如要在本PDA系統中實現英漢辭典互譯,首先會想到采用順序檢索法。這種算法對用戶輸入詞匯排列順序沒有要求,編程實現和理解起來都比較簡單,其算法時間復雜度為O(n)=n。當n值較小時,這是可以允許的;但是當系統詞匯量近10 000個時,算法檢索效率不高,表現為當詞語位置偏后時系統檢索延遲過大。為了提高檢索效率,滿足一定的系統反應實時性要求,我們采用了有序表二分搜索算法,其算法時間復雜度O(n)=log2n。假設n=16 384=2 14已經超出系統的數據規模(10 000詞左右)。二分檢索所需要的最壞檢索次數是14次;但是對于順序檢索而言,在最壞查找的情況下,檢索次數是16 384次,故效率提高了16 284/14=1170倍。這個數目是相當可觀的,而且,即使系統數據規模進一步擴大,二分檢索表現出來的所增加的檢索次數也是很小的。辭典互譯實現二分檢索所要做的附加工作,就是將原來無序的辭典數據文件轉換成有序的辭典數據文件。不過,這個轉換工作可以在PC機上完成從而減輕本嵌入式系統的負荷。辭典數據排序和檢索過程中英漢辭典依據ASCII碼進行,漢英辭典根據漢字的區位碼進行。本PDA系統的民航時刻表、時刻表等應用模塊,也都涉及到了算法選擇問題。

          (3)數據調度 在許多應用程序中,存儲器訪問是功耗的主要部分。有資料表明,內存傳輸是迄今為止CPU完成的操作中代價最高的:一次內存傳輸消耗的能量是一次加法運算的33倍多。優化能量消耗的最大收益之一,來源于合理組織內存中的數據和指令:一般措施是盡量做到數據的寄存器訪問和緩存訪問。 隨著存儲技術理論的發展和工藝水平的提高,現在存儲器體系結構一般都是三級,而且支持虛擬存儲技術,如圖4所示。

          

          處理器進行數據訪問時,離CPU越近的地方,數據存取速度越快,功耗越低。本PDA系統中,由于Flash存儲器(作為數據存儲器件)寫操作的特殊性(以扇區大小為單位、執行時間長、執行功耗大),要求盡量少地進行。基于這種策略,本PDA系統在數據安排方面采取了以下一些優化措施: ①LCD幀緩存的安排。EP7211內置38 400字節大小的RAM空間,LCD分辨率是320%26;#215;240,每像素4級灰度用2比特位表示,故顯存大小為320%26;#215;240%26;#215;2/8=19 200字節,被安排在內置RAM空間的前19 200字節。這樣安排,加快了顯示速度,減少了處理器訪問片外SRAM空間。 ②個人傳呼信息、公共傳呼信息接收頻度大,不需要永久存儲;傳呼接收過程需要開臂兩塊緩沖區,這些空間都被安排在內部RAM后19 200字節,其目的是減少了CPu對片外SRAM的訪問。 ③部分系統信息資源,如字庫信息,在系統啟動后直接從Flash存儲區拷貝到固定位置的SRAM區,這樣字符輸出時直接從內存讀取數據,而不需要訪問Flash。 ④為減少Flash寫操作執行次數,在電話簿、記事本、日程以及系統設定等編輯修改后,首先改動的信息是在內存中直接保存,等到用戶是退出當前整個應用模塊時,才進行一個性Flash寫操作。 ⑤在進行復雜數據查找過程中,為減少數據訪問量,可以通過建立若干級索引表方式加快數據檢索速度。如在辭典文件的詞匯排序過程中,同時建立了每個單詞位置的數據索引,而且作為索引文件定改Flash。在查找過程中,索引項的存在能夠減少檢索次數,從而快速確定單詞起始位置以及整個單詞項目長度,供顯示輸出。不過在增加索引時,也會增加一定的空間復雜度。 另外,系統還可以通過代碼壓縮減少總線上的傳輸量;編譯器優化,消除冗余代碼;消除編程中的遞歸過程調用、減少函數調用的開銷;有效使用寄存器等措施來降低系統功耗。

          4 低功耗綜合闡述

          以上分別從硬件和軟件兩方面闡述了嵌入式系統開發中低功耗的一些原則及在本產品中的某些具體體現。本PDA產品除了提代外接電源供電電路,同時還提供內置可充鎳氫雙電池供電系統。設單節電池容量是500mA,則系統待機時間是1000小時/8=125小時,基本上可以滿足實際應用的需要。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 阳高县| 屯昌县| 广宁县| 平昌县| 昆山市| 离岛区| 宁城县| 海阳市| 黔江区| 蒲江县| 新津县| 麟游县| 茂名市| 卢氏县| 四子王旗| 广灵县| 建平县| 乳源| 普格县| 南昌县| 赞皇县| 吉安市| 合作市| 公主岭市| 凤翔县| 涿鹿县| 婺源县| 曲松县| 博乐市| 滁州市| 武穴市| 海晏县| 鸡泽县| 饶阳县| 冀州市| 旬阳县| 定西市| 元阳县| 西林县| 原阳县| 开鲁县|