宋 宇, 劉 彬, 耿益營
(長春工業大學 計算機科學與工程學院, 吉林 長春 130012)
基于FPGA的實時圖像采集系統
宋 宇, 劉 彬, 耿益營
(長春工業大學 計算機科學與工程學院, 吉林 長春 130012)
基于FPGA的實時圖像采集系統包括視頻圖像采集、SDRAM圖像數據存儲、FPGA圖像數據發送,以及VGA終端顯示。系統選擇FPGA芯片、128 MBit SDRAM芯片、ADV7123視頻編碼芯片等硬件以及Quartus Ⅱ13.0軟件開發工具。 采用Modelsim10.0實現了系統仿真。
圖像采集系統; FPGA; CMOS SENSOR; SDRAM; VGA
圖像采集是圖像處理的前提。傳統的圖像采集與處理技術一般由采集卡完成圖像采集后再由計算機對其進行處理,這種設計與實現方法存在著系統后續改造與擴展困難、體積大、成本高、開發周期長等不足[1]。而近年來,可編程片上系統(System On a Programmable Chip, SOPC)發展迅速,它融合了處理器、存儲器、I/O口等模塊,并集成到現場可編程門陣列(FPGA)上。在當前技術下,為了有效地實現各類圖像處理算法,許多用于視頻圖像采集和處理的芯片隨之應運而生,芯片的處理功能也越來越強大,使用也越來越方便[2]。用FPGA來實現外圍芯片的控制,將圖像算法移植到SOPC平臺上來實現,具有設計靈活、可移植性高、速度快等優勢,并可以在此基礎上進一步對圖像進行處理,例如對圖像進行直方圖統計、均衡、濾波等[3]。文中設計了一種基于FPGA的視頻采集系統,實現了圖像信息的采集、轉換、緩存、顯示等功能。
1.1 硬件結構
系統采用Altera公司Cyclon Ⅳ 系列FPGA作為主控芯片,OV7725作為CMOS圖像傳感器采集數字圖像信息, Hynix的HY57V283220作為SDRAM緩存圖像數據,最后通過視頻編碼芯片ADV7123連接至VGA接口。系統硬件結構如圖1所示。

圖1 系統硬件結構
1.2 系統各硬件模塊
1.2.1 FPGA
EP4CE15F17C8N包括1.5 W個邏輯單元,166個用戶I/O,31.5 K*16 Bit的Flash,4個能級聯具有動態配置功能的PLL。
1.2.2 SDRAM
Hynix的HY57V283220芯片有4個區塊(BANK),每個BANK 有1 M*32 Bit存儲單元,12 Bit行地址,8 Bit列地址,共4 M*32 Bit=128 MBit存儲容量。
1.2.3 攝像頭
OV7725是低功耗的CMOS傳感器,內部集成A/D轉換模塊,可直接輸出數字信號,最高支持640*480@60 Hz分辨的視頻輸出。
1.2.4 視頻D/A轉換芯片
ADV/GM7123具有轉換速度快、同步性好、精度高的特點,可以達到30位RGB數模信號轉換(本系統只使用24位)的需要。
1.2.5 VGA
24位VGA視頻輸出接口,可以顯示真彩色圖像,通過FPGA編程實現VGA來驅動,完成視頻信號的輸出。FPGA并行計算的優勢,使它可以滿足VGA顯存數據更新與顯示同步進行的要求。
1.3 系統工作原理
系統上電復位之后,各模塊初始化,由主控芯片FPGA,驅動攝像頭、SDRAM、D/A轉換芯片,提供它們工作所需要的時鐘,配置它們的內部寄存器。在初始化完成之后,CMOS攝像頭將采集到視頻數據(RGB格式)傳輸給FPGA,FPGA通過verilog程序把傳輸過來的數據轉換成RGB565,并最終轉換為RGB888格式緩存到SDRAM中,再通過一塊D/A視頻編碼轉換芯片把數字VGA信號轉換成模擬VGA信號,連接至顯示器顯示。
視頻采集系統的軟件設計以Altera公司的QuartuesⅡ13.0為開發工具,以VerilogHDL硬件描述語言來進行各個模塊的編程,其中包括CMOS視頻圖像采集接口設計、OV7725寄存器初始化、SDRAM控制器、VGA驅動、全局時鐘模塊,系統軟件結構如圖2所示。

圖2 系統軟件結構
2.1 FPGA控制時鐘模塊
在系統剛剛上電的時候,無論是FPGA還是外設均處于不穩定的狀態,如果時鐘信號(clk)上升沿與復位信號(rst)的上升沿或者下降沿同時達到,將會產生競爭冒險。為了保證電路各模塊正常工作,文中設計了一個帶PLL的全局時鐘管理模塊,包括100 MHz的SDRAM控制時鐘,延時1/4周期的SDRAM驅動時鐘(100 MHz),25 MHz的VGA分辨率在640*480@60 Hz下的掃描時鐘,24 MHz的CMOS時鐘,以及全局復位信號。這個模塊保證了復位信號與全局時鐘信號的同步,并為整個系統的各個模塊提供工作時鐘。
2.2 OV7725寄存器的初始化模塊
模塊主要實現的兩個功能:
1)FPGA與OV7725的I2C通信,也就是配置CMOS SENSOR的SCCB接口。I2C總線在寫寄存器時先寫設備地址,再寫寄存器地址,最后寫入寄存器的數據[3]。I2C總線寫入時序如圖3所示。

圖3 I2C寫入時序
I2C總線在讀寄存器的時候,需要先寫入設備地址、寄存器地址,然后在主控端(FPGA)重新發送起始信號后,再讀取數據,時序圖如圖4所示。

圖4 I2C讀取時序
2)OV7725寄存器配置。OV7725默認輸出的是YUV422格式,為了達到設計需要,必須將它的內部寄存器com10(地址為0x12)的值設置為0x06,即以VGA分辨率輸出RGB565格式。
2.3 CMOS視頻流數據采集模塊
這個模塊的作用就是在I2C配置OV7725和SDRAM初始化完成前提下提取圖像信息:將攝像頭采集到的10 Bit數據(僅高8位有效)經過延時、同步、拼接輸出16 Bit RGB565數據,即OV7725圖像的傳輸、轉換。采用Modelsim仿真,得到的測試波形如圖5所示。

圖5 視頻數據采集仿真波形
由圖中可以看出,在行同步信號href為高電平期間,輸出了16 Bit的RGB565信號(cmos_565_data)。這個信號是由高8位{R[4:0],G[5:3]}與低8位 {G[2:0],B[4:0]}拼接成的,這是RGB565的完整讀取過程。
2.4 SDRAM控制器模塊
這個模塊實現的是SDRAM控制器與SDRAM的連接,產生驅動SDRAM所需的驅動時鐘、片選等信號。在視頻流數據采集模塊得到了16 Bit RGB565信號,由于SDRAM與VGA都是24 Bit接口,所以采用高位補低位的方式,得到24 Bit RGB888數據作為寫入SDRAM的數據。模塊最終輸出的是FIFO數據讀取信號,連接至VGA驅動模塊,作為VGA的輸入信號。
關于SDRAM,有一種“乒乓操作”,在本系統中,因為只采用一片sdram,所以需要實現片內乒乓來防止當前讀取的圖像與上一次存入的圖像出現交錯。簡單說,就是通過MUX選擇器,2個BANK讀2個BANK寫交替進行。
片內乒乓原理如圖6所示。

圖6 片內乒乓原理圖
2.5 VGA驅動模塊
VGA模塊主要實現的功能就是驅動ADV7123把SDRAM傳送過來的數據(數字信號)轉換成模擬信號,最終在顯示器上顯示出來。參照《VGA時序標準》,VGA的系統時鐘計算方法為[4]:

(1)
文中所用的640*480@60 Hz ,它的f=800*565*60=25.175 MHz(約為25 MHz),與上述控制時鐘模塊吻合。
VGA的掃描流程如圖7所示。

圖7 VGA掃描流程圖
圖中hcnt是行像素點寄存器,計數滿800使得行同步信號lcd_hs有效。vcnt是行數寄存器,計滿525使得場同步信號lcd_vs有效。lcd_rgb就是最終提供給ADV7123轉換的RGB信號。
完成以上各個模塊的設計和仿真之后分配管腳,將編譯好的工程文件下載到FPGA中。
系統上電之后,整個系統運行如圖8所示。

圖8 基于FPGA的視頻采集系統
可以看到系統畫面清晰、可靠,系統的實時性、穩定性都達到了設計要求。
基于可編程邏輯器件所設計的視頻采集系統方便移植、改進,是后續加入圖像處理算法的基礎部分。在后面的研究過程中,將實現實時顯示系統的圖片存儲以及加入一些圖像處理算法,并使用按鍵來切換不同算法的顯示效果。
[1] 朱奕丹,方怡冰.基于FPGA的圖像采集與VGA顯示系統[J].計算機應用,2011,31(5):1258-1261.
[2] 陳友榮,楊海波.基于FPGA技術視頻采集系統的設計與實現[J].中國有線電視,2008(4):382-387.
[3] 閏豐,吳川,王延杰.一種基于FPGA的實時圖像處理系統[J].長春工業大學學報:自然科學版,2003,24(4):50-52.
[4] 廖裕評,陸瑞強.邏輯電路設計DE2-115實戰寶典[M].武漢:有晶科技研發團隊,2012.
[5] 原魅,何文浩,肖晗.基于FPGA的嵌入式圖像處理系統設計[M].北京:電子工業出版社,2007.
[6] 應芳琴.基于I2C總線的視頻信息采集系統的IP核設計[D].杭州:浙江工業大學,2005.
[7] 劉波.精通Verilog HDL語言編程[M].北京:電子工業出版社,2007.
[8] 葉少朋.基于FPGA的嵌入式視頻采集系統設計[J].信息化研究,2011(2):39-43.
A real-time image collection system based on FPGA
SONG Yu, LIU Bin, GENG Yiying
(School of Computer Science & Engineering, Changchun University of Technology, Changchun 130012, China)
The FPGA based real-time image collection system is composed of video image sampling, SDRAM data storage, FPGA data transfer and VGA display. FPGA chip, SDRAM chip with 128 MBit and ADV7123 video coding chip are used as hardware, while Quartus II13.0 as software. Modelsim10.0 is applied for simulation.
image collection system; FPGA; CMOS SENSOR; SDRAM; VGA.
2016-04-10
教育部“春暉計劃”基金資助項目(Z2011139)
宋 宇(1969-),男,漢族,吉林長春人,長春工業大學教授,碩士,主要從事嵌入式系統方向研究,E-mail:.songyu@ccut.edu.cn.
10.15923/j.cnki.cn22-1382/t.2016.6.10
TP 752
A
1674-1374(2016)06-0565-05