高偉林,楊炳偉,辛春明
(航空工業(yè)蘇州長(zhǎng)風(fēng)航空電子有限公司,江蘇 蘇州 215151)
航空電子技術(shù)的飛速發(fā)展對(duì)機(jī)載座艙視頻傳輸系統(tǒng)提出了更高的要求,傳統(tǒng)的DVI、VGA 等視頻接口難以滿(mǎn)足高分辨率視頻傳輸需求,尤其在視頻分辨率達(dá)到4K(3 840×2 160)或以上時(shí),由于鏈路速率大幅提升,在機(jī)艙內(nèi)復(fù)雜電磁環(huán)境下視頻傳輸鏈路極易受到干擾,導(dǎo)致傳輸可靠性變差。ARINC818(航空電子數(shù)字視頻總線(xiàn),Avionics Digital Video Bus,ADVB)視頻總線(xiàn)采用光纖通道進(jìn)行傳輸,其技術(shù)特點(diǎn)恰好滿(mǎn)足現(xiàn)代航電視頻數(shù)據(jù)總線(xiàn)的要求,具備高帶寬、高可靠性、低延遲、非壓縮視頻傳輸、抵抗電磁干擾、減輕線(xiàn)纜重量、靈活性高、兼容性擴(kuò)展性強(qiáng)等優(yōu)勢(shì)[1-2]。ARINC818 總線(xiàn)已在波音787、空客A350、A400M、C-130J 等飛機(jī)駕駛艙視頻傳輸系統(tǒng)中得到應(yīng)用[3]。
隨著顯示器分辨率的逐步提高,對(duì)視頻帶寬的要求也越來(lái)越高,在2019 年發(fā)布的ARINC818-3 規(guī)范中新增了對(duì)10 Gb/s 編解碼鏈路速率的支持[4]。本文針對(duì)未來(lái)機(jī)載座艙高分辨率視頻傳輸需求,設(shè)計(jì)了一種支持4K分辨率的ARINC818 視頻傳輸驗(yàn)證系統(tǒng),鏈路速率達(dá)到10 Gb/s,支持 單鏈 路4K@30 Hz 和 雙鏈 路4K@60 Hz 視頻傳輸,并通過(guò)DP 視頻接口完成傳輸驗(yàn)證。
ARINC818 協(xié)議標(biāo)準(zhǔn)是在FC-AV(Fiber Channel Audio Video)音視頻協(xié)議基礎(chǔ)上進(jìn)行簡(jiǎn)化而得,共有5 層協(xié)議[5],如圖1 所示。

圖1 光纖通道5 層協(xié)議
(1) FC-0 層描述物理接口,包括傳輸介質(zhì)、發(fā)射機(jī)和接收機(jī)及其接口,規(guī)定了各種介質(zhì)能夠承載的各種運(yùn)行速率。
(2) FC-1 層描述了8B/10B 編碼規(guī)則,該碼型可以區(qū)分控制字節(jié)和數(shù)據(jù)字節(jié),可簡(jiǎn)化比特、字節(jié)和字同步,并且能夠提高差錯(cuò)檢測(cè)能力。此外,F(xiàn)C-1 對(duì)發(fā)射機(jī)和接收機(jī)的狀態(tài)進(jìn)行了規(guī)定。
(3) FC-2 層是信號(hào)傳輸協(xié)議層,規(guī)定了幀格式、幀序列及通信協(xié)議。
(4) FC-3 層涉及網(wǎng)絡(luò)服務(wù),如鏈路初始化、路由等,不適用于點(diǎn)對(duì)點(diǎn)特征的ADVB,ARINC818 未使用。
(5) FC-4 層作為光纖通道協(xié)議架構(gòu)的最高層,定義了多種與FC 相關(guān)的應(yīng)用接口,制定了光纖通道與上層應(yīng)用協(xié)議間的映射規(guī)則。ARINC818 使用幀頭控制協(xié)議FHCP(Frame Header Control Protocol),提出容器概念。
ADVB 容器是ARINC818 系統(tǒng)中傳輸視頻信息的基本單元,一個(gè)容器包括一幀視頻的所有視頻、音頻及附加數(shù)據(jù),容器按順序方式傳送以提供連續(xù)動(dòng)態(tài)更新的圖像。容器由容器頭和對(duì)象組成,如圖2 所示。

圖2 ADVB 容器結(jié)構(gòu)
容器頭大小為22 個(gè)FC 字(32 bit),主要包括容器計(jì)數(shù)、視頻標(biāo)識(shí)、容器時(shí)標(biāo)、傳輸類(lèi)型、容器類(lèi)型、對(duì)象參數(shù)等信息。對(duì)象0 傳輸附加信息,一般為2 個(gè)FC 字,規(guī)定視頻幀分辨率、顏色信息、掃描方式、像素排列方式等信息。對(duì)象1 傳輸音頻數(shù)據(jù),一般不使用。對(duì)象2 和對(duì)象3傳輸視頻數(shù)據(jù),逐行系統(tǒng)中,僅使用對(duì)象2。
一個(gè)ADVB 容器與一幀視頻對(duì)應(yīng),裂變?yōu)橐粋€(gè)FC幀序列,如圖3 所示。每個(gè)FC 幀通過(guò)SOF(Start of Frame)和EOF(End of Frame)兩種類(lèi)型定界符定義幀信息起始、結(jié)束,同時(shí)包含6 個(gè)FC 傳輸字的幀頭定義,用于傳輸FC 幀路由控制、類(lèi)型、幀控制等信息。容器頭與對(duì)象0 封裝入第一個(gè)FC 幀中,剩余FC 幀用于封裝像素?cái)?shù)據(jù),有效載荷長(zhǎng)度最大為2 112 B,若一行像素?cái)?shù)據(jù)不大于2 112 B,每一行像素?cái)?shù)據(jù)封裝入一個(gè)FC 幀中,若一行視頻數(shù)據(jù)大于2 112 B,將每一行像素?cái)?shù)據(jù)進(jìn)行合適的劃分并封裝入多個(gè)FC 幀。

圖3 FC 幀結(jié)構(gòu)
圖4 為視頻流到FC 幀序列的映射,一幀視頻與一個(gè)ADVB 容器對(duì)應(yīng),一個(gè)容器與一個(gè)FC 幀序列對(duì)應(yīng)。每幀畫(huà)面第一個(gè)FC 幀的SOF 格式為SOFi(SOF initiate),其后的每一個(gè)FC 幀的SOF 格式為SOFn(SOF normal)。最后一個(gè)FC 幀的EOF 格式為EOFt(EOF terminate),其他FC 幀的EOF 格式為EOFn(EOF normal)。FC 幀之間填充IDLE 數(shù)據(jù)。

圖4 視頻流到FC 幀序列的映射
ICD(Interface Control Document)接口控制文檔用于記錄ARINC818 視頻配置信息,包括鏈路速率、視頻分辨率、刷新率、掃描方式、顏色信息等。發(fā)送端和接收端的ICD 必須一致才能實(shí)現(xiàn)正確的發(fā)送和接收操作[6]。
本系統(tǒng)采用FPGA 完成ARINC818 的編解碼邏輯設(shè)計(jì),并采用DP 視頻完成視頻鏈路傳輸驗(yàn)證,硬件系統(tǒng)框圖如圖5 所示。
系統(tǒng)接收上位機(jī)輸出的DP 視頻,送入FPGA 的GTX 高速端口,再通過(guò)DP IP 核實(shí)現(xiàn)DP 鏈路解碼,解碼后的視頻數(shù)據(jù)送入ADVB 編碼模塊,按照ARINC818 協(xié)議完成封包處理后,再通過(guò)GTX 高速端口形成串行ARINC818 視頻經(jīng)光電模塊送出。
使用光纖連接本系統(tǒng)的ARINC818 輸入輸出端口,將產(chǎn)生的ARINC818 視頻再回送至本系統(tǒng),通過(guò)GTX 高速端口和ADVB 解碼模塊后,再編碼形成DP 視頻輸出顯示。
本系統(tǒng)選用Xilinx 的Kintex-7 系列FPGA,集成GTX高速接口,能夠提供最高12.5 Gb/s 的鏈路速率[7],高度可配置化,具有8B/10B 編解碼、RD 控制、逗號(hào)檢測(cè)、字對(duì)齊、時(shí)鐘矯正、預(yù)加重等功能[8]。
GTX 的發(fā)送通道和接收通道均由PMA(物理媒介適配層)和PCS(物理編碼子層)兩部分組成,PMA 中集成了串并轉(zhuǎn)換器、發(fā)送接收緩沖、時(shí)鐘發(fā)生器和時(shí)鐘恢復(fù)電路。PCS 中集成了8B/10B 編解碼模塊、逗號(hào)檢測(cè)對(duì)齊模塊和用來(lái)進(jìn)行時(shí)鐘校正的彈性緩沖區(qū)。GTX 收發(fā)結(jié)構(gòu)簡(jiǎn)圖如圖6 所示。
ARINC818 協(xié)議的FC-2 和FC-4 層通過(guò)ARINC818編解碼模塊實(shí)現(xiàn)。ARINC818 編解碼模塊的功能包括:
(1)將視頻流數(shù)據(jù)編碼成32 bit 的FC 幀序列送至GTX 模塊;
(2)接收GTX 模塊的32 bit FC 幀序列將其解碼成視頻流數(shù)據(jù)輸出。
ARINC818 編碼模塊流程圖如圖7 所示,模塊初始化完畢后控制鏈路的初始RD 值為負(fù),并通過(guò)查找表實(shí)時(shí)記錄當(dāng)前鏈路的RD 值。等待FIFO 中緩存一行圖像數(shù)據(jù)后,發(fā)送載有對(duì)象2 視頻數(shù)據(jù)的FC 幀,首先發(fā)送SOFn、FC 幀頭數(shù)據(jù),讀取FIFO 中的數(shù)據(jù)并發(fā)送FC 幀的有效載荷,當(dāng)前FC 幀有效載荷發(fā)送完成發(fā)送CRC 校驗(yàn)結(jié)果,并根據(jù)當(dāng)前的RD 值發(fā)送合適EOF。若一行圖像數(shù)據(jù)能夠存在一個(gè)FC 幀中(即數(shù)據(jù)小于等于2 112 B),等待FIFO 中存入下一行數(shù)據(jù),重復(fù)上述過(guò)程至一幀圖像傳送完畢。若一行圖像數(shù)據(jù)大于2 112 B,將一行圖像數(shù)據(jù)劃分存入的FC 幀,F(xiàn)C 幀之間填充預(yù)先設(shè)定好數(shù)量的IDLE 數(shù)據(jù),一行圖像發(fā)送完畢后等待FIFO 中存入下一行數(shù)據(jù),重復(fù)上述過(guò)程至一幀圖像傳送完畢。

圖7 ARINC818 編碼模塊流程圖
載有對(duì)象2 的FC 幀發(fā)送完成后,發(fā)送預(yù)先設(shè)定好數(shù)量的IDLE 數(shù)據(jù),接著發(fā)送下一幀圖像數(shù)據(jù)載有容器頭和對(duì)象0 的FC 幀,等待FIFO 中存入一行圖像數(shù)據(jù)后重復(fù)上述發(fā)送載對(duì)象2 的FC 幀的過(guò)程。
ARINC818 解碼模塊流程圖如圖8 所示,檢測(cè)到數(shù)據(jù)流中的SOFi 信號(hào)后解析第一個(gè)FC 幀,讀取容器頭和對(duì)象0 的數(shù)據(jù)存入相應(yīng)的寄存器中。解析完成第一個(gè)FC 幀后持續(xù)檢測(cè)數(shù)據(jù)流中的SOFn 信號(hào),讀取對(duì)應(yīng)FC幀中的對(duì)象2 視頻數(shù)據(jù)存入FIFO 中,通過(guò)Frame Header中F_CTL 的bit19 標(biāo)志位(容器中的最后一幀,有效為“1”)和FC 幀結(jié)束的SOFn/SOFt 判斷當(dāng)前FC 幀是否為一幀圖像畫(huà)面的最后一行數(shù)據(jù),若是,開(kāi)始檢測(cè)SOFi,若不是,重復(fù)檢測(cè)SOFn。在上述存儲(chǔ)過(guò)程中,通過(guò)CRC計(jì)算模塊計(jì)算并校對(duì)鏈路數(shù)據(jù)是否有錯(cuò)誤,若有錯(cuò)誤上報(bào)CRC 錯(cuò)誤。

圖8 ARINC818 解碼模塊流程圖
對(duì)于4K@30 Hz 視頻,帶寬由式(1)計(jì)算得出,式中3 840×2 160 為視頻分辨率,24 為像素位寬,30 為幀率,1.25 為加上附加信息和協(xié)議控制信息后的等效帶寬倍乘因子。
ARINC818 傳輸系統(tǒng)采用10 Gb/s 鏈路速率,一條傳輸鏈路即可滿(mǎn)足要求。通過(guò)FPGA 的QPLL 設(shè)置GTX 速率,QPLL 輸出的時(shí)鐘頻率由式(2)計(jì)算:
鏈路速率通過(guò)PLL 輸出時(shí)鐘的上升沿和下降沿產(chǎn)生,且發(fā)送和接收均有一個(gè)時(shí)鐘分頻模塊,將PLL 輸出時(shí)鐘降頻D倍,鏈路速率由式(3)計(jì)算:
式中N、M和D由表1 中的屬性或者接口決定。

表1 QPLL 分頻設(shè)置
輸入的參考時(shí)鐘頻率為100 MHz,M設(shè)置為1,N設(shè)置為100,D設(shè)置為1,將鏈路速率匹配為10 Gb/s。
一個(gè)FC 幀最大支持2 112 B 的負(fù)載數(shù)據(jù),對(duì)于分辨率為3 840×2 160 的應(yīng)用,若視頻圖像為RGB888,則一行圖像容量為11 520 B,無(wú)法在一個(gè)FC 幀內(nèi)傳輸一行視頻數(shù)據(jù),因此在4K 視頻傳輸中需要將每一行視頻分割為6 個(gè)FC 幀進(jìn)行傳輸,每一個(gè)FC 幀封裝1 920 B 字節(jié)數(shù)據(jù)。一幀圖像則需要12 960 個(gè)FC 幀方可傳輸完成。每個(gè)FC 幀之間填充著預(yù)先設(shè)定好的IDLE,IDLE 時(shí)長(zhǎng)最后設(shè)置為ICD 參數(shù)集成到現(xiàn)有工程中。
ADVB 接收端的ICD 與發(fā)送端一致,接收端在獲取鏈路同步后實(shí)時(shí)接收鏈路上的FC 數(shù)據(jù)幀,根據(jù)附加數(shù)據(jù)中的格式完成圖像數(shù)據(jù)的重組。由于A(yíng)DVB 協(xié)議規(guī)定的有 序集為SOFi1、SOFi3、SOFn1、SOFn3、EOFn、EOFt 以及IDLE,因此在接收端除此之外的其他有序集均視為IDLE 對(duì)待。同時(shí),接收端采取以下原則以保證當(dāng)鏈路故障情況時(shí)始終能夠從下一幅圖像第一行數(shù)據(jù)完整顯示出:
(1)當(dāng)檢測(cè)到鏈路失同步時(shí),需重新獲取鏈路同步并等待直至下一個(gè)SOFi 到來(lái),才開(kāi)始正常接收;
(2)當(dāng)檢測(cè)到8B/10B 編碼錯(cuò)誤,需獲取并保持鏈路狀態(tài)直到下一個(gè)SOFi 正常;
(3)當(dāng)檢測(cè)到CRC 校驗(yàn)錯(cuò)誤,則丟棄當(dāng)前幀,停止接收直到下一個(gè)SOFi。
對(duì)于4K@60 Hz 視頻,帶寬由式(4)計(jì)算得出,總帶寬超過(guò)了單條鏈路所能提供的10 Gb/s 帶寬。當(dāng)單條鏈路速率無(wú)法滿(mǎn)足應(yīng)用時(shí),ARINC818 協(xié)議支持多鏈路模式,將視頻幀按一定模式進(jìn)行分割,如左右半屏或奇偶像素,再將分割后的數(shù)據(jù)分別綁定到多個(gè)鏈路。實(shí)際應(yīng)用中,將畫(huà)面分割為左右半屏并分別綁定到兩條鏈路上,如圖9 所示。在發(fā)送端,圖像數(shù)據(jù)按左右半屏方式分配至兩個(gè) ARINC818 編碼發(fā)送模塊;在接收端,ARINC818數(shù)據(jù)接收模塊將兩條lane 收到的數(shù)據(jù)分別寫(xiě)到同一塊內(nèi)存區(qū)域的左右兩邊,使其組成一幀完整的4K圖像。

圖9 畫(huà)面分割與鏈路綁定方式
本項(xiàng)目采用DP 視頻接口完成ARINC818 視頻傳輸驗(yàn)證,DP 視頻編解碼功能采用Xilinx 的DP IP 實(shí)現(xiàn),為了完整驗(yàn)證DP 視頻收發(fā)功能,設(shè)計(jì)了pass-thorugh demo 框架,如圖10 所示,主要包括以下幾個(gè)部分:

圖10 pass-thorugh demo 框架
(1) MB,Microblaze 軟核,用于系統(tǒng)運(yùn)行的管理,主要包括DP 編解碼的控制管理、VDMA 的控制管理、動(dòng)態(tài)時(shí)鐘的配置等;
(2) DDR,用于存儲(chǔ)視頻數(shù)據(jù),實(shí)現(xiàn)視頻數(shù)據(jù)緩存等,本設(shè)計(jì)中,DDR 總線(xiàn)的位寬為64 bit,DDR 的數(shù)據(jù)時(shí)鐘工作在1 600 MHz 的頻率下;
(3) VDMA,用于提供高帶寬的直接地址存儲(chǔ)訪(fǎng)問(wèn),可以在Microblaze 配置完成的情況下,進(jìn)行視頻數(shù)據(jù)的緩存搬運(yùn);
(4) Vid Pattern,邏輯上存儲(chǔ)了幾幅視頻畫(huà)面,可以通過(guò)MB 進(jìn)行選擇輸出;
(5) DP tx subsystem,實(shí)現(xiàn)DP 協(xié)議的編碼模塊,除了main link 的視頻數(shù)據(jù)編碼外,還具備接收Sink TX HPD的觸發(fā),TX AUX Channel 通道數(shù)據(jù)訪(fǎng)問(wèn)交互功能;
(6) DP rx subsystem,實(shí)現(xiàn)DP 協(xié)議的解碼模塊,除了解碼main link 上的數(shù)據(jù)信號(hào)外,還具備RX HPD 觸發(fā)Source 功能,可以與Source 進(jìn)行AUX 數(shù)據(jù)交互,存儲(chǔ)接收端EDID 的功能;
(7) DisplayPort Video Phy,實(shí)現(xiàn)DP Phy 的功能,主要包括串行鏈路的時(shí)鐘倍頻、串行數(shù)據(jù)與并行數(shù)據(jù)的相互轉(zhuǎn)化功能、8B/10B 編解碼、時(shí)鐘恢復(fù)等功能;
(8) DP Port,DP 插座模塊。
測(cè)試驗(yàn)證平臺(tái)如圖11 所示,由PC 產(chǎn)生DP 視頻信號(hào),經(jīng)過(guò)ARINC818 編碼,通過(guò)光纖返回到板卡中,再由ARINC818 解碼,轉(zhuǎn)換成DP 視頻進(jìn)行輸出顯示。本系統(tǒng)自回環(huán)測(cè)試實(shí)物圖如圖12 所示。

圖11 測(cè)試驗(yàn)證平臺(tái)示意圖

圖12 ARINC818 自回環(huán)測(cè)試圖
ARINC818 專(zhuān)注于航空電子環(huán)境下視頻傳輸?shù)膽?yīng)用要求,采用單向點(diǎn)對(duì)點(diǎn)數(shù)據(jù)傳輸,不需要實(shí)現(xiàn)鏈路初始化、流量控制以及交換注冊(cè)等操作,最大限度地保證了光纖通道的高速、高可靠、低延遲等特點(diǎn)。本系統(tǒng)基于Xilinx K7 系 列FPGA GTX 高速端 口,采用10 Gb/s 鏈 路速率,實(shí)現(xiàn)了4K 分辨率的ARINC818 視頻傳輸,支持4K@30 Hz 和4K@60 Hz 視頻規(guī)格,通過(guò)DP 接口完成視頻收發(fā)驗(yàn)證。本系統(tǒng)具有一定的通用性,通過(guò)配置ICD,可適應(yīng)不同規(guī)格視頻傳輸,滿(mǎn)足各類(lèi)應(yīng)用需求。