崔兆文,王 武
(貴州大學(xué) 電氣工程學(xué)院,貴陽 550025)
近幾年,智能家居系統(tǒng)以及機器人不斷進入人們的日常生活,對室內(nèi)的精確定位要求越來越高,而常規(guī)民用的GPS定位系統(tǒng),定位精度不高,不能滿足人們對精度的需求。超聲波定位、藍牙定位、激光定位以及WiFi定位技術(shù),雖然在一定程度上能夠滿足定位的需求,但是定位精度并不理想,一般定位級別在米的量級。超管帶定位技術(shù)UWB(Ultra Wideband),可以達到厘米級別,在一定程度上解決了定位精度的問題,同時可以通過算法的改進提高精確度[1]。
二十世紀六十年代,人們首次開發(fā)出UWB。后來,該技術(shù)經(jīng)過調(diào)整,用作正交頻分復(fù)用(OFDM)技術(shù)。用于定位和測距的UWB脈沖,在6.5~8 GHz的頻率范圍內(nèi)工作,不會干擾頻譜其他頻段發(fā)生的無線傳輸。UWB可以方便地對監(jiān)控場所進行部署,并將定位網(wǎng)絡(luò)協(xié)同在一個實時、高精度的狀態(tài)下獲取定位的性能,能將場景實時動態(tài)地虛擬出來。UWB設(shè)計的系統(tǒng)穩(wěn)定可靠,定位功能完整,實時性能好,管理功能健全,系統(tǒng)安裝方便,集成方式簡單,使用簡單,易于二次開發(fā)等擴展特點。目前在智慧工廠、司法監(jiān)獄、隧道管廊、智慧電廠、智慧工地等方面應(yīng)用。
本文將UWB模塊用于室內(nèi)定位,同時對算法進行優(yōu)化,使得定位系統(tǒng)能夠在家庭中有較好的應(yīng)用。
本系統(tǒng)以STM32F407單片機為核心,控制電路由語音控制模塊、UWB模塊、液晶顯示等模塊組成。STM32F407最大工作頻率168MHZ,滿足系統(tǒng)設(shè)計的需求。系統(tǒng)采用平面定位設(shè)計,需要3個基站和一個標簽,通過標簽與基站之間的距離,計算相對坐標。系統(tǒng)總體框架如圖1所示。

圖1 系統(tǒng)整體框架設(shè)計圖Fig.1 The overall framework design of the system
通過撥碼開關(guān)控制UWB模塊的狀態(tài)(標簽/基站),如果是基站,通過撥碼開關(guān)可以設(shè)計基站的地址,系統(tǒng)設(shè)計時最多允許8個基站的存在。通過撥碼開關(guān)還可對UWB的通信頻率等參數(shù)進行設(shè)置,使其滿足UWB通信的需求。
語音識別模塊使用LD3320芯片,只需把待識別的關(guān)鍵詞語以字符串的形式傳送進芯片,即可通過音響進行播報。例如,通過一級指令“定位系統(tǒng)”,二級指令“播報位置”,就可以通過音響知道標簽所在位置。
系統(tǒng)使用液晶屏OLED對標簽到基站的距離,以及標簽的坐標進行顯示,方便相關(guān)數(shù)據(jù)的觀測。使用充電寶作為電源模塊,LED小燈顯示UWB模塊的工作狀態(tài)(相當于對撥碼開關(guān)的狀態(tài)進行顯示)。
程序設(shè)計流程如圖2所示。首先對單片機的引腳功能進行初始化操作,使得各個模塊能夠正常運行。通過撥碼開關(guān)對UWB模塊的功能進行設(shè)置,使得UWB模塊處于不同的狀態(tài),并利用LED顯示撥碼開關(guān)的狀態(tài)。液晶屏需要對距離與定位值進行實時顯示。語音模塊判斷的實質(zhì),是判斷是否有一級指令“定位系統(tǒng)”,若沒有接收到一級指令,語音相關(guān)程序?qū)⒗^續(xù)循環(huán)進行判斷,直到有一級指令收到后,才會進行后面語音的判斷,執(zhí)行相關(guān)程序。

圖2 程序設(shè)計流程圖Fig.2 Program design flow chart
本系統(tǒng)利用基站與標簽的距離,完成室內(nèi)定位的任務(wù)。基站與標簽的距離通過電磁波在空氣中傳播的時間確定。為了減少同步通信的額外環(huán)節(jié),采用異步通信的方式完成通信內(nèi)容。本文選用雙邊測距算法,作為基站與標簽數(shù)據(jù)傳輸時間的基本算法。同時利用三邊定位算法實現(xiàn)坐標的計算。
UWB模塊之間的通信方式如圖3所示。

圖3 雙邊測距算法時序圖Fig.3 Sequence diagram of bilateral ranging algorithm
其中,T表示兩個UWB模塊傳輸數(shù)據(jù)的時間;R1表示UWBA發(fā)送數(shù)據(jù)到其接收數(shù)據(jù)的時間;D1表示UWBA接收數(shù)據(jù)到其發(fā)送數(shù)據(jù)的時間;R2表示UWBB發(fā)送數(shù)據(jù)到其接收數(shù)據(jù)的時間;D2表示UWBB接收數(shù)據(jù)到其發(fā)送數(shù)據(jù)的時間,按照時序圖,單次發(fā)送或接收數(shù)據(jù)的時間如式(1)和式(2)所示:

將式(1)和式(2)分別移相,得到D1和D2的表達式:

將式(3)、式(4)中計算結(jié)果D1與D2相乘可得式(5):

將式(5)變形可得式(6),同時將式(3)、式(4)帶入:

將式(6)整理可得兩個UWB模塊傳輸一次數(shù)據(jù)所需時間:

由于單片機的固有屬性,執(zhí)行完某條指令才會進入下一條指令。利用單片機中的定時器就會出現(xiàn)系統(tǒng)時鐘誤差,而這種系統(tǒng)帶來的誤差是不可控,只有盡可能的減少系統(tǒng)誤差帶來的影響。其誤差計算公式如式(8)所示。

其中,ka表示RX通道的實際傳輸速率與理論傳輸速率的比值;kb表示TX通道的實際傳輸速率與理論傳輸速率的比值;ka、kb值一般在1附近浮動。
實際傳輸速率受硬件電路以及軟件設(shè)計的影響。假如以數(shù)據(jù)發(fā)送的前一時刻相對時間,作為發(fā)送數(shù)據(jù)的第一個時間戳T1。則首先發(fā)送數(shù)據(jù)單片機內(nèi)部裝載,將發(fā)送數(shù)據(jù)以UWB的方式進行傳輸?shù)炔僮鳎紩绊憣嶋H傳輸與理論傳輸?shù)谋戎?。由于?shù)據(jù)傳輸是以光速傳播的,所以細微的差別反映到距離上面就會很大[2]。
UWB通信采用單脈沖通信,不需要調(diào)制和解調(diào)電路,在一定程度上,減少了損耗時間和功率,使距離的計算更加準確。
目前,有兩種方式來實現(xiàn)UWB通信。一是標簽和3個基站,按照上述方式分別進行通信。這樣做的優(yōu)勢是,獨立通信互不影響,而缺點是耗時時間長,功率消耗大。其二是標簽只發(fā)送一次開始和截止信號,利用3個基站的不同回復(fù)完成通信的需求。具體通信流程如圖4所示。

圖4 UWB通信示意圖Fig.4 Schematic diagram of UWB communication
結(jié)合上訴的特點,本文采用第二種通訊方式,基站僅發(fā)送Poll和Final數(shù)據(jù),其余均為接受數(shù)據(jù),可以大大減少通信時間,減少功耗。具體流程如下:
(1)標簽向各個基站發(fā)送Poll,等待標簽的回復(fù)。
假設(shè)A標簽收到了消息,標簽A回復(fù)RespA,而后等待基站收到標簽A的回復(fù);
B標簽收到消息,回復(fù)RespB后等到基站收到標簽B的回復(fù);C標簽收到消息,回復(fù)RespC后等到基站收到標簽C的回復(fù);……
(2)標簽收到A、B、C基站的消息后,發(fā)送Final給各個基站?;臼盏叫畔⒑?,每個部分可按照下式進行求解。

利用電磁波在空氣中傳播距離公式S=c T,即可得到基站與標簽之間的距離。其中,S表示距離;c表示電磁波傳輸?shù)乃俣龋籘表示數(shù)據(jù)傳輸?shù)臅r間。
按照上述計算方式可得到標簽與三點坐標的距離。三角定位系統(tǒng)示意如圖5所示。在理想狀態(tài)下可以得到圖5(a)的形式。但是實際過程中還是會有偏差,一般會出現(xiàn)圖5(b)、圖5(c)的形式。

圖5 三角定位系統(tǒng)示意圖Fig.5 Schematic diagram of the triangulation system
途中陰影部分即為計算位置的有效范圍,本文采用牛頓迭代確定最優(yōu)位置[3]。設(shè)3個基站點的坐標分別為:A(x1,y1),B(x2,y2),C(x3,y3);標簽坐標T(x,y);d1、d2、d3表示標簽與基站A、B、C的距離。利用基站的坐標可以得到公式(9)[4]:

可以利用牛頓迭代法確定obj的最小值。當obj最小時,得到的(x,y)即為最優(yōu)坐標。其中初始T(x,y)是隨機取值的。基本迭代原理如下:
(1)求目標函數(shù)對x,y的一階偏導(dǎo)數(shù);
(2)求目標函數(shù)對x,y的二階偏導(dǎo)數(shù);
(3)帶入牛頓迭代公式;
(4)若本次obj和上次obj相減的絕對值小于設(shè)定偏差值,則本次obj就是所求的坐標值。
本文通過UWB模塊之間通信來獲取標簽與基站的距離,利用牛頓迭代法來實現(xiàn)最優(yōu)點的求解?;続1的坐標為(0,0),基站A2的坐標為(3,0),基站A3的坐標為(0,3)。最終試驗數(shù)據(jù)見表1。
由表中的數(shù)據(jù)可以看出,最終坐標計算結(jié)果與測量距離的準確度有很大的關(guān)系。整體來看在基站圍成的內(nèi)部準確度較好,外圍準確度較差;距離基站遠的地方較好,距離某一基站近的地方較差。
本文利用UWB模塊進行定位系統(tǒng)的設(shè)計。實驗最終數(shù)據(jù)表明,基本實現(xiàn)了對標簽的精準定位。本系統(tǒng)可以應(yīng)用在居家生活需要定位的系統(tǒng)中,可以和小車等設(shè)備結(jié)合,節(jié)省人們的體力。由實驗數(shù)據(jù)結(jié)果也可以看出,距離計算的算法還有待提高。若要使數(shù)據(jù)更加準確,可以采用同步通信的方式,減少異步通信帶來的時間偏差。如在時間上要求更高,可以采取專用硬件計時的方式,或者采用時鐘頻率更高的芯片,減少數(shù)據(jù)傳輸時間的誤差。也可以改進算法,通過預(yù)設(shè)值和數(shù)據(jù)處理的方式,減少時間偏差。