摘 要:提出了一種基于FPGA的平面兩點(diǎn)測(cè)距的實(shí)現(xiàn)方案,在1280*1024分辨率下實(shí)現(xiàn)平面上兩點(diǎn)的精確測(cè)距。方案中利用FPGA對(duì)視頻信號(hào)進(jìn)行處理,在FPGA內(nèi)實(shí)現(xiàn)了目標(biāo)定位,測(cè)量計(jì)算等主要功能,大大簡(jiǎn)化了硬件電路,并且較之傳統(tǒng)方案具有明顯優(yōu)越的可擴(kuò)展性。
關(guān)鍵詞:兩點(diǎn)測(cè)距;現(xiàn)場(chǎng)可編程門陣列;視頻信號(hào)
中圖分類號(hào):TM文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1672-3198(2008)08-0366-01
1 系統(tǒng)結(jié)構(gòu)
圖1
本系統(tǒng)(圖1)用FPGA為處理芯片,處理視頻信號(hào),做出兩個(gè)十字線,再送出到顯示器上,可以在屏幕中顯示,用這兩個(gè)十字線,我們可以定位距離的兩個(gè)端點(diǎn)。
另外,我們接入四個(gè)按鍵(key_a_hor_move,key_a_ver_move,key_b_hor_move,key_b_ver_move),分別控制十字線A,B的左右,上下移動(dòng)。還有兩個(gè)按鍵(key_init,key_calc)用來初始化和執(zhí)行計(jì)算。
2 數(shù)學(xué)模型
x1≠x2,y1≠y2
P1P2=(x1-x2)+(y1-y2)2
圖2
本系統(tǒng)的數(shù)學(xué)模型(圖2)簡(jiǎn)單,實(shí)現(xiàn)起來非常的穩(wěn)定,并能達(dá)到相當(dāng)?shù)母叩念l率,滿足在1280*1024的分辨率下的測(cè)量。
3 系統(tǒng)實(shí)現(xiàn)
圖3
(1)在屏幕(圖3)中顯示兩個(gè)小十字線A,B,用來對(duì)準(zhǔn)要測(cè)量的目標(biāo)的兩個(gè)端點(diǎn)。
(2)首先要測(cè)出屏幕中兩個(gè)像素點(diǎn)的距離代表在屏幕中的物體的實(shí)際長(zhǎng)度,用來作為基本的單位來計(jì)算其他物體的長(zhǎng)度,取1M的長(zhǎng)度,通過調(diào)整A,B十字線的位置,定位1m長(zhǎng)度,由于我們知道A,B十字線的水平坐標(biāo),通過計(jì)算:A的水平坐標(biāo):a_hor_local,B的水平坐標(biāo):b_hor_local,兩個(gè)像素點(diǎn)之間的距離n=1000/|a_hor_local-b_hor_local|(單位為mm)。
(3)通過按鍵:key_a_hor_move可以調(diào)整A十字線在屏幕中的水平位置,key_a_ver_move可以調(diào)整十字線A在屏幕中的垂直位置。key_b_hor_move可以調(diào)整B十字線在屏幕中的水平位置,key_b_ver_move可以調(diào)整B十字線在屏幕中的垂直位置;通過這四個(gè)按鍵,我們就可以定位要測(cè)量的距離的兩個(gè)端點(diǎn)。
(4)由于我們知道A與B的水平和垂直坐標(biāo),我們可以計(jì)算出A,B兩點(diǎn)的水平距離和垂直距離。A與B的水平距離:|a_hor_local-b_hor_local|;A與B的垂直距離:|a_ver_local-b_ver_local|。
(5)由勾股定理c2=a2+b2,我們可以用這個(gè)公式知道, 兩個(gè)點(diǎn)之間的距離的平方等于他們的水平距離的平方
加上垂直距離的平方,構(gòu)成一個(gè)直角三角形底邊:bottom=|a_hor_local-b_hor_local|,高邊:high=|a_ver_local-b_ver_local|,我們由兩個(gè)端點(diǎn)的聯(lián)線上的像素點(diǎn)的個(gè)數(shù)來計(jì)算他們的距離,由于之前我們已經(jīng)計(jì)算出了兩個(gè)相鄰的像素點(diǎn)之間的距離代表實(shí)際的長(zhǎng)度n,所以我們想要的結(jié)果可以通過這樣的公式得出result*result=bottom*bottom*n*n+high*high*n*n。
(6)在硬件上的實(shí)現(xiàn)為:用綜合出的除法器計(jì)算n ,用綜合出的乘法器和加法器計(jì)算出result*resule,再通過開平方的算法實(shí)現(xiàn)開方的運(yùn)算,最終得到result。
(7)在獲取基本單位n時(shí),我們用一個(gè)帶刻度的尺子,水平放置,使其與我們?cè)谄聊恢谐霈F(xiàn)的一條水平線水平對(duì)齊,這條水平線,是我們做出來用來做水平對(duì)齊的。通過調(diào)整兩個(gè)小十字線A,B的位置,使他們?cè)谝粋€(gè)水平線上,并定位1m距離的兩個(gè)刻度的位置。
(8)當(dāng)我們調(diào)整了A與B的位置,置于直尺的兩個(gè)端點(diǎn)后,并且直尺也水平對(duì)齊了屏幕中的水平線,這時(shí)我們就可以按下按鍵:key_init,就得到n的值(單位為mm),并寄存在寄存器中,后面的計(jì)算可以隨時(shí)調(diào)用。
(9)當(dāng)我們初始化了n值后,我們就可以測(cè)量其他的物體的長(zhǎng)度了。調(diào)整A與B的位置,到達(dá)欲測(cè)目標(biāo)的兩個(gè)端點(diǎn),定位好后,我們就可以按下按鍵:key_calc得到結(jié)果result。
4 仿真結(jié)果
初始狀態(tài)A,B水平放置,為1000個(gè)像素點(diǎn)的距離,假設(shè)AB間的距離為1m,這樣相鄰的兩個(gè)像素的距離,代表實(shí)際距離為1mm原A的位置為(400,600),B的位置為(1400,600),按下key_init得到n,再按下key_calc得到result等于1000,這個(gè)結(jié)果是正確的。經(jīng)過一系列的左右上下的移動(dòng)后,A的位置變?yōu)椋?400,76),B的位置為(270,900),按下key_calc,得到result等于1398,這個(gè)結(jié)果是正確的。
在仿真軟件MODENSIM下,進(jìn)行功能仿真,系統(tǒng)的每個(gè)模塊的功能,系統(tǒng)的各個(gè)功能都實(shí)現(xiàn)了,設(shè)計(jì)達(dá)到目的。
5 結(jié)論
FPGA是Filed Programmable Gate Array 的縮寫,即現(xiàn)場(chǎng)可編程邏輯陣列。FPGA是在CPLD的基礎(chǔ)上發(fā)展起來的新型高性能可編程邏輯期間,它是一般采用SRAM工藝,也有一些專用器件采用FLASH工藝或反熔絲工藝等。FPGA的集成度很高,其器件密度從數(shù)萬系統(tǒng)門到數(shù)千萬系統(tǒng)門不等,可以完成極其復(fù)雜的時(shí)序與組合邏輯電路功能,適用于高速,高密度的高端數(shù)字邏輯電路設(shè)計(jì)領(lǐng)域。FPGA的基本組成部分有可編程輸入/輸出單元,基本可編程邏輯單元,嵌入式塊RAM,豐富的布線資源,底層嵌入功能單元,內(nèi)嵌專用硬核等。
參考文獻(xiàn)
[1]姚琮,張興敢,肖文書.中頻采樣中希爾伯特變換器的FPGA實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用, 2004,(09).
[2]何玉東,劉濤.基于FPGA的離散傅立葉變換[J].安徽電子信息職業(yè)技術(shù)學(xué)院學(xué)報(bào), 2006,(02).
[3]郭廷廷,李敬,唐昆.多相結(jié)構(gòu)采樣率變換器的FPGA實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用, 2006,(09).
[4]趙嵐,畢衛(wèi)紅,劉豐.基于FPGA的分布式算法FIR濾波器設(shè)計(jì)[J].電子測(cè)量技術(shù), 2007,(07).
[5]于坤林. 基于FPGA控制的DSP數(shù)據(jù)采集和處理系統(tǒng)[J].長(zhǎng)沙航空職業(yè)技術(shù)學(xué)院學(xué)報(bào), 2004,(03).
[6]賴先志. 基于FPGA的簡(jiǎn)單CPU設(shè)計(jì)[J].重慶職業(yè)技術(shù)學(xué)院學(xué)報(bào), 2005,(01).
[7]韋忠善, 朱海燕. 基于FPGA的精簡(jiǎn)指令CPU的實(shí)現(xiàn)[J].廣西梧州師范高等??茖W(xué)校學(xué)報(bào), 2005,(01).