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