綦聲波,王圣南,劉群
(中國(guó)海洋大學(xué) 工程學(xué)院,青島 266100)
?
STM32L水下記錄儀的軟硬件低功耗設(shè)計(jì)
綦聲波,王圣南,劉群
(中國(guó)海洋大學(xué) 工程學(xué)院,青島 266100)
以水下記錄儀為例,從硬件和軟件兩方面研究了基于STM32L系列微控制器的低功耗設(shè)計(jì)技術(shù)及本儀器所采用的方法。對(duì)系統(tǒng)組成及功能進(jìn)行分析的基礎(chǔ)上,設(shè)計(jì)了記錄儀的低功耗策略。在硬件方面選用低功耗、高效率器件,并采用供電控制方法。在軟件方面采用層次化、標(biāo)準(zhǔn)化的軟件架構(gòu),減少代碼冗余量。最后通過電壓和電流對(duì)照實(shí)驗(yàn),證明了本系統(tǒng)低功耗設(shè)計(jì)的有效性。
水下記錄儀;STM32L;低功耗設(shè)計(jì)
嵌入式系統(tǒng)的低功耗設(shè)計(jì)是與其應(yīng)用背景息息相關(guān)的,因此建立在實(shí)際應(yīng)用基礎(chǔ)上的低功耗設(shè)計(jì)才有意義。海底電磁采集站是海洋石油探測(cè)設(shè)備,本文所研究的水下記錄儀是海底電磁采集站的重要組成部分,它自成一體,內(nèi)置MCU,可以將采集的姿態(tài)、溫度、鹽度和深度等數(shù)據(jù)存儲(chǔ)在CF卡中,并在回收后導(dǎo)出數(shù)據(jù),作為電磁場(chǎng)數(shù)據(jù)解算的重要依據(jù)。
水下記錄儀在海底工作,其最大工作深度達(dá)4 000 m,因此只能依靠?jī)?nèi)置鋰電池供電;考慮到外殼抗壓能力和諸多因素,鋰電池的空間和容量有限,一旦電池電量耗盡,記錄儀便會(huì)失去作用;海底電磁采集站要檢測(cè)的海底電磁信號(hào)均為微弱信號(hào),水下記錄儀內(nèi)部的電流變化會(huì)引起電磁輻射,功耗越大,輻射能量越大,對(duì)海底微弱電磁信號(hào)的影響就越大;此外,水下記錄儀更換電池過程繁瑣,降低系統(tǒng)功耗可以延長(zhǎng)設(shè)備的使用壽命,降低電池更換的頻率。因此,低功耗設(shè)計(jì)是水下記錄儀設(shè)計(jì)中必須考慮的重要因素。
水下記錄儀的低功耗設(shè)計(jì),必須從系統(tǒng)的角度出發(fā),對(duì)硬件和軟件進(jìn)行精細(xì)化設(shè)計(jì),在實(shí)現(xiàn)其基本功能的基礎(chǔ)上,盡量降低功耗,以滿足系統(tǒng)性能和低功耗兩方面的要求。
水下記錄儀系統(tǒng)由主控制器、采集模塊、存儲(chǔ)模塊、電源模塊和上位機(jī)組成,如圖1所示。其中,主控制器負(fù)責(zé)整個(gè)系統(tǒng)的運(yùn)行和管理;采集模塊分為TCM傳感器和CTD傳感器兩部分,分別用來采集基站姿態(tài)和周圍海洋物理參數(shù);存儲(chǔ)模塊利用CF卡來存儲(chǔ)傳感器采集的數(shù)據(jù);電源模塊是鋰電池及電源控制電路,為整個(gè)系統(tǒng)提供動(dòng)力;上位機(jī)主要實(shí)現(xiàn)參數(shù)配置和數(shù)據(jù)回收。
圖1 系統(tǒng)架構(gòu)
由于系統(tǒng)在水下正常工作時(shí)不需要上位機(jī),只是在數(shù)據(jù)回收時(shí)利用上位機(jī)導(dǎo)出數(shù)據(jù),因此水下記錄儀的功耗主要集中在以下幾個(gè)部分:
① 主控制器:主控制器的功耗是由其本身特性及工作模式?jīng)Q定的。
② TCM和CTD傳感器:在數(shù)據(jù)采集和命令傳輸過程中需要耗電。
③ CF卡的讀寫: CF卡的讀寫均耗電,其中寫狀態(tài)耗電大于讀狀態(tài)耗電。
為了達(dá)到低功耗的目的,水下記錄儀的外設(shè)以隊(duì)列的方式周期性地工作。由于各模塊電源相互獨(dú)立,方便主控制器進(jìn)行電源管理,因此在某一時(shí)刻只開啟TCM傳感器的電源,關(guān)閉其他部件的電源,下一時(shí)刻則使CTD傳感器工作,其他外設(shè)不工作,這樣就可以達(dá)到降低功耗的目的。
在嵌入式系統(tǒng)的低功耗設(shè)計(jì)過程中,硬件設(shè)計(jì)是必不可少的一部分。幾乎所有系統(tǒng)功耗都集中于硬件平臺(tái),所謂軟件低功耗也是通過硬件才能實(shí)現(xiàn),因此降低硬件平臺(tái)的功耗是實(shí)現(xiàn)低功耗的基本所在。但是,硬件器件本身的功耗與加工工藝密切相關(guān),要達(dá)到降低功耗目的,就要從器件選型和硬件電路形式等方面入手。
2.1單片機(jī)選型
ST公司的STM32系列32位微控制器在嵌入式領(lǐng)域得到了廣泛應(yīng)用,其基于ARM Cortex-M3內(nèi)核,具有較高的數(shù)據(jù)處理能力。水下記錄儀采用STM32L151作為主控芯片,不僅兼顧STM32系列微控制器的功能,而且還具有更優(yōu)良的低功耗特性,是高性能、低功耗應(yīng)用領(lǐng)域的最佳選擇。STM32L151采用EnergyLite超低功耗平臺(tái),通過6個(gè)超低功耗模式能夠在任何設(shè)定時(shí)間內(nèi)以最低的功耗完成任務(wù)。其各模式下的功耗及喚醒條件如圖2所示。
圖2 STM32L151的低功耗模式及喚醒條件
與其他單片機(jī)相比,STM32L151進(jìn)入低功耗響應(yīng)的時(shí)間更短,電流更小,正常運(yùn)行模式下的功耗僅為214 μA/MHz。與低功耗單片機(jī)MSP430系列相比,STM32L151單片機(jī)不僅運(yùn)算速度更快,適用于處理大數(shù)據(jù),并且待機(jī)功耗更低。
在水下記錄儀的設(shè)計(jì)中,采用睡眠模式和待機(jī)模式相結(jié)合的方法,以達(dá)到低功耗設(shè)計(jì)的目的。在睡眠模式下,可由任意中斷或事件喚醒,控制器功耗最低可達(dá)到4.4 μA;在待機(jī)模式下,只能由外部復(fù)位或WKUP喚醒,控制器最低功耗可達(dá)到0.9 μA。通過上位機(jī)軟件或定時(shí)器可以使系統(tǒng)進(jìn)入不同低功耗模式,如系統(tǒng)在運(yùn)行過程中,在空閑時(shí)進(jìn)入睡眠模式,通過定時(shí)器喚醒;在運(yùn)輸過程中,利用上位機(jī)設(shè)置其進(jìn)入待機(jī)模式,通過復(fù)位喚醒。這樣就有效降低了系統(tǒng)功耗。
2.2電源轉(zhuǎn)換芯片選擇
記錄儀所用鋰電池充滿后的供電電壓約為16 V,主控器和存儲(chǔ)模塊需要3.3 V供電,TCM傳感器和CTD傳感器需要5 V供電,因此需要有電源轉(zhuǎn)換芯片將電池電壓轉(zhuǎn)換為系統(tǒng)所需要的3.3 V和5 V。相比較線性電源芯片,開關(guān)電源芯片從原理上更有優(yōu)勢(shì),但是必須兼顧兩個(gè)原則,一是轉(zhuǎn)換效率高,二是靜態(tài)電流低。設(shè)計(jì)中選擇了Linear公司的電源芯片LT3990,它與常用的開關(guān)電源芯片LM2575的參數(shù)對(duì)比如表1所列。
表1 LT3990與LM2575參數(shù)對(duì)比
由表1可以看出,與LM2575相比,LT3990具有轉(zhuǎn)換效率高、靜態(tài)電流小和具有寬范圍可調(diào)開關(guān)頻率等優(yōu)勢(shì)。除此以外,LT3990只需要改變特定電阻的阻值就可以輸出3.3 V或5 V電壓,電路兼容性強(qiáng)。
2.3組件電源控制
電源模塊采用分區(qū)/分時(shí)控制,每個(gè)模塊都有獨(dú)立的電源控制電路,由單片機(jī)控制,即分區(qū)控制;在某一時(shí)刻只有一個(gè)模塊的電源開啟,其他電源關(guān)閉,即分時(shí)控制。
系統(tǒng)采用的電源開關(guān)電路如圖3所示。當(dāng)需要開啟電源進(jìn)行工作時(shí),只需將CTRL置高電平,則Q2會(huì)導(dǎo)通,Q1的柵-源之間存在負(fù)電壓并且大于其導(dǎo)通閾值,促使Q1導(dǎo)通,電壓由POWER_OUT端輸出;相應(yīng)工作完成后,將CTRL置低,則所有的MOS管都處于關(guān)斷狀態(tài),極大地降低了系統(tǒng)功耗。
圖3 電源控制電路模型
在嵌入式系統(tǒng)中,底層硬件的電路狀態(tài)通常由軟件指令驅(qū)動(dòng),間接地導(dǎo)致了系統(tǒng)能耗的產(chǎn)生。軟件功耗與系統(tǒng)程序架構(gòu)、指令周期和軟件算法等密切相關(guān)。因此在低功耗嵌入式系統(tǒng)的軟件開發(fā)過程中要盡量減少軟件代碼量,精簡(jiǎn)冗余代碼,對(duì)程序結(jié)構(gòu)進(jìn)行優(yōu)化。此外,軟件設(shè)計(jì)還應(yīng)該遵循標(biāo)準(zhǔn)化、模塊化和層次化原則,一方面可以優(yōu)化軟件架構(gòu),另一方面可以減少代碼重復(fù)率,降低系統(tǒng)功耗。
3.1程序架構(gòu)
嵌入式系統(tǒng)的軟件執(zhí)行效率與其架構(gòu)密切相關(guān),水下記錄儀系統(tǒng)的軟件開發(fā)采用層次性和標(biāo)準(zhǔn)化的設(shè)計(jì)方法,減少代碼冗余量,提高程序的重用率,簡(jiǎn)化程序的調(diào)試過程,縮短項(xiàng)目開發(fā)周期,同時(shí)增強(qiáng)了軟件可移植性。水下記錄儀的軟件架構(gòu)如圖4所示,程序設(shè)計(jì)采用自頂向下的設(shè)計(jì)方法。
圖4 系統(tǒng)軟件架構(gòu)
首先分析系統(tǒng)整體結(jié)構(gòu),然后分析各模塊的功能,最后由軟件具體實(shí)現(xiàn)。水下記錄儀的整個(gè)軟件架構(gòu)包括應(yīng)用層、物理層和驅(qū)動(dòng)層。應(yīng)用層是整個(gè)程序的最頂層,是處理數(shù)據(jù)和實(shí)現(xiàn)通信的關(guān)鍵所在;物理層定義了接口函數(shù),可以利用封裝庫(kù)實(shí)現(xiàn)中斷管理以及對(duì)單片機(jī)運(yùn)行模式的控制;驅(qū)動(dòng)層是整個(gè)嵌入式程序運(yùn)行的基礎(chǔ),是連接硬件與軟件的橋梁。
3.2應(yīng)用層設(shè)計(jì)
為了達(dá)到系統(tǒng)低功耗和穩(wěn)定性的要求,應(yīng)用層采用模塊化和狀態(tài)機(jī)的設(shè)計(jì)方法。如圖4所示,應(yīng)用層包括主程序和中斷處理程序兩部分,其中主程序有3個(gè)狀態(tài)。系統(tǒng)啟動(dòng)首先進(jìn)入工作狀態(tài),在空閑時(shí)會(huì)進(jìn)入睡眠狀態(tài),在睡眠狀態(tài)下關(guān)閉所有外設(shè)電源,通過定時(shí)器喚醒進(jìn)入工作狀態(tài),繼續(xù)下一個(gè)流程;在設(shè)備運(yùn)輸過程中,系統(tǒng)不需要工作,可以通過串口指令使其進(jìn)入待機(jī)狀態(tài),同樣關(guān)閉所有的外設(shè)電源,可以通過外部復(fù)位和串口指令使其進(jìn)入工作狀態(tài)。
3.3物理層設(shè)計(jì)
在水下記錄儀的軟件設(shè)計(jì)中物理層主要是中斷接口函數(shù)和CF卡讀寫函數(shù),如圖4所示。為了降低系統(tǒng)的功耗,單片機(jī)以中斷方式工作,在系統(tǒng)空閑時(shí)進(jìn)入等待模式或停止模式,同時(shí)關(guān)閉通信接口和讀寫接口;而在查詢方式下,單片機(jī)必須不停地訪問I/O 寄存器,這會(huì)帶來很多額外的功耗。因此利用中斷方式代替查詢方式可以減少單片機(jī)的工作量,降低系統(tǒng)功耗。CF卡讀寫函數(shù)可以直接以尋址方式訪問寄存器,提高了軟件執(zhí)行效率,在一定程度上降低了系統(tǒng)功耗。
3.4驅(qū)動(dòng)層設(shè)計(jì)
驅(qū)動(dòng)層是嵌入式系統(tǒng)中不可或缺的重要部分,其作用是為上層程序提供硬件設(shè)備的操作訪問接口,并且在設(shè)備啟動(dòng)時(shí)對(duì)硬件進(jìn)行初始化。嚴(yán)格意義上的驅(qū)動(dòng)層包括硬件抽象層、板級(jí)支持包和驅(qū)動(dòng)程序。在水下記錄儀的軟件設(shè)計(jì)中,將驅(qū)動(dòng)層定義為連接軟件和硬件、對(duì)硬件進(jìn)行配置和管理的程序段,包括GPIO端口配置、引腳分配和電源管理等。為了盡可能地降低單片機(jī)的功耗,將未使用的單片機(jī)引腳配置為浮空輸入,避免了灌電流的產(chǎn)生。驅(qū)動(dòng)層最主要的功能是對(duì)組件電源實(shí)現(xiàn)控制,在同一時(shí)刻只允許一個(gè)外設(shè)工作,關(guān)閉其他外設(shè)的電源和接口,以降低系統(tǒng)的功耗。
4.1實(shí)驗(yàn)條件和方法
為了驗(yàn)證系統(tǒng)低功耗設(shè)計(jì)的可靠性和可行性,在同一環(huán)境條件下設(shè)置了兩組對(duì)照實(shí)驗(yàn),并且每組實(shí)驗(yàn)分別進(jìn)行電壓和電流的測(cè)試。對(duì)照組中各模塊電源始終開啟,微控制器一直處于工作狀態(tài),而測(cè)試組中各模塊電源由微控制器控制,并且在系統(tǒng)空閑時(shí),微控制器會(huì)進(jìn)入睡眠狀態(tài)。
(1) 電壓測(cè)試
系統(tǒng)硬件集成了電壓檢測(cè)電路,可以檢測(cè)當(dāng)前電池的電壓值,并且將電壓值及其時(shí)間信息存入CF卡中。在實(shí)驗(yàn)中,每分鐘記錄一次當(dāng)前時(shí)間和電壓值。
(2) 電流測(cè)試
利用萬用表測(cè)量系統(tǒng)消耗的電流,將萬用表分別串聯(lián)在兩組實(shí)驗(yàn)的系統(tǒng)回路中,每次測(cè)試一次系統(tǒng)子狀態(tài)(工作狀態(tài)下的每個(gè)狀態(tài))的電流值,并且記錄下來。
4.2數(shù)據(jù)分析
利用MATLAB將采集到的電壓值進(jìn)行日平均處理,然后繪出兩套設(shè)備一周內(nèi)的電壓變化曲線,如圖5(a)所示,由曲線可以看出,測(cè)試組的電壓變化較為平緩,而對(duì)照組的電壓下降很快。
根據(jù)萬用表測(cè)得的電流數(shù)據(jù),描繪出電流變化曲線,如圖5(b)所示??梢悦黠@看出對(duì)照組的電路消耗較大,而加入低功耗設(shè)計(jì)之后,測(cè)試組的電流消耗明顯降低,符合預(yù)期設(shè)想,達(dá)到了低功耗設(shè)計(jì)的目的。
圖6 電壓和電流變化曲線對(duì)比
從數(shù)據(jù)分析和實(shí)際測(cè)試效果來看,經(jīng)過低功耗設(shè)計(jì)的水下記錄儀可以連續(xù)正常工作20天以上,完全達(dá)到了系統(tǒng)設(shè)計(jì)的目標(biāo)。
低功耗是嵌入式系統(tǒng)設(shè)計(jì)中不可忽略的一項(xiàng)重要指標(biāo),也是衡量和影響一個(gè)嵌入式系統(tǒng)性能的重要因素。本文針對(duì)水下記錄儀的低功耗問題進(jìn)行了深入研究,總結(jié)出嵌入式系統(tǒng)的低功耗設(shè)計(jì)應(yīng)遵循的基本原則,并根據(jù)理論分析設(shè)計(jì)了一套實(shí)施方案,實(shí)驗(yàn)結(jié)果證明了該方案的可行性和有效性。本文所論述的低功耗設(shè)計(jì)技術(shù)和方法同樣適用于其他基于單片機(jī)的嵌入式系統(tǒng)。
[1] 肖星.STM32L152和SI4432的無線網(wǎng)絡(luò)系統(tǒng)設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用, 2011(8):48-51.
[2] 劉嘯濱, 郭兵, 沈艷,等.基于ARM處理器的嵌入式軟件能耗統(tǒng)計(jì)模型[J] .電子科技大學(xué)學(xué)報(bào), 2012, 41(5):770-774.
[3] 張煒, 韓進(jìn).低功耗嵌入式系統(tǒng)的分析與應(yīng)用[J] .計(jì)算機(jī)系統(tǒng)應(yīng)用, 2009,18(11):109-113.
[4] 趙偉國(guó), 李文軍, 黃震威.基于MSP430的低功耗熱能表的研制[J] .中國(guó)計(jì)量學(xué)院學(xué)報(bào), 2008,19(2):142-145.
[5] 沈曉昱,王曉娜,李文軍.基于MSP430的低功耗溫度采集報(bào)警系統(tǒng)的實(shí)現(xiàn)[J] .工業(yè)儀表與自動(dòng)化裝置,2009(3):31-33.
[6] 謝敏.基于MSP430的低功耗儀表系統(tǒng)設(shè)計(jì)[J] .微計(jì)算機(jī)信息,2007,23(22):142-144.
[7] 耿玉茹,黃世勇.基于MSP430的多功能低功耗流量計(jì)硬件設(shè)計(jì)[J].自動(dòng)化與儀器儀表,2010(6):93-94.
[8] 辛凱,張喜驗(yàn),綦聲波,等.基于STM32的海洋環(huán)境數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].山東科學(xué),2014,27(2):8-12.
[9] 文樺,張亞軍.嵌入式系統(tǒng)低功耗設(shè)計(jì)研究[J].現(xiàn)代電子技術(shù),2009,32(22):20-22.
[10] 周寬久,遲宗正,西方.嵌入式軟硬件低功耗優(yōu)化研究綜述[J].計(jì)算機(jī)應(yīng)用研究,2010,27(2):423-428.
Software and Hardware Low-power Consumption of Underwater Recorder Based on STM32L
Qi Shengbo,Wang Shengnan,Liu Qun
(College of Engineering,Ocean University of China,Qingdao 266100,China)
In the paper,taking the underwater recorder as an example,the low-power consumption technologies and methods in hardware and software based on STM32L series microcontroller are researched.Based on the system composition and function analysis,the low-power strategy is achieved.In the hardware,the low power and high efficiency components are adopted,and the power supply control method is used.In the software,the hierarchical and standardized architecture is used to reduce the redundancy codes.Finally,the control experiment of voltage and current proves the effectiveness of the low-power consumption design.
underwater recorder;STM32L;low-power consumption design
TP202
A
(責(zé)任編輯:楊迪娜2015-10-08)