江澤安,張凱臨
(中國海洋大學 信息科學與工程學院,山東 青島 266100)
基于FPGA圖像處理的天空云量采集顯示系統(tǒng)
江澤安,張凱臨
(中國海洋大學 信息科學與工程學院,山東 青島 266100)
云量對氣候研究具有十分重要的意義,常規(guī)的觀測主要以目測來實現(xiàn),而復雜高精測量則通過精密的全天空成像儀實現(xiàn)。為了實現(xiàn)方便快捷的云量測量的目的,我們提出設計實現(xiàn)一個基于FPGA圖像處理的天空云量采集顯示系統(tǒng)。系統(tǒng)通過結合對CMOS面陣傳感器的數(shù)據(jù)進行FPGA片內(nèi)設計和NiosⅡ軟核設計進行實驗,得出可以實現(xiàn)天空云量圖像的顯示和測量功能的結果。經(jīng)實驗測量表明,該系統(tǒng)操作簡單,運行穩(wěn)定,達到設計要求。
云量;FPGA;圖像處理;采集顯示
在氣象觀測領域,一般云量測量都是通過目測來完成的人為主觀因素很大。而目前基于不同技術的器測方法正在發(fā)展,由于星載設備的時空分辨率低、動態(tài)范圍大、不能實時測量等缺點,氣象觀測對地基設備的需求越來越迫切。有一些地基遙感測云儀器已應用到估測低云云量的業(yè)務中。經(jīng)查閱文獻資料[1],地基遙感云量觀測技術大致可分為3種:紅外輻射技術、可見光成像技術、多波段輻射技術[2]。都是通過對天空云量進行采集,在經(jīng)過系統(tǒng)運算得出數(shù)據(jù)指標。文中介紹簡單的基于FPGA的云量圖像采集顯示和處理的系統(tǒng)。
系統(tǒng)使用FPGA芯片為核心。根據(jù)需要選擇了Altera公司研發(fā)的CycloneIV系列的EP4CE55F23I7[3]。所有Cyclone IV FPGA只需要兩路電源供電即可,因此設計有專門的供電模塊以保證FPGA高速數(shù)據(jù)處理時的穩(wěn)定性,相對構成簡單,降低了電路板成本。芯片提供了55,856個邏輯單元。FPGA工作的時鐘由100 MHz的晶振提供,該晶振同時也為FPGA內(nèi)的分頻塊提供參考時鐘源,從而生成FPGA內(nèi)部各模塊的工作時鐘以及面陣傳感器工作時鐘和SDRAM的工作時鐘。設計中使用了串行的EPCS方式對FPGA進行配置,JTAG調試接口,提高穩(wěn)定性。
系統(tǒng)選用型號為MT9M001STM[4]的CMOS面陣圖像傳感器,1 280 H*1 024 V分辨率,默認工作在30 fps下以SXGA分辨率輸出,還支持VGA、QCIF、CIF等多種格式,而且可以通過I2C總線將其分辨率配制成低于1 280*1 024的任意格式。130萬有效像素,10 bit的ADC分辨率,感光像素陣列感應圖像信息,經(jīng)模擬信號處理器處理和AD,將模擬信號轉換成10 bit的數(shù)字信號后輸出。通過外部時鐘驅動傳感器的運行,并可通過兩線串行總線對控制寄存器進行配置,使傳感器在特定的狀態(tài)下工作,工作時同步信號也一并輸出。
系統(tǒng)選用了一塊 240*432分辨率的2.4英寸LCD液晶顯示屏,由SPDF5420A液晶屏驅動芯片控制。該模塊內(nèi)置240*432*18 bit的顯存空間。模塊的顯存地址分為X軸和Y軸地址,X軸可以尋址0-239,Y軸可以尋址0-319。X和Y每個交叉點對應著一個像素點。支持6 bit、16 bit、18 bit的RGB接口。
由于設計需要很大RAM,系統(tǒng)外圍使用了一片ISSI公司的SDRAM,具體芯片型號為IS42S32160B[5]。16位數(shù)據(jù)線,可實現(xiàn)高速數(shù)據(jù)傳輸,4個bank構成了總存儲量為512 Mbit的存儲空間,每一個bank都由8 192行和512列組成,選中行地址和列地址后對該地址的內(nèi)容進行讀寫操作。硬件系統(tǒng)整體結構圖如圖1所示。
圖1 系統(tǒng)整體結構圖
系統(tǒng)使用FPGA邏輯設計和Nios II軟核進行實現(xiàn)的[6-8],對速度要求高的功能,如像素數(shù)據(jù)流的捕獲、像素數(shù)據(jù)寫入液晶屏GRAM等功能用verilog編寫數(shù)字邏輯模塊來實現(xiàn);對速度要求低的功能,如CMOS面陣和液晶屏的初始化配置,則Nios II則用C語言進行開發(fā),由此減輕工作量,優(yōu)化系統(tǒng)工作速度。
2.1 系統(tǒng)整體邏輯設計
FPGA系統(tǒng)的片內(nèi)的主要模塊有:時鐘模塊、觸發(fā)模塊、編址存儲模塊、FIFO模塊[9]、RAM模塊、像素數(shù)據(jù)累加輸出模塊、LCD刷新顯示模塊、云量計算模塊。FPGA片內(nèi)邏輯總體設計框圖如圖2所示。
圖2 FPGA片內(nèi)邏輯框圖
系統(tǒng)運行過程如下:Nios II軟核將LCD液晶屏初始化、CMOS傳感器配置結束后,片內(nèi)其他邏輯模塊的運行,編址存儲模塊將緩存數(shù)據(jù)通過乒乓操作方式對兩個RAM進行交替緩存與讀出,像素數(shù)據(jù)被讀出并進行累加求和,之后輸出給兩個FIFO分別供LCD模塊和Nios II系統(tǒng)使用,LCD刷新顯示模塊不斷讀取一個FIFO中的圖像數(shù)據(jù)發(fā)送到LCD顯存中,實時顯示圖像。Nios II讀取另一個FIFO中的數(shù)據(jù),如果后續(xù)需要,可以設計出通過內(nèi)部集成的TCP/IP協(xié)議棧發(fā)送到上位機的模塊,經(jīng)仿真[10]驗證,各塊均可準確運行。
2.2 LCD顯示模塊設計
系統(tǒng)中,CMOS面陣傳感器上電后立即開始不斷的輸出像素數(shù)據(jù)[11],通過FRAME_VALID、LINE_VALID可以分別同步幀與行輸出,其中LINE_VALID在FRAME_VALID高電平時工作。PIXCLK同步像素輸出,因此可以用PIXCLK來作為像素的鎖存時鐘。像素輸出時序圖如圖3所示。
圖3 CMOS工作時序圖
由于傳感器每個像元面積為5.2 μm×5.2 μm,為進一步增大像元的面積以提升分辨率,將相鄰的16個像素數(shù)據(jù)相加作為一個像素的數(shù)據(jù),即捕獲4× 4的像素數(shù)據(jù)矩陣,等效像元約20 μm×20 μm。設置傳感器工作在1 280×960分辨率模式下,經(jīng)過累加實際輸出的畫面分辨率為320×240。
LCD刷新顯示功能,通過讀取FIFO中的像素數(shù)據(jù),并將其順序寫入GRAM。在垂直消隱時間里,將GRAM的地址復位為(0,0),以此同步每一幀圖像,防止丟失某像素數(shù)據(jù)而產(chǎn)生錯誤。
系統(tǒng)使用的LCD的驅動控制芯片SPDF5420的顯存是18bitRGB666格式的,而系統(tǒng)使用的CMOS傳感器輸出的數(shù)據(jù)無顏色區(qū)分,我們要在彩色LCD上面顯示黑白灰度圖像,需要讓紅、綠、藍3個分量的數(shù)值相同。因此取累加后像素數(shù)據(jù)的6 bit,分別放入R、G、B分量中,即將其展寬成18 bit放入GRAM中,從而讓LCD顯示黑白灰度圖像。
如圖4為LCD刷新顯示的模塊圖和效果圖。幀同步信號frame作為模塊的復位信號,當frame為低電平即幀消隱時,復位該模塊。rden、rdclk為FIFO的讀請求和讀時鐘,cs、rs、wr、rd為液晶屏的intel 8 080所需的控制總線信號。在每幀的幀有效時間內(nèi)讀取FIFO中的像素數(shù)據(jù)并通過8 080總線將數(shù)據(jù)傳至GRAM,從而在LCD實時顯示圖像。
圖4 LCD刷新顯示模塊和效果圖
2.3 云量計算模塊設計
云在地氣系統(tǒng)水分循環(huán)中起著重要作用同時云的形成和演變是大氣中發(fā)生錯綜復雜的物理過程的具體表現(xiàn)之一。迄今為止,已發(fā)展了多種自動云檢測方法,主要可分為3大類:閾值法、統(tǒng)計學方法及輻射傳輸算法。閾值法由于易于實現(xiàn)而成為云檢測的主流算法。本系統(tǒng)由于CMOS傳感器的輸出數(shù)據(jù)為10 bit數(shù)字信號,故設計選用閾值法作為檢測方法[12-13]。
云量指在一定觀測視場內(nèi),有云像元占視場內(nèi)總像元的比例或者在一定視場范圍內(nèi)的有效云覆蓋程度。我們所采用閾值法的基本思路是:利用某一設定的閾值對單個像元進行判識,若像元的測量值大于所設定的閾值,像元的云量為100%,否則為0。經(jīng)云檢測后,像元可分為兩類:完全晴空像元和完全云像元。在像元級云檢測基礎上,一個像元矩陣(根據(jù)之前LCD顯示模塊的介紹,系統(tǒng)使用的是320×240像元)中,設像元矩陣中的總像元數(shù)為N,完全像元數(shù)為Ncld,則對像元矩陣來講,總云量Ac可表示為公式(1):
模塊時鐘可以和CMOS輸出數(shù)據(jù)時鐘相同或者更快,務必檢測出每一個像元,然后與設置的閾值進行比較,求出 Ncld。云量計算模塊仿真圖如圖 5,counter輸出即云量像素點個數(shù)。在圖像獲取的時候,由于陽光照射,會對系統(tǒng)產(chǎn)生影響,因此在電路板上加一個位置固定的條形擋光帶,選用黑色的,在不同的時間點進行測量的時候,手動對擋光帶進行調節(jié)來遮陽,以適應不同時節(jié)、不同時間,以期達到最好的擋光目的,若擋光帶對圖像產(chǎn)生影響,則根據(jù)所擋面積將云量乘以相應系數(shù),并調節(jié)不同光強時候的閾值,用來減少測量誤差。
圖5 云量計算模塊仿真圖
2.4 NiosⅡ系統(tǒng)設計
本設計中NiosII系統(tǒng)主要完成了對外圍邏輯功能模塊的控制,對CMOS傳感器、LCD進行初始化等工作。其邏輯結構如圖6所示,該系統(tǒng)[14]由Nios II軟核處理器、PIO接口、EPCS控制器、JTAG調試模塊、SDRAM控制器[15]等模塊構成。
圖6 NiosⅡ系統(tǒng)邏輯框圖
在Nios II系統(tǒng)生成PIO核來作為外圍邏輯控制接口,主要實現(xiàn)對片內(nèi)其他邏輯模塊的控制、對外圍芯片的初始化配置,包括初始化完成信號,輸入像素信號等。由于系統(tǒng)需要很大的數(shù)據(jù)緩存,即大空間RAM,因此選用外部SDRAM使用,Quartus II中的Qsys提供了SDRAM控制器IP核,通過設置參數(shù)讓其正常工作。
Nios II軟核處理器主要完成CMOS面陣的初始化,通過對I2C總線編寫控制來實現(xiàn),使用MCU對兩個輸入輸出接口進行編程,產(chǎn)生SDA和SCL的時序對傳感器控制寄存器賦值及LCD的初始化等工作。為實現(xiàn)基于以太網(wǎng)的數(shù)據(jù)傳輸,設計使用了嵌入式操作系統(tǒng)μC/OS-II,并集成了NicheStack TCP/IP協(xié)議棧。其中只有初始化程序和應用程序需要設計者自行設計,其他軟件層都在設置生成BSP文件時,由開發(fā)工具根據(jù)Nios II系統(tǒng)硬件自動生成。
系統(tǒng)以FPGA為設計平臺,實現(xiàn)了全天空圖像的云量采集測量和顯示,采集圖像顯示系統(tǒng)通過CMOS可以實時準確顯示所采集的天空圖像,云量采集模塊計算采集結果可靠,系統(tǒng)設計合理,整體運行穩(wěn)定可靠,達到設計要求。
[1]張永宏,郝培培,張齊東,等.新型地基全天空自動成像儀的研制[J].控制工程2013,20(2):320-323.
[2] Cazorla A,Olmo F,Alados-Arboledas L.Development of a sky imager for cloud cover assessment[J].JOSA A 2008,25(1):29-39.
[3] ALTERA Corporation.Cyclone IV Device Handbook,Volume 1[EB/OL].2007,02.https://www.altera.com/content/dam/altera -www/ global/en_US/pdfs/literature/hb/cyc2/cyc2_cii5v1.pdf
[4] Aptina Corporation. MT9M001STM Device Handbook[EB/OL].2005,11.www.onsemi.cn/pub_link/Collateral/MT9M001-D.PDF
[5]ISSICorporation.IS42S32160B/IS45S32160B Device Handbook[EB/OL].(2009-11).www.issi.com/WW/ pdf/42-45S32160B.pdf.
[6]王誠,吳繼華.Altera FPGA/CPLD設計(基礎篇)[M].北京:人民郵電出版社,2005.
[7]吳厚航.愛上FPGA開發(fā)-特權和你一起學Nios II [M].北京:北京航空航天大學出版社,2011.
[8]侯殿有.單片機C語言程序設計[M].北京:人民郵電出版社,2010.
[9]趙震甲.使用FIFO完成數(shù)據(jù)傳輸與同步 [J].中國集成電路.2005.8:49-51.
[10]潘松,黃繼業(yè).EDA技術與VHDL[M].清華大學出版社,2005.
[11]韓金科.基于CMOS的圖像采集系統(tǒng)設計[D].鄭州:鄭州大學,2010.
[12]張斌,俞衛(wèi)平.氣象儀器和觀測方法指南[D].北京:北京氣象出版社,2005.
[13]楊軍.氣象衛(wèi)星及其應用[M].北京:氣象出版社,2012.
[14]田豐,鄧建國等.SDRAM控制器的設計與VHDL實現(xiàn)[J].集成電路應用,2005,31(2):74-77.
[15]江國強.SOPC技術與應用[M].北京:機械工業(yè)出版社,2006.
Acquisition and display system of cloud amount based on FPGA image processing
JIANG Ze-an,ZHANG Kai-lin
(College of Information Science&Engineering,Ocean University of China,Qingdao 266100,China)
Cloud amount is significant to climate researches.Normal observation is mainly achieved by visual inspection while complex and high-precision measurement can only be realized by all-sky camera.In order to make cloud amount observation convenient and efficient,we design and implement an acquisition and display system of cloud amount based on FPGA image processing.The system,through the data of CMOS array image sensor,conducts FPGA chip-on design and NiosⅡsoft core design so as to realize the display and measurement of cloud amount image.As is shown by experimental measurement,the system,with high running stability,is easy to operate and meets design requirements.
cloud amount;FPGA;image processing;acquisition and display
TN911.73
:A
:1674-6236(2017)05-0190-04
2016-01-29稿件編號:201601286
江澤安(1990—),男,遼寧大連人,碩士研究生。研究方向:信號與數(shù)據(jù)處理、設備通訊與控制。