在將電子基礎設施轉變為物聯網 (IoT) 的過程中,傳感器正成為無處不在的元素。傳感器將提供用于管理和控制汽車、家庭、工作場所、工廠車間以及介于兩者之間的任何地方的電子系統的數據。傳感器不僅在其范圍內,而且在其功能上都在擴展。當多個傳感器位于同一位置時,可以創建令人興奮的新功能,并且可以交換和增強單個測量值。在這些類型的設計中,傳感器可以實現高級功能,通常被稱為傳感器“融合”,從而提供新的創新功能。
傳感器融合算法已經在化學過程控制系統中實施了幾十年,所以這個概念并不是什么新鮮事。大多數化學過程控制系統需要各種傳感器讀數來確定值、流速或設置的正確設置。您不會考慮在沒有感應壓力、溫度和體積的情況下管理化學過程,對吧?(還記得 PV = nRT 嗎?)
很容易要求您的新傳感器融合設計包含各種傳感器,以便您的新算法擁有它需要的所有數據;但在某些時候,您的 MCU 將需要連接到所有這些傳感器,同時以您的算法所需的速率提供數據。哦,順便說一句,您需要保留大量 MCU 計算能力,因此處理器不會為實時管理所有傳感器數據而煩惱。
幸運的是,MCU 制造商一直在擴展其 MCU 外設的功能,因此設計可以使用多個接口的全部功能,而不會給處理器帶來大量開銷。本文將著眼于傳感器融合設計的示例實現,以說明如何為每個傳感器選擇正確的外設對您的設計成功至關重要。
示例設計
我們將在未來幾年看到的一種更常見的傳感器融合設計將用于跟蹤和記錄感興趣對象周圍的環境。感興趣的對象可以是運輸中的包裹、停放的汽車、移動中的自行車或院子里的狗。顯然,傳感器日志和任何傳感器融合算法都將尋找特定的環境測量值,但我們可以在示例設計中包含一些流行的測量值。假設我們要提供溫度、濕度、振動、壓力和加速度。讓我們還添加一個捕獲聲音的要求,以涵蓋使用語音命令或需要捕獲環境噪聲的情況,也許是為了驗證是否符合噪聲水平的工業標準。
我們的示例設計的簡化框圖如圖 1 所示。關鍵設計目標是找到用于每個傳感器的最佳 MCU 接口,這種連接可以以傳感器融合算法所需的速率提供傳感器數據。在我們的示例設計中,低功耗也是一個關鍵要求,因為假設電池運行。因此,在有限的功率下獲得最多的數據和最多的處理能力將是我們的主要設計目標。
?

圖 1:環境監測傳感器簡化框圖。
音頻、溫度、壓力、加速度、振動和濕度傳感器都直接連接到 MCU。無線連接,可能是低功耗短距離標準,例如低功耗藍牙,允許傳感器通過聚合單元向云端提供數據??梢酝ㄟ^從云端下載 MCU 代碼更新來進行算法增強或維護更新。這些更新可用于延長傳感器壽命或針對不同條件或不斷變化的要求重新分配傳感器任務。
每個傳感器對速度、延遲、功率和測量頻率都有不同的限制。主要的設計任務是優化這些接口,以在最佳時間和盡可能少的功耗為融合算法提供所需的數據。確定最佳連接的第一步是區分低速連接和高性能連接要求。
低速連接
許多傳感器不需要高速連接,因此可能使用較舊的低速串行接口,例如 UART。在我們的示例設計中,我們將假設壓力傳感器使用 UART 風格的接口,并且每秒只進行幾次通信。該速率通常足以跟蹤長期和突然的壓力變化。使用 UART 接口會給設計帶來一個可能不直觀的設計問題。由于頻率較低,您可能期望功率要求也較低。不幸的是,您可能會遇到這樣的情況,因為傳輸頻率較低,UART 需要長時間保持開啟。只要 UART 處于活動狀態,就會消耗功率。
在我們的示例設計中,我們需要一個節能的 UART 外設,它在活動時消耗的電量很少,并且在不需要時可以輕松關閉。現在,一些 MCU 包含具有這些特性的專用低功耗 UART,下圖 2 中STMicroelectronics所示的低功耗 UART 顯示了 UART 的節能能力。
?

圖 2:STM32L 低功耗 UART 框圖。(意法半導體提供)
典型的 UART 功能——發送數據寄存器、接收數據寄存器、控制寄存器、波特率選擇和整體控制單元——在框圖中都很明顯,但不容易發現的是,即使在 MCU 的情況下,UART 也可以運行處于低功耗停止模式。UART 可以等待傳入的數據幀并通過中斷將 MCU 從停止模式中喚醒。然后,如果 UART 數據是傳感器融合算法中的重要元素,CPU 可以將數據移動到內存或立即開始處理。由于低功耗UART外設可以在CPU處于停止模式時接收數據,因此傳輸過程中所需的電量大大減少,從而大大提高了我們的電源效率。當您需要連接到 MCU 的低速串行接口時,請尋找類似的低功耗特性。
高性能連接
在某些傳感器應用中,頻繁或以高數據速率訪問傳感器數據很重要。在我們的示例設計中,音頻傳感器需要最高帶寬。其他類型的傳感器,例如光、溫度、壓力和位置,很少變化,因此可以以低得多的速率進行監控。大多數 MCU 上提供的高速接口有多種選擇,其中 SPI、QSPI 和 I2C 是流行的選擇。例如,Atmel SAM4S4A MCU支持具有多個通道的 SPI 和 I2C。該器件的另一個功能是即使在極低功耗模式下也可以保留 SRAM,因此傳感器數據包在存儲在 SRAM 中時不會丟失。當低功耗是最重要的問題時,請尋找此功能。
許多 MCU 支持流行的 I2S 音頻接口,這通常是音頻處理應用的明顯選擇。然而,現代音頻編解碼器通常支持多個接口,因此您可以為您的應用程序選擇一個合適的接口。Texas Instruments TLV320AIC3254立體聲音頻編解碼器(圖 3)支持 I2S、I2C 和 SPI,因此您有多種接口選項。
?

圖 3:Texas Instruments 的音頻編解碼器支持多種串行接口。(德州儀器提供)
當您的應用程序正在流式傳輸音頻數據時,I2S 接口是一個很好的選擇。假設在我們的示例中,傳感器需要不頻繁地測量音頻電平和頻率(可能最多每秒一次),以測試環境是否符合工廠車間員工的聲音暴露法規。在不丟失任何數據且不干擾其他測量的情況下捕獲幾分之一秒的聲音非常重要。在這種情況下,I2S 接口是一個不錯的選擇,它允許獨立于其他 I2C 或 SPI 端口進行操作。
I2S 的使用還可以讓我們最大限度地減少功耗,因為它僅在音頻捕獲期間打開。通常 I2S 可以與 DMA 結合使用,以便 CPU 可以處于低功耗模式,直到數據全部被捕獲并準備好處理。或者,CPU 可以在捕獲數據的同時處理數據。如果音頻功能的總“開啟時間”減少,這可能最終會降低功率??紤]在您的設計中比較這兩種方法,并根據您的要求選擇效率最高的一種。
不要忘記模擬
盡管許多傳感器使用串行接口,但不要忘記簡單的模數轉換器 (ADC) 可用于許多傳感器應用。一些 ADC 可以獨立于 CPU 運行,這使得在進行轉換時可以輕松地將 CPU 置于低功耗模式。例如,STM32F4 MCU 有一個 ADC,可以使用直接內存訪問 (DMA) 控制器將捕獲的數據直接移動到內存中。ADC 也可以通過定時器計數器模塊啟動,這樣就可以在沒有 CPU 干預的情況下輕松進行定期測量。這些啟動觸發信號如圖 4 中 STM32F4 ADC 框圖的底部所示。
?

圖 4:STMicroelectronics STM32F4 MCU ADC 框圖。(意法半導體提供)
為了進一步提高效率,模擬看門狗功能允許非常精確地監控一個、部分或所有選定通道的轉換電壓。當轉換后的電壓超出編程閾值時會產生中斷。這在我們的示例環境監控設計中特別有用,因為 CPU 不需要處于活動狀態,除非測量值偏離“安全”區域。這降低了功耗并允許 CPU 專注于關鍵處理要求。
結論
對于傳感器融合設計,減少 CPU 開銷的高效接口至關重要。釋放 CPU 以便它可以使用算法處理各種傳感器數據,這些算法結合或融合數據以識別重要事件,從而創建智能傳感器融合設備。這些智能設備將成為不斷擴大的物聯網環境中的關鍵要素。
電子發燒友App








評論