新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 如何設(shè)計(jì)基于FPGA的虛擬現(xiàn)實(shí)定位系統(tǒng)?

如何設(shè)計(jì)基于FPGA的虛擬現(xiàn)實(shí)定位系統(tǒng)?

作者: 時(shí)間:2018-08-06 來(lái)源:網(wǎng)絡(luò) 收藏

本文引用地址:http://2s4d.com/article/201808/385562.htm


3.2 ADXL345數(shù)據(jù)采集模塊設(shè)計(jì)

ADXL345在虛擬場(chǎng)景系統(tǒng)中用于測(cè)量?jī)A斜角,它的時(shí)鐘驅(qū)動(dòng)也是一系列的I2 C驅(qū)動(dòng)時(shí)鐘周期.本模塊的設(shè)計(jì)也是針對(duì)于ADXL345的時(shí)鐘驅(qū)動(dòng)和對(duì)應(yīng)的數(shù)據(jù)讀取所進(jìn)行的.傾斜角的寄存器內(nèi)容的獲取是整個(gè)模塊的主要內(nèi)容.

在實(shí)際的場(chǎng)景系統(tǒng)中主要用到了X、Y、Z 三個(gè)方向上的偏移寄存器,用于測(cè)量中修正原始位置的測(cè)量誤差.對(duì)于數(shù)據(jù)采集速率則是由寄存器OX2C即寄存器BW_RATE的CH0-CH3所控制.對(duì)于 三維重力加速度傳感器而言,主要的初始化也是通過(guò)常見(jiàn)的I2 C總線與 進(jìn)行通信,在數(shù)據(jù)獲取方面集中在X、Y、Z 三個(gè)重力方向上的寄存器數(shù)據(jù).其時(shí)序圖如圖5 所示,代碼編寫(xiě)過(guò)程中與HMC5883L共用總線同時(shí)都受的控制,屬于系統(tǒng)控制的從端.同樣的,三維重力加速度傳感器也需要根據(jù)測(cè)量需求去輸入初 始化寄存器的配置.然后對(duì)需要讀取的寄存器數(shù)據(jù)位進(jìn)行總線讀取,并存入到配置好的8bit寄存器保存好打包傳往上位機(jī)進(jìn)行數(shù)據(jù)分析.(點(diǎn)擊可查看大圖)


3.3 場(chǎng)景數(shù)據(jù)分析

在地磁的測(cè)量過(guò)程中需要對(duì)數(shù)據(jù)進(jìn)行必要分析才能得到對(duì)應(yīng)的方位角度.


由HMC5883L 和ADX345傳感器我們可以得到地磁場(chǎng)在空間三個(gè)軸上的分量磁場(chǎng)大小分別為Hx、Hy、Hz以及加速度傳感器測(cè)量俯仰角φ 和橫滾角θ.


式中Ax、Ay、Az是重力加速度傳感器三個(gè)方向上測(cè)量得到的加速度值.在特定的公式計(jì)算下可以大致得到目前物體所處的順時(shí)針?lè)轿唤莂為


以上是初步估計(jì)出來(lái)得到方位角參數(shù),計(jì)算中不可忽略的還有HMC5800L還受到外部磁性干擾,其中較為突出的是硬磁效應(yīng)和軟磁效應(yīng)[8~9]一般而言 對(duì)于硬磁效應(yīng),我們采取的方法是將物體至于場(chǎng)景中旋轉(zhuǎn)360°,然后經(jīng)過(guò)多次的采樣得到X、Y、Z 坐標(biāo)的最大值Xmax、Ymax、Zmax和最小值Xmin、Ymin、Zmin然后對(duì)于硬磁效應(yīng)來(lái)說(shuō)就是偏移量為


硬磁效應(yīng)只需要使用測(cè)試的數(shù)據(jù)值加上off 的偏移值便可,而對(duì)于軟磁效應(yīng),補(bǔ)償?shù)姆椒ū容^復(fù)雜,一般可以使用公式進(jìn)行適當(dāng)?shù)墓浪?,?xiàng)目中初步使用式(12)進(jìn)行補(bǔ)償.其中Xr為真實(shí)的無(wú)干擾的坐標(biāo) 值,a為其干擾系數(shù),一般軟磁干擾就需要大量的數(shù)據(jù)去得到a 的值.一般情況下可以采取特定的角度進(jìn)行數(shù)據(jù)采樣,然后根據(jù)數(shù)據(jù)的


實(shí)際值Xr和對(duì)應(yīng)無(wú)干擾的值Xc進(jìn)行運(yùn)算,求出a的這個(gè)系數(shù)的值便可.

3.4 以太網(wǎng)通訊模塊設(shè)計(jì)

LAN8700是SMSC公司的一款以太網(wǎng)物理層芯片.

LAN8700由編碼器/解碼器.擾碼器/解擾器.波形整形器.輸出驅(qū)動(dòng)器.自適應(yīng)均衡雙絞線接收器.時(shí)鐘數(shù)據(jù)恢復(fù)功能模塊組成.

模塊編程中定義了UDP_User_int模塊來(lái)實(shí)現(xiàn)數(shù)據(jù)打包的詳細(xì)過(guò)程,另外MAC的物理層通信由MAC_top模塊來(lái)實(shí)現(xiàn),包括PHY的初始 化.時(shí)鐘的控制.發(fā)生數(shù)據(jù)的控制.MII接口的控制.接收數(shù)據(jù)控制,寄存器的控制等,都定義了UDP_TOP頂層模塊來(lái)實(shí)現(xiàn)FPGA與它們的接口順利傳輸 數(shù)據(jù).以太網(wǎng)驅(qū)動(dòng)模塊實(shí)現(xiàn)的RTL門(mén)級(jí)結(jié)構(gòu)圖如圖7所示.


其中ip_local和mac_local是本地IP和MAC地址;每組E_RXD和E_TXD都是4個(gè)32位數(shù)據(jù),E_RXD是接收MAC層的數(shù) 據(jù),E_TXD是發(fā)送給MAC層的數(shù)據(jù);每組send_zb_value都是64個(gè)32位數(shù)據(jù),打包成了UDP包,send_zb_value是發(fā)送至以 太網(wǎng)的UDP包,同時(shí)定義了send_en來(lái)作為發(fā)送數(shù)據(jù)的使能信號(hào);E_COL和E_CRS分別是沖突檢測(cè)和載波偵聽(tīng)信號(hào),他們的作用是用來(lái)控制著 UDP包的正確發(fā)送.

4 結(jié)語(yǔ)

設(shè)計(jì)中使用了HMC5883L芯片對(duì)物體的方位角進(jìn)行測(cè)定,使用輔助芯片ADXL345來(lái)判定傾斜角和物體翻滾姿態(tài),使得物體在虛擬場(chǎng)景中的實(shí)際情況更為 精準(zhǔn).利用FPGA對(duì)數(shù)據(jù)的高速處理能力將采集到的場(chǎng)景定位內(nèi)容迅速分析處理并且通過(guò)以太網(wǎng)控制芯片發(fā)往局域網(wǎng)中的上位機(jī)中,最終在上位機(jī)實(shí)現(xiàn)虛擬場(chǎng)景的 變動(dòng).整套硬件系統(tǒng)能夠穩(wěn)定的工作在研發(fā)的項(xiàng)目之中,工作性能良好.能耗低,精度可達(dá)1°以內(nèi)的范圍.


上一頁(yè) 1 2 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉