国产精品免费无遮挡无码永久视频-国产高潮视频在线观看-精品久久国产字幕高潮-国产精品99精品无码视亚

如何快速啟動 3D 光學(xué)飛行時間感測設(shè)計

發(fā)布時間:2022-5-7 11:13    發(fā)布者:eechina
關(guān)鍵詞: 3D , ToF
來源:Digi-Key
作者:Stephen Evanczuk

在從工業(yè)感測到基于手勢的用戶界面等各種應(yīng)用中,光學(xué)飛行時間 (ToF) 距離測量扮演著重要角色。隨著精確、高速多像素 ToF 傳感器的出現(xiàn),開發(fā)人員可以實現(xiàn)這些應(yīng)用中需要的更復(fù)雜的三維 (3D) 感測算法。然而,由于多像素光學(xué)感測子系統(tǒng)相當(dāng)復(fù)雜,開發(fā)時間會較長。

本文將討論 ToF 的基本原理,然后介紹 Broadcom 的光學(xué) ToF 評估套件,借助該套件,開發(fā)人員能夠快速進(jìn)行精確的 1D 和 3D 距離測量應(yīng)用原型設(shè)計,并可快速實現(xiàn)定制的光學(xué) ToF 感測解決方案。

光學(xué) ToF 技術(shù)基礎(chǔ)知識

光學(xué) ToF 技術(shù)能夠根據(jù)光在空氣中傳播所需的時間做出測量,被廣泛用于多種應(yīng)用以獲得所需的精確距離。執(zhí)行這些測量時,具體計算通常依賴于兩種方法:直接和間接 ToF。在直接 ToF 法(也稱作“脈沖測距”)中,設(shè)備利用公式 1 測量 ToF 傳感器發(fā)射和接收特定光脈沖之間的間隔時間。

  公式 1

其中:

c0 = 真空中的光速

∆T = 發(fā)射和接收的間隔時間

雖然概念很簡單,但要用這種方法實現(xiàn)精確測量,還面臨著許多挑戰(zhàn),包括需要足夠強(qiáng)大的發(fā)射器和接收器、改善信噪比,以及精確的脈沖邊緣檢測。

相反,間接 ToF 法使用調(diào)制連續(xù)波,并根據(jù)公式 2 測量發(fā)射信號與接收信號之間的相位差:

  公式 2

其中:

c0 = 真空中的光速

fmod = 激光調(diào)制頻率

∆φ = 確定的相位差

除了降低發(fā)射器和接收器的功率要求外,間接 ToF 法放寬了對脈沖整形的要求,簡化了執(zhí)行 3D 測距和運動檢測的設(shè)計復(fù)雜程度。

直接法和間接法都需要仔細(xì)設(shè)計光學(xué)前端,并精確控制發(fā)射器和接收器的信號。多年來,開發(fā)人員已經(jīng)能夠利用集成光學(xué) ToF 傳感器的優(yōu)勢,將發(fā)射裝置和接收傳感器組合在單一封裝中。然而,這類設(shè)備的前幾代通常要求開發(fā)人員在一些性能或操作特性(如功耗、量程、精度和速度)方面做出權(quán)衡。對于越來越多的工業(yè)感測應(yīng)用,這種妥協(xié)已經(jīng)成為主要障礙,因為這些應(yīng)用需要在不超過 10 m 的中等距離內(nèi)運行。

更先進(jìn)的間接 ToF 傳感器模塊,如 Broadcom 的 AFBR-S50MV85G,則專門用于滿足在中等距離范圍內(nèi)獲得高速、準(zhǔn)確的結(jié)果,同時保持最小封裝尺寸和功耗這一日益增長的需求。基于這種傳感器,Broadcom 的 AFBR-S50MV85G-EK 評估套件及相關(guān)軟件開發(fā)套件 (SDK) 提供了一個多像素 ToF 傳感器開發(fā)平臺,使開發(fā)人員能夠快速實現(xiàn) 3D ToF 感測應(yīng)用。

集成模塊如何簡化 ToF 距離測量

AFBR-S50MV85G 模塊專為工業(yè)感測應(yīng)用而開發(fā),在單一封裝中提供了完整的光學(xué) ToF 感測解決方案。其集成元器件包括一個用于發(fā)射紅外光 (IR) 的 850 nm 垂直腔面發(fā)射激光器 (VCSEL)、一個 32 像素的六角形傳感器矩陣、用于 VCSEL 和傳感器光學(xué)器件的集成透鏡,以及一個專用集成電路 (ASIC)。

發(fā)射器相對于感測矩陣以固定對齊的方式定位,照射目標(biāo)物體,從而使感測矩陣中的一些像素檢測到反射的紅外信號。在基本操作中,這使該模塊能夠支持從白色、黑色、彩色、金屬或反光表面進(jìn)行精確的距離測量——即使在陽光直射下亦如此,這得益于其內(nèi)置的環(huán)境光抑制功能。

隨著與物體的距離減小,可對視差進(jìn)行自動補(bǔ)償,使得測量幾乎沒有距離下限。同時,紅外照射與感測矩陣相結(jié)合,可以獲得關(guān)于物體的更多信息,包括其運動、速度、傾斜角度或橫向?qū)R。因此,該模塊可以提供必要的數(shù)據(jù),以確定經(jīng)過或接近的目標(biāo)物體的方向和速度(圖 1)。


圖 1:利用從 AFBR-S50MV85G 模塊的 8×4 像素感測矩陣獲得的數(shù)據(jù),開發(fā)人員可以實現(xiàn)能夠測量物體運動特性的 3D 應(yīng)用。(圖片來源:Broadcom)

該模塊的內(nèi)置 ASIC 協(xié)調(diào)其 VCSEL 和感測矩陣的精確運行,提供驅(qū)動 VCSEL、從感測矩陣捕獲模擬信號以及進(jìn)行數(shù)字信號調(diào)節(jié)所需的全部電路(圖 2)。


圖 2:AFBR-S50MV85G 模塊中集成的 ASIC 包括驅(qū)動該模塊的 VCSEL 光源、獲取來自感測矩陣的接收信號以及生成通過 SPI 總線傳輸?shù)臄?shù)字?jǐn)?shù)據(jù)所需的全部電路。(圖片來源:Broadcom)

該 ASIC 集成了電源電路,使該模塊能夠在單一的 5 伏電源下運行,而其集成的經(jīng)出廠校準(zhǔn)和溫度補(bǔ)償?shù)?a href="http://m.4huy16.com/keyword/電阻" target="_blank" class="relatedlink">電阻電容 (RC) 振蕩器和數(shù)字鎖相環(huán) (PLL) 則提供了所有需要的時鐘信號。由于這種集成,開發(fā)人員可以使用微控制器單元 (MCU) 和一些附加的外部元器件,輕松地將該模塊納入他們的設(shè)計。與 MCU 的接口只需要一個通用輸入/輸出 (GPIO) 引腳,用于接收來自模塊的數(shù)據(jù)就緒信號,以及一個通過模塊的數(shù)字串行外設(shè)接口 (SPI) 實現(xiàn)的連接(圖 3)。


圖 3:Broadcom 的 AFBR-S50MV85G 模塊只需要一個 MCU 和一些附加元器件即可實現(xiàn)完整的 ToF 感測系統(tǒng)。(圖片來源:Broadcom)

作為對這種簡單的硬件設(shè)計的補(bǔ)充,Broadcom 的 ToF 驅(qū)動軟件提供了實現(xiàn)距離測量所需的所有相關(guān)軟件功能。當(dāng)該模塊處理距離測量應(yīng)用的光學(xué)數(shù)據(jù)收集時,該公司提供的 AFBR-S50 SDK 中包含的 Broadcom ToF 驅(qū)動軟件會執(zhí)行所有硬件配置、校準(zhǔn)和測量步驟。在測量過程中,驅(qū)動軟件同時提取像素的距離和振幅值。

如何快速開發(fā)距離測量應(yīng)用

Broadcom 的 AFBR-S50MV85G-EK 評估套件與 AFBR-S50 SDK 相結(jié)合,提供了適用于快速開發(fā)距離測量應(yīng)用原型的綜合平臺。該套件附帶一塊包含 AFBR-S50MV85G 模塊的適配器板,NXP 基于 ArmCortex-M0+ MCU 的 FRDM-KL46Z 評估板,以及一條用于將評估板組件連接到筆記本電腦或其他嵌入式系統(tǒng)的迷你 USB 電纜(圖 4)。


圖 4:Broadcom 的 AFBR-S50MV85G-EK 評估套件及相關(guān)軟件提供了適用于 ToF 距離測量應(yīng)用評估和原型開發(fā)的綜合平臺。(圖片來源:Broadcom)

使用評估套件進(jìn)行 ToF 距離測量只需幾個步驟即可開始。下載 AFBR-S50 SDK 后,安裝向?qū)龑?dǎo)開發(fā)人員完成快速安裝程序。開發(fā)人員啟動 SDK 包中包含的 Broadcom AFBR-S50 Explorer 軟件應(yīng)用程序后,該軟件通過 USB 接口連接到 AFBR-S50 評估板,通過在 NXP 板的 MCU 上運行的驅(qū)動軟件接收測量數(shù)據(jù),并允許用戶以 1D 或 3D 曲線圖顯示結(jié)果(圖 5)。


圖 5:AFBR-S50 Explorer 軟件通過 3D 曲線圖顯示 ToF 傳感器矩陣中每個像素接收到的照射光振幅,簡化了 ToF 測量的評估。(圖片來源:Broadcom)

如圖 5 所示,3D 曲線圖顯示了每個像素的讀數(shù),但軟件還提供了另一種視圖,允許開發(fā)人員僅查看被視為有效的測量像素。在此替代視圖中,不符合定義標(biāo)準(zhǔn)的像素將從曲線圖中刪除(圖 6)。


圖 6:借助 Broadcom 的 AFBR-S50 Explorer 軟件,開發(fā)人員可以查看精簡的 3D 測量曲線圖,刪掉不符合預(yù)定標(biāo)準(zhǔn)的像素。(圖片來源:Broadcom)

為了解不同應(yīng)用場景的測量精度和性能,如照明、反射率和表面類型,開發(fā)人員可以查看不同感測配置的影響,例如對于增強(qiáng)型 3D 應(yīng)用使用更多的像素;或?qū)τ谛枰_測量的 1D 應(yīng)用使用更少的像素。在其原型中評估測量方法后,開發(fā)人員可以在 Broadcom 的 AFBR-S50 SDK 中包含的樣例軟件的基礎(chǔ)上,快速實現(xiàn)定制化 ToF 感測應(yīng)用。

構(gòu)建定制化 ToF 感測軟件應(yīng)用

Broadcom 圍繞基于 AFBR-S50 核心庫的高效架構(gòu)建立了對 ToF 感測應(yīng)用的支持,該核心庫包括傳感器硬件專用代碼、應(yīng)用編程接口 (API) 和硬件抽象層 (HAL)(圖 7)。


圖 7:在 Broadcom 的 ToF 工作環(huán)境中,ToF 驅(qū)動程序 API 提供的用戶應(yīng)用代碼可訪問預(yù)編譯 ToF 驅(qū)動程序核心庫中的校準(zhǔn)、測量和評估功能。(圖片來源:Broadcom)

作為 AFBR-S50 SDK 軟件包的一部分,Broadcom 將核心庫作為預(yù)編譯的 ANSI-C 庫文件提供,其中嵌入了運行 AFBR-S50MV85G 硬件所需的全部數(shù)據(jù)和算法。核心庫在距離測量系統(tǒng)的 MCU 上運行,具有校準(zhǔn)、測量和評估等功能,能以最小的處理負(fù)荷或功耗進(jìn)行距離測量。由于核心庫函數(shù)會處理所有的底層細(xì)節(jié),開發(fā)人員看到的基本測量周期非常簡單(圖 8)。


圖 8:AFBR-S50 SDK ToF 軟件利用中斷和回調(diào)最大限度減少了處理器的工作負(fù)載。(圖片來源:Broadcom)

在每個測量周期的開始(通過周期性定時器中斷或 IRQ 啟動),MCU 啟動測量,隨后立即恢復(fù)空閑狀態(tài)(或繼續(xù)處理一些應(yīng)用代碼)。測量完成后,AFBR-S50MV85G 模塊使用連接的 GPIO 線發(fā)出中斷信號,喚醒 MCU 以啟動 SPI 總線上的數(shù)據(jù)讀出,然后恢復(fù)之前的狀態(tài)。在數(shù)據(jù)讀出完成后(通過 SPI 完成的 IRQ 發(fā)出信號),MCU 執(zhí)行代碼以評估獲得的 ToF 傳感器數(shù)據(jù)。

為防止丟失測量數(shù)據(jù),核心庫會封鎖數(shù)據(jù)緩沖區(qū)直至調(diào)用評估例程,以防止啟動新的測量周期。因此,開發(fā)人員通常會加入一個用于原始數(shù)據(jù)的雙緩沖器,以允許交錯執(zhí)行測量和評估任務(wù)。

對于應(yīng)用軟件開發(fā)人員來說,核心庫例程屏蔽了校準(zhǔn)、測量和評估的細(xì)節(jié)。事實上,開發(fā)人員可以將評估套件和 AFBR-S50 Explorer 應(yīng)用程序作為一個完整的原型開發(fā)平臺,將測量數(shù)據(jù)傳遞至高級軟件應(yīng)用代碼。

對于需要實現(xiàn)定制化應(yīng)用軟件的開發(fā)人員來說,AFBR-S50 SDK 包將預(yù)編譯的核心庫模塊與幾個軟件樣例結(jié)合起來。由此,開發(fā)人員可以基于 SDK 中提供的樣例應(yīng)用程序快速創(chuàng)建自己的 ToF 感測應(yīng)用程序。開發(fā)人員可以通過調(diào)用 AFBR-S50 SDK API 中的函數(shù)以及為核心庫支持的各種回調(diào)指定自己的函數(shù),在其應(yīng)用特定的軟件代碼中訪問 AFBR-S50MV85G 硬件和 AFBR-S50 核心庫功能(仍然參見圖 7)。

Broadcom 提供了大量關(guān)于 API 和樣例軟件的文檔,使開發(fā)人員能夠迅速采取行動,根據(jù)自己的需要改寫軟件樣例或者從頭開始。事實上,基礎(chǔ)測量和評估周期非常簡單,只需將自定義函數(shù)和 API 調(diào)用與測量周期相匹配即可(仍然參見圖 8)。例如,前面討論的測量周期包括三個階段:ToF 設(shè)備集成、數(shù)據(jù)讀出和評估。啟動這三個階段所需的核心庫 API 調(diào)用包括:

· Argus_TriggerMeasurement(),異步觸發(fā)一個測量幀
· Argus_GetStatus(),在成功完成測量后返回 STATUS_OK
· Argus_EvaluateData(),評估原始測量數(shù)據(jù)中的有用信息

Broadcom 在 SDK 發(fā)行版包含的一個樣例應(yīng)用程序中演示了該基礎(chǔ)測量循環(huán),如列表 1 所示。


int main(void)
{
   status_t status = STATUS_OK;
   
   /* Initialize the platform hardware including the required peripherals
   * for the API. */
   hardware_init();
   
   /* The API module handle that contains all data definitions that is
   * required within the API module for the corresponding hardware device.
   * Every call to an API function requires the passing of a pointer to this
   * data structure. */
   argus_hnd_t * hnd = Argus_CreateHandle();
   handle_error(hnd ? STATUS_OK : ERROR_FAIL, "Argus_CreateHandle failed!");
   
   /* Initialize the API with default values.
   * This implicitly calls the initialization functions
   * of the underlying API modules.
   *
   * The second parameter is stored and passed to all function calls
   * to the S2PI module. This piece of information can be utilized in
   * order to determine the addressed SPI slave and enabled the usage
   * of multiple devices on a single SPI peripheral. */
   
   status = Argus_Init(hnd, SPI_SLAVE);
   handle_error(status, "Argus_Init failed!");
   
   /* Print some information about current API and connected device. */
   uint32_t value = Argus_GetAPIVersion();
   uint8_t a = (value >> 24) & 0xFFU;
   uint8_t b = (value >> 16) & 0xFFU;
   uint8_t c = value & 0xFFFFU;
   uint32_t id = Argus_GetChipID(hnd);
   argus_module_version_t mv = Argus_GetModuleVersion(hnd);
   print("\n##### AFBR-S50 API - Simple Example ##############\n"
   " API Version: v%d.%d.%d\n"
   " Chip ID: %d\n"
   " Module: %s\n"
   "##################################################\n",
   a, b, c, id,
   mv == AFBR_S50MV85G_V1 ? "AFBR-S50MV85G (v1)" :
   mv == AFBR_S50MV85G_V2 ? "AFBR-S50MV85G (v2)" :
   mv == AFBR_S50MV85G_V3 ? "AFBR-S50MV85G (v3)" :
   mv == AFBR_S50LV85D_V1 ? "AFBR-S50LV85D (v1)" :
   mv == AFBR_S50MV68B_V1 ? "AFBR-S50MV68B (v1)" :
   mv == AFBR_S50MV85I_V1 ? "AFBR-S50MV85I (v1)" :
   mv == AFBR_S50SV85K_V1 ? "AFBR-S50SV85K (v1)" :
   "unknown");
      
/* Adjust some configuration parameters by invoking the dedicated API methods. */
   status = Argus_SetConfigurationFrameTime( hnd, 100000 ); // 0.1 second = 10 Hz
   handle_error(status, "Argus_SetConfigurationFrameTime failed!");
   
   /* The program loop ... */
   for (;;)
   {
      myData = 0;
      /* Triggers a single measurement.
      * Note that due to the laser safety algorithms, the method might refuse
      * to restart a measurement when the appropriate time has not been elapsed
      * right now. The function returns with status #STATUS_ARGUS_POWERLIMIT and
      * the function must be called again later. Use the frame time configuration
      * in order to adjust the timing between two measurement frames. */
      Argus_TriggerMeasurement(hnd, measurement_ready_callback);
      handle_error(status, "Argus_StartMeasurementTimer failed!");
      STATUS_ARGUS_POWERLIMIT)
      {
         /* Not ready (due to laser safety) to restart the measurement yet.
         * Come back later. */
         continue;
      }
      else
      {
         /* Wait until measurement data is ready. */
      do
         {
            status = Argus_GetStatus(hnd);
         }
         while (status == STATUS_BUSY);
         handle_error(status, "Waiting for measurement data ready (Argus_GetStatus) failed!");
         /* The measurement data structure. */
         argus_results_t res;
         
         /* Evaluate the raw measurement results. */
         status = Argus_EvaluateData(hnd, &res, (void*) myData);
         handle_error(status, "Argus_EvaluateData failed!");
         
         /* Use the obtain results, e.g. print via UART. */
         print_results(&res);
         }
      }
}

列表 1:Broadcom AFBR-S50 SDK 發(fā)行版中的樣例代碼演示了從 AFBR-S50MV85G 模塊獲取和評估 ToF 數(shù)據(jù)的基本設(shè)計模式。(代碼來源:Broadcom)

如列表所示,上述三個 API 函數(shù)調(diào)用構(gòu)成了執(zhí)行一個測量周期的骨干。通過研究 SDK 中的 API 文檔和其他樣例應(yīng)用程序可以發(fā)現(xiàn),該模塊能夠提供確定目標(biāo)物體的速度、方向和傾斜角度等高級特性所需的數(shù)據(jù),開發(fā)人員可以利用這種能力快速實現(xiàn)復(fù)雜的 3D 應(yīng)用。

總結(jié)

光學(xué) ToF 感測設(shè)備已經(jīng)在需要精確距離測量的各種領(lǐng)域得以應(yīng)用,但測量范圍、精度或可靠性方面的局限性阻礙了其向工業(yè)感測系統(tǒng)等應(yīng)用的擴(kuò)展,因為這類應(yīng)用要求采用能夠在更遠(yuǎn)的范圍內(nèi)提供準(zhǔn)確結(jié)果的低功耗設(shè)備。Broadcom 的集成光學(xué) ToF 子系統(tǒng)滿足了新一代感測應(yīng)用的這些新興要求。借助基于該設(shè)備的評估套件,開發(fā)人員可以在 1D 測距應(yīng)用中快速實現(xiàn)精密測量系統(tǒng),并可在 3D 應(yīng)用中快速實現(xiàn)復(fù)雜物體運動跟蹤系統(tǒng)。
本文地址:http://m.4huy16.com/thread-789596-1-1.html     【打印本頁】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點和對其真實性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問題,我們將根據(jù)著作權(quán)人的要求,第一時間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區(qū)
  • 技術(shù)熱潮席卷三城,2025 Microchip中國技術(shù)精英年會圓滿收官!
  • 常見深度學(xué)習(xí)模型介紹及應(yīng)用培訓(xùn)教程
  • Microchip第22屆中國技術(shù)精英年會上海首站開幕
  • “芯”光璀璨,鵬城共賞——2025 Microchip中國技術(shù)精英年會深圳站回顧
  • 貿(mào)澤電子(Mouser)專區(qū)

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表