快速跟蹤您的下一個無線傳感器設計
發(fā)布時間:2023-03-31 16:21:49
打造新的多傳感器系統(tǒng)可能是一項艱苦工作,因為您必須確保設計符合傳感器的特定要求,并做到長期的準確性和可靠性。 當根據應用的要求,需要更多無線連接時,設計師很難提供這樣一種解決方案——既能最大限度提高無線電靈敏度,擴大其覆蓋范圍,又能維持無噪聲信號鏈運行。 專為傳感器應用而設計的單板計算機 (SBC) 可提供出色的解決方案,來滿足無線傳感器的復雜要求,而不影響緊湊的項目時間表。
通常,傳感器系統(tǒng)設計會將微控制器 (MCU) 與更多的模擬電路與數字控制邏輯相結合,后者用于準確可靠地獲取并發(fā)送傳感器數據(圖 1)。 SBC 可通過提供結合軟硬件與傳感器應用開發(fā)工具的測試平臺,來加快這些系統(tǒng)的設計。 開發(fā)人員可以專注于優(yōu)化所需的特性與功能以滿足其獨特應用的特定要求,而不必花時間重新創(chuàng)建眾多傳感器設計所通用的基本系統(tǒng)。
圖 1: 大多數傳感器系統(tǒng)都采用共同的設計,其中包含用于傳感器信號采集的微控制器 (MCU) 和模擬前端 (AFE)、用于將傳感器數據發(fā)送至其他設備或主機系統(tǒng)的通信子系統(tǒng)。 (圖片來源: Texas Instruments)
Texas Instruments 和 NXP 推出的專業(yè)板級系統(tǒng)專門用于傳感器應用,結合了無線傳感器硬件和專業(yè)軟件庫,以及能幫助加快設計和測試這些應用的完整開發(fā)環(huán)境。
緊密集成的 SBC
Texas Instruments SensorTag 提供一種緊密集成的解決方案,可以在僅 5 x 6.7 x 1.4 cm 的封裝內提供全面的傳感器處理系統(tǒng)。 SensorTag 基于 TI CC2650 無線 MCU 的功能構建,并增加了一些必要的元器件,用于連接 CC2650 與在 SensorTag 板上構建的多個傳感器和用戶接口備(圖 2)。
圖 2:Texas Instruments SensorTag 利用 TI CC2650 無線 MCU 的無線通信及傳感器處理的集成功能,為傳感器應用的快速開發(fā)提供多個傳感器和接口。 (資料來源: Texas Instruments)
TI SensorTag 專門用于所連接傳感器應用的快速開發(fā),是一個全面的、可支持許多不同開發(fā)風格的開發(fā)套件。 實際上,開發(fā)人員使用其默認模式就可以開始快速處理傳感器數據。 在以默認模式啟動后,SensorTag 會向智能手機等支持低功耗藍牙的核心設備廣播自己。 開發(fā)人員通過云端從 SensorTag 即可訪問傳感器數據,或者使用 JavaScript 和 jQuery 直接訪問數據。 在此模式下,開發(fā)人員可以使用 Android 或 iOS 移動應用作為起點,或根據與套件一起提供的網絡應用項目樣例中的源代碼寫入獨立于 HTML5 平臺的代碼。
對于更復雜的定制應用,SensorTag 硬件會提供一個基于開放式硬件解決方案構建的高級開發(fā)平臺。其中,開放式硬件解決方案旨在展示如何使用多樣化低功耗傳感器。 開發(fā)人員可以使用稱為 DevPack 的子卡進一步擴展 SensorTag,這使設計和測試其他類型的傳感器和致動器變得容易。 需要特別說明的是,SensorTag 和可用的 Debug DevPack 結合后,可提供一個實惠、全面的平臺,用于為傳感器應用開發(fā)定制軟硬件(圖 3)。
圖 3:Texas Instruments 的 SensorTag Debugger DevPack 用于為 SensorTag 增加測試和調試功能,包括 JTAG 調試功能、可簡化硬件添加的 Grove 連接焊盤(例如添加 Seeed Technology 的 Grove 指紋傳感器時)。 (圖片來源:Texas Instruments)
對于無線部署,SensorTag 套件包括低功耗藍牙 (BLE) 堆棧,進而在 TI 實時操作系統(tǒng) (TI-RTOS) 軟件環(huán)境中運行。 TI-RTOS 是一個實時、先占式、多線程操作系統(tǒng),可以同步執(zhí)行應用程序與 BLE 協(xié)議棧,此二者皆在 RTOS 內作為單獨任務運行。 在此,BLE 堆棧按最高優(yōu)先順序運行,以幫助確??煽客ㄐ?。
在 SensorTag 中,無線事務本身利用 CC2650 的集成 RF 核心,其中包括與模擬 RF 及基帶電路集成的 ARM® Cortex®-M0 處理器。 盡管工程師無法對 RF 核心的 M0 處理器進行編程,但 TI 提供高級別、基于命令的應用編程接口 (API),可實現從主處理器上運行的代碼發(fā)布命令至 RF 核心。 RF 核心轉而使用其專用的 4 KB SRAM(用于數據)和 ROM(用于代碼),以自主方式處理無線協(xié)議的時間關鍵型部分——減輕主 CPU 的負載,并保留資源供應用本身使用。
簡化的軟件開發(fā)
借助 CC2650 中的集成自主處理器——傳感器控制器引擎 (SCE),傳感器信號的處理可以同樣高效。 正如 RF 核心可獨立地執(zhí)行無線事務,SCE 可獨立于主處理器控制傳感器和關聯的外設。 因此,SCE 可以運行模數轉換器 (ADC) 或通過集成的串行外設接口 (SPI) 輪詢數字傳感器而不用喚醒主處理器,從而消除了采集傳感器數據所需的的額外功耗和喚醒時間。
與 RF 核心不同,工程師可以對 SCE 進行編程。 通過使用類 C 語言,開發(fā)人員可以編寫定制代碼來執(zhí)行傳感器輪詢或應對特殊條件和處理要求。 因此,開發(fā)人員可以創(chuàng)建更多動態(tài)傳感器處理功能,而不必依靠為傳感器數據采集設置外設時常用的這種靜態(tài)配置。 TI 針對傳感器代碼部署提供 Sensor Controller Studio (SCS),這是一種用于為 SCE 編寫、測試和調試代碼的特殊軟件工具(圖 4)。
圖 4:開發(fā)人員使用 TI Sensor Controller Studio 軟件開發(fā)工具和類 C 語言對 CC2650 的集成傳感器控制器引擎進行編程。 這會生成 C 源代碼,以納入專門在 CC2650 無線 MCU 上運行的主要應用中。 (圖片來源: Texas Instruments)
SCS 會生成傳感器控制器接口驅動程序,即一組 C 源文件。 開發(fā)人員會轉而使用 TI Code Composer Studio (CCS) 編譯這些 C 源文件,其中的任何其他定制代碼專門作為主要應用的一部分在 CC2650 的 ARM Cortex-M3 主機處理器上運行。
CCS 是一個基于 Eclipse 的集成開發(fā)環(huán)境 (IDE),為 TI MCU 系列的應用開發(fā)和調試提供給了全套工具。 在其開發(fā)功能中,Code Composer Studio 包括一個不斷優(yōu)化的 C/C++ 編譯器、源代碼編輯器、項目構建環(huán)境、調試器和分析器——全部通過 IDE 的單用戶接口訪問,該接口旨在方便開發(fā)人員完成應用程序開發(fā)的每個階段。
靈活的傳感器解決方案
NXP 為其 OM13078 傳感器處理運動解決方案 (SPM-S) 采取了不同的方法。 SPM-S 以 NXP LPC54102 MCU 為基礎,結合了 NXP 的 OM13077 LPCXpresso 板與通過 LPCXpresso 的擴展接口連接的傳感器擴展板(圖 5)。 如圖所示,傳感器擴展板包括一個用于無線通信的 BLE 模塊 (AMS0002) 和多個用于溫度、壓力、環(huán)境光和距離的傳感器,以及用于更復雜的運動檢測應用的加速計、陀螺儀和磁力儀傳感器。
圖 5:NXP 提供了一種傳感器解決方案。該方案結合了 LPC54102 LPCXpresso 板與裝載多個傳感器的擴展板,以及包括完整傳感器軟件庫的全套開發(fā)環(huán)境。 (圖片來源: NXP)
對于隨附的運行時間軟件環(huán)境,NXP 提供其 LPC 傳感器框架,其中包括系統(tǒng)軟件和傳感器處理軟件(圖 6)。 正常操作期間,LPC54102 MCU 會對傳感器進行采樣,并使用 Bosch Sensortec BSX Lite 庫處理傳感器數據。 通過無線 BLE 通信或 LPCXpresso 板支持的多個主機接口中的任一接口,可將結果進一步發(fā)送至其他設備或主機處理器。
圖 6:開發(fā)人員在 NXP 的 LPC 傳感器框架上構建傳感器應用,該框架提供全面的運行時間環(huán)境,包括系統(tǒng)服務和傳感器信號處理,以及通過 Bosch Sensortec BSX Lite 庫對傳感器融合應用的內置支持功能。 (圖片來源: NXP)
傳感器融合架構
除了從多個傳感器收集數據的基本功能外,SPM-S 解決方案還具有通過專為高級情境感知應用而設計的傳感器融合算法合并多個傳感器輸出的能力,因此在眾多解決方案中脫穎而出。 傳感器融合功能結合了多個傳感器的結果,可提供無法從任何單個傳感器獲得的信息。 例如,專門識別方向的應用需要加速計、磁力儀和陀螺儀傳感器的組合結果。 NXP 專門設計了 SPM-S 系統(tǒng),以使用系統(tǒng)中包括的傳感器融合軟件來匯總多個實體傳感器的數據。
SPM-S 架構中深度嵌入了對傳感器融合的支持功能。 正如典型的傳感器系統(tǒng)那樣,SPM-S 架構會將傳感器設備識別為連接至 SPM-S 硬件的獨特實體設備。 軟件使用 sensors.h 傳感器頭文件中提供的唯一 ID 訪問每個設備(圖 7)。
圖 7:每個實體傳感器都可以通過傳感器頭文件 sensors.h 中的 PhysSensorId 計數器中定義的唯一傳感器 ID 來識別。 (圖片來源: NXP)
要在應用層級支持傳感器融合,SPM-S 架構可利用其在底層軟件層支持虛擬傳感器來擴展此基本概念。 單個虛擬傳感器包含多個物實體傳感器,這些傳感器的結果按照傳感器融合算法合并后產生新信息。
例如,對計算方向信息所需的加速度計、磁力儀和陀螺儀傳感器數據進行合并而產生的傳感器融合結果,會由虛擬方向傳感器傳回。 在 SPM-S 開發(fā)環(huán)境中,開發(fā)人員可以指定系統(tǒng)的 SensorMap 陣列中的虛擬傳感器(圖 8)。 在此陣列中,會將每個虛擬傳感器列為單個條目,并由該條目指定該虛擬傳感器使用哪些實體傳感器。
圖 8: SensorMap 陣列描述了向虛擬傳感器提供數據的物理傳感器。 例如,方向的虛擬傳感器使用加速計、磁力儀和陀螺儀等實體傳感器。 (圖片來源: NXP)
SPM-S 架構中的另一個深度嵌入功能,可以在一個虛擬傳感器中結合多個傳感器的結果時幫助維持同步。
準確的傳感器融合結果需要準確計時,以確保按傳感器融合算法只合并相同“時間點”的樣本。 在 SPM-S 中的中斷驅動采樣期間,傳感器會按預先定義的速率自主采樣并在結果就緒時產生中斷。 每個中斷驅動的傳感器都有關聯的中斷處理程序,中斷處理程序只是在發(fā)生中斷時存儲時間戳;實際的傳感器結果讀取在后續(xù)服務程序中執(zhí)行。 此方法有助于維護所需的準確時序數據,以從多個單獨物理傳感器的數據生成準確的虛擬傳感器結果。
結論
基本無線傳感器系統(tǒng)的設計可能會形成影響項目時間表,以及不利于應用本身的重大挑戰(zhàn)。 專業(yè)的單板計算機為傳感器處理提供成熟可靠的軟硬件基礎,讓各公司可以將資源更明確地集中于差異化的傳感器應用。 通過使用 SBC 及其關聯的開發(fā)環(huán)境,工程師可以快速開發(fā)傳感器應用,甚至擴展基本的軟硬件以打造滿足更復雜要求的定制解決方案。