《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 單片F(xiàn)PGA圖像預(yù)處理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
單片F(xiàn)PGA圖像預(yù)處理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
王宇舟
摘要: 采用單片F(xiàn)PGA設(shè)計(jì)與實(shí)現(xiàn)圖像處理系統(tǒng)的方法,并對(duì)系統(tǒng)硬件進(jìn)行了分析和設(shè)計(jì),對(duì)FPGA內(nèi)電路模塊進(jìn)行了VHDL建模,在FPGA開(kāi)發(fā)平臺(tái)ISE4.1上實(shí)現(xiàn)了設(shè)計(jì)。
Abstract:
Key words :

  摘  要: 采用單片FPGA設(shè)計(jì)與實(shí)現(xiàn)圖像處理系統(tǒng)的方法,并對(duì)系統(tǒng)硬件進(jìn)行了分析和設(shè)計(jì),對(duì)FPGA內(nèi)電路模塊進(jìn)行了VHDL建模,在FPGA開(kāi)發(fā)平臺(tái)ISE4.1上實(shí)現(xiàn)了設(shè)計(jì)。

  關(guān)鍵詞: FPGA  預(yù)處理  VHDL  狀態(tài)機(jī)

 

  預(yù)處理系統(tǒng)是中科院國(guó)家天文臺(tái)即將立項(xiàng)的國(guó)家重大工程項(xiàng)目——空間太陽(yáng)望遠(yuǎn)鏡(Space Solar Telescope,SST)[1][2]科學(xué)數(shù)據(jù)處理單元(Science Data Processing Unit,SDPU)的一個(gè)子系統(tǒng)。SDPU的功能是對(duì)由觀測(cè)儀器采集到的科學(xué)數(shù)據(jù)進(jìn)行一系列復(fù)雜的圖像處理,以滿(mǎn)足天文學(xué)者對(duì)太陽(yáng)的分析要求。預(yù)處理系統(tǒng)是一個(gè)單片的FPGA系統(tǒng),完成積分、改善圖像質(zhì)量和偏振測(cè)量的分量控制等功能。本文具體介紹了預(yù)處理系統(tǒng)在SDPU的位置和功能、硬件設(shè)計(jì)框圖和接口時(shí)序、設(shè)計(jì)結(jié)構(gòu)及其VHDL建模以及在ISE4.1平臺(tái)上實(shí)現(xiàn)的設(shè)計(jì)。

1  預(yù)處理系統(tǒng)的位置和功能

1.1 預(yù)處理單元在SDPU的位置

  SDPU結(jié)構(gòu)框圖如圖1所示,從圖中可知預(yù)處理在其中的位置。SDPU的數(shù)據(jù)處理過(guò)程:CCD把采集到的圖像數(shù)據(jù)進(jìn)行A/D轉(zhuǎn)換后實(shí)時(shí)地送至預(yù)處理單元,預(yù)處理單元負(fù)責(zé)消除圖像的時(shí)間相關(guān)性(幀間冗余),從而既壓縮數(shù)據(jù)量又提高信噪比,同時(shí)預(yù)處理還要進(jìn)行偏振參數(shù)處理;完成了圖像預(yù)處理后,把數(shù)據(jù)存放到海量存儲(chǔ)器中;海量存儲(chǔ)器在接收到離線(xiàn)的壓縮單元的數(shù)據(jù)申請(qǐng)時(shí),先把壓縮單元處理完成的數(shù)據(jù)取回,再向壓縮單元送去待處理的數(shù)據(jù),壓縮單元對(duì)數(shù)據(jù)的處理主要是除去幀內(nèi)空間相關(guān)性(采用小波算法進(jìn)行軟件壓縮);經(jīng)壓縮的數(shù)據(jù),每當(dāng)衛(wèi)星過(guò)頂時(shí)由海量存儲(chǔ)器送到下傳單元進(jìn)行下傳。整個(gè)系統(tǒng)由管理機(jī)進(jìn)行協(xié)調(diào)管理。

 

1.2 預(yù)處理系統(tǒng)的功能

  (1)提高信噪比。SDPU各個(gè)儀器的信噪比要求各不相同,但都是通過(guò)累加多幀連續(xù)的極化圖像來(lái)改善圖像的質(zhì)量。各儀器在不同的模式下,積分的幀數(shù)亦各不相同,預(yù)處理要正確識(shí)別和處理。

  (2)壓縮數(shù)據(jù)量。每日流入預(yù)處理的數(shù)據(jù)量為2506GB,而下傳的容許值僅8GB。因此在SDPU中采用了二級(jí)壓縮方法,由DSP進(jìn)行幀內(nèi)的空間相關(guān)性消除,但圖像壓縮比僅為5:1。預(yù)處理單元的壓縮比平均為60:1,主要是消除幀間的時(shí)間相關(guān)性。

  (3)Stockes參數(shù)測(cè)量。太陽(yáng)望遠(yuǎn)鏡的主光路中插入了一個(gè)偏振分析器,該分析器具有3個(gè)可控的元件,通過(guò)控制元件狀態(tài)可以組合成進(jìn)行偏振光的Stockes參數(shù)各分量的圖像測(cè)量:SQ1(左旋分量)、SQ2(右旋分量)、SU1、SU2、SV1、SV2。預(yù)處理要正確識(shí)別觀測(cè)狀態(tài)并進(jìn)行相應(yīng)的正確處理。

  (4)觀測(cè)模式。在圖像的信噪比和物體移動(dòng)產(chǎn)生的拖影之間選擇了一個(gè)折中的解決方案,從而定義了如下3個(gè)標(biāo)準(zhǔn)的觀測(cè)模式:爆發(fā)模式、活動(dòng)區(qū)模式和寧?kù)o態(tài)模式。而活動(dòng)區(qū)模式和太陽(yáng)寧?kù)o態(tài)模式是基本爆發(fā)模式的多次重復(fù),且有:活動(dòng)區(qū)模式=突發(fā)模式×6;寧?kù)o態(tài)模式=活動(dòng)區(qū)模式×10。根據(jù)不同的觀測(cè)模式,預(yù)處理有不同的工作行為。

2  預(yù)處理系統(tǒng)的硬件設(shè)計(jì)

  圖1中的預(yù)處理實(shí)際上是一個(gè)預(yù)處理陣列,一共有16個(gè)通道,因此需要16個(gè)預(yù)處理模塊,每個(gè)通道的預(yù)處理設(shè)計(jì)大致相同。以下給出的是一個(gè)通道的設(shè)計(jì)示例。

2.1 硬件電路設(shè)計(jì)框圖

  預(yù)處理單元的硬件電路如圖2所示。白色的方框都是預(yù)處理單元的邏輯設(shè)計(jì),整個(gè)系統(tǒng)除了收發(fā)器和存儲(chǔ)器,其他的重要功能結(jié)構(gòu)都設(shè)計(jì)在單片F(xiàn)PGA中(虛框是FPGA的內(nèi)部)。CCD向預(yù)處理送去數(shù)據(jù)和同步信號(hào),同時(shí)管理機(jī)給預(yù)處理送去觀測(cè)模式和觀測(cè)狀態(tài)等信號(hào)。預(yù)處理則根據(jù)這些信號(hào),完成規(guī)定數(shù)據(jù)處理任務(wù)。數(shù)據(jù)、同步信號(hào)和模式狀態(tài)信號(hào)都是由RS422差分驅(qū)動(dòng)傳送到預(yù)處理;預(yù)處理對(duì)送來(lái)的數(shù)據(jù)進(jìn)行積分,積分的幀數(shù)根據(jù)觀測(cè)模式的不同,分別是4、40、240幀。積分操作相應(yīng)需要讀寫(xiě)存儲(chǔ)器地址生成,積分期間必須把上次積分完成的數(shù)據(jù)送到海量存儲(chǔ)器中,以便下一次積分時(shí)再次使用這段存儲(chǔ)空間,為此設(shè)計(jì)了數(shù)據(jù)傳送相應(yīng)的存儲(chǔ)器訪問(wèn)邏輯和數(shù)據(jù)傳送邏輯。內(nèi)存設(shè)計(jì)成雙存儲(chǔ)器結(jié)構(gòu)以及積分和數(shù)據(jù)傳送進(jìn)行切換的使用方法,因此設(shè)計(jì)了相應(yīng)的選擇邏輯。由于16個(gè)通道的預(yù)處理共享一套總線(xiàn)向海量存儲(chǔ)器傳送數(shù)據(jù),因此必須設(shè)計(jì)一個(gè)仲裁電路來(lái)進(jìn)行仲裁,它是用一個(gè)狀態(tài)機(jī)來(lái)實(shí)現(xiàn)的。狀態(tài)機(jī)把總線(xiàn)順序判給數(shù)據(jù)有效的預(yù)處理單元進(jìn)行數(shù)據(jù)傳送,傳送完成后狀態(tài)機(jī)回收總線(xiàn)權(quán)。

2.2 接口及時(shí)序

  預(yù)處理主要有4個(gè)接口:(1)CCD的數(shù)據(jù)和同步信號(hào)輸入。(2)管理計(jì)算機(jī)的模式狀態(tài)信號(hào)的輸入。(3)向海量存儲(chǔ)器送去的數(shù)據(jù)和同步。(4)接收狀態(tài)機(jī)的仲裁狀態(tài)和授權(quán)信號(hào)。其中:(4)無(wú)法給出規(guī)整的時(shí)序關(guān)系,(3)除多了通道號(hào)等標(biāo)志信號(hào),(3)和(1)基本類(lèi)似。預(yù)處理同CCD的接口及時(shí)序圖如圖3所示。信號(hào)包括:10位數(shù)據(jù)din、點(diǎn)同步信號(hào)ps、行同步信號(hào)ls、幀同步信號(hào)fs。

 

 

  管理計(jì)算機(jī)傳送給預(yù)處理的直接命令及時(shí)序圖如圖4所示。傳送到預(yù)處理的信號(hào)有:觀測(cè)模式信號(hào)Mode、偏振測(cè)量的分量信號(hào)Segment、系統(tǒng)全局復(fù)位信號(hào)Reset。

 

  預(yù)處理同海量存儲(chǔ)器的接口信號(hào):16位數(shù)據(jù)、時(shí)鐘CLK、行同步ls、幀同步fs、數(shù)據(jù)有效、通左右旋分量號(hào)和道號(hào)等。除了后三種信號(hào)在1幀圖像內(nèi)是一個(gè)固定電平外,其他信號(hào)的時(shí)序關(guān)系和CCD到預(yù)處理的時(shí)序關(guān)系相同。

3 FPGA的開(kāi)發(fā)

  FPGA的開(kāi)發(fā)過(guò)程采用的是top-down的設(shè)計(jì)方法。首先分模塊對(duì)系統(tǒng)進(jìn)行VHDL建模[3][4][5],建模完成后是編程、驗(yàn)證和實(shí)現(xiàn)。VHDL是標(biāo)準(zhǔn)化的硬件描述語(yǔ)言,利用它進(jìn)行硬件建模,其系統(tǒng)描述的抽象級(jí)別比較高,而且得到幾乎所有商用成熟(COTS)開(kāi)發(fā)平臺(tái)和仿真工具的支持,既縮短設(shè)計(jì)周期,又可減小投資風(fēng)險(xiǎn)。

3.1 VHDL建模

  下面分別介紹各個(gè)模塊,并給出各模塊的主要輸入、輸出和大致的邏輯結(jié)構(gòu)和功能。

  (1)積分器:如圖5所示,積分器有2個(gè)數(shù)據(jù)輸入(din、buffdin)、1個(gè)數(shù)據(jù)輸出(addout)和2個(gè)控制輸入端(init、adden)。din是來(lái)自CCD的數(shù)據(jù)輸入端,buffdin是內(nèi)存輸入加法器的數(shù)據(jù),addout是加法器的輸出。控制端init是實(shí)現(xiàn)存儲(chǔ)單元高6位的清零任務(wù)。當(dāng)init有效時(shí)分配器會(huì)把CCD送來(lái)的數(shù)據(jù)作為低位數(shù)據(jù),高位以零賦值,不經(jīng)加法器直接送到addout端完成高位清零任務(wù);adden在2個(gè)輸入的數(shù)據(jù)均穩(wěn)定下來(lái)以后使能加法器進(jìn)行運(yùn)算。

 

 

  (2)積分地址生成:如圖6所示,積分地址生成的輸入有:點(diǎn)同步ps、行同步ls、幀同步fs和分量信號(hào)segment,通過(guò)點(diǎn)計(jì)數(shù)器、行計(jì)數(shù)器和分量計(jì)數(shù)器并行生成的積分地址,通過(guò)譯碼等邏輯最后產(chǎn)生適合存儲(chǔ)器芯片的地址、片選和讀寫(xiě)有效信號(hào)。

 

 

  (3)送數(shù)地址生成:如圖7所示,其輸入是送數(shù)時(shí)鐘dsclk,利用點(diǎn)計(jì)數(shù)器、行計(jì)數(shù)器和幀計(jì)數(shù)器級(jí)聯(lián)形式產(chǎn)生12MB(1個(gè)bufffer,6個(gè)分量共6幀圖像)的數(shù)據(jù)地址空間,計(jì)數(shù)器的溢出分別送到命令生成單元和FIFO接口單元。

 

 

  (4)數(shù)據(jù)和地址選擇邏輯:如圖8所示,控制信號(hào)buffsel,用于判決積分和送數(shù)操作的buffer號(hào)(即A或B);控制信號(hào)dir,用于判決是向全加器送去1個(gè)輸入數(shù)據(jù)還是接收全加器的輸出數(shù)據(jù)(數(shù)據(jù)方向控制)。

 

 

  (5)狀態(tài)機(jī):狀態(tài)圖如圖9所示。狀態(tài)機(jī)用于裁決16個(gè)通道中的哪一個(gè)通道有權(quán)使用海量存儲(chǔ)器的共享數(shù)據(jù)總線(xiàn)向海量存儲(chǔ)器傳送數(shù)據(jù),以時(shí)鐘同步來(lái)進(jìn)行狀態(tài)的轉(zhuǎn)換,且狀態(tài)是順次轉(zhuǎn)換的。當(dāng)輪詢(xún)到某個(gè)通道時(shí),若數(shù)據(jù)沒(méi)有準(zhǔn)備好,則繼續(xù)向后輪詢(xún);若該通道的數(shù)據(jù)就緒,則狀態(tài)機(jī)把總線(xiàn)權(quán)授予該通道,該通道即可以進(jìn)行數(shù)據(jù)傳送操作。數(shù)據(jù)傳送完成以后,狀態(tài)機(jī)回收總線(xiàn)并繼續(xù)順次向后輪詢(xún);狀態(tài)采用one-hot編碼方式,當(dāng)rdy=1時(shí),數(shù)據(jù)就緒,可以傳送,dsen是可以進(jìn)行數(shù)據(jù)傳送的使能信號(hào)。若要每單元都能正確地完成積分任務(wù),則必須在30秒內(nèi)把16個(gè)通道都輪詢(xún)一周。

 

  (6)命令生成和同步FIFO接口:命令生成模塊集中生成各電路單元所需要的各種命令。同步FIFO接口產(chǎn)生同海量存儲(chǔ)器接口的時(shí)鐘、同步信號(hào)、數(shù)據(jù)有效標(biāo)志、buffer號(hào)和通道號(hào)標(biāo)識(shí)等信號(hào)(由于二者的邏輯散亂無(wú)法用圖式給出)。

3.2 實(shí)現(xiàn)和驗(yàn)證

  根據(jù)文中所建立的模型,本系統(tǒng)的目標(biāo)芯片選用Xilinx公司10萬(wàn)門(mén)的SpartanII器件,輸入、調(diào)試、綜合、仿真、最終實(shí)現(xiàn)和器件編程等設(shè)計(jì)的整個(gè)過(guò)程都是在Xilinx公司的ISE4.1平臺(tái)上進(jìn)行的。具體步驟如下:

  (1)用VHDL寫(xiě)出各模塊的RTL描述,對(duì)各模塊單獨(dú)進(jìn)行行為和時(shí)序仿真。

  (2)當(dāng)各模塊的仿真都通過(guò)以后,分別產(chǎn)生schematic symbol。

  (3)在schematic編輯器里把各模塊連接起來(lái),完成系統(tǒng)的連接。

  (4)對(duì)系統(tǒng)進(jìn)行行為和時(shí)序驗(yàn)證(包括約束設(shè)置和一些設(shè)置調(diào)整)。

  (5)最后是實(shí)現(xiàn)和下載,進(jìn)行硬件與系統(tǒng)級(jí)聯(lián)調(diào)。

4  結(jié)  論

  預(yù)處理系統(tǒng)的成功設(shè)計(jì)大大減輕了衛(wèi)星上科學(xué)數(shù)據(jù)對(duì)存儲(chǔ)容量的要求,避免了前端數(shù)據(jù)處理的瓶頸問(wèn)題,保證了數(shù)據(jù)的質(zhì)量。單片F(xiàn)PGA的設(shè)計(jì),使系統(tǒng)具有體積小、重量輕、功耗小等特點(diǎn)。而這些優(yōu)點(diǎn)一直是航空航天電子系統(tǒng)所追求的目標(biāo)。本文介紹的設(shè)計(jì)技術(shù)對(duì)其他應(yīng)用系統(tǒng)的設(shè)計(jì)具有借鑒性。

 

參考文獻(xiàn)

1  中科院國(guó)家天文臺(tái)SST研究組,德國(guó)馬普高層大氣研究所.SST A相報(bào)告(第二版).北京:國(guó)家天文臺(tái),1997

2  中科院國(guó)家天文臺(tái)SST研究組,德國(guó)航空宇航研究所.SST評(píng)估研究報(bào)告.北京:國(guó)家天文臺(tái),1997

3  北京理工大學(xué)ASIC研究所.VHDL語(yǔ)言100例詳解.北京:清華大學(xué)出版社,1999

4  Sjoholm S,LindhPL.VHDL for designers.Europe:prentice Hall,1997

5  李廣軍,孟憲元.可編程ASIC設(shè)計(jì)及應(yīng)用.成都:電子科技大學(xué)出版社,2000

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。