《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于FPGA的相關(guān)測(cè)速系統(tǒng)
基于FPGA的相關(guān)測(cè)速系統(tǒng)
來(lái)源:微型機(jī)與應(yīng)用2012年第20期
李 玲1,,2,,李洋濤1
(1.同濟(jì)大學(xué) 鐵道與城市軌道交通研究院,,上海201804,; 2.河南建筑職業(yè)技術(shù)學(xué)院,,河南 鄭州4
摘要: 介紹了測(cè)速系統(tǒng)的研究,,包括系統(tǒng)構(gòu)成,、方案實(shí)現(xiàn)以及如何在現(xiàn)場(chǎng)可編程門陣列FPGA中實(shí)現(xiàn)相關(guān)運(yùn)算等,。融合了信號(hào)采集與處理,、可編程邏輯器件和互相關(guān)技術(shù)等,具有學(xué)科交叉融合的特點(diǎn),,在運(yùn)動(dòng)物體的非接觸測(cè)速上具有較大的實(shí)際應(yīng)用價(jià)值,。
Abstract:
Key words :

 

摘  要: 介紹了FPGA中實(shí)現(xiàn)相關(guān)運(yùn)算等,。融合了信號(hào)采集與處理、可編程邏輯器件和互相關(guān)技術(shù)等,,具有學(xué)科交叉融合的特點(diǎn),,在運(yùn)動(dòng)物體的非接觸測(cè)速上具有較大的實(shí)際應(yīng)用價(jià)值。
關(guān)鍵詞: 相關(guān)算法,;圖像處理,;現(xiàn)場(chǎng)可編程門陣列;測(cè)速

    相關(guān)測(cè)速是以隨機(jī)過(guò)程的相關(guān)理論和信息理論為基礎(chǔ)發(fā)展起來(lái)的[1-2],,它的應(yīng)用始于上世紀(jì)40年代,,首先應(yīng)用于軍事上,然后逐漸轉(zhuǎn)移到科學(xué)研究和民用上,,現(xiàn)在已經(jīng)在各個(gè)領(lǐng)域內(nèi)得到日益廣泛的應(yīng)用,。
    盡管相關(guān)測(cè)速的運(yùn)算量非常巨大,但是隨著EDA技術(shù)的高速發(fā)展,,大規(guī)??删幊踢壿嬈骷﨏PLD/FPGA的出現(xiàn),集成電路做得比以前更快,、規(guī)模更大,。設(shè)計(jì)人員有很大的自由度去設(shè)計(jì)實(shí)現(xiàn)用途專一的集成化數(shù)字電路:在實(shí)驗(yàn)室里,在電腦系統(tǒng)前,,現(xiàn)場(chǎng)設(shè)計(jì),、現(xiàn)場(chǎng)編程、現(xiàn)場(chǎng)配置,、現(xiàn)場(chǎng)修改和現(xiàn)場(chǎng)驗(yàn)證,,從而在現(xiàn)場(chǎng)實(shí)現(xiàn)數(shù)字系統(tǒng)的單片化設(shè)計(jì)和應(yīng)用。這意味著無(wú)需更改電路,,只要改寫FPGA內(nèi)部功能,,整個(gè)系統(tǒng)即可實(shí)現(xiàn)新功能,即一個(gè)最小的芯片方案可以轉(zhuǎn)換來(lái)執(zhí)行多個(gè)功能,,硬件的配置變得如同軟件一樣靈活方便,,而其速度和集成度,也隨著VLS工藝的發(fā)展而迅速提高,,這就為相關(guān)測(cè)速的實(shí)際應(yīng)用提供了硬件平臺(tái),。只要找到合適的算法并建立相應(yīng)的硬件處理系統(tǒng),運(yùn)算速度和精度就能達(dá)到預(yù)期的要求,。
1 系統(tǒng)硬件及相關(guān)算法的確定
    本文測(cè)速的原理是:以CCD攝像頭作為前端裝置,,將CCD攝像頭所采集的圖像信息送到FPGA中,由FPGA對(duì)其進(jìn)行處理,并給出當(dāng)前運(yùn)行的速度,。在滿足速度上限的條件下,,連續(xù)兩次采集的圖像必然有重疊的部分。對(duì)連續(xù)兩次的圖像進(jìn)行相關(guān)處理,,就可以得到它們之間的位置關(guān)系,,再結(jié)合采樣間隔時(shí)間,從而可以得出速度,。
    由于圖像處理算法涉及的運(yùn)算量比較大,,對(duì)系統(tǒng)的快速處理能力和大數(shù)據(jù)量的吞吐能力有嚴(yán)格的要求[3],因此系統(tǒng)中的核心器件FPGA的選擇必須遵循以下原則:(1)調(diào)試使用方便,;(2)適當(dāng)?shù)捻憫?yīng)速度,;(3)適當(dāng)夠用的邏輯資源;(4)足夠的輸入輸出(I/O)端口,。
    根據(jù)系統(tǒng)要求,,本文采用Altera公司的超大規(guī)模可編程邏輯器件Cyclone II[4],。Cyclone II系列FPGA是繼Cyclone系列低成本FPGA在市場(chǎng)上取得成功之后,,Altera公司推出的更低成本的FPGA。Altera采用相同的方法在盡可能小的裸片面積上構(gòu)建了Cyclone II系列,,擴(kuò)展了低成本FPGA的密度,,最多達(dá)68 416個(gè)邏輯單元(LE)和1.1 Mbit的嵌入式存儲(chǔ)器,從而可以在低成本的FPGA上實(shí)現(xiàn)復(fù)雜的數(shù)字系統(tǒng),。優(yōu)異的性價(jià)比使CycloneII系列FPGA可以廣泛地應(yīng)用于汽車電子,、消費(fèi)電子、音/視頻處理,、通信以及測(cè)試測(cè)量等終端產(chǎn)品市場(chǎng)。
    在測(cè)速系統(tǒng)的設(shè)計(jì)中,,假設(shè)攝像頭采集到的原始圖大小為1 280×1 024,,為了保證采集的圖像背景區(qū)域能夠有明顯的目標(biāo),比較理想的情況是將模板區(qū)域取得越大越好,,將目標(biāo)全部包括在內(nèi)[5-6],。當(dāng)搜索區(qū)域大小為m×m, 模板大小為n×n時(shí),歸一化互相關(guān)算法所需的運(yùn)算次數(shù)約為(5n2+9)×(m-n+1)2次,,計(jì)算量巨大,。如果采用512×512大小的搜索區(qū)域,模板采用32×32大小,,運(yùn)算乘加次數(shù)近12億次,,硬件將無(wú)法提供足夠的乘加器。如果采用128×128的搜索區(qū)域和32×32的模板,圖像的檢索區(qū)域比較小,,測(cè)速的范圍會(huì)比較低,,精度也會(huì)下降。綜合考慮攝像頭采集圖像的范圍和精度,,并且充分利用硬件所能提供的內(nèi)部存儲(chǔ)單元,,本文將搜索區(qū)域設(shè)定為256×256,模板大小設(shè)定為32×32,,如圖1所示,。

    同時(shí)采用簡(jiǎn)化的互相關(guān)算法來(lái)實(shí)現(xiàn)相關(guān)匹配,所以選擇差的絕對(duì)值和相關(guān)法SAD(Sum of Absolute Difference)作相關(guān)計(jì)算,。
  
2 測(cè)速系統(tǒng)的構(gòu)成及設(shè)計(jì)
    根據(jù)所需的功能,,將系統(tǒng)劃分為以下幾個(gè)模塊,分別加以實(shí)現(xiàn),。如圖2所示,。

    (1)CCD攝像頭數(shù)據(jù)采集模塊
    攝像頭采集的數(shù)據(jù)需要有圖像幀和消隱幀。當(dāng)前幀是圖像幀時(shí),,讀入圖像的行數(shù)據(jù),,讀入1 280×1 024個(gè)數(shù)據(jù)后,列計(jì)數(shù)X_Cont和行計(jì)數(shù)Y_Cont歸零,。消隱幀時(shí)不輸出,。
    (2)Raw to RGB壓縮模塊
    通過(guò)內(nèi)部設(shè)置一個(gè)1 280×10 bit的FIFO,同時(shí)輸出兩行數(shù)據(jù),,通過(guò)輸入的行計(jì)數(shù)和列計(jì)數(shù)模塊的奇偶將原Byer格式的數(shù)據(jù)壓縮成RGB格式,,4個(gè)點(diǎn)壓縮成一個(gè)點(diǎn),圖像大小變成640×512,。同時(shí),,通過(guò)內(nèi)置的時(shí)鐘計(jì)數(shù)模塊將當(dāng)前輸出的RGB所在的行列值輸出,范圍為640×512,。
    (3)處理流程1
    M4K寫入控制器:CCD時(shí)鐘,。通過(guò)當(dāng)前輸入的行列坐標(biāo),確定觸發(fā)背景M4K內(nèi)存模塊和模板M4K內(nèi)存模塊的寫入使能,。背景M4K大小設(shè)為256×256×4 bit,,模板M4K大小設(shè)為32×32×4 bit。當(dāng)該模塊工作時(shí),,相關(guān)模塊不工作,,以防止未寫完數(shù)據(jù)就做相關(guān)處理。
    M4K模塊:存放處理過(guò)的4 bit灰度數(shù)據(jù),,讀寫時(shí)鐘分開,,有寫使能位,。
    (4)處理流程2
    SdRam接口:提供兩個(gè)寫端口和兩個(gè)讀端口,可同時(shí)處理,。內(nèi)部連接了PLL倍頻器,,將SDRam的處理速度倍增到100 MB,然后通過(guò)內(nèi)部的讀寫和刷新?tīng)顟B(tài)機(jī)控制讀寫,。
    VGA控制模塊:由I2C控制生成行同步信息,,并將讀入的RGB數(shù)據(jù)通過(guò)系數(shù)處理送到解碼器輸出VGA圖像。
    測(cè)速模塊:模板選擇的位置固定在圖像的正中,,即第192行192列開始的32×32大小的數(shù)據(jù),,通過(guò)輸入的(X,Y)坐標(biāo)和(192,,192)的差值得到像素的偏移量,。然后通過(guò)實(shí)際的圖像大小和距離的比例系數(shù),乘以當(dāng)前的處理頻率,,得到當(dāng)前的物體移動(dòng)速度,。
    為了計(jì)算偏移量和相對(duì)位移,必須引入除法運(yùn)算,,而除法運(yùn)算是通過(guò)許多移位寄存器和加法器構(gòu)成的,。運(yùn)算極其耗時(shí),且需要大量邏輯單元和查找表,,對(duì)處理速度有很大影響,。所以選取MegaWizard生成的除法器來(lái)減少所需的運(yùn)算時(shí)間。
    最后,,由于實(shí)際的數(shù)據(jù)均為16進(jìn)制,,為了滿足顯示的10進(jìn)制坐標(biāo)換算的需要,設(shè)計(jì)了16進(jìn)制到10進(jìn)制LED顯示的轉(zhuǎn)換模塊,,實(shí)現(xiàn)了速度的直觀顯示,,如圖3所示。

    綜上所述,,通過(guò)模塊化設(shè)計(jì)和綜合設(shè)計(jì),,在FPGA上實(shí)現(xiàn)了測(cè)速需要的功能設(shè)計(jì)。
    本文對(duì)攝像頭采集到的數(shù)據(jù)進(jìn)行處理,。選取圖像正中的256×256個(gè)像素位置作為背景區(qū)域,,其中的32×32個(gè)像素作為模板選取區(qū)域,,通過(guò)前后兩幀的相關(guān)得到模板在后一幀中的位移像素值,。測(cè)速示意圖如圖4所示。

 

 

    如果按照理想的相似三角形判斷,,攝像頭可以測(cè)量的速度可以達(dá)到無(wú)限大,。設(shè)背景區(qū)域長(zhǎng)寬均為X cm,,最大速度可以達(dá)到(X×(256-32)/256)/0.529 4=1.9×0.875X cm/s,測(cè)量精度為(X/256)/0.529 4=1.9×X/256,。但是由于攝像頭對(duì)光強(qiáng)的敏感程度和目標(biāo)的實(shí)際采樣灰度受噪聲的影響,,以及受安裝位置和與被測(cè)物體距離的限制,實(shí)際測(cè)量速度范圍是有限的,。在測(cè)試中采用的背景大小為20 cm×20 cm,,離檢測(cè)面距離30 cm左右,100 MHz工作頻率,,測(cè)速的最大值可達(dá)到(20×(256-32)/256)/0.529 4=33.056 cm/s,。
    整個(gè)測(cè)速系統(tǒng)可以根據(jù)實(shí)際應(yīng)用情況設(shè)定參數(shù)來(lái)調(diào)整搜索區(qū)域,具有很寬的測(cè)速范圍,。相對(duì)于傳統(tǒng)的接觸式測(cè)速系統(tǒng),,克服了物體運(yùn)動(dòng)異常時(shí)測(cè)量出現(xiàn)的原理性誤差;相對(duì)于非接觸的一維測(cè)速系統(tǒng),,克服了測(cè)速的單一性,,可以測(cè)量物體在各種運(yùn)動(dòng)方向上移動(dòng)的速度。如果使用高性能FPGA進(jìn)行多路并行的相關(guān)運(yùn)算,,搭配高速高分辨率的攝像頭,,完全可以解決全圖互相關(guān)算法處理的計(jì)算量巨大的問(wèn)題,使測(cè)速的精度和速度得到進(jìn)一步提高,。這種測(cè)速方式具有的一系列優(yōu)點(diǎn),,使其發(fā)展空間非常廣闊,可以廣泛應(yīng)用到各個(gè)領(lǐng)域,。
    總之,,本文研究的基于FPGA的相關(guān)測(cè)速系統(tǒng),能夠?qū)崿F(xiàn)非接觸式和高精度的測(cè)量,。其中,,融合了信號(hào)采集與處理、邏輯器件FPGA和互相關(guān)技術(shù)等,,具有學(xué)科交叉融合的特點(diǎn),。在各種傳送帶、紙板,、熱軋鋼板,、汽車和列車等運(yùn)動(dòng)物體的非接觸測(cè)速上具有較大的實(shí)際應(yīng)用價(jià)值,為解決非接觸式運(yùn)動(dòng)物體測(cè)速問(wèn)題提供了技術(shù)手段,。
參考文獻(xiàn)
[1] BERGER C.Optical Sensor for Velocity and Slip Measurement  of Automobile Belt Drives[C].IEEE,,2002,36(l):823-828.
[2] 謝維達(dá),,王春輝,,邵德榮.基于FPGA的二維相關(guān)測(cè)速方法研究[J].測(cè)控技術(shù),,2004,23(1):66-68.
[3] 張志剛.FPGA與SOPC設(shè)計(jì)教程-DE2實(shí)踐[M].西安:西安電子科技大學(xué)出版社,,2007.
[4] 陳忠平,高金定,高見(jiàn)芳.基于Quartus Ⅱ的FPGA/CPLD設(shè)計(jì)與實(shí)踐[M].北京:電子工業(yè)出版社,,2010.
[5] (美)HASKELL R E,HANNA D M.FPGA數(shù)字邏輯設(shè)計(jì)教 程:Verilog[M].鄭利浩,,王荃,,陳華鋒,譯.北京:電子工業(yè)出版社,,2010.
[6] 吳繼華,,蔡海寧,王誠(chéng).Altera FPGA/CPLD設(shè)計(jì)(高級(jí)篇)(第2版)[M].北京:人民郵電出版社,,2011.

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。