如何設(shè)計(jì)基于FPGA的虛擬現(xiàn)實(shí)定位系統(tǒng)?
虛擬現(xiàn)實(shí)技術(shù)是目前計(jì)算機(jī)信息科學(xué)中的前沿學(xué)科,文中設(shè)計(jì)了一種以FPGA 為核心的數(shù)據(jù)采集處理系統(tǒng).利用HMC5883L和ADXL345對(duì)虛擬場(chǎng)景中物體的方位和朝向進(jìn)行確定并通過(guò)以太網(wǎng)給虛擬場(chǎng)景主機(jī)發(fā)送數(shù)據(jù).整個(gè)系統(tǒng)以 FPGA作為主控制器,配以傳感器數(shù)據(jù)采集,內(nèi)部FIFO存儲(chǔ),以太網(wǎng)高速傳輸,從而把定位系統(tǒng)參數(shù)實(shí)時(shí)傳送到上位機(jī)中,具有傳輸速度快.實(shí)時(shí)性等優(yōu)點(diǎn),實(shí)現(xiàn)了虛擬現(xiàn)實(shí)高精度定位的功能.
本文引用地址:http://2s4d.com/article/201808/385562.htm1 引言
虛擬現(xiàn)實(shí)(Virtual Reality,VR)是目前計(jì)算機(jī)應(yīng)用方面活躍的技術(shù)研究領(lǐng)域,是整個(gè)信息科學(xué)領(lǐng)域中的新興技術(shù).它是依據(jù)計(jì)算機(jī)視頻技術(shù)為基礎(chǔ),將計(jì)算機(jī)圖像處理.計(jì)算機(jī)心理學(xué).人工智能.人機(jī)交互技術(shù).傳感器技術(shù).網(wǎng)絡(luò)以及顯示處理一系列信息技術(shù)分支的最新成果集中在一起.在虛擬現(xiàn)實(shí)環(huán)境中,人可以與虛擬世界中的場(chǎng)景和事物進(jìn)行交互,它已經(jīng)滲入到了航空航天.民用軍事.娛樂游戲.醫(yī)療醫(yī)用以及教育等行業(yè).目前它已經(jīng)是21世紀(jì)發(fā)展過(guò)程中影響人類生活的重要技術(shù)之一.
整個(gè)虛擬現(xiàn)實(shí)中,在場(chǎng)景中對(duì)物體的定位是關(guān)鍵核心部分.在定位中主要是要獲得物體所處的直角平面坐標(biāo)系中的朝向和位置以及物體與水平面的傾斜角.為此我們使用三維磁阻傳感器和三軸重力加速度來(lái)獲取所必須的數(shù)據(jù).
磁阻效應(yīng)傳感器是根據(jù)磁性材料的磁阻效應(yīng)構(gòu)成的.圖1為簡(jiǎn)單的磁阻效應(yīng)傳感器的結(jié)構(gòu)示意圖.由于磁性材料(如坡莫合金)具有各向異性,對(duì)它進(jìn)行磁化時(shí),其磁化方向?qū)⑷Q于材料的易磁化軸.材料的形狀和磁化磁場(chǎng)的方向.所以在其線性范圍內(nèi),電橋的輸出電壓與被測(cè)磁場(chǎng)成正比.同時(shí)利用XYZ 三個(gè)方向上的磁通量進(jìn)行三角函數(shù)的轉(zhuǎn)換可知道方位角為X方向上與Y方向上面的反正切值.
三軸重力加速度傳感器為多晶硅表面微加工結(jié)構(gòu),置于晶圓頂部.由于應(yīng)用加速度,多晶硅彈簧懸掛于晶圓表面的結(jié)構(gòu)之上,提供力量阻力.差分電容由獨(dú)立固定板和活動(dòng)質(zhì)量連接板組成,能對(duì)結(jié)構(gòu)偏轉(zhuǎn)進(jìn)行測(cè)量.加速度使慣性質(zhì)量偏轉(zhuǎn).差分電容失衡,從而傳感器輸出的幅度與加速度成正比.相敏解調(diào)用于確定加速度的幅度和極性.
虛擬現(xiàn)實(shí)定位技術(shù)在國(guó)內(nèi)外發(fā)展很迅速,主要在醫(yī)療與娛樂方面取得了成就.國(guó)內(nèi)傳統(tǒng)的技術(shù)主要是以單片機(jī)為核心處理器,在數(shù)據(jù)的處理和傳輸速度上有明顯的不足.本文的虛擬定位系統(tǒng)利用高精度的定位傳感器,FPGA處理和傳輸數(shù)據(jù)能夠高速.實(shí)時(shí)的對(duì)數(shù)據(jù)進(jìn)行采集與處理,降低了傳輸壓力,提高了數(shù)據(jù)吞吐量與設(shè)備利用率.現(xiàn)場(chǎng)可編程邏輯門陣列FPGA,是現(xiàn)代IC設(shè)計(jì)驗(yàn)證的主流ASIC器件.FPGA設(shè)計(jì)靈活,易于修改,可靠性高,開發(fā)周期短,處理速度快,易于實(shí)現(xiàn)高速電路的設(shè)計(jì),可以方便的對(duì)定位傳感器進(jìn)行驅(qū)動(dòng),并對(duì)其數(shù)據(jù)進(jìn)行快速的處理和傳輸.
數(shù)據(jù)采集系統(tǒng)總體設(shè)計(jì)結(jié)構(gòu)
本文采用了Xilinx公司spartan3系列的 FPGA,ADI公司的ADXL345三軸重力加速度傳感器以及Honeywell公司的HMC5883L三維磁阻傳感器,利用了模塊化的結(jié)構(gòu)分別對(duì)每個(gè)單元進(jìn)行流水線操作.整個(gè)系統(tǒng)主要包括:FPGA核心處理模塊.硬件電源模塊.場(chǎng)景數(shù)據(jù)處理模塊.以太網(wǎng)通訊模塊.當(dāng)物體的方位角和傾斜角發(fā)生變化的時(shí)候,ADXL345模塊和HMC5883L模塊會(huì)將新的數(shù)據(jù)存儲(chǔ)到FPGA中的FIFO里,最后通過(guò)以太網(wǎng)以UDP包的方式上傳到上位機(jī)分析處理.系統(tǒng)中的接口電路主要有ADXL345與FPGA的接口.HMC5883L與FPGA的接口.以太網(wǎng)芯片與FPGA 的接口電路.系統(tǒng)上電以后,F(xiàn)PGA發(fā)出的信號(hào)包括兩個(gè)傳感器時(shí)鐘驅(qū)動(dòng)信號(hào),以太網(wǎng)芯片控制信號(hào).FPGA內(nèi)部的信號(hào)包括FIFO控制信號(hào).傳感器信號(hào)傳入的控制信號(hào).系統(tǒng)的工作過(guò)程為:FPGA 對(duì)各傳感器和以太網(wǎng)進(jìn)行正確的驅(qū)動(dòng)后,傳感器開始以一定的頻率向FPGA發(fā)送數(shù)據(jù),當(dāng)FPGA接收到一次數(shù)據(jù)后馬上將數(shù)據(jù)存儲(chǔ)在FIFO中;同時(shí)FIFO 在相應(yīng)的條件下按照寫時(shí)鐘把數(shù)據(jù)一次存儲(chǔ)好,按照時(shí)鐘把原來(lái)存儲(chǔ)的數(shù)據(jù)發(fā)送給以太網(wǎng)芯片;以太網(wǎng)芯片把這些數(shù)據(jù)封裝成UDP包,通過(guò)以太網(wǎng)總線上傳給上位機(jī);最后,上位機(jī)在收到有效的數(shù)據(jù)時(shí),對(duì)數(shù)據(jù)進(jìn)行分析處理,然后傳給三維軟件部分使得三維場(chǎng)景中的物體也發(fā)生同樣的方位角和傾斜角的變化,實(shí)現(xiàn)了虛擬現(xiàn)實(shí)的功能.
數(shù)據(jù)采集系統(tǒng)模塊化設(shè)計(jì)
3.1 HMC5883L數(shù)據(jù)采集模塊設(shè)計(jì)
場(chǎng)景數(shù)據(jù)模塊是整個(gè)測(cè)量系統(tǒng)的基礎(chǔ)部分,也是整個(gè)電路工作的必不可少的一個(gè)模塊.其中包括了測(cè)量方位角用的HMC5883L磁阻傳感器芯片以及測(cè)量?jī)A斜角 的三軸重力加速度傳感器ADXL345、HMC5883L是一種表面貼裝的高集成模塊,并帶有數(shù)字接口的弱磁傳感器芯片,應(yīng)用于低成本羅盤和磁場(chǎng)檢測(cè)領(lǐng)域.
HMC5883L的時(shí)鐘是一系列的I2 C驅(qū)動(dòng)時(shí)鐘周期.本模塊的設(shè)計(jì)目標(biāo)在于將三維磁阻傳感器芯片HMC5883L良好的驅(qū)動(dòng)并確定時(shí)序中數(shù)據(jù)的傳輸順序.目前采用FPGA引腳對(duì)相對(duì)應(yīng)的時(shí)序進(jìn)行控制.
HMC5883L傳感器固定的時(shí)序中完成對(duì)數(shù)據(jù)的采集,采集到的數(shù)據(jù)是具有特定格式的數(shù)字量,需要經(jīng)過(guò)一定算法分析和數(shù)據(jù)整理才能送往上位機(jī)進(jìn)行操作. FPGA 與HMC5883L的通信采用了I2 C的通信手段,在代碼編寫的過(guò)程中采用了標(biāo)準(zhǔn)速率模式100kHz,在總線規(guī)定中,總線的位格式是一個(gè)8位數(shù)據(jù)/地址傳送和1位應(yīng)答位.如圖3所示的格式 的時(shí)序情況.(點(diǎn)擊可查看大圖)
HMC5883L的工作流程:首先要芯片的初始化進(jìn)行數(shù)據(jù)等待,之后使用I2C的傳輸方式對(duì)數(shù)據(jù)進(jìn)行控制.一個(gè)測(cè)試前的過(guò)程需要對(duì)應(yīng)有的測(cè)量寄存器進(jìn)行對(duì) 應(yīng)的配置.首先發(fā)送配置寄存器A的配置量,為寫操作,寄存器指令為默認(rèn)值;第二步發(fā)送配置寄存器B的配置量,同樣也為默認(rèn)值;第三步發(fā)送模式寄存器的配置 量,即發(fā)送數(shù)據(jù)0X00(即連續(xù)測(cè)量模式).此時(shí)配置的寄存器的流程已經(jīng)走完.之后進(jìn)入讀操作模式,此時(shí)根據(jù)時(shí)鐘的采樣速度,循環(huán)對(duì)傳感器內(nèi)部寄存器 03-08進(jìn)行操作,得到X、Y、Z 三個(gè)方向上的數(shù)據(jù),讀入到代碼設(shè)定的寄存器中.具體操作流程如圖4所示.
評(píng)論