基于FPGA的視頻采集顯示系統(tǒng)
為防止視頻圖像數(shù)據(jù)在采集與顯示存在不同步的情況,在兩極之間構(gòu)建了FIFO并配合SDRAM以實現(xiàn)對采集數(shù)據(jù)的暫存,F(xiàn)IFO的寫使能與攝像頭的行同步信號相連,當行同步信號有效時開始寫FIFO,當FIFO空標志位為低時電平表示FIFO中已存入數(shù)據(jù),則NiosII開始控制SDRAM從FIFO中讀取視頻數(shù)據(jù),這樣操作的特點就是將經(jīng)過緩存的數(shù)據(jù)流無停頓地傳送到輸出端,因此適合對時序不連續(xù)的像素進行無縫緩沖處理。
1.4 視頻圖像顯示模塊
視頻圖像顯示通過在FPGA中構(gòu)建的Nios II嵌入式內(nèi)核實現(xiàn),Nios II系統(tǒng)可以在設計階段根據(jù)實際的需求來增減外設的數(shù)量和種類??梢允褂肁ltera提供的開發(fā)工具SOPC Builder,在FPGA器件上創(chuàng)建軟硬件開發(fā)的基礎平臺,即用SOPC Builder創(chuàng)建嵌入式內(nèi)核CPU和參數(shù)化的接口總線Avalon。在此基礎上,可以快速地將硬件系統(tǒng)與常規(guī)軟件集成在單一可編程芯片中。而且,SOPC Builder還提供標準的接口方式,以便用戶將外圍電路做成Nios II嵌入式內(nèi)核可以添加的外設模塊。這種設計方式,方便了各類系統(tǒng)的調(diào)試。
2 系統(tǒng)軟件設計
2.1 軟件模塊介紹
系統(tǒng)軟件總設計模塊如圖6所示,在sys_ctrl中建立PLL鎖相環(huán)對時鐘倍頻、分頻產(chǎn)生系統(tǒng)各模塊所需時鐘與系統(tǒng)復位信號,vedio_in put模塊負責OV7670攝像頭的初始化與視頻圖像數(shù)據(jù)的采集,wrfifo模塊配合Nios II負責對vedio_input采集的視頻圖像數(shù)據(jù)的緩存,以防止數(shù)據(jù)時鐘不匹配而出現(xiàn)數(shù)據(jù)紊亂,而vga_ctrl模塊主要負責產(chǎn)生讀取wrfifo中的數(shù)據(jù)與實現(xiàn)數(shù)據(jù)的VGA顯示產(chǎn)生相應的RGB數(shù)據(jù)與行、場同步信號,再將采集數(shù)據(jù)送到Nios II中,在Nios II中用C語言驅(qū)動TFT液晶,實現(xiàn)視頻數(shù)據(jù)的顯示。本文引用地址:http://2s4d.com/article/189631.htm
2.2 Nios II嵌入式內(nèi)核程序設計
Nios II嵌入式內(nèi)核主要任務是將rag_ctrl采集數(shù)據(jù)送入SDRAM暫存,然后再根據(jù)顯示需要將暫存的數(shù)據(jù)讀取出來送到LCD顯示,為了確保顯示圖像與采集圖像的一致,在送LCD顯示數(shù)據(jù)時要注意以下幾點;
(1)根據(jù)實際情況去除行、場消隱數(shù)據(jù),再根據(jù)顯示內(nèi)容的多少對數(shù)據(jù)進行裁剪,裁剪到適合LCD顯示的大小,從而避免顯示時圖像的錯位以及亂碼等情況。
(2)由于嵌入式內(nèi)核時鐘頻率相對于攝像頭的大量數(shù)據(jù)來說速度還是難以做到攝像頭采集的每幅圖像都能完全顯示,所以在設計中采用隔場采集處理的方式,這樣避免SDRAM中數(shù)據(jù)過多以至于被填滿的情況,也解決了嵌入式內(nèi)核采集的出現(xiàn)的卡屏的情況。
3 結(jié)束語
采用FPGA設計并實現(xiàn)了一種視頻顯示系統(tǒng),大幅減少了電路板的尺寸,節(jié)約了成本,同時增加了設計的靈活性和系統(tǒng)的可靠性,充分應用FPGA快速并行處理數(shù)據(jù)的特性,在產(chǎn)生同步信號的同時送出像素數(shù)據(jù)。嵌入式內(nèi)核Nios II的使用,解決了其他系統(tǒng)實時圖像顯示的體積與速度問題,擴展了應用范圍。
fpga相關(guān)文章:fpga是什么
攝像頭相關(guān)文章:攝像頭原理 鎖相環(huán)相關(guān)文章:鎖相環(huán)原理
評論