馬騰飛 ,高世杰 ,吳志勇
(1.中國科學(xué)院長春光學(xué)精密機(jī)械與物理研究所,吉林 長春 130033;2.中國科學(xué)院研究生院,北京 100039)
隨著光學(xué)測量技術(shù)的提高,測控設(shè)備不僅要獲得目標(biāo)的飛行軌跡等參數(shù),同時還要獲得飛行姿態(tài)參數(shù)、瞬時速度等目標(biāo)特性參數(shù)。這些參數(shù)的測量必須依賴于高幀頻、高分辨率成像器件,因此對圖像采集系統(tǒng)的硬件和軟件結(jié)構(gòu)設(shè)計、特別是在數(shù)據(jù)傳輸和提高圖像處理速度方面都提出了較高的要求[1]。
傳統(tǒng)的光電經(jīng)緯儀圖像采集系統(tǒng)分立的圖像和測量信息采集模塊使得同步采集不易實現(xiàn),而且受到圖像傳輸線距離的限制,使得數(shù)據(jù)采集前端與存儲計算機(jī)必須處在同一地點,限制了系統(tǒng)的靈活性。因此需要一種集成的、可遠(yuǎn)程傳輸?shù)牟杉到y(tǒng)。本文針對Camera Link數(shù)字圖像接口的紅外相機(jī)設(shè)計了圖像采集及傳輸系統(tǒng),同步采集圖像及測量信息通過千兆網(wǎng)實時傳輸至存儲計算機(jī),并通過軟件對圖像進(jìn)行恢復(fù)及判讀。
圖像采集系統(tǒng)由基于FPGA的采集前端、存儲控制計算機(jī)、攝像機(jī)、B碼時統(tǒng)等組成。計算機(jī)通過千兆以太網(wǎng)對采集前端發(fā)送控制命令,F(xiàn)PGA采集數(shù)字圖像并進(jìn)行適當(dāng)?shù)慕M合,通過千兆網(wǎng)發(fā)送至存儲控制計算機(jī),B碼時統(tǒng)輸出各類同步信號完成整個系統(tǒng)的高精度同步。系統(tǒng)組成由圖1所示。
圖1 圖像采集系統(tǒng)組成框圖
Camera Link 接口是現(xiàn)階段高速相機(jī)普遍采用的圖像輸出接口,它是由美國國家半導(dǎo)體實驗室提出的一種channel link技術(shù)標(biāo)準(zhǔn)發(fā)展而來的,在傳統(tǒng)低壓差分信號(LVDS)傳輸數(shù)據(jù)的基礎(chǔ)上又增加了并轉(zhuǎn)串發(fā)送器和串轉(zhuǎn)并接收器[2]。DS90CR286的主要作用是把相機(jī)按照Camera Link標(biāo)準(zhǔn)輸出的LVDS信號轉(zhuǎn)換成TTL電平信號。轉(zhuǎn)換后的TTL信號包含像素時鐘及28位的并行數(shù)據(jù)(包括像素數(shù)據(jù)、幀同步信號、行同步信號和其他的控制信號)。
實驗采用分辨率為 320(H)×256(V)、14位像素、50 Hz或100 Hz拍攝的紅外相機(jī),而千兆以太網(wǎng)接口芯片AX88180的數(shù)據(jù)總線為32位。為了提高總線利用率,在行同步信號及幀同步信號的控制下,將兩個相鄰的14位像素組合成32位數(shù)據(jù)后緩存入FPGA片內(nèi)FIFO。采用片內(nèi)FIFO可以減少緩存帶來的延時并節(jié)省系統(tǒng)成本。
出于網(wǎng)絡(luò)效率的考慮應(yīng)采用較大的數(shù)據(jù)包,緩存圖像以兩行為單位,這樣每個FIFO中緩存的數(shù)據(jù)量為1 280字節(jié)。由于片內(nèi)FIFO信號的延時導(dǎo)致滿空狀態(tài)并不準(zhǔn)確,并且持續(xù)對已滿FIFO寫請求以及已空FIFO讀請求很容易導(dǎo)致片內(nèi)FIFO崩潰[3],所以采用容量為2 048字節(jié)的 FIFO,根據(jù) FIFO的 wrusedw[8:0]標(biāo)志產(chǎn)生 bufferfull信號,并且在每次讀操作完成后異步清空FIFO,使得前一次操作后的狀態(tài)不會影響到下一次操作,較好地解決了狀態(tài)不準(zhǔn)確的問題。
乒乓操作是數(shù)據(jù)采集和數(shù)據(jù)處理應(yīng)用中最常采用的技巧之一,通過輸入數(shù)據(jù)選擇單元和輸出數(shù)據(jù)選擇單元按節(jié)拍相互配合切換,將過緩沖的數(shù)據(jù)流及時送到處理單元,實現(xiàn)了采集模塊與發(fā)送模塊的異步操作。采用FPGA內(nèi)部存儲資源建立兩塊FIFO對乒乓的圖像緩存,由FPGA控制更新FIFO標(biāo)記。乒乓FIFO的FPGA實現(xiàn)如圖2所示。
圖像采集系統(tǒng)要求所有設(shè)備高精度同步工作,這樣才能保證圖像和對應(yīng)的角度信息、時間信息的一致性,從而保證數(shù)據(jù)處理的精度。系統(tǒng)采用的B碼終端同步精度可以達(dá)到100 ns,可產(chǎn)生各種頻率的同步信號,并以此作為系統(tǒng)的同步源完全可以滿足高精度采集系統(tǒng)之間以及系統(tǒng)內(nèi)部信號的同步精度要求。
測控信息采集主要是測量角度信息和時間信息的采集以及采樣時刻的控制。本系統(tǒng)采用RS-422接口通信,將測控信息的采集與圖像采集在單塊電路板上完成,可以保證信息的嚴(yán)格同步。為了保證測量精度,高速測量設(shè)備都應(yīng)與控制信號實現(xiàn)同步工作,測控信息采集時刻應(yīng)與攝像機(jī)曝光時間中心對齊。采集到的測控信息緩存至專用FIFO中,幀同步信號無效時,在FPGA的控制下,加上測量信息標(biāo)記后通過千兆以太網(wǎng)發(fā)送。
千兆以太網(wǎng)是開放系統(tǒng)互連(OSI)參考模型中數(shù)據(jù)鏈路層和物理層的技術(shù),物理層負(fù)責(zé)用戶設(shè)備和網(wǎng)絡(luò)端設(shè)備之間物理與電氣的接口,為鏈路層提供在兩個通信系統(tǒng)之間發(fā)送序列位流的途徑。數(shù)據(jù)鏈路層的主要組成部分是媒體無關(guān)子層(MAC)和網(wǎng)絡(luò)驅(qū)動程序,負(fù)責(zé)在兩個相鄰終端間的線路上無差錯地傳輸以幀為單位的數(shù)據(jù),每一幀由控制信息和數(shù)據(jù)組成[4]。
在千兆以太網(wǎng)標(biāo)準(zhǔn)集中,1000BASE-T標(biāo)準(zhǔn)在桌面領(lǐng)域占據(jù)主流地位。1000BASE-T采用復(fù)雜的、效率很高的4D-PAM5編碼方式,在每對5類非屏蔽雙絞線(UTP-5)上以125 MHz的線路頻率實現(xiàn)250 Mb/s的傳輸速度??紤]到實際應(yīng)用環(huán)境,本系統(tǒng)設(shè)計符合1000BASE-T標(biāo)準(zhǔn)的千兆以太網(wǎng)傳輸系統(tǒng)。
AX88180是臺灣ASIX公司針對嵌入式應(yīng)用推出的千兆以太網(wǎng)數(shù)據(jù)鏈路層(MAC)芯片,提供16/32位類SRAM主機(jī)接口,內(nèi)置40 KB的SRAM數(shù)據(jù)緩存,可用于多種需要高速接入網(wǎng)絡(luò)的嵌入式系統(tǒng),在串流媒體、多媒體網(wǎng)絡(luò)、高頻寬帶傳輸?shù)阮I(lǐng)域有廣泛的應(yīng)用前景。Marvell公司的m88e1111是一款應(yīng)用廣泛的千兆以太物理層(PHY)芯片,其在內(nèi)部實現(xiàn)4D-PAM5編解碼及一系列的硬件信號處理技術(shù)、在實際應(yīng)用中具有優(yōu)秀的表現(xiàn)。
圖3所示為千兆以太網(wǎng)硬件組成圖,采用Cyclone EP1C12系列FPGA作為主控制器。FPGA與AX88180之間采用SRAM LIKE接口連接,通過編程實現(xiàn)對其控制寄存器及內(nèi)部緩存的訪問。物理層芯片M88E1111與AX88180之間通過簡化千兆媒體無關(guān)接口(RGMII)互連。
圖3 千兆以太網(wǎng)硬件設(shè)計
數(shù)據(jù)采集前端要通過千兆以太網(wǎng)與計算機(jī)交換數(shù)據(jù),必須實現(xiàn)針對AX88180的控制驅(qū)動程序。本文設(shè)計的采集系統(tǒng)具有圖像傳輸及命令接收功能,所以驅(qū)動程序需要實現(xiàn)千兆以太網(wǎng)雙向通信。設(shè)計中采用模塊化設(shè)計思想,驅(qū)動程序被分為4個模塊,分別是初始化模塊、發(fā)送模塊、總線控制模塊和接收模塊。
其中初始化模塊在系統(tǒng)上電時運行,完成網(wǎng)絡(luò)初始設(shè)置、狀態(tài)判斷后阻塞。數(shù)據(jù)發(fā)送模塊主要產(chǎn)生數(shù)據(jù)發(fā)送所需要的時序,對AX88180發(fā)送相關(guān)寄存器進(jìn)行設(shè)置,將數(shù)據(jù)寫入芯片的發(fā)送緩存,等待發(fā)送成功后返回。總線控制模塊根據(jù)程序運行狀態(tài)控制數(shù)據(jù)總線與地址總線在初始化模塊、發(fā)送模塊、接收模塊之間切換。場同步信號無效后,總線控制模塊判斷AX88180中斷狀態(tài),如果接收中斷有效則將總線交給接收模塊,接收模塊從AX88180接收緩存中讀取數(shù)據(jù)幀并且更新接收緩存指針地址后返回,場無效時間足夠完成數(shù)據(jù)包接收及命令解析的操作。各模塊之間的關(guān)系如圖4所示:
圖4 各模塊之間的關(guān)系
數(shù)據(jù)要經(jīng)過計算機(jī)網(wǎng)絡(luò)傳輸,必須經(jīng)過網(wǎng)絡(luò)協(xié)議的封裝,即在數(shù)據(jù)前面加上各層協(xié)議的信息首部??紤]到系統(tǒng)應(yīng)用在點對點通信環(huán)境下,并且生成協(xié)議首部的所有信息(包括MAC地址、IP地址、UDP端口號、數(shù)據(jù)包長度等)都可以事先確定。所以提前將協(xié)議首部生成,附加在數(shù)據(jù)前面直接發(fā)送即可。數(shù)據(jù)幀由接收計算機(jī)端網(wǎng)卡及系統(tǒng)協(xié)議棧后去掉各層信息頭后到達(dá)應(yīng)用程序。實驗采用各層協(xié)議格式如表1所示。
由于傳輸?shù)臄?shù)據(jù)量很大,而且存盤時間除了主要依賴于存儲系統(tǒng)的硬件性能外還有很大的隨機(jī)性,所以必須設(shè)計良好的緩存結(jié)構(gòu),以防止因存盤導(dǎo)致數(shù)據(jù)丟失。本系統(tǒng)采用不定常隊列式緩存結(jié)構(gòu),將每個隊列單元設(shè)置為1 282×1 024字節(jié)(1 024個數(shù)據(jù)包為一個緩存單元),采用較大的數(shù)據(jù)單元可以有效減少寫磁盤請求次數(shù)。
表1 采用的協(xié)議格式
采用多線程程序設(shè)計,動態(tài)分配緩存單元。網(wǎng)絡(luò)接收線程將緩存接收滿后訪問隊列并且將緩存掛載至隊列尾。存儲線程在隊列不空時,從隊列中取出緩存單元后存盤。使用互斥信號量實現(xiàn)網(wǎng)絡(luò)接收線程與存盤線程之間的同步。接收數(shù)據(jù)包與存盤操作均采用異步模式,以提高程序的效率,降低系統(tǒng)負(fù)荷。系統(tǒng)可以做到只要平均寫磁盤速度大于數(shù)據(jù)采集速度,就可以保證無丟幀的存儲圖像數(shù)據(jù)。
本文設(shè)計的圖像采集系統(tǒng),較好地解決了圖像與測量信息的同步采集問題。經(jīng)過實際測試,系統(tǒng)可以穩(wěn)定在600 Mb/s的傳輸速度下運行,滿足大多數(shù)紅外相機(jī)的數(shù)據(jù)傳輸需求,在實際應(yīng)用中取得了良好的效果。對于其他需要遠(yuǎn)程傳輸數(shù)據(jù)的采集系統(tǒng),也有一定的參考價值。
[1]張昊.高速視頻中運動目標(biāo)姿態(tài)自動判讀方法的研究[D].天津:天津大學(xué),2005.
[2]王小艷,張會新,孫永生.Camera Link協(xié)議和FPGA的數(shù)字圖像信號源設(shè)計[J].國外電子元器件,2008(7):59-61.
[3]王智,羅新民.基于乒乓操作的異步FIFO設(shè)計及VHDL實現(xiàn)[J].電子工程師,2005,31(6):13-16.
[4]謝希仁.計算機(jī)網(wǎng)絡(luò)(第四版)[M].北京:電子工業(yè)出版社,2003.