準(zhǔn)確可靠地感測(cè)位置、方向和運(yùn)動(dòng)已經(jīng)成為許多細(xì)分市場(chǎng)(包括消費(fèi)、工業(yè)和軍用/航空)各種應(yīng)用領(lǐng)域的必要需求。 要提供這種復(fù)雜的數(shù)據(jù),適用的傳感器系統(tǒng)除了整合來(lái)自基本的陀螺儀傳感器或加速計(jì)的結(jié)果外,還需其他方面的結(jié)果。
從這些單獨(dú)的傳感器獲得準(zhǔn)確的讀數(shù)本身就很難,系統(tǒng)設(shè)計(jì)人員還需進(jìn)一步組合多個(gè)傳感元件的輸出,并通過(guò)傳感器融合來(lái)整合其輸出。 然而,實(shí)施傳感器融合的復(fù)雜性極易造成系統(tǒng)開發(fā)停滯不前。
為此,設(shè)計(jì)人員可以轉(zhuǎn)而使用 Bosch Sensortec 的兩款方向傳感器器件。 這些器件提供了一種比定制傳感器融合設(shè)計(jì)更簡(jiǎn)單的替代方案,通過(guò)現(xiàn)成的解決方案加快傳感器融合功能的開發(fā)。
傳感器融合的需求
感知方向和運(yùn)動(dòng)的能力在依賴虛擬或物理運(yùn)動(dòng)的應(yīng)用中起著至關(guān)重要的作用。 智能手機(jī)依靠這種能力來(lái)進(jìn)行各種操作,簡(jiǎn)單如縱向顯示切換到橫向顯示,復(fù)雜如無(wú)需 GPS 輔助即可操作的慣性導(dǎo)航應(yīng)用。 除了智能手機(jī)及許多其他消費(fèi)品和工業(yè)物聯(lián)網(wǎng) (IoT) 產(chǎn)品外,醫(yī)療和汽車應(yīng)用越來(lái)越需要一定程度的方向感知功能。 雖然在實(shí)施具有方向感知的傳感器融合設(shè)計(jì)上會(huì)有所起伏,但這讓設(shè)計(jì)人員有機(jī)會(huì)提供與眾不同的設(shè)計(jì)。
在硬件層面,底層傳感系統(tǒng)用加速計(jì)檢測(cè)運(yùn)動(dòng),用陀螺儀感測(cè)旋轉(zhuǎn),并用磁力儀識(shí)別航向。 理論上,這些傳感器可以提供確定方向、位置和航向所需的所有必要信息。
然而在實(shí)踐中,每種傳感器在其傳輸必要數(shù)據(jù)的能力方面都表現(xiàn)出嚴(yán)重的局限性。 加速計(jì)的高靈敏度會(huì)帶來(lái)高噪聲。 陀螺儀會(huì)隨時(shí)間產(chǎn)生漂移,因此不能提供絕對(duì)旋轉(zhuǎn)數(shù)據(jù)。 磁力儀會(huì)響應(yīng)所有磁場(chǎng)并會(huì)因給定設(shè)置中發(fā)現(xiàn)的磁性材料產(chǎn)生異常結(jié)果。
此外,這些傳感器類型中沒有一個(gè)能夠明確地測(cè)量偏航等更復(fù)雜的運(yùn)動(dòng),更不用說(shuō)根據(jù)地球的磁場(chǎng)識(shí)別傳感器的絕對(duì)方向。 要取得這些更復(fù)雜的結(jié)果,需要在所謂的“傳感器融合”的過(guò)程中組合傳感器數(shù)據(jù)。
傳感器融合方法
傳感器融合會(huì)合并來(lái)自多個(gè)傳感器的數(shù)據(jù),以得出從單個(gè)傳感器無(wú)法得出的結(jié)果。 方向和慣性導(dǎo)航專家采用為特定類別的應(yīng)用設(shè)計(jì)的一系列傳感器融合算法。 這些算法的細(xì)節(jié)不在本文的探討范圍內(nèi),但每種算法都力求優(yōu)化原始傳感器數(shù)據(jù)的合并,這些數(shù)據(jù)經(jīng)傳感器噪聲和精度等各種特性進(jìn)行了靜態(tài)或動(dòng)態(tài)加權(quán)。 結(jié)果是使用諸如歐拉角或四元數(shù)等抽象概念的方向和運(yùn)動(dòng)的數(shù)學(xué)投影。
幸運(yùn)的是,開發(fā)人員不必成為傳感器融合算法的專家就能利用這些算法的功能。 在構(gòu)建傳感器融合應(yīng)用時(shí),開發(fā)人員可以使用現(xiàn)有的軟件解決方案,如 NXP Semiconductors 傳感器融合庫(kù)。 設(shè)計(jì)用于在 Kinetis K20 之類的 MCU 上運(yùn)行的 NXP 軟件可以組合使用由可編程增益放大器 (PGA)、比較器和模數(shù)轉(zhuǎn)換器 (ADC) 組成的 MCU 集成模擬信號(hào)鏈采集的傳感器數(shù)據(jù)。
這種基于 MCU 的方法在滿足特定應(yīng)用需求方面具有極大的靈活性。 沒有傳感器融合理論經(jīng)驗(yàn)的開發(fā)人員可以使用現(xiàn)成的庫(kù)開發(fā)經(jīng)過(guò)優(yōu)化的系統(tǒng)。 希望實(shí)施更專業(yè)算法的專家可以在目標(biāo)應(yīng)用程序中替換其代碼。 即使如此,所有開發(fā)人員在前端傳感器系統(tǒng)自身的設(shè)計(jì)上仍面臨重大挑戰(zhàn)。
不管算法如何,傳感器融合結(jié)果的精度很大程度上取決于底層傳感器設(shè)計(jì)。 作為傳感器融合的基本要求,傳感器測(cè)量值需要緊密/或足夠緊密地同步,以滿足時(shí)間分辨率的應(yīng)用要求。 目標(biāo)傳感器的物理布局等問題會(huì)影響同步,特別是對(duì)于傳感器遠(yuǎn)離傳感器處理設(shè)備的應(yīng)用而言。 在這些情況下,傳感器及其各自的信號(hào)處理鏈之間的不同時(shí)序路徑會(huì)導(dǎo)致同步中出現(xiàn)系統(tǒng)定時(shí)誤差。 雖然開發(fā)人員可以解釋這些差異,但基于集成傳感器的方法化解了這個(gè)問題。
集成傳感器模塊簡(jiǎn)化了融合
集成傳感器器件將每個(gè)目標(biāo)傳感器放置在同一個(gè)模塊上,消除了有關(guān)不同時(shí)序路徑的實(shí)際問題。 此外,使用這種器件,開發(fā)人員可以依賴于其傳感器模塊設(shè)計(jì)人員來(lái)盡量減少噪聲源或會(huì)影響傳感器精度的其他設(shè)計(jì)因素。 事實(shí)上,Bosch Sensortec 通過(guò)其 BMF055 9 軸方向傳感器使這種方法更進(jìn)一步。 這種系統(tǒng)級(jí)封裝 (SiP) 器件將 Atmel ATSAMD20J18A 32 位 MCU 和與其 BMA280 加速計(jì)、BMG160 陀螺儀和 BMM150 地磁傳感器(圖 1)大致相當(dāng)?shù)膫鞲衅骷右约伞?(注意,BMF055 的傳感器在某些性能值方面與其獨(dú)立的等效產(chǎn)品有所不同。)
圖 1: Bosch Sensortec BMF055 將傳感器與基于Atmel Cortex-M0 + 的 MCU 相結(jié)合,收集原始傳感器數(shù)據(jù)并執(zhí)行傳感器融合,簡(jiǎn)化了方向和慣性測(cè)量應(yīng)用的傳感器系統(tǒng)設(shè)計(jì)。 (圖片: Bosch Sensortec)
基于 ARM? Cortex?-M0+ 內(nèi)核的內(nèi)置 Atmel ATSAMD20J18A MCU 集成了 32 KB 的 SRAM 和 256 KB 的閃存。 它用作本地主機(jī),通過(guò) SPI 總線獲取原始傳感器數(shù)據(jù),并在模塊內(nèi)執(zhí)行傳感器融合軟件算法。 反過(guò)來(lái),Atmel MCU 通過(guò) USART 接口與外部主機(jī)通信,以傳輸最終的傳感器融合結(jié)果。
硬件設(shè)計(jì)簡(jiǎn)單明了。 BMF055 只需要一個(gè)外部 32 KHz 晶體和電容即可完成傳感器融合設(shè)計(jì)(圖 2)。 事實(shí)上,Bosch Sensortec BMF055 評(píng)估套件提供了一個(gè)簡(jiǎn)單的即用型開發(fā)平臺(tái),將分線板與包含 BMF055 和所有必要組件的小板組合在一起。
圖 2: Bosch Sensortec BMF055 幾乎不需要額外組件來(lái)實(shí)施方向傳感器系統(tǒng),并提供串行接口用于開發(fā)及將傳感器融合結(jié)果傳輸?shù)街鳈C(jī)系統(tǒng)。 (圖片: Bosch Sensortec)
BMF055 SiP 消除了傳感器融合設(shè)計(jì)硬件實(shí)施的重大障礙。 需要自行編寫傳感器融合算法的開發(fā)人員可以使用 BMF055 作為集成替代方案,不用再創(chuàng)建基于 MCU 的傳感器融合設(shè)計(jì)。 事實(shí)上,Bosch Sensortec 在基于 Atmel 軟件框架 (ASF) 的分層架構(gòu)中提供了 BSX-Lite 傳感器融合庫(kù)。
該軟件包在每一層上都公開了一系列 API,用于訪問 BSX-Lite 庫(kù)、傳感器驅(qū)動(dòng)程序和底層 ASF 驅(qū)動(dòng)程序(圖 3)。 實(shí)際的運(yùn)行時(shí)間代碼駐留在隨分發(fā)包提供的封裝庫(kù)中。 開發(fā)人員可以在提供的堆棧上快速構(gòu)建其應(yīng)用程序,根據(jù)特定應(yīng)用程序需求替換自己的專有傳感器融合庫(kù)。
圖 3: Bosch Sensortec 提供傳感器融合軟件包,允許通過(guò) API 訪問 BSX-Lite 傳感器融合庫(kù)、傳感器和 Atmel 軟件框架 (ASF)。 (圖片: Bosch Sensortec)
Bosch Sensortec 軟件包甚至包含示例代碼,該代碼能展現(xiàn)用于執(zhí)行各種器件操作(代碼列表)的高級(jí)調(diào)用。 軟件為每個(gè)傳感器提供了分類,因此從特定傳感器讀取數(shù)據(jù)就像為相應(yīng)類別的實(shí)例調(diào)用適當(dāng)?shù)姆椒ㄒ粯雍?jiǎn)單。 傳感器支持庫(kù)中的低級(jí)例程執(zhí)行必要的總線讀取,由嵌入式 MCU 執(zhí)行,以通過(guò) SiP 模塊的內(nèi)部 SPI 總線訪問傳感器器件寄存器。
void bmf055_sensors_initialize (void)
{
/* Initialize BMA280 */
bma_init();
/*BMA settings for running BSXLite: Range = 2G, BW = 62.5Hz*/
bma2x2_set_range(BMA2x2_RANGE_2G);
bma2x2_set_bw(BMA2x2_BW_62_50HZ);
/* Initialize BMG160 */
bmg_init();
/* BMG settings for running BSXLite: Range = 500dps, BW = 64Hz*/
bmg160_set_range_reg(0x02);
bmg160_set_bw(0x06);
/* Initialize BMM150 */
bmm_init();
/*BMM settings for running BSXLite: Preset mode = Regular, Functional state = Forced mode*/
bmm050_set_presetmode(BMM050_PRESETMODE_REGULAR);
bmm050_set_functional_state(BMM050_FORCED_MODE);
}
代碼列表。 BMF055 軟件包含有示例例程,展示了如何使用高級(jí)例程進(jìn)行一些操作,例如對(duì)器件的三個(gè)集成傳感器進(jìn)行初始化。 (代碼來(lái)源: Atmel/Bosch Sensortec)
直接替代型解決方案
憑借完整的可編程性,BMF055 為需要定制功能,甚至專門的傳感器融合計(jì)算的應(yīng)用提供了有效的解決方案。 對(duì)于尋求快速直接替代型解決方案的開發(fā)人員,Bosch Sensortec BNO055 將傳感器融合固件與傳感器和 MCU 集成,直接輸出固件所生成的高級(jí)信息。 BNO055 使用基于寄存器的方法,能讓主機(jī)獲得最終的結(jié)果,包括加速度、線性加速度、重力矢量、磁場(chǎng)強(qiáng)度、角速率、溫度,以及歐拉角或四元數(shù)的方向。
對(duì)于硬件集成,模塊提供 I2C 和 UART 端口用于連接到主機(jī),并需要與 BMF055 相同的基本晶體和電容器補(bǔ)充。 與 BMF055 一樣,Bosch Sensortec 還提供了一個(gè) BNO055 開發(fā)板,其中包括該器件和所有必需的組件。
因?yàn)?BNO055 執(zhí)行傳感器融合計(jì)算并提供最終結(jié)果,所以軟件界面相對(duì)簡(jiǎn)單。 基本器件驅(qū)動(dòng)程序處理外部主機(jī)通過(guò) I2C 或 UART 硬件接口訪問器件所需的總線讀寫操作。
低級(jí)軟件例程會(huì)訪問 BNO055 的專用寄存器來(lái)檢索特定的傳感器融合結(jié)果。 例如,驅(qū)動(dòng)程序例程 bno055_read_accel_xyz() 會(huì)讀取原始線性加速度數(shù)據(jù),bno055_convert_float_accel_xyz_msq() 函數(shù)會(huì)將數(shù)據(jù)轉(zhuǎn)換為以 m/s2 為單位的浮點(diǎn)值。
總結(jié)
增強(qiáng)現(xiàn)實(shí)、無(wú)人機(jī)和智能手機(jī)等應(yīng)用依賴于確定方向和運(yùn)動(dòng)的能力。 傳感器融合基于不能單獨(dú)生成信息或者不能明確和快速生成信息的傳感器來(lái)提供這些信息。 對(duì)于設(shè)計(jì)人員來(lái)說(shuō),創(chuàng)建合適的傳感器解決方案在硬件設(shè)計(jì)和軟件開發(fā)方面都面臨重大挑戰(zhàn)。
BMF055 和 BNO055 器件能滿足快速開發(fā)傳感器融合設(shè)計(jì)的定制和直接替代型解決方案的需求。
-
傳感器
+關(guān)注
關(guān)注
2552文章
51383瀏覽量
756012 -
BOSCH
+關(guān)注
關(guān)注
14文章
54瀏覽量
54341 -
BMA280
+關(guān)注
關(guān)注
0文章
3瀏覽量
11195
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論