王具民,殷世民,陳洪波,高麗偉,陳真誠
(桂林電子科技大學生命與環(huán)境科學學院,廣西桂林541004)
基于FPGA的傅里葉變換成像光譜儀實時數(shù)據(jù)采集與顯示系統(tǒng)設計*
王具民,殷世民,陳洪波,高麗偉,陳真誠*
(桂林電子科技大學生命與環(huán)境科學學院,廣西桂林541004)
利用可見光相機模擬干涉儀,基于FPGA設計了傅里葉變換成像光譜儀實時數(shù)據(jù)采集與顯示系統(tǒng),為后續(xù)的實時光譜復原奠定了良好的技術基礎。該系統(tǒng)主要由采集、存儲、數(shù)據(jù)變換及顯示4個部分組成,主要涉及SAA7113、ILI9325等芯片的配置、SDRAM控制器的設計、像素的提取、色彩空間的變換等。經(jīng)71 ms初始化完成后,各部分協(xié)調(diào)運行,能夠?qū)崟r輸出目標的圖像信息,具有運算速度快,便于升級維護,可進行二次開發(fā)等優(yōu)點。
FPGA;成像光譜儀;傅里葉變換;實時;數(shù)據(jù)采集與顯示
隨著現(xiàn)代電子技術的飛速發(fā)展,基于傅里葉變換成像光譜儀對目標的實時探測與識別已成為目前光譜儀研究領域的熱點之一,而實時光譜復原技術是有效解決該問題的關鍵。
傅里葉變換成像光譜儀[1]利用干涉儀獲得目標的干涉圖,然后對干涉圖的每一行進行傅里葉變換得到該行所對應的目標點的光譜信息[2]。干涉儀系統(tǒng)是精密的光學儀器,價格高昂,實際工程應用中,一般采用可見光相機來模擬干涉儀系統(tǒng),具體做法為利用圖像處理系統(tǒng)采集一幀可見光圖像,然后對可見光圖像的每一行數(shù)據(jù)進行傅里葉變換來模擬光譜復原的過程。
干涉圖采集是傅里葉變換成像光譜儀實時光譜復原系統(tǒng)的前端部分,是后續(xù)進行實時光譜復原的關鍵。
成像光譜儀幀頻高、信息量大,其光譜復原實時處理系統(tǒng)通常是以Fourier變換專用芯片或高速DSP器件為核心[2],但這種系統(tǒng)體積大,算法復雜,硬件處理電路升級困難,不便于移植和推廣;而FPGA以其效率高、成本低、可重構(gòu)性強等優(yōu)勢,在視頻圖像處理領域中扮演著越來越重要的角色。
基于以上分析,本文將可見光相機的輸出作為輸入圖像信號,設計并實現(xiàn)了一種基于FPGA的干涉圖采集、存儲與顯示系統(tǒng)。采集由SAA7113芯片完成,其作用是把AI11路模擬輸入的視頻信號解碼成標準的“VPO”形式的數(shù)字信號;存儲由Verilog HDL實現(xiàn)的SDRAM控制器將采集的圖像數(shù)據(jù)存到片外的SDRAM中;數(shù)據(jù)轉(zhuǎn)換部分主要涉及到各芯片配置、具有高低速率匹配、像素分離、色彩空間變換等功能;圖像顯示部分由ILI9325芯片驅(qū)動的彩色觸摸屏來實現(xiàn)。系統(tǒng)能夠?qū)崟r采集、存儲并顯示目標的圖像信息,為后續(xù)進行光譜復原奠定了良好的硬件基礎。
系統(tǒng)的硬件結(jié)構(gòu)主要由視頻采集模塊、存儲模塊、圖像變換模塊和顯示模塊4個部分組成,如圖1所示。采集部分主要是由CCD攝像頭采集的PAL制式的電視視頻信號經(jīng)過解碼芯片SAA7113的處理輸出ITU656,YUV4∶2∶2格式的數(shù)字視頻,經(jīng)分離模塊作用分奇偶兩場存儲并最后交付SDRAM存儲。FPGA完成對SAA7113、SDRAM、ILI9325的初始化并按色彩空間變換公式把輸出FIFO中的數(shù)據(jù)轉(zhuǎn)換成RGB5∶6∶5格式,用ILI9325顯示出來。虛線框中為光譜復原過程,是后續(xù)要做的工作。
圖1 采集與顯示系統(tǒng)框圖
2.1 圖像采集模塊設計
采集模塊設計關鍵是SAA7113芯片的初始化,而初始化是FPGA通過I2C總線對其寄存器進行寫操作來完成[3-4]。其寫操作格式如表1所示。
表1 對SAA7113寄存器的“寫”操作[5]
開始信號發(fā)出后,先發(fā)送SAA7113的芯片地址,原理圖中RTS0引腳沒通過3.3 kΩ電阻接地,所以其芯片地址+寫標志=8'b0100_1010;如應答再發(fā)送所要配置的寄存器地址,最后發(fā)送配置數(shù)據(jù)。應答位為SAA7113在接收到8 bit數(shù)據(jù)后,在第9個時鐘周期,拉低SDA線產(chǎn)生的回應信號;從地址為寄存器地址。
本文采用模塊化編程思想,順序執(zhí)行各任務模塊;開始信號、發(fā)送芯片地址、發(fā)送寄存器地址、發(fā)送數(shù)據(jù)及終止信號均封裝成一個一個的任務模塊;每次執(zhí)行一個任務模塊時,均啟動一個計數(shù)器,計數(shù)器達到一定值清零,程序轉(zhuǎn)去執(zhí)行下一個任務。以上操作中,在需要應答的地方,無論哪一任務模塊無應答,均執(zhí)行復位操作,重新初始化,直到全部寄存器初始化完畢。流程圖如圖2所示。
圖2 SAA7113初始化流程圖
數(shù)據(jù)傳輸時,采用大端模式以位bit為單位進行,即一個字節(jié),最高位(MSB)優(yōu)先傳輸,每個字節(jié)后必須跟一個響應位,即一幀數(shù)據(jù)共有9 bit。發(fā)送到SDA線上的每個字節(jié)必須是8 bit的,但每次傳輸可以發(fā)送的字節(jié)數(shù)量不受限制。
2.2 圖像存儲模塊設計
CCD攝像機輸出PAL制式的電視視頻信號的信息量大,需要海量數(shù)據(jù)的暫時存儲[6]。本文采用開發(fā)板內(nèi)嵌的K4S281632O-LC75來存儲。其控制器框圖如圖3所示。
圖3 SDRAM控制器設計框圖
狀態(tài)控制器模塊在上電后發(fā)出初始化命令編碼,SDRAM進入初始化階段,經(jīng)200μs延遲得到穩(wěn)定的電壓和時鐘后,預充電所有邏輯BANK,并進行8次刷新操作,然后設置模式寄存器。至此初始化操作完畢,接著狀態(tài)控制器進行阻塞模式,等待讀寫請求的到來。讀寫時都要先激活行,在時鐘上升沿由A0~A11確定行地址,經(jīng)tRCD延遲,由A0~A9和A11給出列地址,至此就達到了讀寫具體存儲單元的目的[7]。但在讀時,要經(jīng)過CAS潛伏期[8],第1筆有效數(shù)據(jù)才出現(xiàn)在數(shù)據(jù)總線上,寫入數(shù)據(jù)時則沒有潛伏期。無論是讀,還是寫,之后都要預充電,因為即使是沒有訪問過的存儲體也會因行選通而使存儲電容受到影響。此模塊每隔60 ms發(fā)送一次刷新給命令模塊來完成定時刷新[9],有預充電還有刷新的原因是預充電是不定期對一個或所有邏輯Bank中的工作行的操作,而刷新則是定時依次對所有邏輯Bank中的所有行進行的操作。
數(shù)據(jù)讀寫模塊及命令模塊根據(jù)接收到的狀態(tài)碼解碼成相應的命令來控制SDRAM。數(shù)據(jù)讀寫模塊是數(shù)據(jù)傳輸通道,負責數(shù)據(jù)的存與取。SDRAM的時序很復雜,要嚴格按照時序來操作。命令模塊負責狀態(tài)譯碼并向SDRAM發(fā)送相應的控制命令。具體控制命令由一些專用控制引腳CS,RAS,CAS和WR和地址線輔助完成。
SDRAM雖然支持數(shù)據(jù)猝發(fā)傳輸方式[10],但最多一次只能存儲一行(只取512個點)的數(shù)據(jù),且輸入的干涉圖數(shù)據(jù)是隔行掃描得到的,存儲時將奇場視頻數(shù)據(jù)存儲到SDRAM偶行地址中,偶場視頻數(shù)據(jù)存儲到奇行地址中,進行快速傅里葉變換時,逐行取出進行變換即可。
2.3 圖像變換模塊設計
2.3.1 輸出的數(shù)據(jù)格式與分離
SAA7113輸出ITU.656 YUV 4∶2∶2格式的視頻信號,格式如表2所示,其亮度Y和色差Cb、Cr的比例為4∶2∶2。這是由于亮度和色差采用不同的采樣速率導致的。在每個LLC上升沿輸出一個字節(jié)的解碼數(shù)據(jù),每個像素需要兩個LLC周期且都有自己的亮度數(shù)據(jù)Y,但是輸出的數(shù)據(jù)中每兩個相鄰的像素共用一組色差數(shù)據(jù)Cb、Cr,輸出時鐘27 MHz。
實驗中,我們只取512×512個點,奇場256行(27~282),偶場256行(340~595)。其中EAV和SAV是時間參考信號,其格式如表3所示。
表2 ITU 656 YUV 4∶2∶2標準數(shù)字電視信號
表3 SAV和EAV的數(shù)據(jù)格式
實驗中,以80 h為第1場開始,9dh為第1場結(jié)束,c7h為第2場開始,dah為第2場結(jié)束。
圖4為奇偶場中單行數(shù)據(jù)的分離過程[11]。
圖4 奇、偶場中單行數(shù)據(jù)分離過程
2.3.2 色彩空間變換
而要用LCD顯示,就需要進行色彩空間變換,即將ITU.656格式的數(shù)字視頻信號轉(zhuǎn)換為RGB5∶6∶5的信號,因此需要分離出亮度,色差,并進行轉(zhuǎn)換。其轉(zhuǎn)換公式為:
由公式可知,轉(zhuǎn)換需要進行浮點運算,而本設計用到的FPGA芯片一般不支持浮點運算,但使用FPGA進行定點運算比較容易,所以必須對系數(shù)進行適當放大[11]。公式可改寫為:
最終的運算結(jié)果再右移10 bit即可。對于轉(zhuǎn)換后的RGB值進行檢查,如果大于255,將其賦值為255;如果小于0,則賦值為0。
2.4 圖像顯示模塊設計
顯示選用的是ILI9325芯片控制的2.4 inch TFT彩色觸摸液晶屏。ILI9325控制器設計框圖,如圖5所示。ILI9325支持8、9、16、18 bit并行和SPI串行共5種數(shù)據(jù)傳輸方式。傳輸方式由引腳IM[3:0]的高低電平?jīng)Q定。本文采用的是8 bit數(shù)據(jù)傳輸模式,此時IM=4'b0011,所用引腳為DB10~DB17。輸入的數(shù)據(jù)仍為16 bit,分兩次發(fā)送,先發(fā)送高8 bit,再發(fā)送低8 bit。
圖5 ILI9325控制器設計
分頻模塊為各模塊提供5 MHz的時鐘;為了數(shù)據(jù)可靠的寫入與讀出,有必要降低時鐘頻率。
初始化模塊根據(jù)實際需要配置ILI9325的寄存器以確定其顯示方向,灰度與像素的關系,工作模式等,此時{cs,rs}==2'b00。
顯示模塊用于完成劃定顯示區(qū)域、移動GRAM (顯存)坐標到顯示的位置、寫GRAM等操作,此時{cs,rs}==2'b01。顯示區(qū)域由寄存器0x0050 (HSA),0x0051(HEA),0x0052(VSA),0x0053 (VEA)來指定。其中HAS、HEA分別表示水平開始位置、水平結(jié)束位置。實驗中,取R50H=38H,R51H=B7H,R52H=60H,R53H=DFH。GRAM的地址會根據(jù)AM,ID[1:0]的設置而自動的加1,超過分界會自動循環(huán)[12],取max(x)=512,max(y)= 512;addr=y+x×512。經(jīng)過以上配置后,就可以寫GRAM了。在顯示時雖然對圖像進行縮放處理1/4,仍然需要把原始圖像的數(shù)據(jù)全部寫入到ILI9325,只不過ILI9325不把全部數(shù)據(jù)寫入內(nèi)部的GRAM,而是ILI9325自己根據(jù)調(diào)整因子有選擇的把原始圖像的數(shù)據(jù)寫入GRAM。
圖6 仿真驗證
初始化模塊和顯示模塊在控制模塊的作用下協(xié)調(diào)工作。初始化信號有效后,初始化模塊通過寫模塊完成對ILI9325的寄存器的配置。初始化完成后,初始化模塊發(fā)出完成信號,控制模塊收到后將初始化有效信號拉低并將顯示有效信號置高,顯示色彩空間轉(zhuǎn)換后的RGB圖像。
初始化模塊與顯示模塊中的寫模塊是同一個模塊,根據(jù)寫時序,分別完成初始化和傳送RGB圖像數(shù)據(jù)的功能。具體操作可通過4個控制引腳RD、WR、RS、CS來完成[12]。其中RD讀,下降沿有效,在本設計中并未使用;WR寫,上升沿有效;RS命令/數(shù)據(jù)選擇,低電平時把數(shù)據(jù)賦給地址指針寄存器,高電平時寫到數(shù)據(jù)口的數(shù)據(jù)被放進相應寄存器; CS是片選信號,低電平有效。另外RESET是復位引腳,低電平有效,至少要保持1 ms;編寫驅(qū)動程序時,要注意TFT液晶的各種電壓信號在上電和斷電時特定的順序[13]。
3.1 仿真與驗證
圖6(a)、圖6(b)是SignalTapⅡ仿真的結(jié)果,表明SAA6113模數(shù)轉(zhuǎn)換成功,成功得到的奇偶場數(shù)據(jù),也表示SAA6113初始化成功。圖6(c)、圖6(d) ModelSim仿真結(jié)果,SDRAM讀寫時序滿足數(shù)據(jù)手冊要求,對寫入的數(shù)據(jù)可原樣讀出,其中讀SDRAM時,CAS潛伏期為2。圖6(e)為ILI9325初始化時序仿真,圖6(f)為寫GRAM時序仿真,時序均滿足數(shù)據(jù)手冊要求,經(jīng)硬件測試,可成功顯示Img2Lcd取模,MATLAB轉(zhuǎn)化為mif的RGB565圖片。綜上,各功能模塊均正常工作,為后續(xù)進行光譜復原奠定了良好的基礎。
3.2 結(jié)論
本文利用可見光相機輸出的圖像來模擬干涉圖信號,設計并實現(xiàn)了一種基于FPGA的干涉圖采集、存儲與顯示系統(tǒng),具有速度快、體積小、便于在線升級等優(yōu)點,能夠?qū)崿F(xiàn)目標圖像的實時采集、存儲與顯示,仿真結(jié)果證明了系統(tǒng)設計的正確性,為后續(xù)的光譜復原實時處理部分的實施奠定了良好的技術基礎。
[1]Kastek M,Piatkowski T,Trzaskawka P.Infrared Imaging Fourier Transform Spectrometer as the Stand-off Gas Detection System[J].Metrology and Measurement Systems,2011,18(4):607-620.
[2]殷世民,計忠瑛,崔燕,等.傅里葉變換成像光譜儀CCD像元響應非均勻性校正[J].航天器工程,2010,19(1):41-45.
[3]Kuznetsov A V,Andreeva E V.Features of Application of Video Capture Devices in Television Pyrometers[J].Instruments&Experimental Techniques,2011,54(3):440-442.
[4]朱誠誠,石晶晶,陳斯,等.基于Verilog HDL的IIC總線IP核設計[J].電子器件,2015(6):1336-1340.
[5]Corcoran P.Two Wires and 30 Years:A Tribute and Introductory Tutorial to the I2C Two-Wire Bus[J].Consumer ElectronicsMagazine IEEE,2013,2(3):30-36.
[6]劉杰,賽景波.基于DDR2 SDRAM乒乓雙緩沖的高速數(shù)據(jù)收發(fā)系統(tǒng)設計[J].電子器件,2015(3):650-654.
[7]Goossens S,Chandrasekar K,Akesson B.Power/Performance Tradeoffs in Real-Time SDRAM Command Scheduling[J].IEEE Transactions on Computers,2015(99):1-14.
[8]JangW.Error-Correcting Code Aware Memory Subsystem[J].IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems,2014,33(11):1706-1717.
[9]Riho Y,Nakazato K.Partial Access Mode:New Method for Reducing Power Consumption of Dynamic Random Access Memory[J].Very Large Scale Integration Systems IEEE Transactions on,2014,22(7):1461-1469.
[10]Li N,Wang J.A Highly Efficient SDRAM Controller Supporting Variable-Length Burst Access and Batch Process for Discrete Reads[J].International Journal of Electronics,2015,103(3): 406-423.
[11]劉佳慶.基于FPGA的視頻解碼系統(tǒng)的設計與研究[D].哈爾濱理工大學,2013.
[12]熊鑫.基于FPGA的嵌入式多媒體播放設計[D].西安電子科技大學,2011.
[13]張旭,張紅娟,靳寶全,等.基于MST703的TFT-LCD驅(qū)動方案研究與設計[J].電子器件,2015,38(6):1268-1272.
王具民(1987-),男,漢,安徽亳州人,桂林電子科技大學生命與環(huán)境科學學院,碩士,主要研究方向為光電成像與信號處理,polycer@sina.com;
陳真誠(1965-),男,漢,湖南永州人,桂林電子科技大學生命與環(huán)境科學學院,博士,主要研究方向為生物傳感與智能儀器,polycer@163.com。
The Design of Real-Time Data Acquisition and Display System of Fourier Transform Imaging Spectrometer Based on FPGA*
WANG Jumin,YIN Shimin,CHEN Hongbo,GAO Liwei,CHEN Zhencheng*
(School of Life and Environmental sciences,Guilin University of Electronic Technology,Guilin Guangxi 541004,China)
By using visible light camera to simulate interferometer,we had designed a real-time data acquisition and display system of Fourier transform imaging spectrometer based on FPGA,which should establish a good technical foundation for the subsequent real-time spectrum recovery of spectrometer.The system ismainly composed of four parts of data acquisition,storage,conversion and display,mainly involves the configuration of SAA7113 and ILI9325 chip,the SDRAM controller design,the extraction of pixels,the color space transformation etc.It takes71milliseconds to initialize all parts.After initialization being completed,by the four parts of the system working coordinately,the system can output the target’s image in real-time with some advantages such as fast computation speed,easy to upgrade and being developed in second time etc.
FPGA;imaging spectrometer;Fourier transform;in real-time;data acquisition and display
C:7210G
10.3969/j.issn.1005-9490.2017.01.020
TN47
:A
:1005-9490(2017)01-0103-05
項目來源:國家自然科學基金項目(61265006,61271119,81460273)
2016-02-04修改日期:2016-02-18