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