日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

UWB定位记录二(DWM1000模组介绍)

發布時間:2023/12/31 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 UWB定位记录二(DWM1000模组介绍) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? ? 前言:上篇博客是對UWB理論方面的基本介紹,掌握基本理論之后肯定還需要去做工程實驗來測試,所以這篇開始從最普及的UWB芯片DWM1000的資料展開對UWB工程實現的介紹。其實基本UWB理論知識在論文中都是很容易找到,但是具體的工程實現細節大多數論文都未詳細展開,故我把網上找到的相關資料整合介紹下。

??一、DWM1000模組介紹

? ? ?最開始有一個問題測時間差的問題一直困擾著我,就是測距是基于d=c*t,d為距離,c為光速,t為時間差,一般我們的測距應用范圍d都在幾十米以內,而c光速值約為3*10的8次方,那么t的值是納秒級別的,時鐘由晶振產生那么則需要Ghz級別的時鐘,這對于我經常用到MCU都是在幾十M時鐘是不可想象的,所以我當時一直找資料想是否需要加額外的倍頻器。后面了解到DW1000這款芯片后,知道這些UWB芯片本身都是可以做到的。

? ? 首先,DWM1000是Deca公司的一款用于UWB通信定位的模組,集成了DW1000芯片的基本外圍電路,兩者關系如下圖1-1所示。關于上段提出的問題,解決方法是因為DW1000內部有一個非常非常高的時鐘,高達64GHz左右,所以才可以做到厘米級的定位

? ?

?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖1-1

? ?之后,DWM1000模組和MCU的配合開發也非常簡單,兩者之間采用SPI通信,MCU通過幾個控制腳和SPI通信的四個IO腳便完成了基本UWB定位模塊,具體如圖1-2所示。DWM1000的基本資料其實在官網都可以免費下載如圖1-3(包括其官方提高stm32和dwm1000的例程),只是官網https://www.decawave.com/product/dwm1000-module/需要翻墻,我后續會免費上傳部分資料到CSDN上讓大家參考。

? ? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖1-2

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖1-3

?二、DWM1000模組測距方法

? ? ? ? ? 上篇博客已經基本介紹了基本定位方法包括TOA,TDOA,下面再介紹下兩種測距方法,兩者概念不要搞混,定位的前提是得到基站與移動站的測距值或者是差值。

? 2.1.Single-sided Two-way Ranging?(SS)

? ? ? 首先是單次雙程測距法,具體流程是,設備A首先向設備B發出一個數據包,并記錄下發包時刻Ta1,設備B收到數據包后,記下收包時刻Tb1。之后設備B等待Treply時刻,在Tb2(Tb2=Tb1+Treply)時刻,向設備A發送一個數據包,設備A收到數據包后記下時刻值Ta2。然后可以算出電磁波在空中的飛行時間Tprop,飛行時間乘以光速即為兩個設備間的距離。具體如圖2-1所示。

Tround= Ta2-Ta1? ? ? ? ? ? ? ?//總時間差

Treply=Tb2-Tb1? ? ? ? ? ? ? ? ?//基站處理時間差

Tprop=(Tround-Treply)/2? ? ? //最終得到的標簽與基站的UWB通信時間差,距離值即為TOF*c光速

因為設備A和設備B使用各自獨立的時鐘源,時鐘都會有一定的偏差,假設設備A和設備B時鐘的實際頻率是預期頻率的eA和eB倍,那么因為時鐘偏差引入的誤差error,設備A和B的時鐘偏差都會對Tprop值造成影響,并且直接影響我們的測量精度,因為光速是30cm/ns,所以很小的時鐘偏差也會對測量結果造成很大影響,而且這種影響是SS測距方式無法避免的。也因此SS測距很少被采用,大部分情況下我們都使用下一種,DS測距的方式。

? ? ? ?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖2-1

2.2Double-sidedTwo-way Ranging(DS)

? ? ?官網例程代碼用的就是DS,剛開始我也很費解因為看的論文基本用的都是SS也沒提到過DS下面關于DS的介紹較為復雜,不了解可以再看過官網例程代碼后再來看下面的原理公式推導。

? ? ? DS測距是在SS測距的基礎上再增加一次通訊,兩次通訊的時間可以互相彌補因為時鐘偏移引入的誤差。假設設備A和設備B的時鐘精度是20ppm(很差)1ppm為百萬分之一,那么Ka和Kb分別是0.99998或者1.00002,ka和kb分別是設備A、B時鐘的實際頻率和預期頻率的比值。設備A、B相距100m,電磁波的飛行時間是333ns。則因為時鐘引入的誤差為20*333*10-9秒,導致測距誤差為2.2mm,可以忽略不計了。因此雙邊測距是最常采用的測距方式。下面我將介紹官網的雙邊測距的代碼實現。

完成一次DS測距需要6個步驟,總流程如2-2所示。

1.設備A發送POLL包。并記下發送時間T1。并在一段時間后打開RX。

2.設備B要提前打開接收,然后收到POLL包,記錄時間T2.

3.設備B在T3(T3=T2+Treply1)時刻發送Response包,發送完之后打開RX.

4.設備A收到Response包,記錄時刻T4。

5.設備A在T5(T5=T4+Treply2)發送Final包。

6.設備B收到Final包,記錄時間T6。

?

公式推導:

Tround1 = Treply1 + 2Tprop;

Tround2 = Treply2 + 2Tprop;

Tround1*Tround2 - Treply1*Treply2 =4Tprop2 + 2Tprop*Treply1+2Tprop*Treply2;

Tround1?+Tround2 + Treply1?+ Treply2 = 4Tprop + 2Treply1 + 2Treply2;

所以Trop等于上圖的公式。

?

下面是具體的時間計算:

Tround1 = T4 - T1

Tround2 = T6 - T3

Treply1 = T3 - T2

Treply2 = T5 - T4

Tprop為電磁波飛行時間,乘以光速為測距距離。

?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖2-2?

這個是SS與DS介紹的原文地址,要配合官網代碼分析https://msd.misuland.com/pd/3545776840385762452

總結

以上是生活随笔為你收集整理的UWB定位记录二(DWM1000模组介绍)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。