張 昊,湯心溢,李 爭,高思莉
(中國科學院上海技術(shù)物理研究所,上海200083)
紅外光電成像探測設(shè)備通常是由紅外成像傳感器和實時圖像信號處理平臺兩部分構(gòu)成。實時圖像信號處理平臺的主要任務(wù)是將紅外成像傳感器發(fā)送過來的圖像信號進行分析處理,利用相應(yīng)的算法,從復(fù)雜背景中檢測出特定目標,對目標進行跟蹤或識別。紅外光電成像探測設(shè)備的性能好壞在很大程度上取決于目標檢測和跟蹤算法的實現(xiàn)情況,在研制過程中需要反復(fù)驗證。正因為如此,各種仿真試驗和仿真系統(tǒng)的設(shè)計便應(yīng)運而生了。
仿真試驗主要有兩種類型,數(shù)字注入式仿真與半實物仿真[1]。前者花費低且靈活性高。本文將提出一種基于USB2.0的紅外數(shù)字圖像注入式仿真器的實現(xiàn)方案。該方案的仿真數(shù)據(jù)源為實際外場試驗獲得的紅外圖像數(shù)據(jù),真實可靠;通過USB總線從主機獲得仿真數(shù)據(jù),利用大容量FIFO作為緩存,保證數(shù)據(jù)高速連續(xù)傳輸;同時由FPGA完成傳輸控制和接口工作;最后通過Camera Link接口輸出有效的仿真圖像。
本文設(shè)計的紅外注入式仿真器技術(shù)指標如下:
(1)紅外注入式仿真器接收PC機發(fā)出的紅外仿真圖像數(shù)據(jù),圖像分辨率為320×256,幀頻為100 f/s,數(shù)據(jù)精度為14-bit;
(2)仿真器能將接收到的圖像數(shù)據(jù)按照Camera Link協(xié)議高速、實時、不間斷地傳送給后級紅外成像設(shè)備,保證傳遞的過程中沒有丟幀的情況發(fā)生。Camera Link輸出時鐘頻率不超過20 MHz。
根據(jù)技術(shù)指標要求,所設(shè)計的系統(tǒng)由圖像注入控制軟件、USB2.0 接口、FPGA、Camera Link 接口組成。系統(tǒng)結(jié)構(gòu)框圖如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)框圖
如果將320×256像素圖像的每個像素用2byte來表示,即最高2位添0擴展,那么結(jié)合幀頻要求算出的數(shù)據(jù)傳輸速率S為:
USB2.0最高總線傳輸速率能達到60MByte/s,考慮到協(xié)議開銷、數(shù)據(jù)發(fā)送進程優(yōu)先級等因素,實際的數(shù)據(jù)速率要低一些[2]。經(jīng)測試,CYPRESS 公司的CY7C68013A使用批量(Bulk)傳輸,可達到20MByte/s的平均傳輸速度,滿足指標中對傳輸速率的要求。其他高速總線(比如PCI總線)雖然也能達到設(shè)計要求,但是不如USB接口應(yīng)用廣泛,攜帶方便。
FPGA具有可重復(fù)配置,實時性控制性能好的特點。所以用它來完成與USB接口、數(shù)據(jù)傳輸緩存模塊、Camera Link接口的數(shù)據(jù)交換控制和時序邏輯控制。
紅外注入式仿真系統(tǒng)的設(shè)計根據(jù)功能分工可以劃分為:USB2.0固件設(shè)計,F(xiàn)PGA模塊設(shè)計以及圖像注入控制軟件設(shè)計。其中FPGA模塊設(shè)計又可分為圖像數(shù)據(jù)接收模塊、緩存模塊和發(fā)送模塊三個部分。
CY7C68013A是CYPRESS公司EZ-USB FX2系列芯片中使用最廣泛的一款。它支持USB的四種數(shù)據(jù)傳輸類型:控制傳輸、批量傳輸、中斷傳輸和同步傳輸。其中批量傳輸適合傳輸大量數(shù)據(jù),且能夠保證數(shù)據(jù)的準確性。
當數(shù)據(jù)通過USB接口在主機和外部邏輯設(shè)備(比如FPGA)之間傳輸時,通常不需要FX2芯片的CPU參與,而是經(jīng)過FX2內(nèi)部端點FIFO來傳輸。對于外部邏輯器件來說,這些端點FIFO特別為其提供了時序信號、握手信號,讀寫信號和輸出允許信號等。這種狀態(tài)下,F(xiàn)X2即工作在 Slave FIFO模式[3]。其數(shù)據(jù)傳輸示意圖如圖2所示。
圖2 Slave FIFO的傳輸示意圖
通過對固件相關(guān)寄存器的配置即可以控制FX2芯片工作在Slave FIFO模式下。而本設(shè)計在此基礎(chǔ)上進一步提出了一種實現(xiàn)設(shè)備綁定的方法,以提供軟硬件加密功能。由于仿真圖像數(shù)據(jù)都是通過真實外場試驗獲得,其數(shù)據(jù)內(nèi)容和數(shù)據(jù)格式具有一定的保密性,如果能夠?qū)⑸衔粰C軟件和硬件測試平臺做一個綁定,防止使用任意相似硬件平臺即可讀出仿真數(shù)據(jù),這在實際應(yīng)用中具有非常大的意義。
本設(shè)計在圖像注入控制軟件中增添了發(fā)送Vendor專用請求,通過 CY7C68013A的控制端點EP0傳遞,等待USB設(shè)備的響應(yīng)。正常情況下,設(shè)備響應(yīng)主機Vendor請求,將一個字節(jié)的“密鑰”放在控制端點 EP0的 Buffer中,并設(shè)置 EP0BCH和EP0BCL寄存器告知主機已向Buffer提交一個字節(jié)數(shù)據(jù);主機通過 Read操作,讀取設(shè)備提交的“密鑰”,判斷是否為綁定設(shè)備。這種主機 -設(shè)備的問-答機制通過固件下載的形式固化在仿真器中,而未綁定的其他任意USB硬件平臺是很難做出相同應(yīng)答或者提交正確“密鑰”的。
圖像數(shù)據(jù)接收模塊實現(xiàn)從Slave FIFO不間斷讀取主機發(fā)送過來的數(shù)據(jù),并存入IPFIFO緩存模塊中。其在整個FPGA時序設(shè)計中的位置如圖3所示。
圖3 FPGA各模塊關(guān)系圖
參考CY7C68013A的數(shù)據(jù)手冊可知,Slave FIFO同步讀操作時序圖如圖4所示。
圖4 Slave FIFO同步讀操作時序圖
SLRD、SLOE等引腳的電平高低必須統(tǒng)一在IFCLK的有效時鐘沿變化。因此本設(shè)計將CY7C68013A的IFCLK引腳輸出驅(qū)動FPGA的輸入引腳,經(jīng)DCM的全局緩沖優(yōu)化后作為接收模塊的時鐘信號。在讀取有效數(shù)據(jù)階段,SLRD的時序設(shè)定為兩個IFCLK周期讀取一個字節(jié)數(shù)據(jù),所以接收模塊最高數(shù)據(jù)讀取速度為24MByte/s>15.625MByte/s。
PC機的操作系統(tǒng)是多任務(wù)的,發(fā)送的數(shù)據(jù)先經(jīng)過USB緩沖區(qū)Slave FIFO,而USB2.0的批量傳輸不具有嚴格的實時性,會有突發(fā)讀寫操作產(chǎn)生,并且兩次突發(fā)讀寫之間會有隨機的空閑時間間隔,最終導(dǎo)致發(fā)送到FPGA的圖像數(shù)據(jù)傳輸速度會出現(xiàn)時快時慢的情形。因此不能將接收自USB2.0的圖像數(shù)據(jù)直接輸出,必須有一個較大的緩存來暫時保存這些數(shù)據(jù)。
本次仿真器設(shè)計使用的Spartan6系列FPGA內(nèi)部配備有32個18kbit的Block RAM,考慮利用IP核生成FIFO模塊作為緩存,充分利用FPGA內(nèi)部資源,在保證達到既定性能要求的前提下降低系統(tǒng)復(fù)雜度。FIFO的寫入深度為8位,讀出深度為16位。對于FIFO容量的設(shè)定,經(jīng)過測試得知傳輸所用端點緩沖區(qū)EP2為空的最長時間不超過1 ms,在前端模塊保證平均發(fā)送速率大于15.625MByte/s條件下,32kByte的FIFO緩沖區(qū)可以滿足要求。
Camera Link是一種專門針對機器視覺應(yīng)用領(lǐng)域的串行通信協(xié)議,它在Channel Link協(xié)議的基礎(chǔ)上多加了6對差分信號線。Camera Link協(xié)議使用低壓差分信號LVDS傳輸,全部的發(fā)送信息包括14位數(shù)據(jù)信號和4位視頻控制信號。其中視頻控制信號包括:幀同步信號(FVAL),行同步信號(LVAL),數(shù)據(jù)有效信號(DVAL)和像素時鐘信號(CLOCK)[4]。
要求發(fā)送的圖像共有320×256=81920個像素,幀頻為100 f/s,為滿足低于20 MHz這一指標,仿真器設(shè)定的分頻后CLOCK時鐘頻率為10 MHz,按照每個像素時鐘信號上升沿發(fā)送一個像素的方式,理論上如果不停地發(fā)送有效數(shù)據(jù),幀頻最高可以達到122 f/s。通過FVAL,LVAL,DVAL信號的時序控制,適當增加一定量的無效像素時鐘周期,可以實現(xiàn)將幀頻穩(wěn)定在100幀/s左右。
紅外注入式仿真器需要PC主機一直不停地發(fā)送數(shù)據(jù),操作耗時較長,如果不作特殊處理只是讓發(fā)送函數(shù)處于while循環(huán)中,那么一旦發(fā)送開始,整個系統(tǒng)都會等待數(shù)據(jù)發(fā)送操作,而無法響應(yīng)鍵盤、鼠標等動作。使用多線程技術(shù),將耗時長的操作置于一個新的線程中,可以很好地避免這種情況,提高應(yīng)用程序響應(yīng)能力,使得軟件設(shè)計更加穩(wěn)定、可靠[5]。同時為了保證PC機發(fā)送圖像數(shù)據(jù)的實時性,將發(fā)送線程的優(yōu)先級設(shè)為最高。
進程是資源分配的基本單元,創(chuàng)建和切換進程會消耗比較多的內(nèi)存和資源。而線程是進程內(nèi)一個相對獨立的、可調(diào)度的執(zhí)行單元。它屬于某一個進程,并與進程內(nèi)的其他線程共享進程的資源和同一地址空間。使用多線程技術(shù)可提高應(yīng)用程序的響應(yīng)能力,當進程的一個線程被阻塞的時候,該應(yīng)用程序還能繼續(xù)運行。同時由于線程之間資源共享的特點,使得一個應(yīng)用程序可以有多個占用相同地址空間的不同線程在運行。在軟件設(shè)計時,遇到耗時的消息處理,多線程機制是個不錯的選擇。
本設(shè)計中,主線程負責設(shè)備初始化、載入圖像文件以及啟動從線程,實現(xiàn)人機接口,等待用戶操作;從線程實現(xiàn)每一幀圖像數(shù)據(jù)的高速、準確傳輸,通過調(diào)用Bulk傳輸?shù)南嚓P(guān)函數(shù),以一定的數(shù)據(jù)格式向USB接口傳輸紅外圖像[6]。
紅外注入式仿真器的試驗測試主要是觀察連續(xù)多幀的紅外數(shù)字圖像能否成功注入到紅外成像探測設(shè)備中,并且以要求的幀頻速率連續(xù)播放,即一段完整的視頻。因此后端接收部分可以采用圖像采集卡代替紅外成像探測設(shè)備[7]。本次試驗使用的是Camera Link圖像采集卡。
打開圖像注入控制軟件,界面如圖5所示。
圖5 圖像注入控制軟件界面
上述界面中,“載入圖像文件”將仿真圖像數(shù)據(jù)讀入到PC機開辟的內(nèi)存單元中;“打開設(shè)備”將調(diào)用函數(shù)初始化USB設(shè)備,若初始化成功,發(fā)送Vendor專用請求等待設(shè)備應(yīng)答“密鑰”,判斷是否為綁定的設(shè)備。若判斷結(jié)果為肯定,將彈出對話框“設(shè)備打開成功并已識別!”;否則界面上的所有按鈕控件將不被使能。
加載圖像文件并成功打開設(shè)備后,即可點擊“BULK開始”注入圖像。
接收端使用專業(yè)軟件Sapera CamExpert觀察采集卡所得到的數(shù)字圖像。發(fā)送端連續(xù)傳輸2100幀320×256的紅外灰度圖像,數(shù)據(jù)精度為14 bit,抓取到的其中一幀圖像顯示如圖6所示。
圖6 采集卡采集到的圖像
采集到的紅外圖像為空中目標,采集卡軟件測得的幀頻速率為100.0 f/s,滿足設(shè)計要求。
為了測試仿真器穩(wěn)定性,在不同時間段多次發(fā)送同一段視頻圖像信號,通過連續(xù)拷機,發(fā)現(xiàn)視頻播放流暢,圖像穩(wěn)定可靠,無抖動及丟幀現(xiàn)象。記錄下每次測試的傳輸時間,得到試驗結(jié)果如表1所示。
表1 實測紅外注入式仿真器試驗結(jié)果
測試中平均傳輸幀頻可以達到100.2 f/s,達到預(yù)期技術(shù)指標的要求。
紅外成像目標探測是當今信息對抗領(lǐng)域的關(guān)鍵技術(shù)和研究熱點。本文設(shè)計了一種基于USB2.0的紅外數(shù)字圖像注入式仿真器實現(xiàn)方案,經(jīng)過驗證,輸出圖像連續(xù)無間斷,穩(wěn)定性高,實時性好,能夠為紅外圖像實時信號處理平臺提供一個很好的仿真環(huán)境,大大縮短設(shè)備的開發(fā)周期,節(jié)約開發(fā)成本,具有很大的實用價值。
[1] James A.Buford,Jr,David E.King,Mark H.Bowden.Low-cost real-time infrared scene generation for image projection and signal injection[C].SPIE,1998,3368:290 -299.
[2] Jan Axelson.USB complete:the developer's guide,fourth edition[M].Li Hongpeng,et al Transl.Beijing:Posts &Telecom Press,2011.(in Chinese)阿克塞爾森.USB開發(fā)大全,第四版[M].李鴻鵬,等譯.北京:人民郵電出版社,2011.
[3] Cypress Semiconductor Corporation.CY7C68013A EZ -USB FX2LP USB microcontroller high-speed USB peripheral controller.(38 - 08032)January 26,2006,http://www.cypress.com.
[4] Wang Xiaoyan,Zhang Huixin,Sun Yongsheng,et al.Design of numeral picture signal source based on camera link standard and FPGA [J].International Electronic Elements,2008,16(7):59 -61.(in Chinese)王小艷,張會新,孫永生,等.Camera Link協(xié)議和FPGA的數(shù)字圖像信號源設(shè)計[J].國外電子元器件,2008,16(7):59-61.
[5] Yu Yang,Gao Sili,Tang Xinyi.Research on real- time simulation technologies for IR system based on digital signal injection [J].Semiconductor Optoelectronics,2008,29(2):272 -275.(in Chinese)于洋,高思莉,湯心溢.數(shù)字注入式紅外實時仿真技術(shù)研究[J].半導(dǎo)體光電,2008,29(2):272 -275.
[6] WangXianjun,Yuan Xianghui.Study on image dynamic display of infrared system[J].Laser& Infrared,2007,37(3):285 -287.(in Chinese)王賢均,袁祥輝.實時紅外系統(tǒng)圖像動態(tài)顯示的研究[J].激光與紅外,2007,37(3):285 -287.
[7] Guan Muqiang.Design and implementation of IR image injection system[D].Changchun:Changchun Institute of Optics,F(xiàn)ine Mechanics and Physics,Chinese Academy of Science,2011.(in Chinese)管目強.紅外圖像注入系統(tǒng)的設(shè)計及實現(xiàn)[D].長春:中國科學院長春光學精密機械與物理研究所,2011.