新聞中心

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

基于FPGA的虛擬現(xiàn)實定位系統(tǒng)

作者: 時間:2017-10-13 來源:網(wǎng)絡(luò) 收藏

  技術(shù)是目前計算機信息科學(xué)中的前沿學(xué)科,文中設(shè)計了一種以 為核心的數(shù)據(jù)采集處理系統(tǒng).利用HMC5883L和ADXL345對虛擬場景中物體的方位和朝向進(jìn)行確定并通過以太網(wǎng)給虛擬場景主機發(fā)送數(shù)據(jù).整個系統(tǒng)以 作為主控制器,配以傳感器數(shù)據(jù)采集,內(nèi)部FIFO存儲,以太網(wǎng)高速傳輸,從而把定位系統(tǒng)參數(shù)實時傳送到上位機中,具有傳輸速度快.實時性等優(yōu)點,實現(xiàn)了高精度定位的功能.

本文引用地址:http://m.butianyuan.cn/article/201710/365832.htm

  1 引言

  (Virtual Reality,VR)是目前計算機應(yīng)用方面活躍的技術(shù)研究領(lǐng)域,是整個信息科學(xué)領(lǐng)域中的新興技術(shù).它是依據(jù)計算機視頻技術(shù)為基礎(chǔ),將計算機圖像處理.計算機心理學(xué).人工智能.人機交互技術(shù).傳感器技術(shù).網(wǎng)絡(luò)以及顯示處理一系列信息技術(shù)分支的最新成果集中在一起.在虛擬現(xiàn)實環(huán)境中,人可以與虛擬世界中的場景和事物進(jìn)行交互,它已經(jīng)滲入到了航空航天.民用軍事.娛樂游戲.醫(yī)療醫(yī)用以及教育等行業(yè).目前它已經(jīng)是21世紀(jì)發(fā)展過程中影響人類生活的重要技術(shù)之一.

  整個虛擬現(xiàn)實中,在場景中對物體的定位是關(guān)鍵核心部分.在定位中主要是要獲得物體所處的直角平面坐標(biāo)系中的朝向和位置以及物體與水平面的傾斜角.為此我們使用三維磁阻傳感器和三軸重力加速度來獲取所必須的數(shù)據(jù).

  磁阻效應(yīng)傳感器是根據(jù)磁性材料的磁阻效應(yīng)構(gòu)成的.圖1為簡單的磁阻效應(yīng)傳感器的結(jié)構(gòu)示意圖.由于磁性材料(如坡莫合金)具有各向異性,對它進(jìn)行磁化時,其磁化方向?qū)⑷Q于材料的易磁化軸.材料的形狀和磁化磁場的方向.所以在其線性范圍內(nèi),電橋的輸出電壓與被測磁場成正比.同時利用XYZ 三個方向上的磁通量進(jìn)行三角函數(shù)的轉(zhuǎn)換可知道方位角為X方向上與Y方向上面的反正切值.

  三軸重力加速度傳感器為多晶硅表面微加工結(jié)構(gòu),置于晶圓頂部.由于應(yīng)用加速度,多晶硅彈簧懸掛于晶圓表面的結(jié)構(gòu)之上,提供力量阻力.差分電容由獨立固定板和活動質(zhì)量連接板組成,能對結(jié)構(gòu)偏轉(zhuǎn)進(jìn)行測量.加速度使慣性質(zhì)量偏轉(zhuǎn).差分電容失衡,從而傳感器輸出的幅度與加速度成正比.相敏解調(diào)用于確定加速度的幅度和極性.

  虛擬現(xiàn)實定位技術(shù)在國內(nèi)外發(fā)展很迅速,主要在醫(yī)療與娛樂方面取得了成就.國內(nèi)傳統(tǒng)的技術(shù)主要是以單片機為核心處理器,在數(shù)據(jù)的處理和傳輸速度上有明顯的不足.本文的虛擬定位系統(tǒng)利用高精度的定位傳感器,處理和傳輸數(shù)據(jù)能夠高速.實時的對數(shù)據(jù)進(jìn)行采集與處理,降低了傳輸壓力,提高了數(shù)據(jù)吞吐量與設(shè)備利用率.現(xiàn)場可編程邏輯門陣列FPGA,是現(xiàn)代IC設(shè)計驗證的主流ASIC器件.FPGA設(shè)計靈活,易于修改,可靠性高,開發(fā)周期短,處理速度快,易于實現(xiàn)高速電路的設(shè)計,可以方便的對定位傳感器進(jìn)行驅(qū)動,并對其數(shù)據(jù)進(jìn)行快速的處理和傳輸.

  數(shù)據(jù)采集系統(tǒng)總體設(shè)計結(jié)構(gòu)

  本文采用了Xilinx公司spartan3系列的 FPGA,ADI公司的ADXL345三軸重力加速度傳感器以及Honeywell公司的HMC5883L三維磁阻傳感器,利用了模塊化的結(jié)構(gòu)分別對每個單元進(jìn)行流水線操作.整個系統(tǒng)主要包括:FPGA核心處理模塊.硬件電源模塊.場景數(shù)據(jù)處理模塊.以太網(wǎng)通訊模塊.當(dāng)物體的方位角和傾斜角發(fā)生變化的時候,ADXL345模塊和HMC5883L模塊會將新的數(shù)據(jù)存儲到FPGA中的FIFO里,最后通過以太網(wǎng)以UDP包的方式上傳到上位機分析處理.系統(tǒng)中的接口電路主要有ADXL345與FPGA的接口.HMC5883L與FPGA的接口.以太網(wǎng)芯片與FPGA 的接口電路.系統(tǒng)上電以后,F(xiàn)PGA發(fā)出的信號包括兩個傳感器時鐘驅(qū)動信號,以太網(wǎng)芯片控制信號.FPGA內(nèi)部的信號包括FIFO控制信號.傳感器信號傳入的控制信號.系統(tǒng)的工作過程為:FPGA 對各傳感器和以太網(wǎng)進(jìn)行正確的驅(qū)動后,傳感器開始以一定的頻率向FPGA發(fā)送數(shù)據(jù),當(dāng)FPGA接收到一次數(shù)據(jù)后馬上將數(shù)據(jù)存儲在FIFO中;同時FIFO 在相應(yīng)的條件下按照寫時鐘把數(shù)據(jù)一次存儲好,按照時鐘把原來存儲的數(shù)據(jù)發(fā)送給以太網(wǎng)芯片;以太網(wǎng)芯片把這些數(shù)據(jù)封裝成UDP包,通過以太網(wǎng)總線上傳給上位機;最后,上位機在收到有效的數(shù)據(jù)時,對數(shù)據(jù)進(jìn)行分析處理,然后傳給三維軟件部分使得三維場景中的物體也發(fā)生同樣的方位角和傾斜角的變化,實現(xiàn)了虛擬現(xiàn)實的功能.

  數(shù)據(jù)采集系統(tǒng)模塊化設(shè)計

  3.1 HMC5883L數(shù)據(jù)采集模塊設(shè)計

  場景數(shù)據(jù)模塊是整個測量系統(tǒng)的基礎(chǔ)部分,也是整個電路工作的必不可少的一個模塊.其中包括了測量方位角用的HMC5883L磁阻傳感器芯片以及測量傾斜角 的三軸重力加速度傳感器ADXL345、HMC5883L是一種表面貼裝的高集成模塊,并帶有數(shù)字接口的弱磁傳感器芯片,應(yīng)用于低成本羅盤和磁場檢測領(lǐng)域.

  HMC5883L的時鐘是一系列的I2 C驅(qū)動時鐘周期.本模塊的設(shè)計目標(biāo)在于將三維磁阻傳感器芯片HMC5883L良好的驅(qū)動并確定時序中數(shù)據(jù)的傳輸順序.目前采用FPGA引腳對相對應(yīng)的時序進(jìn)行控制.

  HMC5883L傳感器固定的時序中完成對數(shù)據(jù)的采集,采集到的數(shù)據(jù)是具有特定格式的數(shù)字量,需要經(jīng)過一定算法分析和數(shù)據(jù)整理才能送往上位機進(jìn)行操作. FPGA 與HMC5883L的通信采用了I2 C的通信手段,在代碼編寫的過程中采用了標(biāo)準(zhǔn)速率模式100kHz,在總線規(guī)定中,總線的位格式是一個8位數(shù)據(jù)/地址傳送和1位應(yīng)答位.如圖3所示的格式 的時序情況.(點擊可查看大圖)

  HMC5883L的工作流程:首先要芯片的初始化進(jìn)行數(shù)據(jù)等待,之后使用I2C的傳輸方式對數(shù)據(jù)進(jìn)行控制.一個測試前的過程需要對應(yīng)有的測量寄存器進(jìn)行對 應(yīng)的配置.首先發(fā)送配置寄存器A的配置量,為寫操作,寄存器指令為默認(rèn)值;第二步發(fā)送配置寄存器B的配置量,同樣也為默認(rèn)值;第三步發(fā)送模式寄存器的配置 量,即發(fā)送數(shù)據(jù)0X00(即連續(xù)測量模式).此時配置的寄存器的流程已經(jīng)走完.之后進(jìn)入讀操作模式,此時根據(jù)時鐘的采樣速度,循環(huán)對傳感器內(nèi)部寄存器 03-08進(jìn)行操作,得到X、Y、Z 三個方向上的數(shù)據(jù),讀入到代碼設(shè)定的寄存器中.具體操作流程如圖4所示.

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

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

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

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

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

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

  式中Ax、Ay、Az是重力加速度傳感器三個方向上測量得到的加速度值.在特定的公式計算下可以大致得到目前物體所處的順時針方位角a為

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

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

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

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

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

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

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

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

  4 結(jié)語

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



關(guān)鍵詞: FPGA 虛擬現(xiàn)實

評論


相關(guān)推薦

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

關(guān)閉