申曉燕,胡炳樑
(1.中國科學院西安光學精密機械研究所光譜成像技術實驗室,陜西西安710119;2.中國科學院研究生院,北京100049)
多光譜成像儀獲得的圖片信息既包括空間信息又包括不同譜段的光譜信息,它能夠同時反映物體表面的形狀特征和物質(zhì)組成。本文中提到的自適應多光譜成像儀根據(jù)所采用的Hadamard變換階數(shù)的不同,對同一目標物成像產(chǎn)生的數(shù)據(jù)量不同,階數(shù)越高,光譜信息越多,數(shù)據(jù)量也越大。由于板上數(shù)據(jù)存儲空間有限且需要連續(xù)不斷地進行拍攝記錄,所以需要高速數(shù)據(jù)傳輸系統(tǒng)將光譜數(shù)據(jù)傳出[1]。通常采用的高速數(shù)據(jù)傳輸系統(tǒng)有USB、Camera link、以太網(wǎng)和IEEE 1394等[2-5],USB2.0的最大傳輸速率480 Mb/s,幾乎每臺計算機上都配置了USB接口,但其最大傳輸距離只有5 m,如果超過這個距離則數(shù)據(jù)傳輸不穩(wěn)定。在66 MHz的工作頻率上Camera link的最大傳輸速率為680 Mb/s,其傳輸距離也只有10 m,而且由于其接口本身的機械尺寸很大,其在微嵌入式系統(tǒng)中并不常用。IEEE1394a的最大傳輸速率為400 Mb/s,但是其應用非常的少,幾乎沒有PC機集成了IEEE 1394接口;且它使用時占用大量資源,需要高速的CPU;節(jié)點之間的傳輸距離也只有4.5 m,雖然能夠使用中繼器,其最大傳輸距離也只有72 m。以太網(wǎng)已經(jīng)能夠實現(xiàn)千兆,甚至萬兆的傳輸速率,網(wǎng)絡成熟,傳輸距離可以達到100 m,且能夠通過交換機達到更遠的距離[6];接口是普通的RJ45接口,價格低廉,即插即用,所以本文采用百兆以太網(wǎng)。
此自適應多光譜成像儀采用Hadamard變換,它是一種n·n階矩陣方程[7],是由0和1作為陣列元素構造的n階循環(huán)編碼模板,用來代替常規(guī)光譜儀的入射狹縫或出射狹縫。將反射光柵出來的光譜信息進行循環(huán)編碼,得到能量增強的混合光譜圖像,在地檢設備接收到以后,將混合光譜信息進行解碼,得到n幅對應不同譜段的光譜圖,這樣就得到了既有一維光譜信息又有二維空間信息的光譜圖像。本系統(tǒng)中Hadamard編碼模板是用數(shù)字微鏡器件(Digital Micro-mirror Device,DMD)實現(xiàn)的,它通過數(shù)字電壓信號控制微鏡片偏轉實現(xiàn)光路的選通和關閉,以此實現(xiàn)對光信號的編碼。本系統(tǒng)選用的是德州儀器的專利產(chǎn)品編碼矩陣對應的0,1編碼模板下載到DMD器件,通過DMD控制電路控制DMD的鏡片偏轉,來實現(xiàn)哈達碼編碼。
本系統(tǒng)中自適應多光譜成像儀由兩大部分組成:光譜儀主體和信號處理器。光譜儀主體包括:前置鏡、準直鏡、反射光柵、會聚鏡、數(shù)字微鏡陣列、成像電路;信號處理器包括:數(shù)據(jù)處理和分發(fā)系統(tǒng)、電源系統(tǒng)等。系統(tǒng)組成示意圖如圖1所示。
圖1 自適應多光譜成像儀完整系統(tǒng)框圖Fig.1 Integrated system block diagram of adaptive spectral imager
在此自適應多光譜成像儀的光學系統(tǒng)中,主要是DMD代替常規(guī)狹縫實現(xiàn)了Hadamard編碼,將目標物成像在線陣CMOS探測器上,經(jīng)過數(shù)據(jù)采集系統(tǒng)將目標物成像信息經(jīng)LVDS傳送到信號處理電路。經(jīng)過壓縮編碼等處理后將圖像通過以太網(wǎng)數(shù)據(jù)傳輸系統(tǒng)傳送到PC機上,進行觀察和評估。
本系統(tǒng)實現(xiàn)的是100 Mb/s的以太網(wǎng),圖2是以太網(wǎng)數(shù)據(jù)傳輸系統(tǒng)總體實現(xiàn)結構圖,它包括總線接口,存儲模塊,收發(fā)控制模塊和MII接口[8]。它通過PLB總線與上層MicroBlaze Processor連接,通過MII接口與物理層芯片DP83865連接,實現(xiàn)以太網(wǎng)功能。
圖2 總體結構設計圖Fig.2 Design diagram of overall structure of Ethernet
總線接口:連接層和主機的接口,本文層與Processor的連接使用的是PLB4.6總線接口,實現(xiàn)百兆的以太網(wǎng)。在EDK10.1中,MicroBlaze軟核的OPB總線被PLB總線代替,plbv46_slave_single也可以被優(yōu)化成節(jié)省FPGA資源,減小延時的點到點連接的設計。
發(fā)送控制模塊:控制以太幀的封裝,自動添加前導碼,定界符,不滿足最小包長要求的時候自動填充,完成CRC校驗等發(fā)送功能。
接收控制模塊:控制以太幀的接收,自動去除前導碼,定界符,校驗CRC驗證碼看是否在傳輸過程中發(fā)生錯誤。
雙向memory:發(fā)送和接收數(shù)據(jù)的存儲介質(zhì),狀態(tài)信息寄存器。將要發(fā)送或者接收無誤的信息存儲在雙向memory中,發(fā)送數(shù)據(jù)經(jīng)過發(fā)送控制模塊添加前導碼、定界符、自動填充信息、CRC校驗,送往TX Bus FIFO,以nibble格式經(jīng)MII口傳送給PHY層。接收數(shù)據(jù)是經(jīng)過接收控制模塊驗證的正確的接收信息,它將被送往MAC上層進行處理。另外接收和發(fā)送的狀態(tài)信息也存儲在此memory中,有固定的存儲位置,通過改寫這些狀態(tài)來控制數(shù)據(jù)的收發(fā)。
Pong memory:是接收和發(fā)送的第2片緩存,用來和上面的雙向memory交替使用,以提高傳輸?shù)乃俾?。其功能和雙向memory基本一致,除了個別的狀態(tài)信息由雙向memory單獨控制。
MII接口:媒體無關接口,連接MAC層和PHY層,它能夠屏蔽PHY層的差異,實現(xiàn)MAC與不同的PHY層相連接。
以太網(wǎng)發(fā)送控制模塊包括發(fā)送狀態(tài)機模塊,計數(shù)器模塊,CRC校驗模塊如圖3所示。其中計數(shù)器模塊包括幀長計數(shù)器、重發(fā)計數(shù)器、IPG計數(shù)器和延遲計數(shù)器。發(fā)送狀態(tài)機通過在不同的狀態(tài)之間切換控制整個發(fā)送過程的完成,如圖4是發(fā)送狀態(tài)機的狀態(tài)圖。CRC校驗模塊通過計算產(chǎn)生32 bit的校驗碼,完成要發(fā)送數(shù)據(jù)的校驗。自動生成前導碼和定界符模塊是在發(fā)送信號有效的時候產(chǎn)生前導碼和定界符自動地嵌入到要發(fā)送的數(shù)據(jù)的前面,達到同步和指示有效信號來臨的作用。幀長計數(shù)器對發(fā)送的數(shù)據(jù)幀進行長度計算,當不滿46 Bytes時轉到填充狀態(tài)對數(shù)據(jù)幀進行填充以達到最小幀的要求。IPG計數(shù)器是幀間隔計數(shù)器,在每一幀傳輸完成之后都要等待一個幀間隔的時間才能進行下一幀的傳輸,IPG的設計是96 bits信號傳輸所使用的時間,這里100 Mb/s的以太網(wǎng)需等待0.96 μs[9]。重發(fā)計數(shù)器是沖突發(fā)生次數(shù)的計數(shù),沖突發(fā)生次數(shù)越多等待的時間越長,這個等待時間是由二進制指數(shù)退避算法產(chǎn)生的,最大的重發(fā)次數(shù)是16次,當超過這個值之后,此幀將被丟棄不再重發(fā)。延遲計數(shù)器是沖突發(fā)生后二進制指數(shù)退避算法根據(jù)重發(fā)次數(shù)產(chǎn)生的重發(fā)等待時間[10]。
圖3 發(fā)送控制模塊Fig.3 Send control module
圖4 發(fā)送狀態(tài)機Fig.4 Send state machine
以太網(wǎng)接收控制模塊包括接收狀態(tài)機模塊,CRC校驗模塊,地址檢測模塊以及自動去除前導碼、定界符和pad模塊,如圖5所示。CRC校驗模塊對接收的數(shù)據(jù)進行32 bits的CRC校驗,與接收的CRC校驗碼進行對比,一致則證明傳輸過程中沒有發(fā)生錯誤,不一致則說明有錯誤發(fā)生,將錯誤信息送往上層,由上層決定發(fā)送重發(fā)信號還是丟棄。自動去除前導碼、定界符、pad模塊在接收過程中取出前導碼、定界符、pad信息,將剩余的有用數(shù)據(jù)存儲在接收緩存中。接收狀態(tài)機是接收控制模塊的重點部分,它控制完成整個接收過程,圖6是接收狀態(tài)機圖,它通過在不同的狀態(tài)之間進行轉換來完成接收。地址檢測模塊檢測接收到的目的地址,若為本機MAC地址或者是廣播地址則繼續(xù)接收數(shù)據(jù),若不是則放棄后續(xù)數(shù)據(jù)的接收。接收幀長計數(shù)器對接收的數(shù)據(jù)幀長度進行計數(shù),如果接收到的數(shù)據(jù)幀的長度沒有超過最小幀的要求,認為是幀的碎片,丟棄。如果超過最大幀的限制,則在傳輸過程中發(fā)生錯誤,也丟棄。
圖5 接收控制模塊Fig.5 Receive control module
圖6 接收狀態(tài)機Fig.6 Receive state machine
圖7是chipscope捕獲的波形圖,首先接收到的是前導碼7 Bytes的“10101010”然后是1 Byte的“10101011”然后是目的地址{0x00,0x1E,0xC9,0x5C,0x04,0x71},地址傳輸?shù)臅r候是先傳Byte的低4位后傳Byte的高4位,所以我們看到的是“1110”和“0001”即“1E”。傳輸結果和發(fā)送數(shù)據(jù)一致,說明從MAC到PHY傳輸正確。
圖7 Chipscope捕捉波形圖Fig.7 Waveform captured by chipscope
計算機上抓包工具Etherpeek捕獲的以太幀,最下面的數(shù)據(jù)欄中接收到的數(shù)據(jù)和程序中發(fā)送的數(shù)據(jù)包完全一致。
實驗發(fā)現(xiàn)計算機上抓獲的以太網(wǎng)數(shù)據(jù)幀和發(fā)送的數(shù)據(jù)包一致,此以太網(wǎng)系統(tǒng)可行且可靠。光譜圖像大小是610×288,每個點是8 bits,每秒傳輸25幀,需要總的帶寬約為34 M,開發(fā)的百兆以太網(wǎng)完全滿足實驗要求。將以太網(wǎng)系統(tǒng)應用在多光譜成像儀上能夠滿足要求。將以太網(wǎng)系統(tǒng)編譯完成后顯示的FPGA內(nèi)部資源利用率僅為20%的slices,3%的DSP48As,17%的外部IOBs。說明基于FPGA開發(fā)的以太網(wǎng)占用少量的片上資源就能夠實現(xiàn)傳輸系統(tǒng),可以和其他系統(tǒng)一起利用FPGA的片內(nèi)資源,使用一塊FPGA控制多個功能系統(tǒng),使整體系統(tǒng)能夠占用更少的空間,簡化設計。圖8是工作圖片。
圖8 工作圖片F(xiàn)ig.8 Working picture
通過對實驗結果的分析,說明整個系統(tǒng)的可行性和以太網(wǎng)傳輸?shù)恼_性。本文實現(xiàn)的多光譜成像儀,采用DMD實現(xiàn)7階哈達瑪編碼,在進行目標物探測的時候因為光譜范圍的限制存在一定的誤差。由于采用的是7階哈達瑪編碼,所以編碼階數(shù)較低,光譜分辨率低,對細微的光譜差異分辨不出來。后期我們采用了15階哈達瑪編碼,成像較之7階編碼有明顯的優(yōu)勢。以太網(wǎng)技術發(fā)展十分成熟,主要的發(fā)展方向是在嵌入式中的應用,其簡單的原理,高速的傳輸速率,傳輸距離遠,分布式采集數(shù)據(jù)集中處理的優(yōu)勢使得它能夠很好地滿足很多地檢設備的要求。后期的發(fā)展方向主要是更高速度的以太網(wǎng)技術在嵌入式系統(tǒng)中的實現(xiàn),可以配合高光譜成像儀和超光譜成像儀的海量數(shù)據(jù)的傳輸。
[1]馬冬梅,高偉,王欣峰.基于PCI總線的成像光譜數(shù)據(jù)傳輸系統(tǒng)的設計[J].微計算機信息,2005,21(8-2):1.
MA Dong-mei,GAO Wei,WANG Xin-feng.The development of interference imaging spectrum data transmission card based on PCI bus[J].MI,2005,21(8-2):1.
[2]蔣薇薇,黃志文.IEEE1394火線技術與USB串行接口的比較[J].微機發(fā)展,2003,13(3):1-2.
JIANG Wei-wei,HUANG Zhi-wen.The comparison of IEEE 1394 and USB[J].Microcomputer Development,2003,13(3):1-2.
[3]胡云.對IEEE1394總線技術的研究[J].科學技術與工程,2007,7(3):2-3.
HU Yun.Research on IEEE 1394 bus technique[J].Science Technology and Engineering,2007,7(3):2-3.
[4]陳啟美,王剛,丁傳鎖,等.USB技術概況[J].電力自動化設備,
CHEN Qi-mei,WANG Gang,DING Chuan-suo,et al.An introduction to USB technology[J].Electric Power Automation Equipment,2001,21(2):1.
[5]趙貴海.基于DSP的嵌入式系統(tǒng)中千兆數(shù)據(jù)傳輸?shù)年P鍵技術研究[D].天津:天津理工大學研究生部,2008.
[6]李倩,邢維波,劉書明,等.實時信號處理系統(tǒng)千兆以太網(wǎng)接口設計[J].航空兵器,2009(6):2.
LI Qian,XING Wei-bo,LIU Shu-ming,et al.Design of gigabit ethernet interface for real-time signal processing system[J].Aero Weaponry,2009(6):2.
[7]Goldstein N,Cvijin P V.DMD-based adaptive spectral imagers for hyperspectral imagery and direct detection of spectral signatures[J].Proc.of SPIE,2009(7210):1.
[8]趙智勇,鄒文勝.基于FPGA的以太網(wǎng)接口數(shù)據(jù)采集器設計與實現(xiàn)[J].艦船電子工程,2009,29(6):2.
ZHAO Zhi-yong,ZOU Wen-sheng.Design and implementation of data acquisition by ethernet based on FPGA[J].Ship Electronic Engineering,2009,29(6):2.
[9]李文芝,劉天華.基于FPGA的10/100/1 000 M三態(tài)以太網(wǎng)卡設計[J].沈陽師范大學學報:自然科學版,2010,28(1):1.
LI Wen-zhi,LIU Tian-hua.Design of 10/100/1 000 MTri-mode Ethernet NIC based on FPGA[J].Journal of Shenyang Normal University:National Science,2010,28(1):1.
[10]張博,張琨.基于FPGA的以太網(wǎng)MAC控制器的設計[J].科技情報開發(fā)與經(jīng)濟,2009,19(27):1-2.
ZHANG Bo,ZHANG Kun.The design of Ethernet MAC controller based on FPGA[J].SCI-TECH Information Development&Economy,2009,19(27):1-2.