李 玲,李洋濤
(1.同濟(jì)大學(xué)鐵道與城市軌道交通研究院,上海201804;2.河南建筑職業(yè)技術(shù)學(xué)院,鄭州450007)
DE2開發(fā)板是Altera公司針對大學(xué)教學(xué)及研究機(jī)構(gòu)推出的FPGA多媒體開發(fā)平臺,為用戶提供了豐富的外設(shè)及多媒體特性,并具有靈活可靠的外圍接口設(shè)計。Terasic公司提供的針對DE2平臺的CCD攝像頭模塊以及彩色LCD模塊,可通過接口接入DE2開發(fā)板。
利用DE2開發(fā)板上的硬件資源,通過數(shù)字圖像的采集、壓縮、預(yù)處理、有用信息提取、圖像匹配和輸出結(jié)果等一系列信息處理,研制開發(fā)了一套非接觸式測速系統(tǒng),包括系統(tǒng)構(gòu)成、方案實現(xiàn)以及如何在FPGA中實現(xiàn)相關(guān)運算等等,并運用Quartus II軟件對Verilog代碼進(jìn)行編譯和調(diào)試,實現(xiàn)了代碼的優(yōu)化和處理。
系統(tǒng)設(shè)計是在Altera公司的現(xiàn)場可編程門陣列(FPGA)開發(fā)環(huán)境Quartus II中完成的。Quartus II軟件提供完整的多平臺設(shè)計環(huán)境,能夠直接滿足特定設(shè)計需要,為可編程芯片系統(tǒng)(SOPC)提供全面的設(shè)計環(huán)境。
系統(tǒng)構(gòu)成如圖1所示,圖像傳感器將采集到的數(shù)據(jù)通過接口傳送到DE2開發(fā)板,DE2實現(xiàn)數(shù)字圖像的壓縮、保存、識別及相關(guān)運算,最后通過VGA模塊顯示圖像效果并用DE2數(shù)碼管顯示計算結(jié)果。
圖1 系統(tǒng)的構(gòu)成示意圖
下面對部分模塊做詳細(xì)介紹,并附錄Verilog程序代碼。
攝像頭通過DE2上的GPIO接口與開發(fā)板相連接,采用片上I2C總線的控制方式,設(shè)計I2C總線CCD控制模塊,通過片上時鐘控制,循環(huán)發(fā)送控制信號,將攝像頭采樣大小設(shè)置為1280×1024,曝光時間則通過DE2上的撥碼開關(guān)手動調(diào)節(jié),顯示模式設(shè)置為鏡像模式,保證攝像頭拍攝的內(nèi)容與顯示的內(nèi)容同一方向,為后續(xù)處理提供了方便。模塊的RTL圖如圖2所示。
圖2 采集模塊的RTL圖
攝像頭采用的是 Bayer型 CFA(Color Filter Array,顏色濾波陣列),實際顯示一個圖像點的顏色需要四個10bit數(shù)據(jù)來表示,一幀圖像的數(shù)據(jù)為1280×1024×10bit,數(shù)據(jù)量極大。為了后續(xù)處理和顯示需要,必須對數(shù)據(jù)進(jìn)行壓縮,并轉(zhuǎn)換為RGB格式,以滿足傳輸帶寬和后續(xù)處理的需要。采用插值算法,將每四個采樣象素合并為一個RGB象素點,象素值的變化如圖3所示。
圖3 象素值的變化圖
這樣經(jīng)過該模塊壓縮處理后,RGB分量各使用10bit表示,圖像的分辨率變?yōu)樵瓉淼囊话耄?40×512,而數(shù)據(jù)量則減少到原先的四分之一。
因該模塊的輸出數(shù)據(jù),既需要量化后進(jìn)行相關(guān)處理,又需要在VGA上顯示,所以需要將數(shù)據(jù)分為兩路輸出到M4KRam和SDRam端口。Cyclone II的高扇出特性,保證了扇出數(shù)據(jù)的時延和電平強度都可以直接滿足下一級處理的需要。最后設(shè)計的壓縮模塊RTL功能圖如圖4所示。
圖4 壓縮模塊的RTL功能圖
要實現(xiàn)相關(guān)處理需要的多次讀寫前后兩幀數(shù)據(jù),需要使用寄存器來存放圖像的每一幀數(shù)據(jù)。由于DE2開發(fā)板上Cyclone II EP2C35的邏輯單元個數(shù)為35000個,如采用Verilog編程實現(xiàn)寄存器數(shù)組,如果要存放256×256×4bit的背景圖像數(shù)據(jù),所消耗的內(nèi)存邏輯單元個數(shù)過多,無法滿足需求。故必須利用片上嵌入的存儲空間來存放所需要的背景數(shù)據(jù)。
由于DE2平臺上的EP2C35僅內(nèi)嵌了M4K RAM單元,所以需要通過配置級連多個M4K存儲單元,來實現(xiàn)背景圖像數(shù)據(jù)和檢測區(qū)間數(shù)據(jù)的存儲。EP2C35提供了104個M4K存儲單元,考慮檢測精度和算法耗時,需要配置一個256×256×4bit=256Kbit的背景寄存器來存放每一幀中背景區(qū)間的圖像。
系統(tǒng)生成的波形圖如圖5所示。
圖5 系統(tǒng)生成的波形圖
完成了對256K背景寄存器的設(shè)計,只需要在設(shè)計文件中引入該.v文件,并相應(yīng)在程序中使用接口,Quartus II會自動調(diào)用其內(nèi)部的寄存器預(yù)設(shè)文件對程序中使用的片上內(nèi)存單元進(jìn)行配置。
在測試中采用的背景大小為15cm×15cm,距離檢測面40cm,測速的最大值可達(dá)到24.80cm/s。實際測量時可以設(shè)定參數(shù)來調(diào)整測量范圍,只要前后兩幀的搜索區(qū)域在速度范圍內(nèi),就可以找到最大相關(guān),測量的速度可以成倍提高。
總之,針對Altera公司的DE2開發(fā)板及其第三方Terasic公司提供的針對DE2平臺的CCD攝像頭模塊,開發(fā)研究了基于FPGA的非接觸式測速系統(tǒng),運用Quartus II軟件對Verilog代碼進(jìn)行編譯和調(diào)試,通過試驗驗證了相關(guān)算法在FPGA上實現(xiàn)的可能。并部分實現(xiàn)了代碼的優(yōu)化和處理,給出了算法實現(xiàn)的具體方式,達(dá)到了速度測量的目的。Verilog編程的靈活性,使得整個測速系統(tǒng)可以根據(jù)實際應(yīng)用調(diào)整搜索區(qū)域,具有很寬的測速范圍。
[1]謝維達(dá),王春輝,邵德榮.基于FPGA的二維相關(guān)測速方法研究[J].測控技術(shù),2004,23(1):66 -68.
[2]張志剛.FPGA與SOPC設(shè)計教程-DE2實踐[M].西安:西安電子科技大學(xué)出版社,2007.
[3]王誠,吳繼華,范麗珍.Altera FPGA/CPLD設(shè)計(基礎(chǔ)篇)[M].北京:人民郵電出版社,2005.
[4]李洪偉.基于 Quartus II的 FPGA/CPLD設(shè)計[M].北京:電子工業(yè)出版社,2006.