周 陽 楊宏海 劉 勇 傅 強(qiáng)
(北京航天計(jì)量測試技術(shù)研究所,北京 100076)
高光譜紅外成像系統(tǒng)的乒乓緩存設(shè)計(jì)
周 陽 楊宏海 劉 勇 傅 強(qiáng)
(北京航天計(jì)量測試技術(shù)研究所,北京 100076)
通過比較三種常用緩存方式的異同,介紹了高光譜成像系統(tǒng)中一種協(xié)調(diào)數(shù)據(jù)傳輸與處理速度的乒乓緩存結(jié)構(gòu),討論了乒乓緩沖結(jié)構(gòu)的運(yùn)行和控制原理。以高速大容量的SRAM以及高性能FPGA器件為平臺(tái),設(shè)計(jì)了一種適應(yīng)于高光譜成像數(shù)據(jù)處理系統(tǒng)的乒乓緩存結(jié)構(gòu),并進(jìn)行RTL仿真和板級驗(yàn)證。實(shí)驗(yàn)表明,該方案可以高效完成大量實(shí)時(shí)視頻數(shù)據(jù)的緩沖和處理,有效提高了系統(tǒng)工作效率,且穩(wěn)定可靠。
高光譜成像 乒乓 緩沖存儲(chǔ)器 FPGA
在高光譜成像系統(tǒng)中,需要實(shí)時(shí)處理和傳輸龐大的高光譜數(shù)據(jù)立方體,通過算法對圖像實(shí)現(xiàn)增強(qiáng)的同時(shí)保留其光譜信息的真實(shí)性,因此對探測系統(tǒng)的視頻處理部分提出了很高的要求,需要采用高速處理器,并建立快速有序的視頻輸入輸出機(jī)制。本系統(tǒng)采用凝視型中波紅外高光譜成像方式,在前端光學(xué)系統(tǒng)中利用可調(diào)諧聲光濾光器(AOTF)進(jìn)行分光,根據(jù)驅(qū)動(dòng)頻率的調(diào)諧對入射光進(jìn)行波長選擇性透過,實(shí)現(xiàn)高光譜分辨率的成像探測[1]。
高光譜紅外成像系統(tǒng)的三維立體數(shù)據(jù)算法復(fù)雜,數(shù)據(jù)量大,需要高速的處理能力。本系統(tǒng)采用基于單FPGA的高光譜視頻處理硬件平臺(tái),采用一塊高性能FPGA來完成實(shí)時(shí)數(shù)據(jù)處理和控制任務(wù)。在高光譜視頻處理系統(tǒng)中,主處理器的視頻算法實(shí)現(xiàn)時(shí)間往往不是固定不變的,而后端的圖像輸出接口卻是使用均勻速度對外傳輸視頻數(shù)據(jù),因此在FPGA和視頻輸出端口之間,會(huì)存在時(shí)間上的不同步,這樣就會(huì)導(dǎo)致視頻數(shù)據(jù)的丟失,影響數(shù)據(jù)的完整性,因此需要在二者之間增加緩存結(jié)構(gòu)[2]。本文主要對乒乓緩存結(jié)構(gòu)原理進(jìn)行分析,在此基礎(chǔ)上結(jié)合高光譜紅外視頻處理系統(tǒng),設(shè)計(jì)適用于FPGA系統(tǒng)的乒乓緩存輸入輸出結(jié)構(gòu),給出了具體設(shè)計(jì)方法。
高光譜紅外探測組件為數(shù)據(jù)處理系統(tǒng)提供原始三維紅外光譜數(shù)據(jù)。一定時(shí)序下紅外焦平面完成紅外視頻信號的積分輸出,同步A/D 轉(zhuǎn)換,將處理完的數(shù)據(jù)輸出到下一級FPGA圖象處理電路單元。信號處理電路根據(jù)外部指令將上級的數(shù)字視頻信號進(jìn)行一系列的視頻處理(主要包括:非均勻性校正,盲元替代,視頻增強(qiáng),亮度調(diào)節(jié)等),處理后的數(shù)字視頻信號將通過數(shù)字視頻接口(Cameralink)輸出,同時(shí)也可經(jīng)過視頻轉(zhuǎn)換電路轉(zhuǎn)換成標(biāo)準(zhǔn)PAL制模擬視頻。
系統(tǒng)以FPGA為視頻處理核心,輔以外圍信號調(diào)理、AD轉(zhuǎn)換、控制接口、視頻傳輸接口以及電源變換等電路完成高光譜紅外探測的驅(qū)動(dòng)、信號采集、功能控制、視頻處理、視頻輸出等功能。原理框圖如圖1所示。
乒乓緩存是一種用于數(shù)據(jù)流控制的處理技巧,在FPGA時(shí)序設(shè)計(jì)中使用非常廣泛,是一種典型的以面積換速度的設(shè)計(jì)思想。乒乓緩存主要通過輸入輸出數(shù)據(jù)選擇單元,控制兩個(gè)數(shù)據(jù)緩沖區(qū)中輸入輸出數(shù)據(jù)的走向,基本原理如圖2所示。其基本處理流程為:在第一個(gè)緩存周期,將輸入的數(shù)據(jù)流緩存至數(shù)據(jù)緩存區(qū)1中;在第二個(gè)緩存周期,通過輸入數(shù)據(jù)選擇單元的切換,將輸入的數(shù)據(jù)流緩存至數(shù)據(jù)緩存區(qū)2中,同時(shí)將先前存入數(shù)據(jù)緩存區(qū)1的數(shù)據(jù)通過輸出數(shù)據(jù)選擇單元送至后續(xù)模塊進(jìn)行處理;在第三個(gè)緩存周期,重新切換數(shù)據(jù)輸入輸出數(shù)據(jù)選擇單元,將輸入數(shù)據(jù)流緩存值數(shù)據(jù)緩存區(qū)1的同時(shí)對數(shù)據(jù)緩存區(qū)2中的數(shù)據(jù)進(jìn)行讀??;之后按照前面的流程反復(fù)進(jìn)行操作[3,4]。乒乓緩存的最大特點(diǎn)是,通過輸入輸出數(shù)據(jù)選擇單元按照節(jié)拍相互配合切換,將經(jīng)過緩存的數(shù)據(jù)流不停的發(fā)送到后續(xù)處理模塊,將加入了乒乓緩存的兩個(gè)數(shù)據(jù)緩存模塊當(dāng)作一個(gè)整體,對這個(gè)整體的輸入輸出端進(jìn)行觀察可以發(fā)現(xiàn)輸入輸出數(shù)據(jù)都是連續(xù)不斷的,實(shí)現(xiàn)了數(shù)據(jù)流無縫緩沖和實(shí)時(shí)存取的流水線式處理,非常適合于對實(shí)時(shí)性要求較高的應(yīng)用場合[4]。
乒乓緩存結(jié)構(gòu)與雙口RAM較為相似,但它與普通雙口RAM又有著本質(zhì)區(qū)別,主要表現(xiàn)在以下幾個(gè)方面:1)普通雙口RAM是單個(gè)存儲(chǔ)體構(gòu)成的芯片,具有兩套完全獨(dú)立的數(shù)據(jù)線、地址線、讀寫控制線,乒乓緩存則由包含兩個(gè)相互獨(dú)立存儲(chǔ)體的多片IC構(gòu)成,從而使其在結(jié)構(gòu)、速度、容量等方面具有更大的靈活性;2)雙口RAM允許兩個(gè)獨(dú)立的系統(tǒng)同時(shí)對該存儲(chǔ)器進(jìn)行隨機(jī)訪問,而從兩個(gè)端口訪問同一地址時(shí),指向的必定是存儲(chǔ)體內(nèi)的同一存儲(chǔ)單元,而乒乓緩存結(jié)構(gòu)則分別指向?qū)儆赟RAM1和SRAM2的兩個(gè)不同的存儲(chǔ)單元;3)乒乓緩存結(jié)構(gòu)雙口指向的存儲(chǔ)區(qū)(SRAM1還是SRAM2)可以由外部信號來控制,而普通雙口RAM則必須由地址線來控制[5]。
FIFO可以進(jìn)行雙端操作,但是數(shù)據(jù)必須先進(jìn)先出,不能進(jìn)行隨機(jī)性的訪問,從容量大小來看,雙口RAM比FIFO要大一些,但總的來說,這兩種緩沖結(jié)構(gòu)的存儲(chǔ)容量還是相對較小,并不適合于高速視頻處理系統(tǒng)[6]。乒乓緩存結(jié)構(gòu)的上述特點(diǎn)決定了可以用相對便宜的高速大容量SRAM、外圍邏輯器件構(gòu)成比雙口RAM以及高速FIFO更適合高光譜視頻處理系統(tǒng)所需要的緩沖存儲(chǔ)器。
實(shí)現(xiàn)乒乓緩存結(jié)構(gòu)的關(guān)鍵是SRAM的選擇以及控制器的設(shè)計(jì)。通常兩片SRAM都選用兩個(gè)速度、容量以及其它特性完全相同的靜態(tài)存儲(chǔ)器,這是由乒乓緩存結(jié)構(gòu)實(shí)際工作時(shí)電路狀態(tài)轉(zhuǎn)換的對稱性決定的。SRAM器件的速度應(yīng)高于外部電路所要求的數(shù)據(jù)輸入、輸出速度,其容量應(yīng)不小于需要緩存的數(shù)據(jù)量[7]。
在高光譜紅外視頻處理系統(tǒng)設(shè)計(jì)中,經(jīng)過視頻處理操作之后的光譜圖像數(shù)據(jù)需按照特定時(shí)序,利用Cameralink接口傳輸至后續(xù)處理單元。由于紅外光譜圖像像素處理時(shí)鐘與Cameralink工作時(shí)鐘是不相同的,而乒乓緩存結(jié)構(gòu)是兩個(gè)異步時(shí)鐘域間的數(shù)據(jù)傳輸?shù)囊环N有效解決方案。
FPGA把經(jīng)過視頻處理操作之后的數(shù)據(jù)緩存于外接的SRAM,使用兩片SRAM對數(shù)據(jù)實(shí)現(xiàn)乒乓,利用控制邏輯按照一定的節(jié)拍對兩片SRAM進(jìn)行反復(fù)切換操作,使輸入輸出兩端的數(shù)據(jù)連續(xù)不斷。
乒乓緩存控制原理如圖3所示。經(jīng)過處理后的光譜圖像數(shù)據(jù)端總是寫入SRAM進(jìn)行緩存,因此該端口只控制寫使能而禁止讀使能;同理,要生成Cameralink時(shí)序的數(shù)據(jù)總是從SRAM進(jìn)行讀取,該端口只需控制讀使能而禁止寫使能。
本系統(tǒng)中的乒乓緩存周期設(shè)定為一幀光譜圖像時(shí)間。乒乓結(jié)構(gòu)初始設(shè)置SRAM1可寫,在第一個(gè)緩存周期,圖像處理后數(shù)據(jù)將寫入SRAM1。在寫入的同時(shí),對寫入像素?cái)?shù)進(jìn)行計(jì)數(shù),本系統(tǒng)的紅外光譜圖像分辨率為320×256,當(dāng)計(jì)數(shù)器等于320×256,即一幀圖像數(shù)據(jù)完成寫入時(shí),對數(shù)據(jù)選擇單元進(jìn)行切換,將SRAM1置于可讀,將SRAM2置于可寫。此時(shí)啟動(dòng)Cameralink時(shí)序生成模塊,將SRAM1中的緩存數(shù)據(jù)讀出并按照標(biāo)準(zhǔn)Cameralink時(shí)序發(fā)送出去;同時(shí),可以啟動(dòng)第二幀光譜圖像數(shù)據(jù)寫入,將之緩存入SRAM2中。此后重復(fù)上述過程,即可實(shí)現(xiàn)數(shù)據(jù)的格式轉(zhuǎn)換和連續(xù)傳輸。
如前所述,圖像像素處理時(shí)鐘與Cameralink工作時(shí)鐘是不同的,因此乒乓緩存結(jié)構(gòu)的輸入和輸出端分屬兩個(gè)異步時(shí)鐘域。而數(shù)據(jù)選擇單元的切換信號是在圖像像素處理時(shí)鐘域中生成,因此在Cameralink時(shí)鐘域中使用該切換信號之前需要先進(jìn)行同步化處理。
本系統(tǒng)中,乒乓緩存控制器與SRAM驅(qū)動(dòng)器采用Verilog HDL編寫,并編寫相應(yīng)Testbench,利用Modelsim軟件進(jìn)行RTL仿真,仿真波形如圖4所示。當(dāng)控制信號wr_switch信號為0時(shí),F(xiàn)PGA向SRAM1中寫入經(jīng)過處理后的光譜圖像數(shù)據(jù),Cameralink模塊從SRAM2中讀取上一幀光譜圖像數(shù)據(jù)(第一幀除外);當(dāng)wr_switch為1時(shí),F(xiàn)PGA改向SRAM2中寫入處理后的光譜圖像數(shù)據(jù),Cameralink從SRAM1中讀取上一幀光譜圖像數(shù)據(jù),此后反復(fù)循環(huán)此過程。
將該程序模塊加入高光譜紅外圖像處理系統(tǒng)程序中進(jìn)行聯(lián)調(diào),通過JTAG端口下載入FPGA,實(shí)驗(yàn)表明,乒乓緩存結(jié)構(gòu)工作穩(wěn)定可靠,系統(tǒng)運(yùn)行正常。
本文重點(diǎn)分析了乒乓緩存結(jié)構(gòu)的工作原理和實(shí)現(xiàn)方法,并結(jié)合高光譜紅外視頻處理系統(tǒng)的高實(shí)時(shí)性、大數(shù)據(jù)量等特點(diǎn),討論了基于乒乓緩存結(jié)構(gòu)的高光譜紅外圖像Cameralink輸出的實(shí)現(xiàn)方法。經(jīng)過仿真和實(shí)驗(yàn)說明,該乒乓結(jié)構(gòu)非常適合對視頻數(shù)據(jù)流進(jìn)行流水線式處理,可以高效完成大量實(shí)時(shí)視頻數(shù)據(jù)的無縫緩沖和處理,對提升高光譜視頻處理系統(tǒng)的工作效率具有重要作用。
[1] 趙慧潔,周鵬威,張穎等.聲光可調(diào)諧濾波器的成像光譜技術(shù)[J].紅外與激光工程,2009,38(2):189~193.
[2] 李武森,遲澤英,陳文建.高速DSP圖像處理系統(tǒng)中的乒乓緩存結(jié)構(gòu)研究[J].光電子技術(shù)與信息,2005(3):76~79.
[3] 王智,羅新民.基于乒乓操作的異步FIFO設(shè)計(jì)及VHDL實(shí)現(xiàn)[J].電子工程師,2005,31(6):13~16.
[4] 周如輝.實(shí)時(shí)視頻處理系統(tǒng)中乒乓緩存控制器的設(shè)計(jì)[J].電子元器件應(yīng)用,2006(4):66~68.
[5] 劉書明,羅軍輝.雙口RAM在DSP系統(tǒng)中的應(yīng)用[J].國外電子元器件, 2002(11):64~66.
[6] 唐躍平,韓存兵,李詠強(qiáng).雙口RAM與FIFO芯片在數(shù)據(jù)處理系統(tǒng)中應(yīng)用的比較[J].微機(jī)與應(yīng)用,2000(9):27~28.
[7] 楊朋林,張曉飛.FPGA控制實(shí)現(xiàn)圖像系統(tǒng)視頻圖像采集[J].計(jì)算機(jī)測量與控制,2003,11(6):451~454.
Design of Ping-pong Buffer Structure for HyperspectralInfrared Imaging System
ZHOU Yang YANG Hong-hai LIU Yong FU Qiang
(Beijing Aerospace Institute for Metrology and Measurement Technology, Beijing 100076,China)
A ping-pong buffer structure belonging to the hyperspectral imaging system is introduced which can effectively coordinate data transmission and processing speed by comparing with two other common ways of caching. The operation and control principle of ping-pong buffer structure is discussed. Based on the platform which consists of high-speed large-capacity SRAM and high-performance FPGA device,a ping-pong buffer structure to adapt to the hyperspectral imaging data transmission system is designed. Also the RTL simulation and the board-level verification are completed. Experiments show that this structure is efficient at seamless buffering and processing the real-time video data, and effectively improves the efficiency of the system,and proved to be stable and reliable.
Hyperspectral imaging Ping-pong Buffer structure FPGA
周陽( 1991-) ,男,主要研究方向: 光譜成像系統(tǒng)設(shè)計(jì)及圖像處理系統(tǒng)設(shè)計(jì)。
2017-02-26,
2017-03-02
1000-7202(2017) 02-0001-04
10.12060/j.issn.1000-7202.2017.02.01
TN219
A