《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > 基于單片SRAM和FPGA的紅外圖像顯示的設(shè)計及實現(xiàn)
基于單片SRAM和FPGA的紅外圖像顯示的設(shè)計及實現(xiàn)
來源:電子技術(shù)應(yīng)用2011年第7期
胡 哲,張貴清,祁釋冰,夏博儒,李芬芬
(湖北航天技術(shù)研究所,湖北 武漢430040)
摘要: 介紹一種采用單片SRAM和FPGA實現(xiàn)紅外圖像顯示的新方案,并對顯示系統(tǒng)結(jié)構(gòu)、FPGA各功能模塊設(shè)計、SRAM的讀/寫時序設(shè)計進行了詳細論述。該圖像顯示方案可用于紅外圖像處理系統(tǒng)的硬件調(diào)試和紅外圖像處理效果觀測。實際使用情況表明,該顯示方案能夠很好地滿足紅外圖像處理系統(tǒng)的圖像輸出需求。
關(guān)鍵詞: FPGA 紅外圖像顯示 SRAM
中圖分類號: TN911.73
文獻標識碼: A
文章編號: 0258-7998(2011)07-0061-04
Design and realization of infrared image display based on one SRAM and FPGA
Hu Zhe,Zhang Guiqing,Qi Shibing,Xia Boru,Li Fenfen
Hubei Institute of Spaceflight,Wuhan 430040,China
Abstract: A new solution using only one SRAM and FPGA for infrared image display on monitor, which can be used in many fields such as hardware debugging of infrared image processing system and visualization of image processing effect, is presented in this paper. The structure of display system, FPGA logic function block, SRAM read and write timing are also analyzed in detail. And it successfully satisfies the output image quality of infrared image processing system.
Key words : infrared image display;FPGA;SRAM


    隨著紅外探測技術(shù)的發(fā)展及其在軍事、工業(yè)等領(lǐng)域的廣泛使用,紅外圖像處理算法獲得了廣泛研究。在實際嵌入式紅外圖像處理系統(tǒng)中,為了方便硬件調(diào)試和觀察圖像處理的效果,需要在系統(tǒng)中加入圖像顯示模塊。通常視頻數(shù)據(jù)流需要處理的數(shù)據(jù)量大,實時性要求高,所以需要高速大容量的存儲器作為圖像數(shù)據(jù)的緩存。用于圖像數(shù)據(jù)緩存的存儲器有3種:①同步動態(tài)隨機存取存儲器SDRAM(Synchronous Dynamic RAM),其容量大、速度快、體積小、價格低,但SDRAM的控制邏輯比較復(fù)雜,對時序要求也十分嚴格,需要設(shè)計專門的SDRAM控制器以完成與SDRAM芯片的接口;②雙口RAM,它可以同時對數(shù)據(jù)進行讀寫,時序簡單,操作非常方便,但是容量相對較小,而且價格高;③靜態(tài)隨機存取存儲器SRAM(Static RAM),它不僅容量大、速度快、體積小、價格低,而且時序控制簡單,但是數(shù)據(jù)不能同時讀寫,工程中多采用2片SRAM做乒乓操作來簡化讀寫控制。針對實際工程中的體積小、成本低、開發(fā)周期短等要求,本文提出一種基于單片SRAM和FPGA的圖像處理及顯示方案,并在實際工程中得到了應(yīng)用。
    本文的初始設(shè)計是面向幀頻為50幀/s、16 bit灰度、圖像為320×256像素的紅外圖像輸出顯示,但其設(shè)計方案可以應(yīng)用于不同幀頻、灰度級及圖像大小的圖像顯示。
1 系統(tǒng)硬件結(jié)構(gòu)和工作原理
    系統(tǒng)硬件結(jié)構(gòu)圖如圖1所示。本系統(tǒng)中,高速串行LVDS視頻信號經(jīng)Camera Link接收芯片DS90CR285接收轉(zhuǎn)化為并行TTL電平后送給FPGA,同時,其他系統(tǒng)的高速串行LVDS格式數(shù)據(jù)也可以直接送至FPGA。這些視頻數(shù)據(jù)經(jīng)FPGA進行直方圖統(tǒng)計,并存儲在SRAM中。然后,F(xiàn)PGA在存儲間隙讀出SRAM內(nèi)的有效像素數(shù)據(jù),并采用直方圖統(tǒng)計的參數(shù)對圖像灰度拉伸,然后送至視頻轉(zhuǎn)換芯片ADV7123進行D/A轉(zhuǎn)換顯示。

2 各功能模塊設(shè)計
2.1 Camera Link接口

    本方案選用DS90CR285將Camera Link格式的4對串行LVDS圖像信號轉(zhuǎn)換成28 bit并行TTL/CMOS的數(shù)據(jù)。根據(jù)Camera Link基本協(xié)議,28 bit數(shù)據(jù)信號中包括3個數(shù)據(jù)端口:A口(8 bit)、B口(8 bit)、C口(8 bit),和4個視頻控制信號FVAL(幀有效)、DVAL(數(shù)據(jù)有效)、LVAL(行有效)、SPARE(空,暫時未用)。經(jīng)過Camera Link芯片轉(zhuǎn)換后的時鐘信號是整個相機的同步驅(qū)動信號,所有的數(shù)據(jù)和視頻控制信號都和該時鐘信號同步。數(shù)據(jù)轉(zhuǎn)換后送入FPGA的時序如圖2。

2.2 FPGA核心功能模塊實現(xiàn)
    本設(shè)計中視頻數(shù)據(jù)的處理都在FPGA內(nèi)實現(xiàn),其內(nèi)部功能框圖見圖3。

 

 

    本文主要討論在FPGA內(nèi),利用視頻數(shù)據(jù)的行場掃描間隙對單片SRAM進行讀寫操作從而完成模擬圖像的顯示功能。直方圖統(tǒng)計功能在另文中描述。
    本系統(tǒng)中,視頻信號時鐘為20 MHz,PAL制式信號數(shù)據(jù)時鐘采用13.5 MHz。為了讓SRAM讀寫時間更加充裕,使用了兩個FIFO模塊作為數(shù)據(jù)緩沖:FIFO_IN、FIFO_OUT。FIFO_IN用來做SRAM的輸入緩沖器,F(xiàn)IFO_OUT用來做SRAM的輸出緩沖器。FIFO可以通過IP核來實現(xiàn),存儲寬度為16 bit,存儲深度設(shè)置為1.5倍行像素,本系統(tǒng)為1.5×320=480[1-2]。
2.2.1 FIFO_IN模塊
    為保證數(shù)據(jù)讀寫效率,此模塊的讀寫方式需進行合理規(guī)劃,具體為每次往FIFO中寫一行數(shù)據(jù),寫完后立刻從FIFO讀一行數(shù)據(jù)并寫入SRAM。像素時鐘為FIFO的寫時鐘,行有效信號作為FIFO的寫使能,F(xiàn)IFO讀時鐘為100 MHz,也是SRAM的讀寫時鐘,通過判斷行下降沿來生成一個320的計數(shù)器,并在計數(shù)器有效期間將FIFO讀使能置為高。FVAL的上升沿作為FIFO的復(fù)位信號。此FIFO的讀寫時序圖見圖4。

2.2.2 FIFO_OUT模塊
    此模塊主要是緩沖灰度拉伸后的視頻數(shù)據(jù)用于輸出顯示。本系統(tǒng)要求輸出標準的PAL制式的模擬視頻,PAL制式視頻場頻為50 Hz,幀頻為25 Hz。本方案選用專用的圖像DA芯片ADV7123, 該芯片是一款高速的RGB D/A轉(zhuǎn)換芯片,內(nèi)部集成有3路10位精度的D/A轉(zhuǎn)換器,分別用于RGB數(shù)字信號的D/A轉(zhuǎn)換,數(shù)據(jù)吞吐率可達到330 MS/s,適合高分辨彩色視頻生成。ADV7123提供有3路數(shù)字輸入接口(RE9:0]、G[9:0]、B[9:0])以及CRT消隱和同步控制信號(BLANK、SYNC)。標準PAL制式的行場消隱信號和行場同步信號都是標準信號,在FPGA內(nèi)很容易實現(xiàn),本文不再論述。實際應(yīng)用中只需要在需要顯示圖像的正確行場位置,將圖像灰度數(shù)據(jù)送入G[9:0]通道,即可在lOG端口得到復(fù)合視頻信號。同時這些正確行場位置標志信號作為FIFO的輸出使能,輸出時鐘為13.5 MHz,輸入時鐘為100 MHz,輸入使能為灰度拉伸模塊的輸出數(shù)據(jù)有效信號,輸入數(shù)據(jù)為灰度拉伸模塊的輸出數(shù)據(jù)。FVAL的上升沿作為FIFO的復(fù)位信號。
2.2.3 SRAM讀寫控制模塊
    SRAM作為視頻數(shù)據(jù)的緩沖區(qū),根據(jù)上述時序其容量最好能大于2幀數(shù)據(jù),同時為了便于以后擴展,本方案中選用SRAM為CY7C1472BV33,容量為4 M×18 bit。由于SRAM屬于單向存儲器,利用單片SRAM作存儲的難點在于如何將讀寫控制分開。此控制包含2部分:讀寫使能和讀寫地址變換。下面分別從讀和寫來說明這2部分控制的實現(xiàn)。
    FIFO_IN的讀使能作為SRAM的寫使能,寫地址在寫使能有效期間從SRAM的零地址依次遞增,即地址范圍為0~81 919(320×256-1)。但由于本系統(tǒng)中視頻信號20 ms一幀,PAL制式視頻顯示一幀需要奇場20 ms、偶場20 ms,共40 ms,所以在偶場顯示時還是在讀SRAM中0~81 919部分的數(shù)據(jù),此時視頻信號必須寫入SRAM的另外一部分空間,這就要求在奇場和偶場時寫地址要進行切換;或者采用在奇場時數(shù)據(jù)寫入SRAM,偶場時不寫入,這樣剛好做到顯示完一幀圖像,下一幀圖像數(shù)據(jù)就可以覆蓋上一幀圖像的數(shù)據(jù),這樣寫地址就一直是從0~81 919,不需要切換。本方案采用后者,其寫使能及寫地址的FPGA主要代碼如下:
//SRAM寫使能
always @(posedge SRAM_CLK)
    if (!rst_n | (sram_write_counter==319))
    ui_sram_write <= 0;
    else if(LVAL_fallage)
    ui_sram_write <= 1;//SRAM寫地址切換
    always @(posedge SRAM_CLK)
    if (!rst_n | Hsync_odd_riseage)
      ui_sram_write_add <= 0;//起始地址
    else if (ui_sram_write)
      ui_sram_write_add <= ui_sram_write_add + 1;
    SRAM的寫使能設(shè)計要避免與SRAM的讀使能沖突。本方案在FIFO_OUT模塊上設(shè)計了一個可編程空標志位program_empty,當fifo數(shù)據(jù)不足160個時,program_empty置高,PAL制式視頻的行掃描周期為64&mu;s,也就是FIFO_OUT每64 &mu;s被讀一次(一次讀出320個數(shù)),這樣只要在64 &mu;s時間內(nèi)能夠?qū)懭?20個數(shù)就可以保證下次行掃描能夠從FIFO_OUT取出數(shù)據(jù)。由于本系統(tǒng)中SRAM的寫使能周期為16.5 &mu;s,因此本方案是將SRAM讀狀態(tài)分2種情況,在FVAL信號有效期間,采用program_empty置高和SRAM的寫使能下降沿的&ldquo;與&rdquo;操作作為SRAM讀觸發(fā)信號;在FVAL信號無效期間,SRAM無寫控制,program_empty信號的上升沿將作為SRAM的讀觸發(fā)信號。然后根據(jù)讀觸發(fā)信號生成一個320的計數(shù)器,并在計數(shù)器有效期間將SRAM的讀使能置為高。這樣就能保證SRAM的讀寫不沖突,且數(shù)據(jù)也不會漏寫,控制時序見圖5。

    PAL制式視頻顯示分為奇場和偶場,因此在奇場時,SRAM的讀地址應(yīng)該滿足:第n行地址范圍為320&times;(n-1)~319+320&times;(n-1)(n=1,2&hellip;&hellip;128);偶場時,RAM的讀地址應(yīng)該滿足:第n行地址范圍320&times;n~319+320&times;n(n=1,2&hellip;&hellip;128),其讀使能及讀地址的FPGA主要代碼如下:
//////// sram的讀標志位有2種狀態(tài):(1)奇場數(shù)據(jù)有效時////用寫sram的下降沿&lsquo;與&rsquo;fifo半行標志位。(2)奇場數(shù)據(jù)無效時用 fifo半行標志位產(chǎn)生上升沿
    always @(posedge SRAM_CLK)
    if (!rst_n)
    ui_sram_read_flag <= 0;
    else begin
    if ((FVAL_d | ui_sram_write_5d)& Hsync_odd )
    ui_sram_read_flag <= ui_sram_write_fallage &
fifo_sram_adv7123_prom_empty_d;
    else
    ui_sram_read_flag<=fifo_sram_adv7123_prom_empty_riseage;
    end
////  SRAM讀地址切換
    always @(posedge SRAM_CLK)
    if (!rst_n | Hsync_odd_riseage)
       ui_sram_read_add <= 0;//奇場起始地址
    else if (Hsync_odd_fallage)
        ui_sram_read_add <= 320;//偶場起始地址
    else if (ui_sram_read_fallage)
        ui_sram_read_add <= ui_sram_read_add+320;
    else if (ui_sram_read)
        ui_sram_read_add <= ui_sram_read_add+1;
    最后通過下面的賦值給出了SRAM芯片的讀寫、片選及地址信號:
assign SRAM_read_write_en=~(ui_sram_write & Hsync_odd);
//SRAM讀寫使能
assign SRAM_CE=~(ui_sram_read | ui_sram_write);
//SSRAM片選
assign SRAM_ADD=(ui_sram_write)?ui_sram_write_add:
ui_sram_read_add;//SSRAM地址
2.2.4 灰度拉伸
    將SRAM的讀使能和讀數(shù)據(jù)送入灰度拉伸模塊作為數(shù)據(jù)使能和輸入數(shù)據(jù)。本方案中,圖像灰度線性拉伸算法表達式為:
    
    式(1)中:Y是拉伸后輸出圖像灰度值;X是SRAM中讀出的數(shù)據(jù),為原始圖像16 bit二進制數(shù)灰度值;Xmin是輸入圖像數(shù)據(jù)直方圖統(tǒng)計最小灰度值;Xmax是輸入圖像數(shù)據(jù)直方圖統(tǒng)計最大灰度值。為保證精度,實際應(yīng)用中將上述公式進行簡單變換,可以記為:
    
    Q值在上幀結(jié)束前直方圖統(tǒng)計模塊已經(jīng)得到,這樣拉伸運算只需1次減法和乘法運算,得到積左移14 bit后,截取低10 bit就得到拉伸后的灰度值。需要注意的是,截取前要判定乘法是否溢出,如果溢出,結(jié)果置為最大灰度值210。本方案中主要通過調(diào)用乘法器IP核來完成乘法運算,不同硬件的乘法器延遲時間不同,所以必須要將輸入數(shù)據(jù)使能信號作相應(yīng)延遲后,成為輸出使能與乘法器輸出數(shù)據(jù)同步[3]。經(jīng)過灰度拉伸后的圖像數(shù)據(jù)送入FIFO_OUT模塊用于圖像顯示,其中,灰度拉伸模塊的輸出使能及輸出數(shù)據(jù)作為FIFO_OUT模塊的輸入使能和輸入數(shù)據(jù)。
    該圖像處理方案以FPGA 作為核心控制芯片,采用單片SRAM實現(xiàn)了圖像預(yù)處理、數(shù)據(jù)緩存、圖像存儲及顯示的功能。隨著FPGA 性能的不斷提高及其靈活的可編程性,設(shè)計者可以進一步在FPGA內(nèi)部實現(xiàn)各種其他的圖像處理算法。這樣,直接采用FPGA和單片SRAM的方案不但減小了PCB 尺寸,降低了元件數(shù)量及PCB布線的難度,也降低了元件相互連線帶來的信號失真,從而增加了可靠性和穩(wěn)定性。本方案已成功應(yīng)用在本單位的圖像采集和處理產(chǎn)品中。
參考文獻
[1] 田耘,胡彬,徐文波,等.Xilinx ISE Design Suite 10.x FPGA開發(fā)指南[M].北京:人民郵電出版社,2008.
[2] Xilinx Corporation.fifo_generator_ds317.http://www.xilinx.com,2005.
[3] Xilinx Corporation.Muli_gen_ds255.http://www.xilinx.com,2005.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
主站蜘蛛池模板: 国产免费女女脚奴视频网| 一本大道无码人妻精品专区| 欧美性活一级视频| 天天摸天天舔天天操| 中文字幕第四页| 日韩人妻不卡一区二区三区| 亚洲人av高清无码| 精品国产品欧美日产在线| 国产人成精品香港三级古代| 国产成人精品免费视频动漫| 国产精品单位女同事在线| 97久视频精品视频在线老司机| 天天躁日日躁狠狠躁av麻豆| 一级毛片恃级毛片直播| 把腿扒开做爽爽视频在线看| 久久久噜噜噜久久中文字幕色伊伊 | 国产免费久久精品99久久| 天天视频天天爽| 国产精品成熟老女人视频| 99久久久国产精品免费蜜臀| 日本边添边摸边做边爱喷水| 亚洲AV无码一区二区三区在线| 男生秘密网站入口| 午夜两性色视频免费网站| 精品一久久香蕉国产二月| 国产精品久关键词| 2018国产大陆天天弄| 国产网站在线免费观看| 97公开免费视频| 在线网站你懂得| 99精品国产一区二区三区2021| 奇米影视7777久久精品| zzzzzzz中国美女| 嫩小xxxxx性bbbbb孕妇| 久久国产乱子伦精品免费不卡 | 国内精品视频一区二区三区| 中文字幕色婷婷在线视频| 日本人强jizzjizz老| 久久久久免费看成人影片| 日本免费福利视频| 久久久久久久久蜜桃|