唐宇楓,劉一清
(華東師范大學(xué)通信與電子工程學(xué)院,上海 200241)
近年來,隨著5G 技術(shù)的不斷發(fā)展,超高清顯示面臨的高數(shù)據(jù)傳輸速率問題逐漸得到解決。視頻技術(shù)正朝著超高清的方向發(fā)展[1],圖像傳感器作為超高清顯示中的數(shù)據(jù)源,其產(chǎn)生的圖像數(shù)據(jù)的正確采集對超高清顯示至關(guān)重要。圖像傳感器的并行DVP 接口由于使用單端信號線傳輸,數(shù)據(jù)容易受到噪聲的干擾,傳輸速率無法滿足超高清的數(shù)據(jù)傳輸速率要求。因此,在高分辨率圖像傳感器中,均使用差分LVDS 信號線傳輸圖像數(shù)據(jù)[2-5]。
文中設(shè)計了一套基于ZYNQ UltraScale+的高速圖像數(shù)據(jù)采集系統(tǒng),為圖像傳感器提供了100 路LVDS信號線,圖像數(shù)據(jù)的采集速率可達(dá)160 Gb/s,滿足超高清的數(shù)據(jù)傳輸速率要求。設(shè)計的系統(tǒng)使用國產(chǎn)的圖像傳感器LN130A 進行測試,系統(tǒng)的核心處理器通過對圖像數(shù)據(jù)進行對齊、重排列使其變?yōu)榭娠@示的圖像數(shù)據(jù),最終通過協(xié)處理器上的萬兆以太網(wǎng)模塊將圖像數(shù)據(jù)傳輸?shù)缴衔粰C,實現(xiàn)圖像的顯示。
ZYNQ UltraScale+高速圖像數(shù)據(jù)采集系統(tǒng)由母板、子板和上位機3 個部分組成。其中母板作為系統(tǒng)的核心部分用于完成圖像數(shù)據(jù)的采集,為圖像傳感器提供驅(qū)動與控制信號,通過SFP+端口將采集到的圖像數(shù)據(jù)傳給上位機;子板上安裝有圖像傳感器,通過QSH 系列高速座子將傳感器輸出的圖像數(shù)據(jù)傳給母板;上位機配有標(biāo)準(zhǔn)網(wǎng)卡,通過SFP+端口接收母板傳來的圖像數(shù)據(jù),并由自行編寫的上位機軟件處理和顯示圖像數(shù)據(jù)。該系統(tǒng)采用子板、母板的設(shè)計實現(xiàn)了圖像數(shù)據(jù)采集部分與圖像傳感器部分的分離。在采集不同圖像傳感器的數(shù)據(jù)時,只需要更換系統(tǒng)中的子板,增加了系統(tǒng)通用性的同時減小了更換圖像傳感器的開銷。系統(tǒng)框圖如圖1 所示。
圖1 系統(tǒng)框圖
系統(tǒng)中的母板采用Xilinx的ZYNQ UltraScale+MP SoC系列的XCZU7EV-FFVC1156-2-E芯片作為系統(tǒng)的核心處理器[6]。此芯片主要包含PL(Programmable Logic,可編程邏輯)與PS(Processing System,處理系統(tǒng))兩個部分。其中PL 部分包含了504K 個可編程邏輯單元,1 156 個IO 管腳,能為圖像傳感器提供100 路LVDS 高速信號[7]。芯片上每一路LVDS 信號的數(shù)據(jù)傳輸速率最高為1.6 Gb/s,100 路LVDS 信號的數(shù)據(jù)傳輸速率可達(dá)160 Gb/s。PS 部分包含四核Cortex-A53 的APU(Application Processing Unit,應(yīng)用處理單元)及雙核Cortex-R5 的RPU(Real-Time Processing Unit,實時處理單元),PL 與PS 間通過AXI協(xié)議總線進行數(shù)據(jù)交互。采用此芯片作為核心處理器,其上的100 對LVDS 高速信號保證了數(shù)據(jù)采集速率,同時PS+PL 的架構(gòu)也使母板上的軟件開發(fā)變得多樣,使軟件開發(fā)更加靈活、高效[7]。
母板上的外圍設(shè)計圍繞核心處理器芯片的PL與PS 兩部分展開,PL 部分包含前文提到的100 路LVDS 高速信號線,其通過高速信號座子與子板相連,處理器IO 口調(diào)試時使用的LED 燈、撥碼開關(guān)、按鍵、4 路GTH 高速收發(fā)器及16路的LVDS高速信號與母板上的協(xié)處理器Kintex-7 相連。協(xié)處理器為圖像傳感器提供時序及控制信號,同時提供數(shù)據(jù)傳輸速率為10 Gb/s 的SFP+端口[8]與上位機進行數(shù)據(jù)傳輸,解決了核心處理器的SFP+端口IP 核需要付費使用的問題。PS部分包括4片8 Gb DDR4[9]@2 400 MHz高速緩存、一路SD2.0 接口、兩片128 Mb QSPI Flash、一路USB3.0 接口、一路用于打印調(diào)試信息的USB 轉(zhuǎn)UART 接口及LED 燈。母板設(shè)計以高速圖像數(shù)據(jù)的采集和傳輸為主題,支持多種圖像傳感器。文中通過采集國產(chǎn)CIS(CMOS Image Sensor,CMOS 圖像傳感器)芯片LN130A 的圖像數(shù)據(jù),驗證了系統(tǒng)用于高速圖像數(shù)據(jù)采集的可行性。
LN130A 是一款分辨率為1 280×1 024,像素大小為9.5×9.5 μm2的具有高幀頻、高動態(tài)范圍的低噪聲CMOS 圖像傳感器。該圖像傳感器可實現(xiàn)卷簾快門或全局快門。LN130A 的一些基本特征如下所示。
1)分辨率:1 280(列)×1 024(行);
2)像素大?。?.5×9.5 μm2;
3)卷簾快門時,幀頻為160幀/s,讀出噪聲為1e-;
4)全局快門時,幀頻為80 幀/s,讀出噪聲為3e-;
5)可實現(xiàn)高動態(tài)范圍(≥90 dB);
6)積分時間可由外部調(diào)控;
7)共有4 路LVDS 圖像數(shù)據(jù)信號通路,每一路的傳輸速率均為784 Mbps;
8)具有14 bit片上ADC;
9)具有SPI 接口,用于對寄存器進行設(shè)定。
下面以采集LN130A 圖像數(shù)據(jù)為例,說明整個系統(tǒng)的軟件設(shè)計。
文中的高速圖像數(shù)據(jù)采集系統(tǒng)的總體軟件設(shè)計的功能框圖如圖2 所示。
圖2 軟件功能框圖
CIS 芯片在接收到母板上控制模塊產(chǎn)生的控制信號后輸出圖像數(shù)據(jù),圖像數(shù)據(jù)通過LVDS 接口輸入到母板上的核心處理器,通過數(shù)據(jù)對齊模塊確保多路LVDS 數(shù)據(jù)信號的數(shù)據(jù)位同步及像素同步。其后的像素重排列模塊將4 路LVDS 信號上的以一定規(guī)律傳送的像素數(shù)據(jù)按照像素0 到1 280 的順序重新排列成一行圖像數(shù)據(jù)。此模塊還負(fù)責(zé)將重排列的圖像數(shù)據(jù)轉(zhuǎn)化為AXI4-Stream 格式,通過之后的VDMA模塊緩存到DDR4 中。VDMA 圖像緩存模塊緩存3幀圖像數(shù)據(jù),使圖像能夠流暢顯示。核心處理器通過高速收發(fā)器模塊將緩存后的圖像數(shù)據(jù)傳給協(xié)處理器。協(xié)處理器上的萬兆以太網(wǎng)模塊將圖像數(shù)據(jù)組成UDP 協(xié)議的數(shù)據(jù)包傳到上位機,上位機中的軟件負(fù)責(zé)接收和處理圖像數(shù)據(jù)。
CIS 圖像傳感器輸出數(shù)據(jù)時序圖如圖3 所示,這些信號之間有著嚴(yán)格的相位關(guān)系。
圖3 圖像傳感器時序圖
其中,DATA_OUT_P<0~3>為4 路數(shù)據(jù)信號,CLO CLK_FORWARD_P 為數(shù)據(jù)時鐘,DATA_ALIGN_P 為像素同步信號。
2.2.1 數(shù)據(jù)位同步
數(shù)據(jù)對齊模塊在接收到信號后需要使用核心處理器中的ISERDES 接口硬核[10],在數(shù)據(jù)時鐘的邊沿對數(shù)據(jù)及像素同步信號采樣,并以1∶8 的比例將串行數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù)。使用ISERDES 硬核采樣前,還需使用核心處理器內(nèi)的IODELAY 硬核調(diào)整上述信號的動態(tài)延時,確保信號間的相位關(guān)系與圖3一致,得到正確的采樣數(shù)據(jù)。
2.2.2 像素同步
在保證了數(shù)據(jù)的正確采樣后,4 路數(shù)據(jù)信號和像素同步信號在ISERDES 內(nèi)的串行并行數(shù)據(jù)轉(zhuǎn)化環(huán)節(jié)也會存在不確定的延時,所以在數(shù)據(jù)同步模塊內(nèi)還需要對8 bit的并行數(shù)據(jù)進行拼接,得到正確的14 bit像素值。像素同步功能使用Verilog語言進行編寫,首先將8 bit 的并行數(shù)據(jù)寫入異步FIFO 并以14 bit 的形式讀出并行數(shù)據(jù),然后存入兩級14 bit的寄存器中,之后用這兩級寄存器中的數(shù)據(jù)排列出14 bit 數(shù)據(jù)的所有可能組合并與已知的目標(biāo)序列對比,如圖4 所示。
圖4 像素同步過程
從圖3 可知,文中系統(tǒng)中像素同步信號在像素同步時的已知序列為14 位的二進制數(shù)1000000000 0000(b),數(shù)據(jù)信號的已知序列為14 位的DST<0>,并可以用其后接收的已知序列DST<1>檢驗像素同步的正確性。完成數(shù)據(jù)位同步及像素同步后的一行圖像數(shù)據(jù)的時序圖如圖5 所示,其中X_CLOCK 為輔助說明信號,便于讀者理解此模塊的輸出時序,其頻率為28 MHz。在一個X_CLOCK 周期內(nèi),數(shù)據(jù)對齊模塊將輸出8 個像素值(注:每個像素值均為14 bit)。
圖5 行像素時序圖
參照圖5,數(shù)據(jù)對齊模塊的4 路14 bit 并行數(shù)據(jù)的輸出形式為DATA_OUT_P<0>上傳輸?shù)贜及N+1個像素的值,DATA_OUT_P<1>上傳輸?shù)贜+2 及N+3個像素的值,DATA_OUT_P<2>上傳輸?shù)贜+4 及N+5個像素的值,DATA_OUT_P<3>上傳輸?shù)贜+6 及N+7個像素的值,0≤N≤1 272。為了顯示圖像,一行圖像數(shù)據(jù)的像素值需要按照0~1 279 的順序重新排列。數(shù)據(jù)重排列模塊首先將4 路14 bit 并行數(shù)據(jù)拼接為一個56 bit 的數(shù)據(jù)存入異步FIFO 中,然后以112 bit的形式讀出數(shù)據(jù),存入相同位寬的寄存器中,最后通過位拼接操作完成像素值的重排列,如圖6 所示。
圖6 數(shù)據(jù)重排列過程
系統(tǒng)中PL 端為了提供100 路的LVDS 數(shù)據(jù)接口,沒有足夠的管腳連接DDR4 存儲芯片。用于緩存圖像數(shù)據(jù)的DDR4 緩存器掛載在PS 端,因此需要使用Xilinx 公司提供的VDMA IP 核[11-12]將重排列后的圖像數(shù)據(jù)緩存到DDR4 中。VDMA 圖像緩存模塊的主體是VDMA IP 核,其為AXI4-Stream 總線形式的數(shù)據(jù)流提供了兩個DMA 通道,使PL 端的圖像數(shù)據(jù)能方便高效地緩存到PS 端的內(nèi)存中,防止圖像出現(xiàn)卡頓及割裂現(xiàn)象。
數(shù)據(jù)重排列模塊輸出的圖像數(shù)據(jù)首先需要轉(zhuǎn)化為AXI4-Stream 總線形式,與VDMA IP 核的數(shù)據(jù)接口形式匹配。VDMA IP 核的寄存器主要用于設(shè)置緩存幀的起始地址及圖像行、列像素個數(shù)。文中系統(tǒng)使用核心處理器PS 端的AXI4-Lite 總線配置VDMA IP 核的寄存器。
高速收發(fā)器模塊的主要功能是將緩存后的圖像數(shù)據(jù)從核心處理器傳送到協(xié)處理器,從而通過協(xié)處理器上的萬兆以太網(wǎng)模塊,將圖像數(shù)據(jù)傳遞到上位機進行顯示及處理。此模塊分為核心處理器內(nèi)的發(fā)送模塊及協(xié)處理器內(nèi)的接收模塊。
2.5.1 發(fā)送模塊
核心處理器在硬件上通過GTH收發(fā)器[13]與協(xié)處理器相連接,發(fā)送模塊使用Xilinx公司的GTH IP核發(fā)送數(shù)據(jù)。GTH收發(fā)器在Ultrascale+架構(gòu)中支持500 Mb/s到16.375 Gb/s 的單通道速度,與PL 邏輯資源緊密集成。文中系統(tǒng)將GTH 發(fā)送器的速率設(shè)置為5 Gb/s,采用8/10 bit 的編碼方式對發(fā)送的并行數(shù)據(jù)進行編碼以降低發(fā)送信號中的直流成分,接著將并行數(shù)據(jù)轉(zhuǎn)化為串行數(shù)據(jù),以差分對的形式將數(shù)據(jù)發(fā)送出去。
2.5.2 接收模塊
協(xié)處理器在硬件上通過GTX 收發(fā)器[14]與協(xié)處理器相連接,接收模塊使用Xilinx 公司的GTX IP 核接收數(shù)據(jù)。GTX 收發(fā)器在7 系列FPGA 中支持500 Mb/s到10.312 5 Gb/s 的單通道速度。文中系統(tǒng)將GTX 接收器的速率設(shè)置為匹配的5 Gb/s,對接收數(shù)據(jù)進行解碼,接著將串行數(shù)據(jù)轉(zhuǎn)化為并行數(shù)據(jù),最后對并行數(shù)據(jù)進行像素對齊得到正確的圖像數(shù)據(jù)。
萬兆以太網(wǎng)模塊以10 Gb/s的速率將圖像數(shù)據(jù)傳輸?shù)缴衔粰C,文中系統(tǒng)使用Xilinx 公司的萬兆以太網(wǎng)子系統(tǒng)IP 核[15]實現(xiàn)萬兆以太網(wǎng)功能。此IP 核提供給用戶的數(shù)據(jù)接口為AXI4-Stream 總線形式,數(shù)據(jù)位寬為64 bit,用戶時鐘為156.25 MHz,時序如圖7所示。
圖7 萬兆以太網(wǎng)IP核用戶接口時序
為了減小協(xié)處理器與上位機通信時發(fā)送數(shù)據(jù)前的延時,文中系統(tǒng)將圖像數(shù)據(jù)組成UDP用戶數(shù)據(jù)報,并以AXI4-Steam的形式將數(shù)據(jù)流傳入萬兆以太網(wǎng)子系統(tǒng)IP核的用戶接口中,使其以10 Gb/s的速率與上位機通信。
上位機軟件基于微軟的WPF(Windows Presentation Foundation)[16]進行界面設(shè)計,實現(xiàn)的功能有:1)將接收的14位像素值數(shù)據(jù)轉(zhuǎn)換為8位,并以bmp格式顯示圖像;2)統(tǒng)計顯示圖像中的像素值(8 bit圖像數(shù)據(jù)),并以直方圖的形式將結(jié)果實時顯示;3)調(diào)節(jié)圖像的亮度及對比度;4)放大顯示選中圖像區(qū)域內(nèi)的原始14 bit像素值;5)以TIF 格式存儲圖像;6)錄制視頻。
文中系統(tǒng)通過控制模塊的SPI 接口信號修改LN130A 芯片內(nèi)寄存器的值,使其產(chǎn)生分辨率為1 280×1 024、80 幀/s 的灰階圖像數(shù)據(jù),從而進行系統(tǒng)的圖像數(shù)據(jù)采集測試,最終的圖像數(shù)據(jù)傳遞到上位機拼接成灰度圖像進行顯示。
文中以Xilinx 公司的ZYNQ 作為核心處理器,設(shè)計高速圖像數(shù)據(jù)采集平臺,采樣速率可達(dá)160 Gb/s。從軟硬件兩方面現(xiàn)實了基于并行LVDS 接口的圖像傳感器的數(shù)據(jù)采集。文中系統(tǒng)采用子、母板的設(shè)計方式實現(xiàn)了圖像數(shù)據(jù)采集部分與圖像傳感器部分的分離,通過更換子板實現(xiàn)多種圖像傳感器的數(shù)據(jù)采集,具有通用性,也降低了更換圖像傳感器時的開銷,為并行LVDS 接口的圖像傳感器的圖像數(shù)據(jù)采集提供了一個可行的解決方案。