《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于單片SRAM和FPGA的紅外圖像顯示的設計及實現
基于單片SRAM和FPGA的紅外圖像顯示的設計及實現
來源:電子技術應用2011年第7期
胡 哲,張貴清,祁釋冰,夏博儒,李芬芬
(湖北航天技術研究所,湖北 武漢430040)
摘要: 介紹一種采用單片SRAM和FPGA實現紅外圖像顯示的新方案,并對顯示系統結構、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


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

2 各功能模塊設計
2.1 Camera Link接口

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

2.2 FPGA核心功能模塊實現
    本設計中視頻數據的處理都在FPGA內實現,其內部功能框圖見圖3。

 

 

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

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

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

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
久久经典综合| 亚欧成人在线| 午夜精品久久久久久久久久久| 最新日韩精品| 影音先锋在线一区| 红桃视频国产一区| 国语自产精品视频在线看| 国产农村妇女毛片精品久久麻豆| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ入口 | 欧美一区二区视频免费观看| 亚洲一区二区三区视频播放| 亚洲视频一区| 亚洲午夜久久久| 亚洲欧美国产制服动漫| 亚洲欧美日韩国产成人| 欧美一区二区三区婷婷月色| 欧美一区中文字幕| 久久精品国产亚洲5555| 亚洲国产精品成人综合| 亚洲国产精品成人一区二区| 亚洲欧洲日产国码二区| 亚洲卡通欧美制服中文| 99国产精品久久久久老师 | 欧美日韩精品免费观看视频| 欧美日韩在线一区| 国产精品黄色| 国产欧美日韩免费| 国内一区二区三区在线视频| 国内视频精品| 亚洲黄一区二区| 一区二区av在线| 亚洲欧美日本视频在线观看| 欧美在线三级| 亚洲另类视频| 亚洲女女做受ⅹxx高潮| 久久国产88| 蜜桃久久av一区| 欧美女人交a| 国产精品乱子乱xxxx| 国产私拍一区| 亚洲国产日韩欧美在线99| 夜色激情一区二区| 欧美一区三区二区在线观看| 亚洲国产专区| 亚洲一二三区在线| 久久蜜桃精品| 欧美日韩精品在线视频| 国产女主播一区二区| 一区二区亚洲欧洲国产日韩| 亚洲精品一二| 欧美一级在线视频| 日韩网站在线看片你懂的| 亚洲欧美日韩一区二区三区在线| 久久久久免费| 欧美日韩在线免费观看| 国内外成人免费激情在线视频网站| 亚洲狠狠丁香婷婷综合久久久| 亚洲视频在线一区观看| 亚洲大胆美女视频| 在线一区亚洲| 久久久久一区二区三区| 欧美日韩亚洲天堂| 黄色一区二区三区| 正在播放亚洲| 亚洲国产视频一区二区| 先锋影音久久| 欧美激情在线有限公司| 国产亚洲人成a一在线v站| 亚洲毛片视频| 久久成人精品一区二区三区| 亚洲一区二区三区高清不卡| 老巨人导航500精品| 国产精品视频久久一区| 亚洲品质自拍| 久久国产精品黑丝| 亚洲欧美在线免费| 欧美激情视频在线免费观看 欧美视频免费一 | 亚洲精品少妇| 亚洲国产mv| 欧美一区激情视频在线观看| 欧美日本亚洲| 精品999在线观看| 亚洲欧美日韩一区二区在线 | 在线视频你懂得一区二区三区| 久久久久国产精品厨房| 欧美视频一区二区在线观看| 在线观看日韩| 午夜精品亚洲| 久久精品91久久香蕉加勒比| 一区二区三区精品在线| 久热精品视频在线| 国产精品一区二区久久| 亚洲精品少妇| 亚洲欧洲一区二区在线观看| 久久激情一区| 日韩一级裸体免费视频| 一本大道久久a久久精二百| 欧美一区二区成人6969| 欧美精品久久天天躁| 狠狠久久亚洲欧美专区| 亚洲午夜久久久| 一本久道久久综合婷婷鲸鱼| 久久久精品免费视频| 欧美国产日本| 狠狠综合久久| 午夜精品一区二区三区在线视 | 久久嫩草精品久久久久| 国产日产亚洲精品系列| 亚洲午夜激情| 亚洲一区亚洲| 欧美日韩国产精品| 亚洲看片免费| 99在线精品视频| 欧美金8天国| 最近中文字幕日韩精品| 亚洲人成人一区二区在线观看| 久久九九99视频| 黑人巨大精品欧美黑白配亚洲| 欧美一级一区| 久久久天天操| 伊人成人开心激情综合网| 久久精品夜色噜噜亚洲aⅴ| 久久久噜噜噜久久久| 好吊色欧美一区二区三区四区| 久久国产主播| 六月婷婷久久| 亚洲黄色在线看| 99xxxx成人网| 欧美视频免费看| 亚洲性感激情| 欧美怡红院视频| 国产一区二区三区久久久久久久久| 羞羞漫画18久久大片| 久久全国免费视频| 伊人狠狠色j香婷婷综合| 亚洲第一中文字幕| 女女同性精品视频| 亚洲人成网站色ww在线| 一区二区欧美日韩| 欧美午夜寂寞影院| 亚洲一区二区三区精品视频| 欧美一级免费视频| 黑人巨大精品欧美黑白配亚洲| 最新亚洲视频| 欧美日韩精品一二三区| 亚洲无线观看| 久久久久国产精品厨房| 亚洲国产精品成人综合色在线婷婷| 亚洲日本电影在线| 欧美日韩在线电影| 亚洲欧美精品伊人久久| 久久亚洲精选| 91久久在线观看| 亚洲欧美日韩在线不卡| 国产一区二区三区久久| 日韩视频在线播放| 国产精品久久一级| 亚洲电影有码| 欧美日韩在线播放| 销魂美女一区二区三区视频在线| 久久影院午夜论| 日韩小视频在线观看专区| 欧美在线视频一区| 亚洲国产欧美日韩精品| 亚洲女女做受ⅹxx高潮| 狠狠色狠狠色综合日日tαg| aa国产精品| 国产欧美精品一区aⅴ影院| 亚洲激情小视频| 国产精品高潮视频| 亚洲激情av| 国产精品福利在线观看| 久久激情视频免费观看| 欧美日韩一区在线观看| 久久精品官网| 欧美性猛交视频| 久久精品人人爽| 欧美午夜精品久久久久免费视| 久久精品成人欧美大片古装| 欧美日韩精品久久久| 久久国产精彩视频| 欧美性猛交xxxx乱大交蜜桃| 亚洲国产另类久久精品| 国产精品欧美日韩久久| 亚洲日本va在线观看| 国产欧美日韩专区发布| 9色国产精品| 精品1区2区3区4区| 午夜一区不卡| 亚洲精品欧洲精品| 久久久久看片| 亚洲伊人伊色伊影伊综合网 | 亚洲另类在线视频| 久久亚洲综合色| 亚洲天堂av在线免费观看| 欧美肥婆bbw| 亚洲成色www久久网站| 国产乱肥老妇国产一区二| 亚洲网站啪啪| 91久久中文字幕|