劉靜軍,賀小軍
長光衛(wèi)星技術(shù)股份有限公司
隨著遙感相機(jī)技術(shù)的快速發(fā)展,其數(shù)字化后的圖像數(shù)據(jù)量隨之增大,目前常用圖像輸出接口為TLK2711高速串行接口,而地面存儲(chǔ)測試設(shè)備接口相對(duì)單一,只配置常規(guī)接口,比如PCIE接口、以太網(wǎng)接口、SFP(small formfactor pluggable optical)光模塊接口等,不能直接對(duì)相機(jī)數(shù)據(jù)進(jìn)行存儲(chǔ)測試[1-2]。
考慮到PCIE接口不能遠(yuǎn)距離傳輸,以太網(wǎng)接口傳輸速率有限,不方便擴(kuò)展。隨著光纖通信技術(shù)的發(fā)展,光纖通信可以實(shí)現(xiàn)吉比特高帶寬的數(shù)據(jù)傳輸和千米級(jí)長距離傳輸,方便地面測試,同時(shí)不易受周圍的電磁環(huán)境干擾[3-4]。
基于以上考慮,本文提出了多通道遙感圖像高速光纖傳輸系統(tǒng),設(shè)計(jì)一種多路TLK2711 接口圖像采集與 SFP光纖接口數(shù)據(jù)傳輸系統(tǒng)。系統(tǒng)以Kintex-7系列現(xiàn)場可編程門陣列(field-programmable gate array,FPGA)為載體,對(duì)圖像進(jìn)行采集和處理,最后傳輸給存儲(chǔ)設(shè)備。通過地面實(shí)驗(yàn),光纖傳輸速率可達(dá)10 Gbit/s,遠(yuǎn)高于前端相機(jī)的傳輸速率,使相機(jī)圖像能夠快速、穩(wěn)定、可靠地傳輸至存儲(chǔ)系統(tǒng)。降低了研發(fā)成本,提高了不同系統(tǒng)間互通性。
高速光纖圖像數(shù)據(jù)傳輸系統(tǒng)使用Kintex-7系列FPGA作為主控制器[5-6]。如圖1所示,系統(tǒng)與相機(jī)通過TLK2711高速串并轉(zhuǎn)換芯片連接,每臺(tái)相機(jī)由一路TKL2711接口連接,用來采集相機(jī)輸出的圖像數(shù)據(jù),使用100 MHz作為系統(tǒng)時(shí)鐘,數(shù)據(jù)位寬為16 bit,最高速率可達(dá)1.6 Gbit/s。系統(tǒng)有4路TLK2711接口,可同時(shí)或分時(shí)采集4臺(tái)相機(jī)輸出的數(shù)據(jù),輸出端通過SFP接口光纖連接地面存儲(chǔ)設(shè)備,光纖傳輸速率可達(dá)10 Gbit/s。FPGA內(nèi)部有多通道TLK2711圖像采集模塊,將采集的圖像數(shù)據(jù)經(jīng)過多路圖像數(shù)據(jù)分時(shí)調(diào)度處理模塊、 基于Aurora64/66b協(xié)議光纖傳輸模塊,將圖像數(shù)據(jù)通過光纖接口輸出給存儲(chǔ)系統(tǒng)。
圖1 光纖高速傳輸系統(tǒng)框圖
TLK2711是一種串并轉(zhuǎn)換的高速收發(fā)器,支持?jǐn)?shù)據(jù)率從1.6~2.7 Gbps的高速雙向數(shù)據(jù)通信[7]。圖2為TLK2711數(shù)據(jù)接收的原理框圖,通過一對(duì)串行差分信號(hào)線DINRXP和DINRXN接收相機(jī)輸出的圖像數(shù)據(jù),芯片內(nèi)部通過comma檢測和aurora8b/10b解碼器將串行信號(hào)轉(zhuǎn)換成16 bit位寬并行數(shù)據(jù)RXD0~RXD15、控制碼RKMSB和RKLSB、恢復(fù)時(shí)鐘RX_CLK。FPGA需要給芯片提供使能信號(hào)和100 MHz的系統(tǒng)時(shí)鐘。本系統(tǒng)4路TLK2711接收電路相同,如圖2所示。
圖2 TLK2711數(shù)據(jù)接收原理框圖
使用FPGA的高速串行收發(fā)器GTX與SFP光模塊連接[8]。如圖3所示,FPGA輸出的串行差分對(duì)SFP_TX_P和SFP_TX_N與光模塊連接,SFP光模塊將電信號(hào)轉(zhuǎn)換成光信號(hào)進(jìn)行數(shù)據(jù)傳輸,數(shù)據(jù)率可達(dá)10 Gbps。FPGA 通過控制 TX_DISABLE信號(hào)可禁止SFP光模塊工作,當(dāng)接收端需要暫停接收數(shù)據(jù)時(shí),可通過該信號(hào)控制。TX_FAULT為發(fā)送故障指示,可檢測SFP發(fā)送器是否正常工作。SCL和SDA是I2C總線的時(shí)鐘和數(shù)據(jù)線,可與SFP模塊中控制器進(jìn)行通信和配置。
圖3 光纖傳輸接口原理框圖
4臺(tái)相機(jī)與光纖圖像傳輸系統(tǒng)通過TLK2711連接,圖像數(shù)據(jù)采集模塊并行接收4路TLK2711傳輸?shù)膱D像數(shù)據(jù),如圖4所示,TLK2711經(jīng)過串并轉(zhuǎn)換輸出成16 bit數(shù)據(jù),同時(shí)例化4路圖像接收模塊,4路異步FIFO模塊,4路數(shù)據(jù)重構(gòu)模塊,有效利用傳輸帶寬資源。
圖4 圖像采集單元框圖
TLK2711圖像接收模塊狀態(tài)機(jī)如圖5所示,系統(tǒng)首先在IDLE狀態(tài)等待接收使能指令,如果收到數(shù)據(jù)接收指令,即Photo_en為1,則進(jìn)入SOP狀態(tài),在該狀態(tài)下搜索數(shù)據(jù),直到數(shù)據(jù)為數(shù)據(jù)幀頭5CFB,同時(shí)控制碼RKMSB和RKLSB都為1時(shí),進(jìn)入DATA狀態(tài),這樣能夠剔除同步字符,接收有效數(shù)據(jù)。在DATA狀態(tài),開始計(jì)數(shù)到1 024拍,即接收一整幀數(shù)據(jù)后,跳轉(zhuǎn)到End狀態(tài),停止接收數(shù)據(jù),跳轉(zhuǎn)到IDLE狀態(tài),等待下一幀數(shù)據(jù)。
圖5 TLK2711圖像接收模塊狀態(tài)機(jī)
將接收到的16 bit有效數(shù)據(jù)傳輸給異步變寬FIFO緩存,該異步FIFO可對(duì)數(shù)據(jù)進(jìn)行跨時(shí)鐘域處理,由于多路TLK2711解碼輸出圖像數(shù)據(jù)的參考時(shí)鐘為外部時(shí)鐘,時(shí)鐘相位不一致,需要將外部時(shí)鐘轉(zhuǎn)換成本地參考時(shí)鐘,如果不對(duì)外部時(shí)鐘進(jìn)行處理,可能引起系統(tǒng)亞穩(wěn)態(tài),造成系統(tǒng)采集數(shù)據(jù)混亂。同時(shí)FIFO還能夠?qū)?shù)據(jù)進(jìn)行位寬變換處理,將16 bit數(shù)據(jù)轉(zhuǎn)換成64 bit數(shù)傳給下級(jí)數(shù)據(jù)重組模塊。
數(shù)據(jù)重組模塊主要功能是將數(shù)據(jù)進(jìn)行打包組幀處理,根據(jù)通道來源添加相機(jī)標(biāo)識(shí)、流水號(hào)和幀頭等信息,通過判斷FIFO將空信號(hào)高低來選擇是否讀數(shù)據(jù),如果FIFO非空后級(jí)OFULL非將滿,則讀FIFO數(shù)據(jù),并將打包后的數(shù)據(jù)傳輸給后級(jí)多通道分時(shí)調(diào)度單元。
多通道分時(shí)調(diào)度單元是將4個(gè)來源不同的圖像數(shù)據(jù)進(jìn)行多選一輸出,按照輪詢調(diào)度方式完成數(shù)據(jù)流讀寫,后端可按照一種數(shù)據(jù)源來處理。由于后端光纖通道帶寬較高,遠(yuǎn)高于前端多個(gè)通道的帶寬總和,此方式能夠充分利用高帶寬資源,同時(shí)解決負(fù)載不均衡問題。圖6為該模塊狀態(tài)機(jī)圖,初始狀態(tài)為Idle狀態(tài),當(dāng)后級(jí)將滿狀態(tài)(OFULL)為1時(shí),在Idle狀態(tài)等待,當(dāng)后級(jí)將滿狀態(tài)(OFULL)為0進(jìn)入CH1_Ask狀態(tài),詢問通道1是否有數(shù)據(jù),如果通道1有數(shù)據(jù)則進(jìn)入CH1_Output狀態(tài),該狀態(tài)進(jìn)行數(shù)據(jù)輸出,持續(xù)輸出256拍、數(shù)據(jù)位寬為64 bit的數(shù)據(jù)后進(jìn)入CH1_End狀態(tài),在CH1_End狀態(tài)停頓一拍后跳轉(zhuǎn)至CH2_Ask狀態(tài),如果通道1沒有數(shù)據(jù)則直接跳轉(zhuǎn)至CH2_Ask狀態(tài),詢問通道2是否有數(shù)據(jù)。以此類推,按順序掃描詢問4路通道數(shù)據(jù),并進(jìn)行選擇判斷后輸出,這種方式可以解決前端負(fù)載不均衡問題,即使前端4路相機(jī)不同時(shí)開或者只開1個(gè)也可以正確接收?qǐng)D像數(shù)據(jù)。多通道分時(shí)調(diào)度單元最終將數(shù)據(jù)輸出給aurora光纖數(shù)據(jù)發(fā)送單元。
圖6 輪詢調(diào)度狀態(tài)機(jī)
圖像光纖發(fā)送單元將分時(shí)調(diào)度單元處理好的圖像數(shù)據(jù)發(fā)送給存儲(chǔ)系統(tǒng)。光纖發(fā)送單元底層基于GTX高速串行收發(fā)器,使用aurora64B/66B協(xié)議作為上層通信協(xié)議,FPGA邏輯側(cè)通過配置aurora64B/66B IP核實(shí)現(xiàn)高速數(shù)據(jù)傳輸。Aurora協(xié)議具有帶寬高、可配置性強(qiáng)、低延遲等特點(diǎn),可支持全雙工和單工通信,數(shù)據(jù)可以靈活組幀,也可以使用流模式傳輸數(shù)據(jù),用戶接口采用標(biāo)準(zhǔn)的AXI-ST接口,方便讀寫數(shù)據(jù)。
如圖7所示,aurora64B/66B內(nèi)核頂層例化了通道邏輯,包括TX AXI4-Stream模塊用戶接口、全局邏輯模塊和收發(fā)器頂層封裝,還包括頂層時(shí)鐘邏輯和復(fù)位邏輯。本系統(tǒng)配置線速度為10 Gbps,由于使用aurora64B/66B協(xié)議對(duì)數(shù)據(jù)編碼,會(huì)占用少量帶寬,實(shí)際有效數(shù)據(jù)率為 9.7 Gbps,每路相機(jī)輸入端的數(shù)據(jù)率為1.6 Gbit/s,4路相機(jī)總數(shù)據(jù)率為6.4 Gbit/s,光纖傳輸速率遠(yuǎn)遠(yuǎn)大于前端相機(jī)輸入數(shù)據(jù)率,傳輸速率完全滿足要求。
圖7 光纖發(fā)送模塊圖
本系統(tǒng)使用流模式接口進(jìn)行數(shù)據(jù)傳輸,數(shù)據(jù)鏈路位寬為64 bit,這種方式使用方便,操作簡單,無數(shù)據(jù)幀概念,可利用FIFO流水式將數(shù)據(jù)輸出。TX_data為64 bit數(shù)據(jù),直接輸入給TX_FIFO異步FIFO,由于輸入數(shù)據(jù)時(shí)鐘與aurora協(xié)議用戶時(shí)鐘不同,使用異步FIFO做跨時(shí)鐘域處理,同時(shí)作為發(fā)送端數(shù)據(jù)緩存。根據(jù)aurora協(xié)議總線的ready信號(hào)和FIFO控制器的數(shù)據(jù)的empty信號(hào),來判斷數(shù)據(jù)是否可以發(fā)送,如果可以發(fā)送,則將數(shù)據(jù)傳輸給發(fā)送端用戶接口,最終將并行數(shù)據(jù)轉(zhuǎn)換成串行數(shù)據(jù),通過GTX高速串行接口輸出給光模塊。
為了驗(yàn)證光纖高速數(shù)據(jù)傳輸?shù)恼_性和可靠性,在實(shí)驗(yàn)室環(huán)境下,使相機(jī)輸出測試數(shù)據(jù)源,數(shù)據(jù)為16 bit循環(huán)累加遞增數(shù)據(jù)。圖8為光纖圖像傳輸系統(tǒng)采集的相機(jī)輸出的數(shù)據(jù),使用chipscope工具抓取數(shù)據(jù)。
圖8 Chipscope數(shù)據(jù)采集圖
圖片界面顯示by_data為數(shù)據(jù)輸出接口,數(shù)據(jù)為16進(jìn)制顯示,依次為C5BC同步字、5CFB幀頭、累加遞增的有效數(shù)據(jù),compare_data為校驗(yàn)數(shù)據(jù),從圖8可以看出,校驗(yàn)數(shù)據(jù)和有效數(shù)據(jù)均呈遞增狀態(tài),并且數(shù)據(jù)相同,error_cnt為錯(cuò)誤標(biāo)志,對(duì)校驗(yàn)數(shù)據(jù)和接收的有效數(shù)據(jù)進(jìn)行比較判斷,如果有錯(cuò)誤error_cnt就加1,圖8中error_cnt顯示為0,即數(shù)據(jù)接收正確無誤,pkt_cnt為接收的包計(jì)數(shù),從圖8可以看出已經(jīng)接收到16 710 376包正確數(shù)據(jù),充分驗(yàn)證了數(shù)據(jù)采集的準(zhǔn)確性和可靠性。
通過光纖接口將數(shù)據(jù)輸出給存儲(chǔ)系統(tǒng),在存儲(chǔ)系統(tǒng)中判斷數(shù)據(jù)接收的正確性和可靠性,如圖9所示,在Vivado中通過ila抓取的信號(hào),數(shù)據(jù)CHANNEL_UP拉高表示鏈接建立正常,rx_d_reg為在存儲(chǔ)端接收到64 bit位寬有效數(shù)據(jù),ck_data為校驗(yàn)數(shù)據(jù),16 bit循環(huán)計(jì)數(shù),數(shù)據(jù)遞增累加,從圖9可以看出校驗(yàn)數(shù)據(jù)和有效數(shù)據(jù)數(shù)據(jù)相同,err_cnt為錯(cuò)誤標(biāo)志,對(duì)校驗(yàn)數(shù)據(jù)和接收的有效數(shù)據(jù)進(jìn)行比較判斷,如果有錯(cuò)誤err_cnt加1,圖9中err_cnt顯示為0,即數(shù)據(jù)接收正確無誤,從圖9可以看出數(shù)據(jù)從0001H累加至7105H,驗(yàn)證了光纖接口數(shù)據(jù)發(fā)送的準(zhǔn)確性和可靠性。
圖9 光纖數(shù)據(jù)圖
將圖像數(shù)據(jù)通過光纖傳輸給存儲(chǔ)系統(tǒng)后,使用解圖軟件將圖像數(shù)據(jù)解析得到原始影像。圖10(a)為光纖圖像傳輸系統(tǒng)傳輸給存儲(chǔ)系統(tǒng)的遞增數(shù)據(jù)源的圖像,圖像每個(gè)像素灰度值遞增加1,從圖10(a)可以看出圖像灰度由暗漸變?yōu)榱?圖像數(shù)據(jù)無誤碼。圖10(b)為通過光纖圖像傳輸系統(tǒng)傳輸?shù)南鄼C(jī)暗場圖像,可以看出圖像場景均勻,圖像無特殊亮點(diǎn),灰度值差異較小,驗(yàn)證了多通道遙感圖像光纖傳輸系統(tǒng)數(shù)據(jù)采集、處理、傳輸設(shè)計(jì)的正確性及可靠性。
(a)相機(jī)遞增數(shù)據(jù)圖像
本文設(shè)計(jì)了多通道遙感圖像高速光纖傳輸系統(tǒng),介紹了系統(tǒng)組成,以及關(guān)鍵硬件模塊和軟件結(jié)構(gòu)設(shè)計(jì),研究了數(shù)據(jù)采集、數(shù)據(jù)調(diào)度、數(shù)據(jù)傳輸?shù)仍砑捌鋵?shí)現(xiàn)方法。該設(shè)計(jì)具有速度高、可靠性高、使用靈活等特點(diǎn),試驗(yàn)結(jié)果證明:系統(tǒng)能夠通過光纖同時(shí)或者分時(shí)采集傳輸4路相機(jī)圖像數(shù)據(jù),并且運(yùn)行穩(wěn)定可靠,滿足實(shí)際使用需求,并已成功應(yīng)用,解決了現(xiàn)有圖像數(shù)據(jù)不能直接存儲(chǔ)的問題。