基于FPGA的圖像采集系統(tǒng)設計與實現(xiàn)
1、引言
視頻圖像采集是視頻信號處理系統(tǒng)的前端部分,正在向高速、高分辨率、高集成化、高可靠性方向發(fā)展。圖像采集系統(tǒng)在當今工業(yè)、軍事、醫(yī)學各個領域都有著極其廣泛的應用,如使用在遠程監(jiān)控、安防、遠程抄表、可視電話、工業(yè)控制、圖像模式識別、醫(yī)療器械等各個領域都有著廣泛的應用[1]。本文介紹了一種基于FPGA的圖像采集系統(tǒng),用戶可以根據需要對FPGA 內部的邏輯模塊和I/O模塊重新配置,以實現(xiàn)系統(tǒng)的重構[1][2];而且采用這種設計方案 ,便于及時地發(fā)現(xiàn)設計中的錯誤,能夠有效地縮短研發(fā)時間,提高工作效率。
2、系統(tǒng)的總體框架和工作原理
整個系統(tǒng)主要分為四個模塊:視頻解碼模塊、視頻編碼模塊、存儲器模塊和FPGA核心控制模塊,系統(tǒng)總體框架如圖1所示。
圖1 系統(tǒng)的總體框圖
其中FPGA實現(xiàn)的主要功能有:視頻編解碼器件的初始化,視頻圖像的采集存儲以及將采集的圖像數據通過視頻編碼芯片送到監(jiān)視器上顯示。
系統(tǒng)的工作原理為:系統(tǒng)上電后,F(xiàn)PGA通過FLASH中的程序對完成視頻解碼和編碼芯片的初始化配置;在接到視頻AD轉換的中斷信號后,F(xiàn)PGA將轉換的數字圖像數據傳送到SRAM保存;一幀圖像轉換結束后FPGA再將SRAM中的數字圖像傳遞給視頻編碼芯片以便在監(jiān)視器上顯示,同時開始控制下一幀圖像的采集。
3、硬件電路設計
3.1 AD和DA轉換模塊
本系統(tǒng)采用的視頻編解碼芯片是ADV7181和ADV7177,下面分別介紹AD和DA轉換器件的硬件電路設計。
3.1.1 AD轉換模塊
ADV7181系統(tǒng)是AD公司推出的一款視頻解碼芯片[3],它具有如下特點: I2C總線接口,6通道模擬視頻輸入,支持NTSC、PAL、SECAM視頻制式,支持多種模擬輸入格式和多種數字輸出格式。
本系統(tǒng)中選用其中的通道1作為PAL制CVBS視頻輸入,數據輸出可根據需要采用8位或16位的格式輸出。ADV7181與FPGA的接口電路如圖2所示。
圖2 ADV7181與FPGA的接口電路
系統(tǒng)上電后通過FPGA的I2C模塊完成對ADV7181的初始化配置,其中ADC_SCLK、ADC_SDATA分別為I2C總線的時鐘線和數據線。ADV7181正常工作后分別輸出水平同步信號ADV_HS、垂直同步信號ADV_VS、 場同步信號ADV_FIELD、中斷信號ADC_/INTRQ、ADC_LLC同步信號和圖像數據信號ADC_DATA(8位或16位可配置輸出),另外ADC_/PWRDN信號控制ADV7181是否工作于省電模式。用戶可以根據需要選擇水平、垂直和場同步信號(CCIR-601格式)或ADC¬_LLC信號(CCIR-656格式)來實現(xiàn)系統(tǒng)與視頻輸入的同步,并利用這些同步信號控制對轉換完成的視頻數據的寫存儲器操作。
3.1.2 DA轉換模塊
DA轉換采用的是AD公司的ADV7177[4],它具有如下特點:I2C接口,3路模擬視頻輸出,支持多種數字輸入格式和多種模擬輸出格式,用戶可根據需要選擇使用。它的電路設計與ADV7181類似,ADV7177與FPGA的接口電路如圖3所示。
圖3 ADV7177與FPGA的接口電路
其中DAC_DATA為輸入數字視頻信號,DAC_/HSYNC、DAC_/VSYNC分別為水平和垂直同步信號,DAC_CLOCK2為ADV7177輸出的27M或13.5M同步時鐘( 與寄存器的配置數據有關),DAC_SCLK、DAC_SDATA為ADV7177的I2C配置總線。
3.2 FPGA核心控制模塊
FPGA核心控制模塊采用的是ALTERA公司Cyclone II系列的EP2C20[5],它具有較高的性價比:EP2C20最多用戶管腳數為315,四個PLL,26個嵌入式18*18乘法器,52個M4K RAM塊,186752個邏輯單元;共分8個I/O Bank,每個Bank可以根據需要配置為1.2V或3.3V的I/O電平,方便與外圍電路連接??紤]到系統(tǒng)的實際需求,在該系統(tǒng)中采用具有240個引腳PQFP封裝的EP2C20Q240。
在該系統(tǒng)中,F(xiàn)PGA主要完成對視頻AD、DA的初始化配置和存儲器的讀寫控制,它通過AD的中斷信號完成對視頻數據的采集,并將采集的數據放到存儲模塊中,當采集完一幀后將數據傳遞給視頻編碼芯片并在監(jiān)視器上顯示同時開始采集下一幀圖像。
在本系統(tǒng)中FPGA采用了JTAG和AS兩種配置模式,具體的設計可參考ALTERA數據手冊[5]。
3.3 存儲器及其他模塊
由于FPGA芯片內部的RAM資源有限,不能存儲過多的視頻數據并對其進行處理,因此在本系統(tǒng)設計中,外加了兩片SRAM芯片來輔助FPGA進行視頻信號采集。兩片SRAM可以進行16位的數據存儲,這樣ADV7181和ADV7177可以根據需要配置為8位或16位數據的工作模式,提高了系統(tǒng)的靈活性。
本系統(tǒng)設計中采用的SRAM芯片是美國IDT公司生產的IDT71V424[6],它是采用高性能與可靠性的CMOS工藝生產的高速靜態(tài)存儲器,其單片存儲容量為512K*8Bit,具有高速的訪問時間,10或12ns。其內部完全由靜態(tài)異步電路構成,無需輸入時鐘信號,也不必對芯片進行刷新,即可直接對無用數據進行覆蓋。
在實際的設計中為了保證控制信號的有效性,3條控制線SRAM_/WE、SRAM_/OE, SRAM_/CS分別加了一個4.7K的上拉電阻后才與FPGA芯片連接。具體電路如圖4所示:
圖4 SRAM與FPGA的接口電路
此外,為了減少模擬與數字系統(tǒng)之間的相互干擾,電源模塊采用的是數字電源和模擬電源分開設計最后一點共地的設計方案。主要采用了TI公司的TPS54612、TPS64616分別提供FPGA 1.2V核心電壓和3.3V IO電壓;模擬1.8V和3.3V采用的是AMS1117系列的電源芯片。
4、系統(tǒng)軟件設計
本系統(tǒng)軟件是在Quartus II 環(huán)境下采用Verilog語言開發(fā)完成的。主要包括:1、AD和DA芯片的初始化配置,2、視頻圖像的采集,3、視頻圖像的存儲與DA轉換。
4.1 I2C配置模塊
系統(tǒng)上電后,分別將AD和DA芯片復位,因此需要對它們進行初始化配置。程序將寄存器初始值事先存儲在數組中,設置控制寄存器時,F(xiàn)PGA通過I2C總線按照AD或DA的配置地址、控制寄存器地址、寄存器值的順序依次寫入數據,完成對AD和DA的初始化。I2C的配置模塊的流程[7][8]如圖5所示。
圖5 I2C配置的流程圖
4.2 視頻圖像的采集模塊
在本系統(tǒng)中,ADV7181芯片輸出8位為CCIR-656格式(也可根據需要配置為16位輸出),它的有效分辨率為720*576,隔行掃描。它輸出的數字視頻數據格式如表1所示。
表1 ADV7181輸出的數字視頻格式表
在實際的邏輯設計中,主要的任務就是對CCIR-656格式的行起始標志碼和行結束標志碼的判別與檢測。具體的設計如下:在27MHz像素時鐘信號ADC_LLC的同步控制下,8位的數字視頻數據由ADV7181芯片不斷地輸入到FPGA芯片,F(xiàn)PGA首先檢測“FF 00 00”這三個字節(jié),對于這三個字節(jié)的檢測只需要設計一個簡單的有限狀態(tài)機即可實現(xiàn)。檢測到上述的三個字節(jié)之后,F(xiàn)PGA接著檢測緊隨這三個字節(jié)之后的那個未知字節(jié),如果未知字節(jié)第4位的值為0,則說明它是SAV字節(jié),如果為1,則說明它是EAV字節(jié)。表2為SAV和EAV的數據格式。
表2 SAV和EAV的數據格式表
有了以上的分析可得到如圖6所示的有效視頻數據的采集流程[7][8]圖。
文中按照上述流程設計完成了圖像采集程序,圖7為利用Quartus II自帶的邏輯分析儀工具得到的采集圖像數據波形圖,其中邏輯分析儀的采樣時鐘為27M的ADC_LLC信號,data_in為圖像數據,ad_hs為水平同步信號。
圖6 有效視頻的采集流程
圖7 FPGA采集得到的圖像數據信號
4.3 視頻圖像存儲模塊和DA轉換模塊
由于FPGA內的RAM資源有限,并為了以后擴展方便系統(tǒng)外加了兩片512K*8的SRAM存儲器緩存采集的視頻數據。當一幀圖像采集完成后,F(xiàn)PGA將SRAM中的數據寫入DA轉換芯片,同時開始下一幀的采集。在本系統(tǒng)中視頻編碼芯片接收標準的8位CCIR-656數據,輸出為CVBS復合視頻信號。ADV7177的初始化配置和工作過程與ADV7181類似,這里不再贅述。
5、實驗結果
按照以上設計方案,完成了系統(tǒng)的硬件設計和軟件調試,圖8為系統(tǒng)采集得到的在監(jiān)視器上顯示的一幅視頻圖像,其中ADV7181采用的是8位CCIR-656輸出格式,ADV7177的輸出格式為CVBS視頻信號。
圖8 系統(tǒng)采集的一幅視頻圖像
6、結論
實驗結果表明,本系統(tǒng)工作穩(wěn)定可靠,可滿足于高性能的實時圖像處理系統(tǒng)要求。此外,系統(tǒng)采用了FPGA設計方案,集成度高、設計靈活,而且用戶可根據自己的需求進行系統(tǒng)重構,方便快捷,具有較高的應用價值。