ADuCM3027/ADuCM3029中的SensorStrobe、超低功耗、時(shí)間同步傳感器數(shù)據(jù)采樣
簡介
本文引用地址:http://m.butianyuan.cn/article/201707/361492.htm與一個(gè)精確時(shí)間同步的傳感器精密采樣,是建筑健康監(jiān)控、可穿戴式設(shè)備、環(huán)境檢測(cè)等各類無線傳感器網(wǎng)絡(luò)應(yīng)用的要求。傳感器數(shù)據(jù)采樣由微控制器單元(MCU)支配。傳統(tǒng)方法是利用MCU上的軟件產(chǎn)生通用輸入/輸出(GPIO)脈沖,然后以特定間隔觸發(fā)傳感器收集數(shù)據(jù)。
傳統(tǒng)方法有兩個(gè)問題。一是涉及到相當(dāng)大的軟件開銷,這會(huì)提高功耗。二是脈沖觸發(fā)取決于MCU軟件,因此可能隨著時(shí)間推移而發(fā)生漂移。
本應(yīng)用筆記介紹ADI公司的SensorStrobe?機(jī)制,利用它可實(shí)現(xiàn)低功耗、一致、同步的傳感器數(shù)據(jù)采集。
ADuCM3027/ADuCM3029具備SensorStrobe機(jī)制。此機(jī)制支持與ADuCM3027/ADuCM3029 MCU相連的傳感器實(shí)現(xiàn)時(shí)間同步的數(shù)據(jù)采樣。
SensorStrobe解決了傳統(tǒng)軟件方法的問題,理由如下:
? 工作在休眠模式,功耗降低10倍以上。
? 設(shè)置之后無需軟件干預(yù)。
? 脈沖觸發(fā)機(jī)制獨(dú)立于軟件執(zhí)行,即使在軟件執(zhí)行期間也能產(chǎn)生連續(xù)觸發(fā)脈沖(且無漂移)。
本應(yīng)用筆記使用一個(gè)示例設(shè)置,其中ADuCM3027/ADuCM3029 MCU連接到ADXL363加速度計(jì),以證明利用SensorStrobe機(jī)制采集樣本數(shù)據(jù)時(shí)功耗降低超過10倍。將SensorStrobe機(jī)制與非SensorStrobe的軟件方法進(jìn)行比較,這一降幅是很明顯的。
圖1.ADuCM3027/ADuCM3029和ADXL363連接圖
目錄
簡介1
修訂歷史2
SensorStrobe概述3
ADXL363特性3
系統(tǒng)描述5
MCU和ADXL363之間的接口5
數(shù)據(jù)傳輸序列6
軟件概述7
源代碼片段8
ADXL363 FIFO讀操作10
系統(tǒng)功耗分析11
功耗測(cè)量11
結(jié)語13
結(jié)構(gòu)健康監(jiān)控(SHM)13
醫(yī)療保健監(jiān)護(hù)13
環(huán)境檢測(cè)13
修訂歷史
2017年3月—修訂版0:初始版
SENSORSTROBE概述
SensorStrobe是一種以高效率、低功耗、內(nèi)在同步的方式進(jìn)行傳感器采樣的機(jī)制。ADuCM3027/ADuCM3029支持這種機(jī)制。SensorStrobe可以在ADuCM3027/ADuCM3029的活動(dòng)、靈活(Flexi?)和休眠三種功耗模式下使用。
SensorStrobe機(jī)制允許ADuCM3027/ADuCM3029處于休眠模式(750 nA),同時(shí)傳感器以固定間隔周期性收集數(shù)據(jù)。
SensorStrobe機(jī)制與ADXL363的外部觸發(fā)特性相結(jié)合,以最低可能功耗收集傳感器數(shù)據(jù)。
SensorStrobe是ADuCM3027/ADuCM3029中的實(shí)時(shí)時(shí)鐘(RTC)的一種報(bào)警功能。通過此機(jī)制,ADuCM3027/ADuCM3029為ADXL363加速度計(jì)提供外部觸發(fā)信號(hào)。觸發(fā)信號(hào)位于RTC1_SS1 (RTC SensorStrobe)引腳上,是通過ADuCM3027/ADuCM3029上的單一GPIO驅(qū)動(dòng)出來的低頻時(shí)鐘源(32 kHz)的單周期、高電平脈沖。此脈沖是周期性的,確保傳感器采樣時(shí)間無變化,而其周期具有高度可配置性。
ADXL363特性
ADXL363是一款超低功耗、三傳感器器件,集三軸微機(jī)電系統(tǒng)(MEMS)加速度計(jì)、溫度傳感器和模數(shù)轉(zhuǎn)換器(ADC)輸入于一體,用于同步采樣外部信號(hào)。
ADXL363有一個(gè)512樣本先進(jìn)先出(FIFO)緩沖器用以存儲(chǔ)傳感器數(shù)據(jù)。這種大FIFO可節(jié)省系統(tǒng)功耗。在ADXL363將數(shù)據(jù)自主記錄到FIFO緩沖器的同時(shí),MCU可以處于休眠模式。
ADXL363配置為外部觸發(fā)模式。ADuCM3027/ADuCM3029在RTC_SS引腳上產(chǎn)生這些觸發(fā)脈沖。每個(gè)觸發(fā)脈沖到來時(shí),ADXL363便收集并存儲(chǔ)數(shù)據(jù)到FIFO(最多512個(gè)樣本,每樣本兩個(gè)字節(jié))緩沖器中。
對(duì)ADXL363進(jìn)行編程,當(dāng)FIFO緩沖器達(dá)到480樣本(每樣本兩個(gè)字節(jié))的水印時(shí),它便中斷并喚醒MCU。使用水印特性可以讓FIFO留下余地以供接收更多樣本,與此同時(shí),MCU喚醒并開始清空FIFO緩沖器。
ADXL363支持通過串行外設(shè)接口(SPI)進(jìn)行寄存器讀寫訪問。訪問可以是單字節(jié)或多字節(jié)訪問。實(shí)現(xiàn)FIFO緩沖器的目的是通過不限長度的多字節(jié)讀取來連續(xù)讀取連貫的樣本。因此,一個(gè)FIFO緩沖器讀指令便可清空FIFO緩沖器的全部內(nèi)容。
而在其他加速度計(jì)中,每個(gè)讀指令只能檢索到一個(gè)樣本。此外,ADXL363 FIFO緩沖器還可以利用ADuCM3027/ADuCM3029直接存儲(chǔ)器訪問(DMA)控制器清空。
利用SPI接口的讀命令模式,ADuCM3027/ADuCM3029與ADXL363高效通信,通過減少SPI協(xié)議開銷來降低系統(tǒng)整體功耗。
圖2.數(shù)據(jù)序列圖
系統(tǒng)描述
我們構(gòu)建了一個(gè)示例系統(tǒng)來說明使用SensorStrobe的優(yōu)點(diǎn)。此系統(tǒng)包括一個(gè)EVAL-ADuCM3029 EZ-KIT萬用表和電流源表。這些系統(tǒng)器件串聯(lián)起來測(cè)量系統(tǒng)電流消耗。
圖3.電流測(cè)量的系統(tǒng)連接
MCU和ADXL363之間的接口
一步說明。
使能ADuCM3027 /ADuCM3029的SensorStrobe機(jī)制,并將ADuCM3027 /ADuCM3029置于休眠模式。觸發(fā)脈沖以128 Hz速率產(chǎn)生。
每收到一個(gè)脈沖,ADXL363便獲取樣本并將其存儲(chǔ)在FIFO緩沖器中。當(dāng)達(dá)到FIFO上水印時(shí),ADXL363便通過SYS_WAKE3 (P2_01)引腳中斷ADuCM3027 /ADuCM3029。
ADuCM3027 /ADuCM3029利用讀模式特性通過單個(gè)命令清空整個(gè)FIFO,使SPI協(xié)議開銷最小。DMA控制器可以清空FIFO緩沖器,進(jìn)一步降低MCU的工作時(shí)間和系統(tǒng)電流消耗。
通過SensorStrobe,ADuCM3027/ADuCM3029即便在休眠模式下也能在GPIO43引腳上產(chǎn)生觸發(fā)脈沖。脈沖產(chǎn)生配置取決于RTC1寄存器和GPIO引腳復(fù)用。
在靈活模式下,DMA可以傳輸SPI數(shù)據(jù),進(jìn)一步降低系統(tǒng)功耗。
數(shù)據(jù)傳輸序列
MCU收集傳感器數(shù)據(jù)分兩個(gè)階段進(jìn)行。圖4和圖5顯示了這些階段中的信號(hào)活動(dòng)情況。
首先,RTC1_SS1引腳充當(dāng)外部觸發(fā)信號(hào),ADXL363收集樣本并存儲(chǔ)到FIFO緩沖器中。然后,ADXL363 FIFO緩沖器通過SPI讀取內(nèi)容。
圖4.第一階段——數(shù)據(jù)采集階段:RTC_SS觸發(fā)ADXL363
圖5.第二階段——數(shù)據(jù)傳輸至MCU:通過SPI讀取ADXL363 FIFO
評(píng)論