基于MCU的智能傳感器融合設(shè)備設(shè)計(jì)
傳感器正在成為電子基礎(chǔ)設(shè)施向物聯(lián)網(wǎng)(IoT)轉(zhuǎn)變的無(wú)處不在的元素。傳感器將提供用于管理和控制汽車,家庭,工作場(chǎng)所,工廠車間以及兩者之間的電子系統(tǒng)的數(shù)據(jù)。傳感器不僅在擴(kuò)展范圍,而且在擴(kuò)展能力方面。當(dāng)多個(gè)傳感器位于同一位置時(shí),可以創(chuàng)建令人興奮的新功能,并且可以交換和增強(qiáng)單個(gè)測(cè)量。在這些類型的設(shè)計(jì)中,傳感器可以實(shí)現(xiàn)高級(jí)功能,通常被稱為傳感器“融合”,提供新的和創(chuàng)新的功能。
傳感器融合算法已經(jīng)在化學(xué)過(guò)程控制系統(tǒng)中實(shí)施了數(shù)十年,所以這個(gè)概念并不是新的。大多數(shù)化學(xué)過(guò)程控制系統(tǒng)需要各種傳感器讀數(shù)來(lái)確定值,流速或設(shè)置的正確設(shè)置。你不會(huì)考慮在沒(méi)有感應(yīng)壓力,溫度和體積的情況下管理化學(xué)過(guò)程,對(duì)吧? (還記得PV = nRT嗎?)很容易要求你的新傳感器融合設(shè)計(jì)包含各種傳感器,這樣你的新算法就能擁有它需要的所有數(shù)據(jù);但在某些時(shí)候,您的MCU需要連接到所有這些傳感器,同時(shí)以您的算法所需的速率提供數(shù)據(jù)。哦,順便說(shuō)一下,您需要保留大量的MCU計(jì)算能力,因此處理器不會(huì)受到實(shí)時(shí)管理所有傳感器數(shù)據(jù)的困擾。
幸運(yùn)的是,MCU制造商一直在擴(kuò)展其MCU外設(shè)的功能,因此設(shè)計(jì)可以使用多個(gè)接口的全部功能,而不會(huì)給處理器帶來(lái)大量開(kāi)銷。本文將介紹傳感器融合設(shè)計(jì)的示例實(shí)現(xiàn),以說(shuō)明為每個(gè)傳感器選擇合適的外設(shè)對(duì)于設(shè)計(jì)的成功至關(guān)重要。
示例設(shè)計(jì)
我們將在未來(lái)幾年內(nèi)看到的一種更常見(jiàn)的傳感器融合設(shè)計(jì)將用于跟蹤和記錄感興趣對(duì)象周圍的環(huán)境。感興趣的對(duì)象可以是運(yùn)輸中的包裹,停放的汽車,移動(dòng)中的自行車或院子里的狗。顯然,傳感器日志和任何傳感器融合算法都將尋找特定的環(huán)境測(cè)量,但我們的示例設(shè)計(jì)中可能包含一些常用的測(cè)量。我們假設(shè)我們想要提供溫度,濕度,振動(dòng),壓力和加速度。我們還添加了捕獲聲音的要求,以涵蓋使用語(yǔ)音命令或需要捕獲環(huán)境噪聲的情況,或許可以驗(yàn)證噪聲級(jí)別的工業(yè)標(biāo)準(zhǔn)是否得到遵守。這些類型的讀數(shù)變化足以為我們提供一些設(shè)計(jì)挑戰(zhàn),因此我們可以探索對(duì)于高效傳感器融合設(shè)計(jì)至關(guān)重要的特定MCU功能。
我們的示例設(shè)計(jì)的簡(jiǎn)化框圖如圖所示。圖1.關(guān)鍵設(shè)計(jì)目標(biāo)是找到用于每個(gè)傳感器的最佳MCU接口,這種連接可以傳感器融合算法所需的速率提供傳感器數(shù)據(jù)。在我們的示例設(shè)計(jì)中,由于假設(shè)電池工作,因此低功耗也是關(guān)鍵要求。因此,在有限功率下獲得最多數(shù)據(jù)和最多處理能力將是我們的主要設(shè)計(jì)目標(biāo)。
圖1:環(huán)境監(jiān)測(cè)傳感器簡(jiǎn)化框圖。
音頻,溫度,壓力,加速度,振動(dòng)和濕度傳感器都直接連接到MCU。無(wú)線連接(可能是低功耗短距離標(biāo)準(zhǔn),例如藍(lán)牙低功耗)允許傳感器通過(guò)聚合單元向云提供數(shù)據(jù)??梢酝ㄟ^(guò)從云下載MCU代碼更新來(lái)進(jìn)行算法增強(qiáng)或維護(hù)更新。這些更新可用于延長(zhǎng)傳感器壽命或針對(duì)不同條件或不斷變化的要求重新設(shè)置傳感器。
每個(gè)傳感器對(duì)速度,延遲,功率和測(cè)量頻率都有不同的約束。主要的設(shè)計(jì)任務(wù)是優(yōu)化這些接口,以便在最佳時(shí)間和盡可能少的功耗下為融合算法提供所需的數(shù)據(jù)。確定最佳連接的第一步是分離出低速連接和高性能連接要求。
低速連接
許多傳感器不需要高速連接連接因此可以使用較舊的低速串行接口,例如UART。在我們的示例設(shè)計(jì)中,我們假設(shè)壓力傳感器使用UART風(fēng)格的接口,并且每秒只進(jìn)行幾次通信。這個(gè)速度通常足以跟蹤長(zhǎng)期和突然的壓力變化。使用UART接口可能會(huì)給設(shè)計(jì)帶來(lái)一個(gè)可能非直觀的設(shè)計(jì)問(wèn)題。由于頻率較低,您可能還希望功率要求較低。不幸的是,你可能遇到這樣的情況,因?yàn)閭鬏旑l率很低,UART需要保持很長(zhǎng)時(shí)間。只要UART處于活動(dòng)狀態(tài),功耗就會(huì)消耗殆盡。
我們的示例設(shè)計(jì)需要的是一個(gè)節(jié)能的UART外設(shè),在激活時(shí)使用很少的功率,并且可以很容易地關(guān)閉它。不需要。現(xiàn)在,有幾種MCU包含具有這些特性的專用低功耗UART,STMicroelectronics的圖2所示的低功耗UART顯示了UART的功效如何。
圖2:STM32L低功耗UART框圖。 (由STMicroelectronics提供)典型的UART功能 - 發(fā)送數(shù)據(jù)寄存器,接收數(shù)據(jù)寄存器,控制寄存器,波特率選擇和整體控制單元 - 在程序框圖中都很明顯,但不是容易發(fā)現(xiàn),即使MCU處于低功耗停止模式,UART也能運(yùn)行。 UART可以等待輸入數(shù)據(jù)幀,并通過(guò)中斷將MCU從停止模式喚醒。如果UART數(shù)據(jù)是傳感器融合算法中的重要元素,則CPU可以將數(shù)據(jù)移動(dòng)到存儲(chǔ)器或立即開(kāi)始處理。由于低功耗UART外設(shè)可以在CPU處于停止模式時(shí)接收數(shù)據(jù),因此傳輸過(guò)程中所需的功率大大減少,這大大提高了我們的功率效率。當(dāng)您需要連接到MCU的低速串行接口時(shí),請(qǐng)尋找類似的低功耗特性。
高性能連接
在某些傳感器應(yīng)用中,頻繁或以高數(shù)據(jù)速率訪問(wèn)傳感器數(shù)據(jù)非常重要。在我們的示例設(shè)計(jì)中,音頻傳感器需要最高帶寬。其他類型的傳感器,例如光,溫度,壓力和位置,不經(jīng)常改變,因此可以以低得多的速率進(jìn)行監(jiān)測(cè)。大多數(shù)MCU提供的高速接口有多種選擇,SPI,QSPI和I?C作為流行的選擇。例如,Atmel SAM4S4A MCU支持多通道SPI和I?C。該器件的另一個(gè)功能是即使在極低功耗模式下也可以保留SRAM,這樣傳感器數(shù)據(jù)包在存儲(chǔ)在SRAM中時(shí)不會(huì)丟失。當(dāng)?shù)凸氖亲钪匾目紤]因素時(shí),尋找這種能力。
許多MCU支持流行的I?S音頻接口,而且這通常是音頻處理應(yīng)用的明顯選擇?,F(xiàn)代音頻編解碼器通常支持多個(gè)接口,因此您可以選擇適合您應(yīng)用的接口。德州儀器TLV320AIC3254立體聲音頻編解碼器(圖3)支持I?S,I?C和SPI,因此您可以選擇多種接口選項(xiàng)。
圖3 :德州儀器(TI)的音頻編解碼器具有多種串行接口支持。 (由Texas Instruments提供)當(dāng)您的應(yīng)用程序傳輸音頻數(shù)據(jù)時(shí),I?S接口是一個(gè)很好的選擇。讓我們假設(shè)在我們的示例中,傳感器需要不經(jīng)常測(cè)量音頻電平和頻率(可能最多每秒一次),以測(cè)試環(huán)境是否符合工廠車間勞動(dòng)力的聲音暴露規(guī)定。在不丟失任何數(shù)據(jù)且不干擾其他測(cè)量的情況下捕獲一秒鐘的聲音是很重要的。在這種情況下,I?S接口是一個(gè)不錯(cuò)的選擇,并允許從其他I?C或SPI端口獨(dú)立操作。
使用I?S還可以使我們最小化功耗,因?yàn)樗鼉H在音頻捕獲期間開(kāi)啟期。通常I?S可以與DMA結(jié)合使用,這樣CPU就可以進(jìn)入低功耗模式,直到數(shù)據(jù)全部被捕獲并準(zhǔn)備好處理?;蛘撸珻PU可以在捕獲數(shù)據(jù)時(shí)處理數(shù)據(jù)。如果音頻功能的總“接通時(shí)間”減少,則可能最終降低功率??紤]在設(shè)計(jì)中比較這兩種方法,并根據(jù)您的要求選擇效率最高的方法。
不要忘記模擬
盡管許多傳感器使用串行接口,但不要忘記簡(jiǎn)單的模數(shù)轉(zhuǎn)換器(ADC)可用于許多傳感器應(yīng)用。有些ADC可以獨(dú)立于CPU運(yùn)行,這樣可以在轉(zhuǎn)換過(guò)程中輕松將CPU置于低功耗模式。例如,STM32F4 MCU有一個(gè)ADC,可以使用直接存儲(chǔ)器訪問(wèn)(DMA)控制器將捕獲的數(shù)據(jù)直接傳輸?shù)酱鎯?chǔ)器。 ADC也可以通過(guò)定時(shí)器計(jì)數(shù)器模塊啟動(dòng),因此無(wú)需CPU干預(yù)即可輕松進(jìn)行定期測(cè)量。這些啟動(dòng)觸發(fā)信號(hào)如圖4中STM32F4 ADC框圖底部所示。
圖4:STMicroelectronics STM32F4 MCU ADC框圖。 (由STMicroelectronics提供)為了進(jìn)一步提高效率,模擬看門(mén)狗功能可以非常精確地監(jiān)控一個(gè),部分或全部所選通道的轉(zhuǎn)換電壓。當(dāng)轉(zhuǎn)換電壓超出編程閾值時(shí),會(huì)產(chǎn)生中斷。這在我們的示例環(huán)境監(jiān)測(cè)設(shè)計(jì)中特別有用,因?yàn)槌菧y(cè)量偏離“安全”區(qū)域,否則CPU不需要處于活動(dòng)狀態(tài)。這樣可以降低功耗,并使CPU能夠?qū)W⒂陉P(guān)鍵處理要求。
結(jié)論
對(duì)于傳感器融合設(shè)計(jì),降低CPU開(kāi)銷的高效接口至關(guān)重要。釋放CPU以便它可以處理各種傳感器數(shù)據(jù),其中算法可以組合或融合數(shù)據(jù)以識(shí)別重要事件,從而創(chuàng)建智能傳感器融合設(shè)備。這些智能設(shè)備將成為不斷擴(kuò)展的物聯(lián)網(wǎng)環(huán)境中的關(guān)鍵元素。