0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

探究FPGA與ARM的無人機(jī)陀螺儀數(shù)據(jù)接口設(shè)計(jì)

電子工程師 ? 來源:《電子技術(shù)應(yīng)用》 ? 作者:應(yīng)進(jìn);潘浩曼;代冀 ? 2021-05-05 07:01 ? 次閱讀

無人機(jī)系統(tǒng)對(duì)于地面站發(fā)送的控制信號(hào)以及飛行器傳回的姿態(tài)數(shù)據(jù)有著極高的實(shí)時(shí)性、可靠性與穩(wěn)定性要求,這對(duì)無人機(jī)通信系統(tǒng)設(shè)計(jì)提出了新的挑戰(zhàn)。對(duì)于采用ARM作為微處理器的無人機(jī)系統(tǒng)來說,系統(tǒng)往往需要協(xié)調(diào)基于ARM處理器的高速陀螺儀模塊與相對(duì)低速的外部無線數(shù)據(jù)傳輸模塊間的工作。在通信高穩(wěn)定性與低誤碼率的要求下,處理器不得不花時(shí)間運(yùn)行空操作來等待外部相對(duì)低速的傳輸模塊完成一幀數(shù)據(jù)的收/發(fā)。由于等待所浪費(fèi)的處理器運(yùn)算周期無形中降低了整個(gè)飛控系統(tǒng)的實(shí)時(shí)性,進(jìn)而帶來許多潛在的不穩(wěn)定因素。

本設(shè)計(jì)結(jié)合無人機(jī)系統(tǒng)發(fā)展需求,采用FPGA FIFO[1]作為高速數(shù)據(jù)緩沖,提出一種基于FPGA內(nèi)建FIFO的無人機(jī)陀螺儀前級(jí)通信接口。通過高速異步FIFO緩沖,將無人機(jī)陀螺儀姿態(tài)數(shù)據(jù)經(jīng)由FPGA準(zhǔn)確無誤地發(fā)送給地面站,保證了傳輸質(zhì)量,架起了高速芯片與低速設(shè)備之間溝通的橋梁。

1 FPGA內(nèi)建FIFO的基本工作原理

FIFO即先進(jìn)先出隊(duì)列,采用環(huán)形存儲(chǔ)電路結(jié)構(gòu),是一種傳統(tǒng)的按序執(zhí)行方法。先進(jìn)入的指令先完成并引退,隨后才執(zhí)行第二條指令,是一種先進(jìn)先出的數(shù)據(jù)緩存器。根據(jù)FIFO的讀寫時(shí)鐘頻率是否相同,可將FIFO分為同步FIFO與異步FIFO[2]。FIFO的應(yīng)用可以很好地協(xié)調(diào)不同時(shí)鐘、不同數(shù)據(jù)寬度數(shù)據(jù)的通信,滿足高/低速時(shí)鐘頻率要求。與普通存儲(chǔ)器相比,F(xiàn)IFO沒有外部讀寫地址線,使用方便。

本文設(shè)計(jì)采用FPGA異步FIFO連接基于ARM處理器的高速無人機(jī)陀螺儀模塊與相對(duì)低速的無線數(shù)據(jù)傳輸外設(shè)。從硬件的觀點(diǎn)來看,F(xiàn)IFO實(shí)質(zhì)上就是一塊數(shù)據(jù)內(nèi)存。異步FIFO采用2個(gè)時(shí)鐘信號(hào)控制其讀寫操作,分別為寫時(shí)鐘(wrclk)和讀時(shí)鐘(rdclk)。一個(gè)用來寫數(shù)據(jù),即將數(shù)據(jù)存入FIFO;另一個(gè)用來讀數(shù)據(jù),即將數(shù)據(jù)從FIFO中取出。

與FIFO操作相關(guān)的有兩個(gè)指針:寫指針指向要寫的內(nèi)存部分;讀指針指向要讀的內(nèi)存部分。FIFO控制器通過外部的讀寫信號(hào)控制這兩個(gè)指針移動(dòng),并由此產(chǎn)生FIFO空信號(hào)或滿信號(hào)。讀寫時(shí)鐘相互獨(dú)立設(shè)計(jì),有效地保證了FIFO兩端數(shù)據(jù)的異步通信,其模塊框圖[3]如圖1所示。其中,異步FIFO模塊共有9個(gè)端口,分別為數(shù)據(jù)輸入(datda[15..0])、寫請(qǐng)求(wrreq)、寫時(shí)鐘(wrclk)、緩沖器滿信號(hào)(wrful)、讀請(qǐng)求(rdreq)、讀時(shí)鐘(rdclk)、數(shù)據(jù)讀出(q[15..0])、緩沖器空信號(hào)(rdempty)、緩沖器清空信號(hào)(aclr)。

o4YBAGB-qluAdkbkAABjtKt8fNo853.png

2 基于ARM的無人機(jī)陀螺儀接口結(jié)構(gòu)

由于機(jī)載燃油和電能儲(chǔ)備的制約,無人機(jī)載設(shè)備要求小巧輕便,能效比高,因此對(duì)芯片的選型及電路結(jié)構(gòu)提出了較高的要求。綜合穩(wěn)定性、數(shù)據(jù)精度、工作溫度、封裝體積以及能耗等各方面因素,對(duì)無人機(jī)陀螺儀傳感器經(jīng)行嚴(yán)格篩選,確定了如圖2所示的陀螺儀方案。

o4YBAGB-qkSALfKbAAFlvS-izLg742.png

無人機(jī)陀螺儀的主控芯片選用ARM 32 bit CortexTM M3內(nèi)核的STM32F103T8處理器。其內(nèi)建64 KB的閃存存儲(chǔ)器和20 KB的運(yùn)行內(nèi)存,以及7通道的DMA、7個(gè)定時(shí)器、2個(gè)UART端口等。通過板載的8 MHz晶體和STM32內(nèi)部的PLL,控制器可以運(yùn)行在72 MHz的主頻上,為姿態(tài)解算[4]提供強(qiáng)大的硬件支持。

三軸加速度與三軸角速度傳感器采用Invensense公司的MPU-6050單芯片方案,此芯片為全球首例整合性6軸運(yùn)動(dòng)處理組件,相比其他多芯片實(shí)現(xiàn)方案,免除了整合陀螺儀與加速度器軸間差的問題,大大減少了封裝空間。

三軸磁力計(jì)采用Honeywell公司的HMC5883L芯片,此芯片內(nèi)部采用先進(jìn)的高分辨率HMC188X系列磁阻傳感器與行業(yè)領(lǐng)先的各向異性磁阻技術(shù)(AMR),具有軸向高靈敏度和線性高精度的特點(diǎn),測量范圍從毫高斯到8高斯(gauss),穩(wěn)定可靠。

氣壓傳感器采用博世公司的BMP180芯片,該芯片性能卓越,絕對(duì)精度可以達(dá)到0.03 hpa,并且功耗極低,只有3 ?滋A。傳感器采用強(qiáng)大的7 pin陶瓷無引線芯片承載(LCC)超薄封裝,安裝使用方便。各傳感器與ARM處理器采用I2C總線連接,示意圖如圖3所示。

o4YBAGB-qVCAXTu6AADVAvIgHuQ959.png

3 FPGA FIFO與陀螺儀的連接

結(jié)合無人機(jī)ARM陀螺儀的特點(diǎn),為了適應(yīng)過程的復(fù)雜性,實(shí)現(xiàn)操作的簡便性,設(shè)計(jì)選用Altera公司的CycloneII系列芯片EP2C8Q208C8N,在QuartuesII平臺(tái)上進(jìn)行Verilog代碼設(shè)計(jì),使用Altera公司提供的FIFO IP核[5]。此方案穩(wěn)定高效,易于開發(fā)。

3.1 陀螺儀與FIFO及FPGA的連接

處理器采集各傳感器信號(hào),在ARM內(nèi)部進(jìn)行姿態(tài)解算,進(jìn)而得到俯仰角、橫滾角、航向角、氣壓、高度和溫度信息。為了及時(shí)將解算得到的數(shù)據(jù)發(fā)送回地面站,處理器控制寫請(qǐng)求信號(hào)wrreq和寫時(shí)鐘wrclk將這些數(shù)據(jù)高速寫入FIFO,然后回到飛行控制程序,進(jìn)行下一周期的姿態(tài)解算。FIFO在數(shù)據(jù)寫滿后,寫滿標(biāo)志位wrfull會(huì)置高電平,ARM處理器通過檢測寫滿標(biāo)志位的狀態(tài)來判斷是否繼續(xù)寫入數(shù)據(jù)。

與此同時(shí),在FPGA中通過檢測所讀取FIFO是否為空標(biāo)志位rdempty來判斷是否繼續(xù)讀取數(shù)據(jù)。讀空標(biāo)志位為低電平代表FIFO中有數(shù)據(jù),可以讀取,則配合讀請(qǐng)求信號(hào)rdreq和讀時(shí)鐘rdclk及時(shí)讀取數(shù)據(jù),直到將數(shù)據(jù)全部讀出,標(biāo)志位變?yōu)楦唠娖?,此時(shí)FIFO中已經(jīng)沒有數(shù)據(jù)?;贏RM的陀螺儀與FIFO及FPGA的連接如圖4所示。

pIYBAGB-qdiAFEbwAACSoYjC1y4070.png

3.2 FIFO的配置與讀寫操作

針對(duì)上述ARM陀螺儀接口特點(diǎn),對(duì)FIFO進(jìn)行配置如下。

FIFO Width : 16 bit

FIFO Depth : 2 048 words

Synchronize reading and writing clock : YES

Asynchronous clear : YES

設(shè)計(jì)采用位寬為16 bit、深度為2 048且?guī)в型角辶愣耍?]的異步FIFO結(jié)構(gòu),其寫時(shí)序與讀時(shí)序分別如圖5、圖6所示。

1307365131699.gif

狀態(tài)機(jī)跳轉(zhuǎn)部分控制代碼如下:

always@(posedge SYSCLK or negedge RST )

begin

if(!RST)

state 《= idle;

else

case(state)

idle:

begin

data[15:0] 《= 16′d0;

wrreq 《= 1′b1;

rdreq 《= 1′b0;

aclr 《= 1′b0;

state 《= write;

end

read

if(rdempty != 1′b1 && rdreq ==1′b1)

read_start 《= 1′b1;

else

begin

read_start 《= 1′b0;

wrreq 《= 1′b1;

state 《= idle;

end

write:

if(wrfull!= 1′b1 && wrreq == 1′b1)

write_start 《= 1′b1;

else

begin

write_start 《= 1′b0;

rdreq 《= 1′b1;

state 《= read;

end

default: state 《= idle;

endcase

end

4 系統(tǒng)仿真效果

綜合運(yùn)用QuartuesII[9]與ModelSim SE[10]先進(jìn)仿真工具,結(jié)合FPGA內(nèi)建FIFO與基于ARM的無人機(jī)陀螺儀接口設(shè)計(jì)方法,仿真結(jié)果如圖8、圖9所示。

pIYBAGB-qfKAOxduAADDjq08Zvs974.png

o4YBAGB-qgqAGL20AAGgrt87vZo372.png

從圖8中仿真結(jié)果得知,在寫入時(shí)鐘頻率為100 MHz、寫滿標(biāo)志位為低電平時(shí),待寫入數(shù)據(jù)data在每個(gè)寫入時(shí)鐘上升沿來臨后被準(zhǔn)確寫入FIFO的存儲(chǔ)區(qū);隨后在讀出時(shí)鐘頻率為5 MHz且讀空標(biāo)志位為低電平的情況下,待讀出數(shù)據(jù)q在每個(gè)讀時(shí)鐘上升沿來臨后被正確讀出,系統(tǒng)讀寫數(shù)據(jù)穩(wěn)定準(zhǔn)確,符合設(shè)計(jì)需求。

圖9為通過此通信接口讀取得到的無人機(jī)飛行姿態(tài)數(shù)據(jù),包括俯仰角、偏航角、滾轉(zhuǎn)角,以圖表形式予以顯示。數(shù)據(jù)精度與實(shí)驗(yàn)結(jié)果理想,驗(yàn)證了FPGA與ARM無人機(jī)陀螺儀數(shù)據(jù)接口設(shè)計(jì)方案穩(wěn)定可靠。

本文提出了基于FPGA內(nèi)建FIFO與ARM的無人機(jī)陀螺儀數(shù)據(jù)接口設(shè)計(jì)方法,解決了無人機(jī)ARM處理器與相對(duì)低速無線發(fā)送模塊直接數(shù)據(jù)傳輸時(shí)傳輸速度不匹配的難題,實(shí)現(xiàn)了ARM處理器將無人機(jī)姿態(tài)數(shù)據(jù)高速寫入FIFO后就可以立即返回、無需等待的功能,節(jié)約了處理器資源,使得無人機(jī)系統(tǒng)的可靠性與穩(wěn)定性得到大幅提升。仿真驗(yàn)證表明,讀寫數(shù)據(jù)準(zhǔn)確無誤,顯著提高了數(shù)據(jù)傳輸速度與數(shù)據(jù)質(zhì)量,證明了本方案的可行性與正確性。面對(duì)高速數(shù)據(jù)傳輸?shù)男枨螅撓到y(tǒng)還可廣泛應(yīng)用于其他需要高無線數(shù)據(jù)傳輸?shù)念I(lǐng)域,有較高的理論意義和應(yīng)用價(jià)值。

參考文獻(xiàn)

[1] 秦鴻剛,劉京科,吳迪。基于FPGA的雙口RAM實(shí)現(xiàn)及應(yīng)用[J]。電子工程設(shè)計(jì),2010,2(2):72-74.

[2] 夏宇聞.Verilog數(shù)字系統(tǒng)設(shè)計(jì)教程[M]。北京:北京航空航天大學(xué)出版社,2008.

[3] BAKER R J,LI H W,BOYEE D E.CMOS電路設(shè)計(jì)布局與仿真[M]。陳中建,譯。北京:機(jī)械工業(yè)出版社,2006.

[4] PAVLLOV A.CMOS SRAM circuit design and parame tric test in Nano-Scaled technologies[M].New York:Springer,2008.

[5] 單立超,謝雪松?;贔PGA的一種可變幀數(shù)字分接技術(shù)[J]。電子技術(shù)應(yīng)用,2013,32(2):27-30.

[6] 何濤?;谲浻布f(xié)同技術(shù)的FPGA測試平臺(tái)設(shè)計(jì)及測試實(shí)現(xiàn)[D]。成都:電子科技大學(xué),2009.

[7] 徐國強(qiáng),張萌?;贔PGA的高性能視頻信號(hào)采集系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J]。微型機(jī)與應(yīng)用,2012,31(6):72-75.

[8] BRIAN D,ANDREW S,CHAN K.RAM with configurable depth and width[P].US:6578 104.1 8.22,June 2003.

編輯:jq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1625

    文章

    21639

    瀏覽量

    601358
  • ARM
    ARM
    +關(guān)注

    關(guān)注

    134

    文章

    9030

    瀏覽量

    366565
  • fifo
    +關(guān)注

    關(guān)注

    3

    文章

    387

    瀏覽量

    43504
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    陀螺儀x軸和y軸的應(yīng)用

    陀螺儀是一種用于測量和感應(yīng)物體旋轉(zhuǎn)和轉(zhuǎn)動(dòng)的設(shè)備,它通常由三個(gè)軸組成:x軸、y軸和z軸。在陀螺儀中,x軸和y軸通常成對(duì)出現(xiàn),關(guān)于它們的比例可以因具體應(yīng)用而異。首先,我們先了解一下陀螺儀的工作原理
    發(fā)表于 04-17 15:42 ?0次下載

    解析愛普生(EPSON)陀螺儀傳感器XV-3510CB

    在科技革命的帶領(lǐng)下,自主精密農(nóng)業(yè)機(jī)械、智能施工機(jī)械和無人機(jī)應(yīng)用的快速發(fā)展,以及工作環(huán)境的惡劣和空間的逼仄,對(duì)于小型陀螺儀傳感器的需求與日俱增。在這種環(huán)境之下,愛普生(EPSON)推出了幾句特色的陀螺儀傳感器——XV-3510CB
    的頭像 發(fā)表于 03-18 16:23 ?817次閱讀
    解析愛普生(EPSON)<b class='flag-5'>陀螺儀</b>傳感器XV-3510CB

    第四集 知語云智能科技無人機(jī)反制技術(shù)與應(yīng)用--無人機(jī)的組成與工作原理

    ”,負(fù)責(zé)處理各種傳感器數(shù)據(jù),控制無人機(jī)的飛行姿態(tài)和軌跡。 傳感器:傳感器是無人機(jī)的“感官”,包括GPS、陀螺儀、加速度計(jì)等,用于感知無人機(jī)
    發(fā)表于 03-12 11:28

    第三集 知語云智能科技無人機(jī)反制技術(shù)與應(yīng)用--無人機(jī)的應(yīng)用領(lǐng)域

    應(yīng)對(duì)突發(fā)情況。 智能識(shí)別:通過先進(jìn)的算法和數(shù)據(jù)庫,能夠識(shí)別不同品牌和型號(hào)的無人機(jī),實(shí)現(xiàn)個(gè)性化反制。 四、無人機(jī)反制技術(shù)的應(yīng)用前景 隨著無人機(jī)技術(shù)的不斷發(fā)展,
    發(fā)表于 03-12 11:13

    第二集 知語云智能科技無人機(jī)反制技術(shù)與應(yīng)用--無人機(jī)的發(fā)展歷程

    隨著科技的飛速發(fā)展,無人機(jī)技術(shù)日益成為當(dāng)今社會(huì)的熱門話題。從最初的軍事偵察到如今的民用消費(fèi),無人機(jī)憑借其靈活性和高效性,在航拍、農(nóng)業(yè)、物流等多個(gè)領(lǐng)域大放異彩。然而,無人機(jī)技術(shù)的廣泛應(yīng)用也帶來
    發(fā)表于 03-12 10:56

    無人機(jī)全景監(jiān)測:空域管理的新革命

    。這種實(shí)時(shí)監(jiān)測和快速響應(yīng)的能力,大大提高了空域管理的效率和安全性。 全面覆蓋與高精度數(shù)據(jù)無人機(jī)全景監(jiān)測能夠?qū)崿F(xiàn)對(duì)空域的全面覆蓋,不留死角。同時(shí),高清攝像頭和傳感器能夠獲取高精度的影像數(shù)據(jù),為管理者
    發(fā)表于 02-20 15:23

    手機(jī)陀螺儀失靈解決方法

    手機(jī)陀螺儀是一種用于感知和測量設(shè)備旋轉(zhuǎn)、傾斜和方向的傳感器。失靈的陀螺儀可能導(dǎo)致手機(jī)在運(yùn)動(dòng)控制、游戲和導(dǎo)航等應(yīng)用中出現(xiàn)問題。下面將詳細(xì)介紹陀螺儀失靈的原因和解決方法。 陀螺儀失靈的原因
    的頭像 發(fā)表于 01-30 10:06 ?2.6w次閱讀

    陀螺儀x和y比例是多少 陀螺儀x軸和y軸是指什么

    陀螺儀是一種用于測量和感應(yīng)物體旋轉(zhuǎn)和轉(zhuǎn)動(dòng)的設(shè)備,它通常由三個(gè)軸組成:x軸、y軸和z軸。在陀螺儀中,x軸和y軸通常成對(duì)出現(xiàn),關(guān)于它們的比例可以因具體應(yīng)用而異。 首先,我們先了解一下陀螺儀的工作原理
    的頭像 發(fā)表于 01-17 11:10 ?1875次閱讀

    陀螺儀感應(yīng)器有什么用

    感應(yīng)器在航空和航天領(lǐng)域中發(fā)揮著重要作用。例如,無人機(jī)和飛機(jī)使用陀螺儀感應(yīng)器來測量飛行姿態(tài),包括滾轉(zhuǎn)、俯仰和偏航角度。這些數(shù)據(jù)對(duì)于導(dǎo)航和飛行控制至關(guān)重要,能夠幫助飛行員或自主駕駛系統(tǒng)保持穩(wěn)定的飛行狀態(tài)。 車輛穩(wěn)定性
    的頭像 發(fā)表于 01-02 15:38 ?1752次閱讀

    陀螺儀感應(yīng)器校準(zhǔn)工具有哪些

    陀螺儀感應(yīng)器校準(zhǔn)工具是用于對(duì)陀螺儀進(jìn)行校準(zhǔn)和精調(diào)的設(shè)備或軟件。陀螺儀感應(yīng)器是一種用于測量和檢測物體的角速度、方向和姿態(tài)的傳感器。它廣泛應(yīng)用于飛行器、導(dǎo)航儀器、無人機(jī)、游戲控制器、智能手
    的頭像 發(fā)表于 01-02 14:53 ?2677次閱讀

    陀螺儀實(shí)體和支持有什么區(qū)別

    。 首先,陀螺儀實(shí)體是一種物理設(shè)備,用于測量和檢測物體的旋轉(zhuǎn)速度和角度。它通常由機(jī)械部件、感應(yīng)器以及與其他裝置的連接接口等組成。陀螺儀實(shí)體的存在主要基于物理原理,例如角動(dòng)量守恒、陀螺
    的頭像 發(fā)表于 01-02 14:47 ?1788次閱讀

    陀螺儀傳感器的應(yīng)用實(shí)例

    陀螺儀傳感器是一種用于檢測和測量設(shè)備旋轉(zhuǎn)的傳感器,可以在多個(gè)領(lǐng)域中應(yīng)用。在本文中,我們將詳細(xì)介紹陀螺儀傳感器的運(yùn)作原理和常見應(yīng)用實(shí)例。 陀螺儀傳感器是一種慣性傳感器,主要基于陀螺效應(yīng)來
    的頭像 發(fā)表于 01-02 14:37 ?1621次閱讀

    陀螺儀三軸軸承怎么安裝

    陀螺儀是一種用于測量旋轉(zhuǎn)角度的儀器,廣泛應(yīng)用于無人機(jī)、機(jī)器人、汽車等領(lǐng)域。在安裝陀螺儀的過程中,軸承起到了至關(guān)重要的作用,它能夠保證陀螺儀的平穩(wěn)運(yùn)行和準(zhǔn)確測量。本文將詳細(xì)介紹
    的頭像 發(fā)表于 01-02 14:26 ?861次閱讀

    三軸陀螺儀模塊怎么使用

    三軸陀螺儀模塊是一種用于測量角速度和方向的傳感器,可以在航空航天、汽車、無人機(jī)等領(lǐng)域廣泛應(yīng)用。本文將詳細(xì)介紹三軸陀螺儀模塊的原理、使用方法和注意事項(xiàng)。 一、原理介紹 陀螺儀原理
    的頭像 發(fā)表于 12-20 10:36 ?2381次閱讀

    陀螺儀的基本組成 陀螺儀的工作原理 陀螺儀的作用

    陀螺儀的基本組成 陀螺儀的工作原理 陀螺儀的作用 陀螺儀和重力傳感器有什么區(qū)別呢? 陀螺儀是一種測量和感知設(shè)備,可用于測量或檢測物體的角速度
    的頭像 發(fā)表于 12-07 11:26 ?2815次閱讀