《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于FPGA的LCoS驅動和圖像處理系統(tǒng)
基于FPGA的LCoS驅動和圖像處理系統(tǒng)
摘要: 針對分辨率為1024×768的LCoS屏編寫了Verilog HDL驅動代碼,,在quartusⅡ9.1平臺上綜合編譯,并在Altera的FPGA芯片EP3C5E14 4C8上進行了功能驗證和實際輸出信號測量,。采用異步FIFO結構解決了跨異步時鐘域的數(shù)據(jù)傳輸問題,。嵌入FFT IP核后,,可進一步對圖像進行基于FFT的變換處理,,分析圖像的頻譜。為計算全息3D圖像處理及顯示提供了硬件平臺,。
Abstract:
Key words :
摘要:針對分辨率為1024×768的LCoS屏編寫了Verilog HDL驅動代碼,,在quartusⅡ9.1平臺上綜合編譯,并在Altera的FPGA芯片EP3C5E14 4C8上進行了功能驗證和實際輸出信號測量,。采用異步FIFO結構解決了跨異步時鐘域的數(shù)據(jù)傳輸問題,。嵌入FFT IP核后,可進一步對圖像進行基于FFT的變換處理,,分析圖像的頻譜,。為計算全息3D圖像處理及顯示提供了硬件平臺。

0 引言

基于空間光調制器的計算全息三維顯示技術,,目前常采用透射式LCD和反射式LCoS作為空間光調制器,,以改變光經(jīng)過空間光調制器(SLM)后的空間相位和振幅分布,達到對光信息的調制,。傳統(tǒng)的基于透射式LCD空間光調制器的計算全息三維顯示系統(tǒng),,其成像光路復雜,而且必須依賴計算機進行數(shù)據(jù)發(fā)生,、采集以及處理,,這就限制了系統(tǒng)應用的靈活性,不便于推廣,。

相較于透射式LCD,,LCoS具有光利用率高、體積小,、開口率高,、器件尺寸小等特點,可以很容易地實現(xiàn)高分辨率和微顯示投影,。采用彩色LCoS屏顯示基于RGB的彩色圖像,,經(jīng)過光學成像系統(tǒng)投影到接收屏上,實現(xiàn)計算全息圖像的三維顯示,。

基于FPGA的顯示系統(tǒng)有以下優(yōu)勢:第一,,LCoS尺寸小,便于實現(xiàn)微投影,,利用可靈活編程的FPGA器件作為驅動控制器,,這樣就可以將其做成像普通投影儀一樣的微型投影設備,使計算全息三維顯示擺脫了計算機和復雜光路的束縛,,具有了更高的靈活性,,為其走出實驗室提供了條件。第二,,因為在傳統(tǒng)空間光調制器上得到的圖像里含有物波和參考光的復共軛像,,形成了噪聲,,在FPGA上可以實現(xiàn)圖像濾波去噪,使得到的圖像更清晰,。第三,,F(xiàn)PGA是基于可編程邏輯單元的器件,當經(jīng)過綜合,、布局布線,、時鐘約束的代碼燒錄到FPGA器件后,F(xiàn)PGA就將算法代碼硬件化了,,可以作為專用芯片工作,,其內部信號延時完全是硬件級傳輸延時。在處理數(shù)據(jù)搬移和復雜的數(shù)學運算以及一些循環(huán)操作時,,例如圖像的FFT變換,,F(xiàn)PGA硬件運算要比軟件運算快得多,即利用FPGA器件實現(xiàn)對軟件算法的硬件加速,。

基于以上原因,,本文設計了基于FPGA的LCoS驅動代碼及圖像的FFT變換系統(tǒng),為計算全息三維顯示圖像處理和顯示提供了硬件平臺,。

1 系統(tǒng)設計

1.1 系統(tǒng)模塊框圖:

該系統(tǒng)采用CycloneⅢ EP3C5E144C8,,該芯片有5136個LE,95個用戶I/O,,2個PLL,,以及46個嵌入式乘法器和423936b的內部邏輯寄存器。以它豐富的資源,,完全可以作為LCoS的驅動控制器件,。顯示屏采用Himax的反射式LCoS屏HX7308,其分辨率為1024×768,,可以支持256級灰度顯示,,具有內置的行場驅動電路,在外部輸入時鐘的上升沿和下降沿分別接收8b×4dots圖像數(shù)據(jù),,這保證了場頻可高達360Hz,。

系統(tǒng)的整體框圖如圖1所示。

基于FPGA的LCoS驅動和圖像處理系統(tǒng)設計

1.2 PLL及系統(tǒng)復位模塊

采用Altera的鎖相環(huán)IP核,,外部輸入時鐘為20MHz,,經(jīng)倍頻后得到其他各模塊的驅動時鐘,以及LCoS的驅動時鐘信號,。為防止系統(tǒng)異步復位時寄存器出現(xiàn)亞穩(wěn)態(tài),,設計了PLL的前級和后級D觸發(fā)器。因為鎖相環(huán)的locked引腳在鎖相環(huán)穩(wěn)定輸出后才會跳變?yōu)楦唠娖?,所以為保證其他模塊得到穩(wěn)定的時鐘信號,,將locked引腳和外部輸入復位信號rst_n相與后作為整個系統(tǒng)的復位信號。

1.3 單口ROM模塊

利用FPGA內部的M9K存儲器資源實現(xiàn)的單口ROM作為源圖像的數(shù)據(jù)存儲器,。將分辨率為176×144(QCIF)的256階灰度位圖圖像初始化到單口ROM里,,所需數(shù)據(jù)深度為25344B。當異步FIFO沒寫滿時,,單口ROM將按圖像存儲地址依次輸出圖像數(shù)據(jù)給FFT核做快速傅里葉變換,。經(jīng)過處理的圖像數(shù)據(jù)暫存到FIFO)里,等待行場時序控制器模塊取用,。

1.4 異步FIFO模塊

按其數(shù)據(jù)地址最高2位分為4個區(qū)間,,讀/寫指針分別對某一區(qū)間操作,當讀/寫指針相等時通過譯碼器產(chǎn)生FIFO已讀空或者已寫滿標志信號,。為避免地址信號變化時出現(xiàn)冒險競爭現(xiàn)象,,寫地址和讀地址指針都采用格雷碼編碼。在讀空比較子模塊和寫滿比較子模塊里加入了FI-FO“將空”和“將滿”檢驗機制,,有效地保證了FIFO正確無誤的工作,。在寫時鐘wrclk的上升沿,異步FIFO每個地址對應的存儲單元里被寫入8bits數(shù)據(jù),,在讀時鐘rdclk的上升沿,,F(xiàn)IFO四塊連續(xù)地址上的32bits數(shù)據(jù)輸出,即讀FIFO的速率相當于寫FIFO速率的4倍速,。

1.5 I2C狀態(tài)機模塊

沒有滿足I2C配置條件時,,狀態(tài)機處于空閑狀態(tài),當滿足I2C配置條件時,,狀態(tài)機在狀態(tài)標志位的控制下依次輸出配置地址和配置數(shù)據(jù),。當數(shù)據(jù)配置結束時,狀態(tài)機產(chǎn)生停止信號,,并拉高輸出引腳iic_config,,通知行場時序控制器模塊開始工作,這樣保證了LCoS屏能在正確配置下工作,。狀態(tài)機工作原理如圖2所示,。

基于FPGA的LCoS驅動和圖像處理系統(tǒng)設計

1.6 行場時序控制器模塊

內設水平計數(shù)器hcnt和垂直計數(shù)器vcnt。由于顯示屏每個時鐘周期鎖存8個像素值,,所以顯示1024個像素值所需行周期為128個Tclk(行時鐘周期),。當hcnt計數(shù)器值為HBP時表示行有效顯示區(qū)域開始,hcnt計數(shù)器值為HBP+128時表示行有效顯示區(qū)域結束,,hent計數(shù)器值為HSYN-Ccycle時,,完成一行顯示,vcnt計數(shù)器加1,。當vcnt計數(shù)器值為VBP時,,垂直有效顯示區(qū)域開始,,當vcnt計數(shù)器值為VBP+768時,垂直有效顯示區(qū)域結束,,當vcnt計數(shù)器值為VSYNC cycle時,,完成一幀圖像顯示。行場時序關系如圖3所示,。

基于FPGA的LCoS驅動和圖像處理系統(tǒng)設計

1.7 FFT模塊

FFTV 9.1 IP核采用Cooley-Tukey基-2 DIF算法,,其FFT變換原始公式為:

基于FPGA的LCoS驅動和圖像處理系統(tǒng)設計

因為采用了數(shù)據(jù)流模式,經(jīng)過變換的數(shù)據(jù)可以連續(xù)輸出,,即輸出數(shù)據(jù)不會因為圖像數(shù)據(jù)的輸入而停止數(shù)據(jù)輸出,,同時輸入數(shù)據(jù)也不會因為處理后的數(shù)據(jù)正在輸出而停止繼續(xù)輸入,保證了數(shù)據(jù)轉換和傳輸?shù)倪B續(xù)性,,提高了數(shù)據(jù)處理的速度和效率,。因為FFT通過異步FIFO向屏幕輸出數(shù)據(jù),而FIFO的讀數(shù)據(jù)是寫數(shù)據(jù)的4倍速,,假如讀時鐘和寫時鐘都為100MHz,,那么有可能會在某一行里出現(xiàn)FIFO被取空,而無法向屏幕輸出有效數(shù)據(jù)的情況,。為保證FIFO向屏幕輸出圖像數(shù)據(jù)的連續(xù)性,,就要充分利用VBP,VFP,,HBP和HFP的時間,,在每一行的開始,如果FIFO沒滿,,那么啟動FFT進行數(shù)據(jù)轉換,。若圖像的分辨率為M×N并且在VBP期間FIFO已被寫滿,則FIFO,,F(xiàn)FT核,、行場周期以及圖像分辨率間關系的計算公式如下:

基于FPGA的LCoS驅動和圖像處理系統(tǒng)設計

式中:Deepth是異步FIFO的數(shù)據(jù)深度,單位為B,;THSYNC cycle是行周期,;Tclk是異步FIFO,F(xiàn)FT核,、行場時序控制器模塊的驅動時鐘周期,。當△>O時,系統(tǒng)會連續(xù)實時地處理圖像,;當△0,。

2 實驗仿真結果和測量結果分析

圖4是采用Modelsim 6.5b進行功能仿真的結果,。利用QuartusⅡV9.1自帶的TimeQuest Timing Analyzer進行時序約束后,,在實驗板上的場信號測量結果如圖5所示,場掃描頻率已達到368Hz,,經(jīng)測量其他引腳輸出信號也均滿足時序要求,。由于FPGA器件資源限制,對圖像做了256點FFT變換,,經(jīng)實驗驗證,,該設計能夠實現(xiàn)圖像的實時處理,代碼達到了預期設計效果,。

基于FPGA的LCoS驅動和圖像處理系統(tǒng)設計

基于FPGA的LCoS驅動和圖像處理系統(tǒng)設計

3 結語

采用Himax的LCoS屏HX7308BTJFA作為顯示器件,,其尺寸為14.43mm×10.69mm,大小可跟1枚1元硬幣相比擬,很容易實現(xiàn)三維投影微顯示,。因VerilogHDL有很強的可移植性,,便于以后對代碼的升級和維護。FPGA內部資源畢竟有限,,文中敘述可知,,若顯示分辨率較大的圖像,光靠內部資源實現(xiàn)異步FIFO是不可能的,,所以在此提出兩種方案:第一,,換一片性能較高的芯片,滿足寫FIFO速率等于讀FIFO速率的要求,,這樣就能達到讀/寫數(shù)據(jù)的動態(tài)平衡,,保證了圖像的連續(xù)顯示;第二,,采用外部存儲器SDRAM存儲源圖像和FFT處理后的數(shù)據(jù),,采用DDRII技術讀取數(shù)據(jù),使讀/寫FIFO的速率匹配,。受FPGA芯片資源限制,,該設計采用分辨率為176×144的圖像進行了系統(tǒng)功能驗證,尚未實現(xiàn)圖像濾波以及FFT逆變換,,未來可將代碼移植在高端的FPGA芯片上繼續(xù)開發(fā)數(shù)據(jù)處理功能,。

作者:李大鵬 楊濟民 楊娟 李雯雯 厲嚴忠   來源:現(xiàn)代電子技術

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