《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于單片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亚洲国产精品_日韩亚洲一区二区
欧美日韩高清在线| 亚洲日本免费| 欧美日韩一本到| 欧美成人一二三| 裸体女人亚洲精品一区| 久久国产乱子精品免费女 | 久久精品国产免费看久久精品| 亚洲午夜羞羞片| 亚洲性av在线| 亚洲免费综合| 亚洲欧美bt| 午夜精品久久99蜜桃的功能介绍| 亚洲一区二区视频在线| 一区二区三区回区在观看免费视频| 亚洲精品国产精品国自产观看浪潮| 亚洲国产一区二区三区在线播| 亚洲二区在线| 亚洲国产精品毛片| 亚洲欧洲在线播放| 亚洲免费播放| 亚洲午夜精品久久久久久浪潮| 一区二区三区 在线观看视频| 亚洲乱码久久| 一区二区三区视频观看| 正在播放日韩| 亚洲欧美日本在线| 欧美中文字幕视频| 亚洲国产精品一区二区第四页av| 亚洲国产精品一区二区三区| 亚洲精品国产拍免费91在线| 99热免费精品| 亚洲无毛电影| 欧美在线黄色| 免费黄网站欧美| 欧美伦理91i| 国产精品久久久久久久久久三级| 国产精品亚洲аv天堂网 | 99精品欧美一区二区三区| 中文精品一区二区三区| 亚洲女优在线| 亚洲国产美女| 中文精品视频| 久久精品国产免费| 欧美激情一区二区三区在线视频| 欧美日韩国产成人| 国产精品无码专区在线观看| 红桃视频国产一区| 亚洲精选成人| 欧美一级视频| 亚洲精品久久嫩草网站秘色| 亚洲一区二区三区精品在线观看| 久久超碰97人人做人人爱| 麻豆精品精华液| 欧美视频一区| 激情亚洲一区二区三区四区| 99成人免费视频| 欧美亚洲一级片| 99在线精品视频在线观看| 午夜欧美不卡精品aaaaa| 久久夜色精品一区| 欧美日韩中文字幕在线| 国产日韩欧美一区二区三区四区| 亚洲国产高清一区| 亚洲综合欧美| 亚洲精品免费电影| 欧美一区二区三区的| 欧美jizzhd精品欧美喷水| 国产精品久久久久久久久| 韩国成人精品a∨在线观看| 亚洲精品欧洲| 亚洲电影在线免费观看| 亚洲在线一区二区| 女人香蕉久久**毛片精品| 国产精品久久久久影院色老大| 激情欧美一区二区三区| 亚洲一区二区三区国产| 亚洲精品中文字幕女同| 久久精品一区二区三区四区 | 欧美精品少妇一区二区三区| 国产伦精品一区二区| 亚洲青色在线| 久久国产精品99国产精| 亚洲综合精品四区| 欧美经典一区二区| 国产又爽又黄的激情精品视频 | 亚洲性感激情| 欧美二区乱c少妇| 国产午夜一区二区三区| 在线天堂一区av电影| 亚洲精品乱码| 久久综合一区| 国产午夜精品久久久久久久| 亚洲最新视频在线| 亚洲伦理一区| 老司机凹凸av亚洲导航| 国产欧美一区二区精品性| 一本色道婷婷久久欧美| 日韩系列在线| 欧美高清免费| 在线观看不卡| 久久精品30| 久久狠狠婷婷| 国产日韩亚洲欧美| 亚洲欧美伊人| 欧美亚洲一区二区在线观看| 欧美网站在线观看| 9色国产精品| 日韩视频一区二区三区| 欧美1区2区| 一区二区在线看| 亚洲第一综合天堂另类专| 久久久欧美精品sm网站| 国产精品九色蝌蚪自拍| 一本色道88久久加勒比精品| 正在播放欧美一区| 欧美日韩成人激情| 亚洲日本一区二区三区| 亚洲九九爱视频| 欧美精品www| 日韩午夜av| 亚洲一区在线看| 国产精品国产三级国产aⅴ入口| 一区二区冒白浆视频| 亚洲午夜久久久久久久久电影院| 欧美日韩国产不卡在线看| 日韩亚洲欧美精品| 亚洲一区二区高清| 国产精品你懂的| 午夜精品国产更新| 久久蜜桃香蕉精品一区二区三区| 国产一区二区成人| 亚洲国产一区二区a毛片| 噜噜噜在线观看免费视频日韩| 国外成人在线| 亚洲黄一区二区三区| 欧美国产日韩亚洲一区| 亚洲精品视频在线观看网站| av成人动漫| 国产精品黄色在线观看| 亚洲女ⅴideoshd黑人| 久久精品一区二区三区中文字幕| 韩日精品中文字幕| 亚洲精品免费看| 欧美视频在线免费| 午夜精品久久久久久久蜜桃app| 久久久久国色av免费看影院| 精品99一区二区三区| 亚洲麻豆视频| 欧美午夜不卡视频| 午夜国产欧美理论在线播放| 久久久久久午夜| 亚洲国产成人91精品| 中文精品99久久国产香蕉| 国产精品日韩欧美| 亚洲电影激情视频网站| 欧美人妖在线观看| 亚洲视频在线观看视频| 久久精品在这里| 亚洲黄色av| 亚洲一区二区三区在线| 国产日韩欧美高清免费| 亚洲国产日韩欧美一区二区三区| 欧美区在线观看| 午夜精品久久一牛影视| 欧美ed2k| 亚洲尤物视频在线| 美女成人午夜| 一区二区三区欧美视频| 久久久久久久久久久一区| 亚洲欧洲一区二区天堂久久| 小黄鸭视频精品导航| 亚洲国产二区| 欧美亚洲视频一区二区| 在线观看日韩av电影| 亚洲男人第一网站| 在线成人www免费观看视频| 亚洲永久精品大片| 悠悠资源网亚洲青| 亚洲欧美日产图| 亚洲激情综合| 久久国产精品黑丝| 亚洲免费激情| 久久天堂av综合合色| 中文亚洲视频在线| 麻豆精品国产91久久久久久| 亚洲午夜小视频| 欧美激情一区二区三区全黄| 性欧美xxxx大乳国产app| 欧美精选一区| 久久精品一区蜜桃臀影院| 欧美日韩在线观看视频| 久久精品一区二区三区中文字幕| 欧美性开放视频| 亚洲精品在线观| 国产一区视频在线观看免费| 亚洲图片欧美一区| 亚洲国产天堂久久综合网| 久久蜜桃香蕉精品一区二区三区| 亚洲网友自拍| 欧美日韩理论|