【導讀】無(wú)線(xiàn)電定位系統已成為幾乎所有類(lèi)型的移動(dòng)設備和相關(guān)應用的標配功能。在眾多無(wú)線(xiàn)電定位方法中,基于超寬帶 (UWB) 射頻通信的實(shí)時(shí)定位系統 (RTLS) 扮演了中樞角色,確保在 GPS 等更為人熟悉的技術(shù)無(wú)法提供覆蓋時(shí),也能獲取定位信息。
隨著(zhù)更高精度 RTLS 需求的日益增長(cháng),開(kāi)發(fā)人員發(fā)現自己被困在雙向測距或到達時(shí)間差 (TDOA) 定位等復雜的高精度方法之中。
Decawave 的集成式模塊和軟件為開(kāi)發(fā)人員提供了一種更簡(jiǎn)單的 RTLS 解決方案,能夠輕而易舉地提供更精確的定位結果。
本文將回顧包括雙向測距和 TDOA 在內的 RTLS 應用及算法,并討論不同 RTLS 方法的相關(guān)實(shí)現權衡。之后,本文將介紹一種 Decawave UWB 收發(fā)器,重點(diǎn)說(shuō)明使用該器件進(jìn)行設計的具體要求。最后,本文將探討 Decawave 軟件架構和配套的固件開(kāi)發(fā),說(shuō)明在 Decawave 平臺上開(kāi)發(fā)用戶(hù)應用的具體方法。
RTLS 系統的作用
精密 RTLS 已成為在辦公大樓、倉庫、制造廠(chǎng)和裝配線(xiàn)中用于確定或跟蹤人員及移動(dòng)資產(chǎn)位置的有效方法。依據此方法,一個(gè)移動(dòng)對象(標簽)使用低速率無(wú)線(xiàn)個(gè)人局域網(wǎng) (LR-WPAN) 標準 IEEE 802.15.4-2011 中規定的標準格式和 UWB 技術(shù),與固定位置的設備(定位點(diǎn))交換信息。通過(guò)確定標簽與多個(gè)定位點(diǎn)之間的距離,相關(guān)應用可以確定標簽相對這些已知定位點(diǎn)的位置,進(jìn)而確定標簽的絕對位置。
RTLS 方法
RTLS 應用使用多種方法確定距離。在最簡(jiǎn)單的方法中,應用或標簽可以使用大多數收發(fā)器提供的接收信號強度指示器 (RSSI) 參數,來(lái)評估標簽相對發(fā)射定位點(diǎn)的位置。由于存在多種可能影響鏈路預算的因素,此方法最多只能提供粗略的位置估計。相比之下,許多基于 RTLS 的新興應用要求將絕對位置確定到幾厘米的精度。
高精度 RTLS 使用飛行時(shí)間方法,而這類(lèi)方法幾乎不受射頻信號強度大幅變動(dòng)的影響。依據此方法,可通過(guò)測量射頻信號從標簽傳遞到多個(gè)定位點(diǎn)所需的時(shí)間,來(lái)確定標簽的位置。利用射頻信號通過(guò)空氣傳播時(shí)的已知傳播延遲,RTLS 應用可以將飛行時(shí)間轉換為距離。
例如,如果標簽到所有三個(gè)定位點(diǎn)之間的飛行時(shí)間完全相同,那么按理說(shuō),這種情況僅在標簽與這些定位點(diǎn)等距時(shí)才會(huì )出現。由于應用知道各個(gè)定位點(diǎn)的確切位置,因此它能確定標簽的絕對位置。
但是,要測量標簽發(fā)射器的傳播時(shí)間,定位點(diǎn)接收器需要使用與標簽相同的時(shí)基,才能正確評估標簽消息中內嵌的時(shí)間信息。如果定位點(diǎn)的時(shí)基滯后或領(lǐng)先于標簽的時(shí)基,則計算的距離將會(huì )分別比實(shí)際距離更近或更遠。
一種 RTLS 方法采取簡(jiǎn)單的方式應對這一問(wèn)題,即對標簽發(fā)射器和定位點(diǎn)接收器進(jìn)行時(shí)間同步,確保每個(gè)定位點(diǎn)接收消息的時(shí)基與標簽相同。即使在最佳情況下,實(shí)現時(shí)間同步也很有挑戰,而在無(wú)線(xiàn)標簽四處移動(dòng)的 RTLS 應用中,這根本就不切實(shí)際。
另一種方法 TDOA 僅對定位點(diǎn)進(jìn)行同步,從而消除了與移動(dòng)標簽同步相關(guān)的難點(diǎn)。為確定位置,RTLS 應用使用跨多個(gè)定位點(diǎn)測得的標簽信號到達時(shí)間之差。例如,考慮之前三個(gè)定位點(diǎn)(A1、A2 和 A3)圍繞一個(gè)標簽等距離分布的示例。在標簽移動(dòng)后,如果各個(gè)定位點(diǎn)的 TDOA 被發(fā)現分別為 0、1 納秒 (ns) 和 0,則表示該標簽在遠離定位點(diǎn) A2 的直線(xiàn)方向上移動(dòng)了約 30 厘米 (cm)(假設射頻傳播的速度為光速)。TDOA 的定位點(diǎn)同步要求與嘗試同步定位點(diǎn)和標簽相比,難度要小得多。但即便如此,此方法的精度仍取決于高度精確的同步。即便是一納秒的同步差,也可能導致位置測量出現幾厘米的差別。
雙向測距
雙向測距 RTLS 方法完全不需要精確的時(shí)間同步,但在標簽中引入了傳輸能力要求。這種方法通過(guò)支持標簽和定位點(diǎn)彼此交換定時(shí)信息,來(lái)規避不同時(shí)基帶來(lái)的不確定性。標簽和定位點(diǎn)無(wú)需同步它們的時(shí)基,而是使用一種簡(jiǎn)短的雙向信息傳輸協(xié)議,實(shí)現精確地確定飛行時(shí)間和準確地計算標簽位置。
依據此方法,標簽發(fā)射簡(jiǎn)短的標識信號,向周?chē)亩ㄎ稽c(diǎn)“亮明身份”。每個(gè)收到標簽的初始標識信息的定位點(diǎn)隨即與標簽合作進(jìn)行簡(jiǎn)短的雙向數據交換,用于確定飛行時(shí)間,而無(wú)需考慮定位點(diǎn)與標簽之間存在的時(shí)基差。
Decawave 在其雙向測距 RTLS 協(xié)議中,從發(fā)現階段和測距階段的角度定義了此過(guò)程(圖 1)。在發(fā)現期間,標簽定期傳送簡(jiǎn)短的標識信號(即眨眼信號),并等待來(lái)自定位點(diǎn)的響應。在標簽和定位點(diǎn)彼此識別后,配對的標簽和定位點(diǎn)使用簡(jiǎn)短的雙向信息交換,其中包含了測距所需的信息。

圖 1:在 Decawave 的雙向測距協(xié)議中,標簽和定位點(diǎn)交換一系列消息,以完成發(fā)現并提供測距信息。(圖片來(lái)源:Decawave)
對于開(kāi)發(fā)人員而言,實(shí)現這些精確設計的消息交換協(xié)議及其底層 UWB 無(wú)線(xiàn)電子系統帶來(lái)的挑戰可能令人生畏。但憑借 Decawave DWM1001 模塊,開(kāi)發(fā)人員只需很少的額外工作,就能快速向其應用中添加精確的 RTLS 功能。
集成式 RTLS 模塊
Decawave DWM1001 模塊可完整實(shí)現 RTLS,將 Decawave DW1000 UWB 收發(fā)器與一個(gè) Nordic Semiconductor NRF52832 無(wú)線(xiàn) MCU 和一個(gè) STMicroelectronics LIS2DH12 3 軸運動(dòng)傳感器集成在一起。盡管 DW1000 提供符合 IEEE 802.15.4-2011 標準的射頻信號發(fā)送功能,但 NRF52832 MCU 仍針對 RTLS 應用執行其內嵌的固件。LIS2DH12 傳感器在電源管理中扮演著(zhù)重要的角色。
在任何復雜的射頻應用中,射頻設計往往都會(huì )帶來(lái)一些最艱巨的挑戰,尤其在要求極小封裝和極低功耗的移動(dòng)應用中。DWM1001 模塊通過(guò)充分利用 DW1000 收發(fā)器提供的集成式射頻設計(圖 2)解決了這些問(wèn)題。

圖 2:Decawave DW1000 收發(fā)器集成了無(wú)線(xiàn)電信號路徑和數字控制邏輯,以提供一個(gè)完整的符合 IEEE802.15.4-2011 標準的系統。(圖片來(lái)源:Decawave)
DW1000 提供集成了射頻前端的完整 UWB 收發(fā)器,能夠支持六個(gè)從 3.5 GHz 到 6.5 GHz 的 IEEE802.15.4-2011 通道,標準比特率為 110 Kb/s、850 Kb/s 和 6.81 Mb/s。該器件的集成數字控制子系統用于管理收發(fā)器,并支持雙向測距和 TDOA RTLS 系統,定位精度可達 10 厘米。利用集成的一次性可編程存儲器 (OTP),開(kāi)發(fā)人員可以存儲用于校準和糾錯的數據,同時(shí)器件的可配置不間斷存儲器 (AON) 會(huì )在器件處于下文所述的低功耗狀態(tài)期間保留配置數據。
在工作期間,該設備發(fā)送和接收標準 IEEE802.15.4-2011 幀,其中包含同步標頭 (SHR)、物理層標頭 (PHR),以及構成總體物理層服務(wù)數據單元 (PSDU) 的多達 127 字節的數據。除了標準幀以外,該設備還支持專(zhuān)有幀格式,該幀格式為需要發(fā)送更大數據有效載荷、但不要求符合 IEEE802.15.4-2011 標準的應用提供了多達 1023 個(gè)數據字節。
對于符合標準的應用,開(kāi)發(fā)人員可以從一系列工作模式中進(jìn)行選擇,以滿(mǎn)足特定的雙向測距和 TDOA 操作使用實(shí)例。這些工作模式預先組合了數據速率、有效載荷大小和預先配置的前導碼長(cháng)度。例如,適用于遠程應用的模式組合了較低的數據速率以及有利于在干擾或較弱信號中完成發(fā)現和測距的較長(cháng)前導碼。反之,具有較高數據速率和較短前導碼的模式則支持短程應用。其他模式以不同大小的數據有效載荷支持這類(lèi)遠程和短程應用的特征。
功耗最小化
在實(shí)踐中,開(kāi)發(fā)人員會(huì )選擇幀大小盡可能短的工作模式,以最大限度減小總體功耗,并讓器件快速恢復低功耗狀態(tài)。DW1000 提供了多種低功耗模式。在非活動(dòng)期內,可以將器件置于待機模式,此模式的電流消耗僅為 19 毫安 (mA)。如果需要長(cháng)期保持非活動(dòng)狀態(tài),開(kāi)發(fā)人員可將器件置于低功耗休眠模式,此時(shí)的電流消耗僅約 1 微安 (μA),而深度睡眠模式的電流消耗更是不超過(guò) 100 納安 (nA)(典型值 50 nA)。
但與任何射頻設計一樣,收發(fā)器工作期間的功耗會(huì )顯著(zhù)增大。例如,要傳輸符合 IEEE802.15.4-2011 標準的幀,同步標頭和數據包等較長(cháng)的幀組件消耗了大部分功耗(圖 3)。

圖 3:Decawave DW1000 的 RTLS 幀傳輸會(huì )導致各個(gè)幀組件的功耗顯著(zhù)增大,這促使設計人員開(kāi)始尋求具有最短的有用同步標頭和數據有效載荷的工作模式。(圖片來(lái)源:Decawave)
與接收器操作相關(guān)的功耗甚至更大,這給功耗受限型設計帶來(lái)了更艱巨的挑戰(圖 4)。開(kāi)發(fā)人員可以將 DW1000 設定為在發(fā)送或接收操作后恢復其中一種低功耗狀態(tài)。即便如此,標準協(xié)議和幀的性質(zhì)使得用于降低幀操作期間功耗的選擇很少。

圖 4:由于前導碼查尋階段的持續時(shí)間較長(cháng),因此接收幀所需的功耗要求甚至高于傳輸操作。(圖片來(lái)源:Decawave)
DW1000 提供了獨特的節能功能來(lái)降低前導碼 RX 階段的功耗。開(kāi)發(fā)人員可以為器件編制專(zhuān)門(mén)的前導碼嗅探模式,而不是讓接收器一直保持工作狀態(tài)。這種情況下,DW1000 定期為接收器通電,查找前導碼,如果未找到前導碼則恢復待機狀態(tài)(圖 5)。

圖 5:開(kāi)發(fā)人員可通過(guò)使用 DW1000 的嗅探功能來(lái)降低與接收器操作相關(guān)的功耗,使得器件在待機模式與接收器活動(dòng)模式之間交替變化。(圖片來(lái)源:Decawave)
前導碼嗅探等功能對于電池供電型標簽而言尤其重要。開(kāi)發(fā)人員可在 RTLS 操作期間應用多種節能方法。其中一種方法利用的是圖 1 所示雙向測距協(xié)議中存在的不同已知延遲。
例如,在發(fā)現階段,定位點(diǎn)對標簽“眨眼信號”的測距初始化應答會(huì )在一定的延遲后發(fā)生。開(kāi)發(fā)人員可基于幀率和其他參數估算此延遲,在其定位點(diǎn)設計中測量其實(shí)際值,甚至在其定位點(diǎn)設計中構建特定的響應延遲時(shí)間。然后,開(kāi)發(fā)人員可以在預期的延遲時(shí)間內安全地將標簽接收器保持關(guān)閉狀態(tài),要搜尋響應則將接收器開(kāi)啟,如果測距初始化應答未在合理的窗口內到達,則將接收器再次關(guān)閉。
類(lèi)似地,開(kāi)發(fā)人員可以采取措施來(lái)限制在測距過(guò)程中需要將無(wú)線(xiàn)電保持開(kāi)啟狀態(tài)的時(shí)間。例如,開(kāi)發(fā)人員可以在設備中預加載所有需要的數據,并使用直接存儲器訪(fǎng)問(wèn)來(lái)加快 DW1000 與主機內存之間的數據傳輸。
雖然這些低級優(yōu)化可以提高增量節能,但開(kāi)發(fā)人員還可通過(guò)動(dòng)態(tài)更改位置更新速率進(jìn)一步改善節能效果。標簽停止移動(dòng)后,便沒(méi)有必要繼續執行高能耗的發(fā)現和測距階段。標簽可以安全地進(jìn)入低功耗休眠狀態(tài),并在其開(kāi)始移動(dòng)后喚醒,繼續以標稱(chēng)速率進(jìn)行更新。
通過(guò)集成 LIS2DH12 運動(dòng)傳感器,DWM1001 模塊支持動(dòng)態(tài)速率調整,并且支持兩種運動(dòng)相關(guān)的工作模式:低功耗和響應模式。開(kāi)發(fā)人員可以對該模塊進(jìn)行配置,在 LIS2DH12 感應到模塊處于靜止狀態(tài)時(shí),DW1000 收發(fā)器以低功耗模式運行。當 LIS2DH12 檢測到移動(dòng)時(shí),收發(fā)器可以恢復為響應模式,這時(shí) DW1000 收發(fā)器將恢復正常的更新速率。
開(kāi)發(fā)人員還可以進(jìn)一步優(yōu)化其 RTLS 應用,基于對象的速度和加速度來(lái)控制更新速率。例如,緩慢移動(dòng)的標簽可能只需較低的更新頻率便可保持必要的定位精度。隨著(zhù)標簽速度的增加,應用可通過(guò)提高位置更新速率進(jìn)行響應。
RTLS 開(kāi)發(fā)
除了能夠支持動(dòng)態(tài)更新速率等 RTLS 特性之外,該模塊還提供了基本的 RTLS 開(kāi)發(fā)優(yōu)勢。例如,DW1000 收發(fā)器針對電源去耦、天線(xiàn)網(wǎng)絡(luò )匹配、基準振蕩器和其他元器件采行了多種特定的接口要求(圖 6)。類(lèi)似地,NRF52832 無(wú)線(xiàn) MCU 和 LIS2DH12 運動(dòng)傳感器也存在自己的接口設計需求。

圖 6:Decawave DW1000 收發(fā)器采用嚴格的接口要求,從而確??煽康碾娫?、射頻和定時(shí)信號。(圖片來(lái)源:Decawave)
盡管類(lèi)似這樣的高級器件采用了高度簡(jiǎn)化的設計,但在要求以最低功耗實(shí)現最高性能的設計中,設計人員要想優(yōu)化集成,仍可能面臨嚴峻的挑戰。DWM1001 模塊將集成要求降低至少數幾個(gè)電源、接地和數字接口的連接(圖 7)。

圖 7:Decawave DWM1001 模塊通過(guò)提供完全集成的設計(集成了 DW1000 收發(fā)器與無(wú)線(xiàn) MCU 和運動(dòng)傳感器)簡(jiǎn)化了 RTLS 開(kāi)發(fā)。(圖片來(lái)源:Decawave)
軟件模型
類(lèi)似地,該模塊還利用其預裝的 Decawave 定位和網(wǎng)絡(luò )堆棧 (PANS) 庫固件大幅簡(jiǎn)化了軟件開(kāi)發(fā)與集成。PANS 庫基于 MCU 的片載低功耗藍牙 (BLE) 堆棧而構建,包含開(kāi)源 eCos 實(shí)時(shí)操作系統 (RTOS)、一個(gè)網(wǎng)絡(luò )層,以及支持 BLE 服務(wù)、RTLS 管理服務(wù)和雙向測距 (TWR) 定位引擎的若干應用層(圖 8)。

圖 8:Decawave 定位和網(wǎng)絡(luò )堆棧 (PANS) 庫組合了藍牙堆棧、RTOS、網(wǎng)絡(luò )層和應用服務(wù)層,提供了一個(gè)功能豐富的 RTLS 應用平臺。(圖片來(lái)源:Decawave)
在構建于 DWM1001 的 MCU 上運行的固件應用時(shí),開(kāi)發(fā)人員通過(guò)綜合應用編程接口 (API) 訪(fǎng)問(wèn) PANS 庫,該接口提供了各個(gè) PANS 模塊的相應入口點(diǎn),從而對該模塊進(jìn)行配置和控制。PANS API 包含多個(gè)適用單獨模塊的 API 集,其中包括開(kāi)發(fā)人員 C 代碼、串行接口庫(CPI 和 UART)以及 BLE 庫(圖 9)。
應用直接與這四個(gè)高級 API 連接,進(jìn)而通過(guò)一個(gè)通用 API 解析器將這些調用轉換為對 PANS 庫的通用 API 調用,來(lái)實(shí)現對 PANS 庫的訪(fǎng)問(wèn)。在此角色中,通用層提供了對 PANS 庫的通用接口。

圖 9:Decawave 通過(guò)廣泛的 API 提供 PANS 庫訪(fǎng)問(wèn),每個(gè) API 提供對底層線(xiàn)程化執行模型的簡(jiǎn)單訪(fǎng)問(wèn)。(圖片來(lái)源:Decawave)
線(xiàn)程化架構
在此架構中,DWM1001 固件軟件使用線(xiàn)程化模型,基本上為堆棧中的每個(gè)模塊和庫都提供了單獨的線(xiàn)程。堆棧頂部四個(gè)模塊各自的線(xiàn)程將解析請求傳遞到通用 API 解析器線(xiàn)程,該線(xiàn)程則驗證每條請求并調用 PANS 庫,從而生成相應的響應。通用 API 線(xiàn)程進(jìn)而使用發(fā)起調用時(shí)提供的回調函數,將結果返回到位于堆棧頂部的調用模塊。
盡管這一多層系統看似非常復雜,但從開(kāi)發(fā)人員的編程模型看卻相對簡(jiǎn)單。將 API 調用與獨立線(xiàn)程回調配合使用,有助于優(yōu)化資源利用率和總體應用性能。
與此同時(shí),底層復雜性也被一系列 API 屏蔽,這些 API 將面向應用的高級調用轉換為經(jīng)優(yōu)化的與 DWM1001 硬件進(jìn)行交互的特定線(xiàn)程化操作。DWM1001 編程模型則進(jìn)一步簡(jiǎn)化了開(kāi)發(fā)人員與此系統的交互。開(kāi)發(fā)人員使用系統內建的用戶(hù)專(zhuān)用應用線(xiàn)程,而不需要與多個(gè)線(xiàn)程和 API 交互。
如列表 1 所示,開(kāi)發(fā)人員使用一個(gè)簡(jiǎn)單的 API 調用 (dwm_thread_create) 來(lái)調用注冊了用戶(hù)應用線(xiàn)程函數 (app_thread_entry) 的用戶(hù)應用線(xiàn)程。
副本
/* Create thread */
rv = dwm_thread_create(THREAD_APP_PRIO, app_thread_entry, (void*)NULL, "app", THREAD_APP_STACK_SIZE, &hndl);
APP_ERR_CHECK(rv);
/* Start the thread */
dwm_thread_resume(hndl);
列表 1:利用 Decawave 線(xiàn)程模型,開(kāi)發(fā)人員只需一對簡(jiǎn)單的 API 調用便可注冊并啟動(dòng)其用戶(hù)應用線(xiàn)程。(代碼來(lái)源:Decawave)
Decawave 提供了用戶(hù)應用線(xiàn)程和回調示例代碼。該示例代碼捆綁在一個(gè) Oracle Virtual Box 虛擬機映像中,其中包含了完整的工具鏈、庫和簡(jiǎn)單的示例應用。該軟件包設計為與連接到 Windows PC 的 Decawave DWM1001-DEV 開(kāi)發(fā)板配合使用,提供了一個(gè)用于創(chuàng )建定制 RTLS 應用軟件的框架。
包含在該軟件包中的示例代碼演示了關(guān)鍵的用戶(hù)線(xiàn)程函數設計模式(列表 2)。在此示例中,用戶(hù)線(xiàn)程函數 (app_thread_entry) 設置了應用特定的配置參數(例如更新速率),并使用 API 函數 dwm_evt_cb_register 及其回調函數名稱(chēng) (on_dwm_evt) 注冊了回調。注冊回調后,示例線(xiàn)程進(jìn)入主循環(huán) – 在此實(shí)例中為一系列延遲函數調用,用于減少資源利用。
副本
void app_thread_entry(uint32_t data)
{
.
.
.
/* Update rate set to 1 second, stationary update rate set to 5 seconds */
APP_ERR_CHECK(dwm_upd_rate_set(10, 50));
/* Register event callback */
dwm_evt_cb_register(on_dwm_evt, 0);
.
.
.
while (1) {
/* Thread loop */
dwm_thread_delay(100);
}
}
列表 2:在 Decawave 固件開(kāi)發(fā)包的這個(gè)片段中,示例代碼展示了用于在用戶(hù)應用線(xiàn)程例程中注冊回調和執行主循環(huán)的基本設計模式。(代碼來(lái)源:Decawave)
示例回調函數 (on_dwm_evt) 演示了在發(fā)生事件時(shí)調用的基本事件處理程序(列表 3)。在此代碼示例中,唯一的有效事件是有可用的新位置信息 (DWM_EVT_NEW_LOC_DATA)。在該事件的處理程序中,代碼演示了檢索可用定位點(diǎn)生成的位置數據所需的簡(jiǎn)單調用集。完成其事件處理任務(wù)后,回調直接進(jìn)入休眠狀態(tài)。
副本
/**
* Event callback
*
* @param[in] p_evt Pointer to event structure
* @param[in] p_data Pointer to user data
*/
void on_dwm_evt(dwm_evt_t *p_evt, void *p_data)
{
int i;
switch (p_evt->header.id) {
/* New location data */
case DWM_EVT_NEW_LOC_DATA:
/* Process the data */
printf("nT:%lu ", dwm_systime_us_get());
if (p_evt->data.loc.p_pos == 0) {
/* Location engine is disabled */
} else {
printf("POS:[%ld,%ld,%ld,%u] ", p_evt->data.loc.p_pos->x,
p_evt->data.loc.p_pos->y, p_evt->data.loc.p_pos->z,
p_evt->data.loc.p_pos->qf);
}
for (i = 0; i < p_evt->data.loc.anchors.dist.cnt; ++i) {
printf("DIST%d:", i);
printf("0x%04X", (unsigned int)(p_evt->data.loc.anchors.dist.addr[i] & 0xffff));
if (i < p_evt->data.loc.anchors.an_pos.cnt) {
printf("[%ld,%ld,%ld]",
p_evt->data.loc.anchors.an_pos.pos[i].x,
p_evt->data.loc.anchors.an_pos.pos[i].y,
p_evt->data.loc.anchors.an_pos.pos[i].z);
}
printf("=[%lu,%u] ", p_evt->data.loc.anchors.dist.dist[i],
p_evt->data.loc.anchors.dist.qf[i]);
}
printf("n");
break;
default:
break;
}
/* Indicate the application has finished the tasks and can now */
dwm_sleep();
}
列表 3:此 Decawave 示例應用片段演示的回調提供了用于訪(fǎng)問(wèn)新位置數據的基本事件處理程序。(代碼來(lái)源:Decawave)
例如,在一個(gè)完整的物聯(lián)網(wǎng) (IoT) RTLS 應用中,標簽和定位點(diǎn)會(huì )通過(guò)鏈接到連接互聯(lián)網(wǎng)的網(wǎng)關(guān)系統的路由定位點(diǎn)進(jìn)行通信。Decawave 即將推出其第二版固件包,將通過(guò)基于 Linux 的軟件包提供網(wǎng)關(guān)支持,并會(huì )使用熟悉的 IoT 信息傳輸協(xié)議,包括 HTTP、WebSockets、MQTT 和 AMQP。
總結
RTLS 在廣泛的應用中扮演越來(lái)越重要的角色。盡管 RTLS 方法基于相對簡(jiǎn)單的原理,但這些方法的實(shí)現需要復雜的射頻/模擬設計、系統設計以及軟件開(kāi)發(fā),以確保使用最小的功耗獲得最高的精度。
Decawave DWM1001 模塊提供了完整的 RTLS 系統,其中結合了 Decawave 的集成式 DW1000 UWB 收發(fā)器以及無(wú)線(xiàn) MCU 和運動(dòng)傳感器。利用此模塊和配套的軟件包,開(kāi)發(fā)人員可以快速實(shí)現高精度的電池供電型 RTLS 系統。
推薦閱讀: