999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于STM32的低功耗溫濕度采集器實(shí)現(xiàn)

2015-08-22 16:19:20丁月林
軟件 2015年5期
關(guān)鍵詞:系統(tǒng)

丁月林

摘要:STM32是一款基于Cortex M3內(nèi)核的微控器,在嵌入式領(lǐng)域有著重要應(yīng)用。本文介紹了一種基于STM32的低功耗溫濕度采集器的硬件設(shè)計及其低功耗實(shí)現(xiàn)。傳感器使用SHT10溫濕度傳感器,介紹并實(shí)現(xiàn)了其通訊時序。該低功耗采集器經(jīng)試驗(yàn)測試可連續(xù)工作近30天,滿足長時間工作的設(shè)計要求。該低功耗實(shí)現(xiàn)方法可應(yīng)用于基于STM32的其他控制系統(tǒng)。

關(guān)鍵詞:STM32;低功耗電源管理

中圖分類號:TP393 文獻(xiàn)標(biāo)識碼:B DOI:10.3969/j.issn.1003-6970.2015.05.018

0 引言

STM32嵌入式系統(tǒng)在許多控制領(lǐng)域有著廣泛的應(yīng)用。STM32是一款基于Cortex-M3內(nèi)核的微控器,該控制器在性能和成本以及低功率操作和硬實(shí)時控制方面設(shè)定了新的標(biāo)準(zhǔn)。Cortex系列是一個完整的處理器核心,一個標(biāo)準(zhǔn)的CPU和系統(tǒng)架構(gòu)。Cortex系列共有三個主要的配置系列:A高端應(yīng)用系列,R為實(shí)時應(yīng)用系列,M為成本敏感和微控器應(yīng)用系列。STM32屬于M配置系列,專為高系統(tǒng)性能與低功耗相結(jié)合設(shè)計。

盡管市場上已有多種溫濕度采集系統(tǒng),但具有低功耗且自帶數(shù)據(jù)記錄功能的采集器較少,并且費(fèi)用較高。本文中采用STM32F103RET6設(shè)計了溫濕度采集系統(tǒng)。該系統(tǒng)工作時間長約30天,低功耗模式采用了停止模式實(shí)現(xiàn),溫濕度傳感器使用SHTIO溫濕度傳感器。結(jié)合實(shí)際使用環(huán)境,采集周期為5分鐘。采用18650鋰電池供電,具有SD卡存儲功能,且能實(shí)現(xiàn)USB全速通信和串口通信。

1 溫濕度采集器設(shè)計

1.1 硬件設(shè)計

采集器的結(jié)構(gòu)框架如圖l所示,主要有供電模塊,USB全速通信模塊,STM32芯片,SD卡存儲模塊,溫濕度傳感器,串口通信模塊,JTAG在線調(diào)試模塊組成。

考慮體積因素,系統(tǒng)采用18650充電鋰電池供電,單節(jié)2400mah電池充滿電后可以工作2個月左右時間。

STM32以合秦公司的HT7333降壓模塊供電。通過RTC實(shí)時時鐘控制,每5分鐘喚醒一次,進(jìn)行數(shù)據(jù)采集。以自定義的通信協(xié)議通過SHT10溫濕度傳感器獲取數(shù)據(jù)。采集到的溫濕度數(shù)據(jù)以16進(jìn)制形式寫入SD卡。SD卡中的數(shù)據(jù)可以經(jīng)由串口通信模塊和USB全速通信模塊導(dǎo)出,也可以直接由SD卡讀出。

1.2 SHT10溫濕度傳感器通信時序

SHT10溫濕度傳感器的通信時序如圖2所示。

傳感器以不小于1V/ms的上電速率供電后,首先進(jìn)入11ms的休眠狀態(tài),在此期間不允許對傳感器發(fā)送任何指令。當(dāng)準(zhǔn)備傳輸數(shù)據(jù)時,需用一組“啟動時序”完成數(shù)據(jù)傳輸?shù)某跏蓟T搯訒r序?yàn)椋寒?dāng)SCK時鐘為高電平時,DATA翻轉(zhuǎn)為低電平,緊接著SCK變?yōu)榈碗娖剑S后在SCK時鐘高電平時,DATA翻轉(zhuǎn)為高電平。后續(xù)命令包含三個地址位和五個命令位。傳感器接收到命令后,會在第8個SCK下降沿后將DATA下拉為低電平(ACK位)。在第9個SCK下降沿后,釋放DATA,將其恢復(fù)為高電平。

其5位的命令集如表1所示。

在“啟動時序”發(fā)送溫濕度測量的命令(00000101表示相對濕度,00000011表示溫度)后,控制器等待測量結(jié)束。過程大約為20/80/320ms,分別對應(yīng)8/12/14bits測量。傳感器通過下拉DATA至低電平并進(jìn)入空閑模式表示測量結(jié)束。控制器在再次出發(fā)SCK前必須等待“數(shù)據(jù)備妥”信號讀取數(shù)據(jù)。溫濕度數(shù)據(jù)可以先被存儲,這樣控制器可以繼續(xù)指向其他任務(wù),在需要時再讀出數(shù)據(jù)。

接著傳輸2個字節(jié)的測量數(shù)據(jù)和1個字節(jié)的CRC奇偶校驗(yàn)。傳感器下拉DATA為低電平,以確認(rèn)每個字節(jié)。所有數(shù)據(jù)從MSB開,右值有效。收到CRC確認(rèn)位之后,表示通訊結(jié)束。若不使用CRC-8校驗(yàn),過保持ACK高電平終止通訊。測量和通訊完成后,傳感器進(jìn)入休眠模式。

1.3 通訊接口配置

溫濕度傳感器與STM32的GPIOB PIN6和GPIOB PIN7連接,其中PIN6為時鐘通訊端口,PIN7為數(shù)據(jù)通訊端口。STM32的PIN6腳為傳輸速度50MHz的推挽輸出,PIN7腳為傳輸速度50MHz的推挽輸入輸出模式(接受數(shù)據(jù)時為輸入,發(fā)送應(yīng)答指令時為輸出)。

“啟動時序”通過寫SHT10的SCK和DATA實(shí)現(xiàn)。先將PIN7腳配置為推挽輸出,速率為50MHz,然后通過拉低SCK時鐘,拉高SCK,拉低DATA,拉低SCK,拉高SCK,拉高DATA,拉低SCK的順序進(jìn)行操作,操作之間設(shè)置一段延遲。在“啟動時序”完成后,通過寫0x03和0x05來實(shí)現(xiàn)發(fā)送命令,進(jìn)行溫度測量和濕度測量。

2 時鐘系統(tǒng)及功耗測試分析

2.1 STM32的時鐘系統(tǒng)

時鐘系統(tǒng)正常工作是使STm32及其外設(shè)正常運(yùn)行的前提,且系統(tǒng)時鐘頻率及外設(shè)時鐘頻率配置的高低對采集器耗電量有著很大影響。STm32有內(nèi)部RC振蕩器,其能夠?yàn)閮?nèi)部提供PLL時鐘,可以達(dá)到微控器最高頻率72MHz的要求。但是內(nèi)部時鐘不及外部晶振準(zhǔn)確和穩(wěn)定,所以在溫濕度采集系統(tǒng)中選用了外部時鐘源,這個外部時鐘源被稱為外部高速振蕩器(HSE)。外部時鐘源用來為Cortex處理器和STM32外設(shè)提供時鐘。由于內(nèi)部PLL時鐘是用整數(shù)值乘以HSE振蕩頻率,因此外部時鐘頻率需能被72MHz。實(shí)際采集系統(tǒng)中選用了振蕩頻率為8MHz的晶振。

其中外部晶振HSE振蕩后,產(chǎn)生8MHz的時鐘信號,經(jīng)PLL鎖相環(huán)9倍頻后至72MHz。系統(tǒng)時鐘以72MHz運(yùn)行,并將APBI外設(shè)時鐘配置為系統(tǒng)時鐘的2分頻,將APB2外設(shè)時鐘配置為系統(tǒng)時鐘的1分頻。

STM32有兩個電源域:主系統(tǒng)和外圍設(shè)備的電源域,備份域。備份域中包括10個16位寄存器,RTC和獨(dú)立看門狗。在低功耗模式下,RTC和獨(dú)立看門狗可以保持繼續(xù)運(yùn)行以喚醒STM32主系統(tǒng)或執(zhí)行系統(tǒng)復(fù)位。STM32包含一個基本的實(shí)時時鐘,它是優(yōu)化了的32位計數(shù)器,當(dāng)有32.768kHz時鐘源提供時鐘時,它會在每一秒到來時計數(shù)。配置時鐘樹時,RTC時鐘源可以選擇來自:內(nèi)部低速振蕩器,外部低速振蕩器或外部高速振蕩器的128分頻。通過RTC可以得到準(zhǔn)確的秒計數(shù),計數(shù)器本身可以產(chǎn)生三種中斷:一秒鐘中斷,溢出中斷和鬧鐘中斷。采集器中選擇外部低速時鐘作為RTC時鐘,通過鬧鐘中斷的方式對主電源域進(jìn)行喚醒,鬧鐘寄存器中存儲的值為32767。

在有電池備份的條件下,RTC可以在主電源域進(jìn)入低功耗模式時繼續(xù)運(yùn)行。通過EXTI他可以在NVIC中產(chǎn)生時間終端,喚醒STM32的主電源域。但是處于體積的考慮,本采集器并未設(shè)計備用電池,而是通過直接通過HT7333模塊輸出管腳為RTC供電。

2.2 功耗測試分析

STM32芯片電源供電框圖如圖3。

溫濕度采集器選用4.2v單節(jié)鋰電池供電,鋰電池容量約為2600mah。由于鋰電池電壓輸出大于芯片供電電壓,且鋰電池使用過程中電壓不斷波動變化,影響數(shù)據(jù)采集準(zhǔn)確性。故采集器中選用了降壓模塊,將電壓降且穩(wěn)定至3.3V,為芯片和外設(shè)供電。

該芯片轉(zhuǎn)換效率約為90%,通過估算方式可得其在3.3V供電時容量約為3000mah。當(dāng)系統(tǒng)時鐘運(yùn)行在最高速72MHz時,用萬用表測量采集系統(tǒng)電流約為100ma。待鋰電池充滿電后進(jìn)行測試,采集周期5分鐘。STM32每次將測量獲得的溫度數(shù)據(jù)、濕度數(shù)據(jù)通過SDIO接口協(xié)議寫入SD卡中。該狀態(tài)下采集時間約為26小時。由此可知,未使用低功耗模式的采集系統(tǒng)耗電量較大。該試驗(yàn)要求的密閉環(huán)境中進(jìn)行采集時,不能滿足長時間持續(xù)工作的設(shè)計要求。

3 低功耗模式的實(shí)現(xiàn)

3.1 STM32的低功耗模式

STM32共有睡眠、停止以及待機(jī)三種低功耗工作模式:

a睡眠模式:默認(rèn)情況下,當(dāng)一個WFE指令或WFI指令被執(zhí)行時Cortex處理器將停止內(nèi)部時鐘,并停止執(zhí)行應(yīng)用程序代碼。該模式下,STM32其余部分將繼續(xù)運(yùn)行。當(dāng)某個外設(shè)產(chǎn)生一個中斷時,其將退出睡眠模式。理論上,若STM32首先禁用所有外設(shè)時鐘(除了喚醒Cortex的外設(shè)以外),再到HSI振蕩器,且將HSI時鐘頻率1MHz一下,可將功耗降低至大約為5ma。

b停止模式:停止模式是Cortex-M3的深睡眠模式基礎(chǔ)上結(jié)合了外設(shè)的時鐘控制機(jī)制。在停止模式下,電壓調(diào)節(jié)器可以運(yùn)行在正常或者低功耗模式。此時1.8V供電區(qū)域的所有時鐘被停止。PLL、HSI和HSE振蕩器功能被禁。本采集器采用停止模式實(shí)現(xiàn)低功耗工作。通過設(shè)置Cortex控制寄存器的SLEEPDEEP位,清除S電源控制寄存器的PDDS位,設(shè)置LPDS為選擇電壓調(diào)節(jié)器的模式,STM32即可進(jìn)人低功耗停止模式。該模式下,WFI或WFE指令的執(zhí)行將停止Cortex處理器,并且關(guān)閉HSE和HSI振蕩器。停止模式下,任意的外部中斷都會將STM32喚醒。

c待機(jī)模式:待機(jī)模式可實(shí)現(xiàn)系統(tǒng)最低功耗,該模式是在Cortex-M3睡眠模式時關(guān)閉電壓調(diào)節(jié)器,整個1.8V供電區(qū)域被斷電。PLL、HIS和HSE振蕩器也被斷電。SRAM和寄存器內(nèi)容丟失,只有備份的寄存器和待機(jī)電路維持供電。待機(jī)模式下STM32僅消耗2uA。通過設(shè)置Cortex電源控制寄存器中的SLEEPDEEP位和STM32的PDDS位可進(jìn)入待機(jī)模式。可以使用RTC鬧鐘喚醒待機(jī)模式,也可以使用外部STM32復(fù)位或獨(dú)立看門狗復(fù)位喚醒,也可以通過PORTA引腳0的上升沿退出待機(jī)模式,但是該引腳必須被配置為喚醒引腳WAKEUP。相應(yīng)的,該模式退出時間花費(fèi)最長,約為50us。

3.2 低功耗停止模式的軟件實(shí)現(xiàn)

首先使能電源控制時鐘和RTC后備寄存器時鐘,之后使能RTC和后備寄存器訪問。然后使能外部32.768kHz低速晶振,待外部晶振振蕩穩(wěn)定之后,配置外部32.768kHz低速晶振作為RTC時鐘,配置完成后使能RTC時鐘。使能RTC時鐘后,等待RTC寄存器同步。對于RTC任何寄存器的寫操作,都必須在前一次寫操作結(jié)束后進(jìn)行。通過查血RTC CR寄存器中的RTOFF狀態(tài)位,判斷RTC寄存器是否處于更新中。當(dāng)且僅當(dāng)RTOFF狀態(tài)位為“1”時,方可寫入RTC寄存器。RTC寄存器配置過程如圖4。

3.3 對比測試分析

在未開啟低功耗停止模式下,取滿電的2600mAh鋰電池進(jìn)行電量測試,采集要素為戶外溫濕度環(huán)境。采集數(shù)據(jù)過程中對電池電流進(jìn)行測試,電流為103mAh。采集點(diǎn)數(shù)為316個點(diǎn),即采集了26小時20分鐘。試驗(yàn)測試采集的數(shù)據(jù)如圖5所示。

在開啟低功耗停止模式下,取滿電的2600mAh鋰電池進(jìn)行電量測試,采集要素也為戶外溫濕度環(huán)境。采集數(shù)據(jù)過程中對電池電流進(jìn)行測試,低功耗模式下電流為4mA,喚醒啟動時,工作電流為54mA。試驗(yàn)開始10天后,測試電源電壓。電壓顯示為3.96V,這表明10天后溫濕度采集器仍在工作。讀取SD卡數(shù)據(jù)。采集點(diǎn)數(shù)為2936個點(diǎn),即采集了10天4小時40分鐘。試驗(yàn)測試采集的數(shù)據(jù)如圖6所示。

按電壓每天下降0.3V速度計算,當(dāng)電壓下降的工作下限3.35V時,其工作時間約為60天。可以滿足長時間工作需要,達(dá)到設(shè)計要求。

4 結(jié)語

介紹了基于STM32F03RET6的低功耗溫濕度采集系統(tǒng)的設(shè)計原理,簡述了SHTIO溫濕度傳感器通訊配置,并給出了“啟動時序”的部分程序?qū)嵗C枋隽薙TM32的低功耗模式,并予以實(shí)現(xiàn)。通過實(shí)際測試,發(fā)現(xiàn)低功耗模式可以使其工作周期延長接近25倍。實(shí)現(xiàn)了長時間連續(xù)采集的設(shè)計要求。該低功耗方法適用于其他STM32控制系統(tǒng),具有較大意義。

猜你喜歡
系統(tǒng)
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無人機(jī)系統(tǒng)
ZC系列無人機(jī)遙感系統(tǒng)
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統(tǒng)
基于UG的發(fā)射箱自動化虛擬裝配系統(tǒng)開發(fā)
半沸制皂系統(tǒng)(下)
FAO系統(tǒng)特有功能分析及互聯(lián)互通探討
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
一德系統(tǒng) 德行天下
PLC在多段調(diào)速系統(tǒng)中的應(yīng)用
主站蜘蛛池模板: 日韩毛片视频| 日日摸夜夜爽无码| jijzzizz老师出水喷水喷出| 美女高潮全身流白浆福利区| 亚洲高清在线播放| 91精品视频网站| 国产欧美日韩另类| 国内精自线i品一区202| 亚洲精品无码久久久久苍井空| 久久香蕉国产线| 国产精品三级av及在线观看| 99er这里只有精品| 亚洲国产日韩欧美在线| 欧美色99| 久久久精品无码一区二区三区| 国产尤物视频网址导航| 91在线国内在线播放老师| 无码网站免费观看| 日韩无码视频播放| 国产视频一二三区| 欧美色视频在线| 婷婷六月激情综合一区| 久久免费观看视频| 天天综合色网| 欧美亚洲一区二区三区导航| a天堂视频在线| 国产精品 欧美激情 在线播放 | 露脸一二三区国语对白| 亚洲二三区| 99精品一区二区免费视频| 久久青草精品一区二区三区| AV天堂资源福利在线观看| 毛片最新网址| 亚洲婷婷丁香| 中日韩一区二区三区中文免费视频| 全免费a级毛片免费看不卡| 国产精品lululu在线观看| 超碰精品无码一区二区| 亚洲三级a| 国产精品福利导航| 亚洲va欧美va国产综合下载| 欧美全免费aaaaaa特黄在线| 国产无码制服丝袜| 亚洲国语自产一区第二页| 国产拍在线| 亚洲色图欧美在线| 色久综合在线| 国产一区二区在线视频观看| 毛片网站观看| 国产成人精品一区二区三区| 亚洲无码熟妇人妻AV在线| 波多野结衣一二三| 香港一级毛片免费看| 国产精品偷伦视频免费观看国产 | 暴力调教一区二区三区| 国产精品思思热在线| 最新国产午夜精品视频成人| 亚洲福利视频一区二区| 国产福利在线免费观看| 黄色片中文字幕| 狠狠亚洲婷婷综合色香| 国产欧美日韩综合在线第一| av大片在线无码免费| 国产高清精品在线91| 啪啪国产视频| 国产精品免费入口视频| 久久91精品牛牛| 国产成人AV综合久久| 国产成人无码久久久久毛片| 精品国产乱码久久久久久一区二区| 亚洲人成网18禁| 亚洲中文字幕在线观看| 国产一级二级三级毛片| 亚洲不卡影院| 久久久精品无码一区二区三区| 一级毛片免费不卡在线 | 久久久噜噜噜久久中文字幕色伊伊 | 国产日韩精品欧美一区喷| 色老头综合网| 欧洲成人在线观看| 国产精品成人观看视频国产| 97se综合|