張 昊,湯心溢,李 爭,高思莉
(中國科學(xué)院上海技術(shù)物理研究所,上海200083)
紅外光電成像探測設(shè)備通常是由紅外成像傳感器和實(shí)時(shí)圖像信號(hào)處理平臺(tái)兩部分構(gòu)成。實(shí)時(shí)圖像信號(hào)處理平臺(tái)的主要任務(wù)是將紅外成像傳感器發(fā)送過來的圖像信號(hào)進(jìn)行分析處理,利用相應(yīng)的算法,從復(fù)雜背景中檢測出特定目標(biāo),對(duì)目標(biāo)進(jìn)行跟蹤或識(shí)別。紅外光電成像探測設(shè)備的性能好壞在很大程度上取決于目標(biāo)檢測和跟蹤算法的實(shí)現(xiàn)情況,在研制過程中需要反復(fù)驗(yàn)證。正因?yàn)槿绱耍鞣N仿真試驗(yàn)和仿真系統(tǒng)的設(shè)計(jì)便應(yīng)運(yùn)而生了。
仿真試驗(yàn)主要有兩種類型,數(shù)字注入式仿真與半實(shí)物仿真[1]。前者花費(fèi)低且靈活性高。本文將提出一種基于USB2.0的紅外數(shù)字圖像注入式仿真器的實(shí)現(xiàn)方案。該方案的仿真數(shù)據(jù)源為實(shí)際外場試驗(yàn)獲得的紅外圖像數(shù)據(jù),真實(shí)可靠;通過USB總線從主機(jī)獲得仿真數(shù)據(jù),利用大容量FIFO作為緩存,保證數(shù)據(jù)高速連續(xù)傳輸;同時(shí)由FPGA完成傳輸控制和接口工作;最后通過Camera Link接口輸出有效的仿真圖像。
本文設(shè)計(jì)的紅外注入式仿真器技術(shù)指標(biāo)如下:
(1)紅外注入式仿真器接收PC機(jī)發(fā)出的紅外仿真圖像數(shù)據(jù),圖像分辨率為320×256,幀頻為100 f/s,數(shù)據(jù)精度為14-bit;
(2)仿真器能將接收到的圖像數(shù)據(jù)按照Camera Link協(xié)議高速、實(shí)時(shí)、不間斷地傳送給后級(jí)紅外成像設(shè)備,保證傳遞的過程中沒有丟幀的情況發(fā)生。Camera Link輸出時(shí)鐘頻率不超過20 MHz。
根據(jù)技術(shù)指標(biāo)要求,所設(shè)計(jì)的系統(tǒng)由圖像注入控制軟件、USB2.0 接口、FPGA、Camera Link 接口組成。系統(tǒng)結(jié)構(gòu)框圖如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)框圖
如果將320×256像素圖像的每個(gè)像素用2byte來表示,即最高2位添0擴(kuò)展,那么結(jié)合幀頻要求算出的數(shù)據(jù)傳輸速率S為:
USB2.0最高總線傳輸速率能達(dá)到60MByte/s,考慮到協(xié)議開銷、數(shù)據(jù)發(fā)送進(jìn)程優(yōu)先級(jí)等因素,實(shí)際的數(shù)據(jù)速率要低一些[2]。經(jīng)測試,CYPRESS 公司的CY7C68013A使用批量(Bulk)傳輸,可達(dá)到20MByte/s的平均傳輸速度,滿足指標(biāo)中對(duì)傳輸速率的要求。其他高速總線(比如PCI總線)雖然也能達(dá)到設(shè)計(jì)要求,但是不如USB接口應(yīng)用廣泛,攜帶方便。
FPGA具有可重復(fù)配置,實(shí)時(shí)性控制性能好的特點(diǎn)。所以用它來完成與USB接口、數(shù)據(jù)傳輸緩存模塊、Camera Link接口的數(shù)據(jù)交換控制和時(shí)序邏輯控制。
紅外注入式仿真系統(tǒng)的設(shè)計(jì)根據(jù)功能分工可以劃分為:USB2.0固件設(shè)計(jì),F(xiàn)PGA模塊設(shè)計(jì)以及圖像注入控制軟件設(shè)計(jì)。其中FPGA模塊設(shè)計(jì)又可分為圖像數(shù)據(jù)接收模塊、緩存模塊和發(fā)送模塊三個(gè)部分。
CY7C68013A是CYPRESS公司EZ-USB FX2系列芯片中使用最廣泛的一款。它支持USB的四種數(shù)據(jù)傳輸類型:控制傳輸、批量傳輸、中斷傳輸和同步傳輸。其中批量傳輸適合傳輸大量數(shù)據(jù),且能夠保證數(shù)據(jù)的準(zhǔn)確性。
當(dāng)數(shù)據(jù)通過USB接口在主機(jī)和外部邏輯設(shè)備(比如FPGA)之間傳輸時(shí),通常不需要FX2芯片的CPU參與,而是經(jīng)過FX2內(nèi)部端點(diǎn)FIFO來傳輸。對(duì)于外部邏輯器件來說,這些端點(diǎn)FIFO特別為其提供了時(shí)序信號(hào)、握手信號(hào),讀寫信號(hào)和輸出允許信號(hào)等。這種狀態(tài)下,F(xiàn)X2即工作在 Slave FIFO模式[3]。其數(shù)據(jù)傳輸示意圖如圖2所示。
圖2 Slave FIFO的傳輸示意圖
通過對(duì)固件相關(guān)寄存器的配置即可以控制FX2芯片工作在Slave FIFO模式下。而本設(shè)計(jì)在此基礎(chǔ)上進(jìn)一步提出了一種實(shí)現(xiàn)設(shè)備綁定的方法,以提供軟硬件加密功能。由于仿真圖像數(shù)據(jù)都是通過真實(shí)外場試驗(yàn)獲得,其數(shù)據(jù)內(nèi)容和數(shù)據(jù)格式具有一定的保密性,如果能夠?qū)⑸衔粰C(jī)軟件和硬件測試平臺(tái)做一個(gè)綁定,防止使用任意相似硬件平臺(tái)即可讀出仿真數(shù)據(jù),這在實(shí)際應(yīng)用中具有非常大的意義。
本設(shè)計(jì)在圖像注入控制軟件中增添了發(fā)送Vendor專用請(qǐng)求,通過 CY7C68013A的控制端點(diǎn)EP0傳遞,等待USB設(shè)備的響應(yīng)。正常情況下,設(shè)備響應(yīng)主機(jī)Vendor請(qǐng)求,將一個(gè)字節(jié)的“密鑰”放在控制端點(diǎn) EP0的 Buffer中,并設(shè)置 EP0BCH和EP0BCL寄存器告知主機(jī)已向Buffer提交一個(gè)字節(jié)數(shù)據(jù);主機(jī)通過 Read操作,讀取設(shè)備提交的“密鑰”,判斷是否為綁定設(shè)備。這種主機(jī) -設(shè)備的問-答機(jī)制通過固件下載的形式固化在仿真器中,而未綁定的其他任意USB硬件平臺(tái)是很難做出相同應(yīng)答或者提交正確“密鑰”的。
圖像數(shù)據(jù)接收模塊實(shí)現(xiàn)從Slave FIFO不間斷讀取主機(jī)發(fā)送過來的數(shù)據(jù),并存入IPFIFO緩存模塊中。其在整個(gè)FPGA時(shí)序設(shè)計(jì)中的位置如圖3所示。
圖3 FPGA各模塊關(guān)系圖
參考CY7C68013A的數(shù)據(jù)手冊(cè)可知,Slave FIFO同步讀操作時(shí)序圖如圖4所示。
圖4 Slave FIFO同步讀操作時(shí)序圖
SLRD、SLOE等引腳的電平高低必須統(tǒng)一在IFCLK的有效時(shí)鐘沿變化。因此本設(shè)計(jì)將CY7C68013A的IFCLK引腳輸出驅(qū)動(dòng)FPGA的輸入引腳,經(jīng)DCM的全局緩沖優(yōu)化后作為接收模塊的時(shí)鐘信號(hào)。在讀取有效數(shù)據(jù)階段,SLRD的時(shí)序設(shè)定為兩個(gè)IFCLK周期讀取一個(gè)字節(jié)數(shù)據(jù),所以接收模塊最高數(shù)據(jù)讀取速度為24MByte/s>15.625MByte/s。
PC機(jī)的操作系統(tǒng)是多任務(wù)的,發(fā)送的數(shù)據(jù)先經(jīng)過USB緩沖區(qū)Slave FIFO,而USB2.0的批量傳輸不具有嚴(yán)格的實(shí)時(shí)性,會(huì)有突發(fā)讀寫操作產(chǎn)生,并且兩次突發(fā)讀寫之間會(huì)有隨機(jī)的空閑時(shí)間間隔,最終導(dǎo)致發(fā)送到FPGA的圖像數(shù)據(jù)傳輸速度會(huì)出現(xiàn)時(shí)快時(shí)慢的情形。因此不能將接收自USB2.0的圖像數(shù)據(jù)直接輸出,必須有一個(gè)較大的緩存來暫時(shí)保存這些數(shù)據(jù)。
本次仿真器設(shè)計(jì)使用的Spartan6系列FPGA內(nèi)部配備有32個(gè)18kbit的Block RAM,考慮利用IP核生成FIFO模塊作為緩存,充分利用FPGA內(nèi)部資源,在保證達(dá)到既定性能要求的前提下降低系統(tǒng)復(fù)雜度。FIFO的寫入深度為8位,讀出深度為16位。對(duì)于FIFO容量的設(shè)定,經(jīng)過測試得知傳輸所用端點(diǎn)緩沖區(qū)EP2為空的最長時(shí)間不超過1 ms,在前端模塊保證平均發(fā)送速率大于15.625MByte/s條件下,32kByte的FIFO緩沖區(qū)可以滿足要求。
Camera Link是一種專門針對(duì)機(jī)器視覺應(yīng)用領(lǐng)域的串行通信協(xié)議,它在Channel Link協(xié)議的基礎(chǔ)上多加了6對(duì)差分信號(hào)線。Camera Link協(xié)議使用低壓差分信號(hào)LVDS傳輸,全部的發(fā)送信息包括14位數(shù)據(jù)信號(hào)和4位視頻控制信號(hào)。其中視頻控制信號(hào)包括:幀同步信號(hào)(FVAL),行同步信號(hào)(LVAL),數(shù)據(jù)有效信號(hào)(DVAL)和像素時(shí)鐘信號(hào)(CLOCK)[4]。
要求發(fā)送的圖像共有320×256=81920個(gè)像素,幀頻為100 f/s,為滿足低于20 MHz這一指標(biāo),仿真器設(shè)定的分頻后CLOCK時(shí)鐘頻率為10 MHz,按照每個(gè)像素時(shí)鐘信號(hào)上升沿發(fā)送一個(gè)像素的方式,理論上如果不停地發(fā)送有效數(shù)據(jù),幀頻最高可以達(dá)到122 f/s。通過FVAL,LVAL,DVAL信號(hào)的時(shí)序控制,適當(dāng)增加一定量的無效像素時(shí)鐘周期,可以實(shí)現(xiàn)將幀頻穩(wěn)定在100幀/s左右。
紅外注入式仿真器需要PC主機(jī)一直不停地發(fā)送數(shù)據(jù),操作耗時(shí)較長,如果不作特殊處理只是讓發(fā)送函數(shù)處于while循環(huán)中,那么一旦發(fā)送開始,整個(gè)系統(tǒng)都會(huì)等待數(shù)據(jù)發(fā)送操作,而無法響應(yīng)鍵盤、鼠標(biāo)等動(dòng)作。使用多線程技術(shù),將耗時(shí)長的操作置于一個(gè)新的線程中,可以很好地避免這種情況,提高應(yīng)用程序響應(yīng)能力,使得軟件設(shè)計(jì)更加穩(wěn)定、可靠[5]。同時(shí)為了保證PC機(jī)發(fā)送圖像數(shù)據(jù)的實(shí)時(shí)性,將發(fā)送線程的優(yōu)先級(jí)設(shè)為最高。
進(jìn)程是資源分配的基本單元,創(chuàng)建和切換進(jìn)程會(huì)消耗比較多的內(nèi)存和資源。而線程是進(jìn)程內(nèi)一個(gè)相對(duì)獨(dú)立的、可調(diào)度的執(zhí)行單元。它屬于某一個(gè)進(jìn)程,并與進(jìn)程內(nèi)的其他線程共享進(jìn)程的資源和同一地址空間。使用多線程技術(shù)可提高應(yīng)用程序的響應(yīng)能力,當(dāng)進(jìn)程的一個(gè)線程被阻塞的時(shí)候,該應(yīng)用程序還能繼續(xù)運(yùn)行。同時(shí)由于線程之間資源共享的特點(diǎn),使得一個(gè)應(yīng)用程序可以有多個(gè)占用相同地址空間的不同線程在運(yùn)行。在軟件設(shè)計(jì)時(shí),遇到耗時(shí)的消息處理,多線程機(jī)制是個(gè)不錯(cuò)的選擇。
本設(shè)計(jì)中,主線程負(fù)責(zé)設(shè)備初始化、載入圖像文件以及啟動(dòng)從線程,實(shí)現(xiàn)人機(jī)接口,等待用戶操作;從線程實(shí)現(xiàn)每一幀圖像數(shù)據(jù)的高速、準(zhǔn)確傳輸,通過調(diào)用Bulk傳輸?shù)南嚓P(guān)函數(shù),以一定的數(shù)據(jù)格式向USB接口傳輸紅外圖像[6]。
紅外注入式仿真器的試驗(yàn)測試主要是觀察連續(xù)多幀的紅外數(shù)字圖像能否成功注入到紅外成像探測設(shè)備中,并且以要求的幀頻速率連續(xù)播放,即一段完整的視頻。因此后端接收部分可以采用圖像采集卡代替紅外成像探測設(shè)備[7]。本次試驗(yàn)使用的是Camera Link圖像采集卡。
打開圖像注入控制軟件,界面如圖5所示。
圖5 圖像注入控制軟件界面
上述界面中,“載入圖像文件”將仿真圖像數(shù)據(jù)讀入到PC機(jī)開辟的內(nèi)存單元中;“打開設(shè)備”將調(diào)用函數(shù)初始化USB設(shè)備,若初始化成功,發(fā)送Vendor專用請(qǐng)求等待設(shè)備應(yīng)答“密鑰”,判斷是否為綁定的設(shè)備。若判斷結(jié)果為肯定,將彈出對(duì)話框“設(shè)備打開成功并已識(shí)別!”;否則界面上的所有按鈕控件將不被使能。
加載圖像文件并成功打開設(shè)備后,即可點(diǎn)擊“BULK開始”注入圖像。
接收端使用專業(yè)軟件Sapera CamExpert觀察采集卡所得到的數(shù)字圖像。發(fā)送端連續(xù)傳輸2100幀320×256的紅外灰度圖像,數(shù)據(jù)精度為14 bit,抓取到的其中一幀圖像顯示如圖6所示。
圖6 采集卡采集到的圖像
采集到的紅外圖像為空中目標(biāo),采集卡軟件測得的幀頻速率為100.0 f/s,滿足設(shè)計(jì)要求。
為了測試仿真器穩(wěn)定性,在不同時(shí)間段多次發(fā)送同一段視頻圖像信號(hào),通過連續(xù)拷機(jī),發(fā)現(xiàn)視頻播放流暢,圖像穩(wěn)定可靠,無抖動(dòng)及丟幀現(xiàn)象。記錄下每次測試的傳輸時(shí)間,得到試驗(yàn)結(jié)果如表1所示。
表1 實(shí)測紅外注入式仿真器試驗(yàn)結(jié)果
測試中平均傳輸幀頻可以達(dá)到100.2 f/s,達(dá)到預(yù)期技術(shù)指標(biāo)的要求。
紅外成像目標(biāo)探測是當(dāng)今信息對(duì)抗領(lǐng)域的關(guān)鍵技術(shù)和研究熱點(diǎn)。本文設(shè)計(jì)了一種基于USB2.0的紅外數(shù)字圖像注入式仿真器實(shí)現(xiàn)方案,經(jīng)過驗(yàn)證,輸出圖像連續(xù)無間斷,穩(wěn)定性高,實(shí)時(shí)性好,能夠?yàn)榧t外圖像實(shí)時(shí)信號(hào)處理平臺(tái)提供一個(gè)很好的仿真環(huán)境,大大縮短設(shè)備的開發(fā)周期,節(jié)約開發(fā)成本,具有很大的實(shí)用價(jià)值。
[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)王小艷,張會(huì)新,孫永生,等.Camera Link協(xié)議和FPGA的數(shù)字圖像信號(hào)源設(shè)計(jì)[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í)時(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)王賢均,袁祥輝.實(shí)時(shí)紅外系統(tǒng)圖像動(dò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)管目強(qiáng).紅外圖像注入系統(tǒng)的設(shè)計(jì)及實(shí)現(xiàn)[D].長春:中國科學(xué)院長春光學(xué)精密機(jī)械與物理研究所,2011.