何 波,楊敏華
(中興通訊股份有限公司,江蘇 南京 210012)
分組交換網(wǎng)絡(luò)流媒體數(shù)據(jù)轉(zhuǎn)換方法及實現(xiàn)研究
何波,楊敏華
(中興通訊股份有限公司,江蘇南京210012)
流媒體就是指采用流式傳輸技術(shù)在網(wǎng)絡(luò)上連續(xù)實時播放的媒體格式,如音頻、視頻或多媒體文件。文章基于FPGA實現(xiàn)線路和系統(tǒng)接口的轉(zhuǎn)換,線路接口由適配以太網(wǎng)ASSP芯片輸出,系統(tǒng)接口與業(yè)務(wù)處理單元相連。FPGA在數(shù)據(jù)流上完成包緩存、包分類、優(yōu)先級調(diào)度以及總線轉(zhuǎn)換,并根據(jù)緩存狀態(tài)生成相應(yīng)流控信號進行流量平滑。該實現(xiàn)方法旨在為使用實現(xiàn)流媒體技術(shù)的分組交換工程設(shè)計提供有益的幫助。
分組交換;現(xiàn)場可編程邏輯器件;數(shù)據(jù)傳輸;流控
隨著現(xiàn)代技術(shù)的發(fā)展,網(wǎng)絡(luò)帶給人們形式多樣的信息,從第一張圖片出現(xiàn)在網(wǎng)絡(luò)上到如今各種形式的網(wǎng)絡(luò)視頻和三維動畫,網(wǎng)絡(luò)讓人們的視覺和聽覺得到了很大的滿足。流媒體就是指采用流式傳輸技術(shù)在網(wǎng)絡(luò)上連續(xù)實時播放的媒體格式,如音頻、視頻或多媒體文件。流媒體技術(shù)也稱流式媒體技術(shù)。所謂流媒體技術(shù)就是把連續(xù)的影像和聲音信息經(jīng)過壓縮處理后放上網(wǎng)站服務(wù)器,由視頻服務(wù)器向用戶計算機順序或?qū)崟r地傳送各個壓縮包,讓用戶一邊下載一邊觀看、收聽,而不需要等整個壓縮文件下載到自己的計算機上才可以觀看的網(wǎng)絡(luò)傳輸技術(shù)。
傳統(tǒng)下載方式的時延很大,因為音視頻文件一般都較大,需要的存儲容量也較大,同時受到網(wǎng)絡(luò)帶寬的限制,下載一個文件很耗時。根據(jù)文件的大小,可能往往需要幾分鐘甚至幾個小時。因為internet是以包為單位進行異步傳輸?shù)模虼硕嗝襟w數(shù)據(jù)在傳輸中要被分解成許多包,由于網(wǎng)絡(luò)傳輸?shù)牟环€(wěn)定性,各個包選擇的路由不同,所以到達客戶端的時間次序可能發(fā)生改變,甚至產(chǎn)生丟包的現(xiàn)象。為此,必須采用緩存技術(shù)來糾正由于數(shù)據(jù)到達次序發(fā)生改變而產(chǎn)生的混亂狀況,利用緩存對到達的數(shù)據(jù)包進行正確排序,從而使視音頻數(shù)據(jù)能連續(xù)正確地播放。緩存中存儲的是某一段時間內(nèi)的數(shù)據(jù),數(shù)據(jù)在緩存中存放的時間是暫時的,緩存中的數(shù)據(jù)也是動態(tài)的,不斷更新的。流媒體在播放時不斷讀取緩存中的數(shù)據(jù)進行播放,播放完后該數(shù)據(jù)便被立即清除,新的數(shù)據(jù)將存入到緩存中。
本文主要介紹流媒體傳輸過程中的分組交換內(nèi)容,并通過萬兆以太接口卡可編程器件(Field-Programmable Gate Array,F(xiàn)PGA)的設(shè)計,說明數(shù)據(jù)包在物理層和鏈路層的傳輸轉(zhuǎn)換方式。
本設(shè)計為分組通信設(shè)備的接口卡,在系統(tǒng)中通過系統(tǒng)總線與業(yè)務(wù)處理單元相連,對外提供萬兆以太網(wǎng)光口。接口卡專用標(biāo)準(zhǔn)產(chǎn)品(Application Specifc Standard Parts,ASSP)主要實現(xiàn)以太格式物理層(Physical Layer ,PHY)和媒介訪問控制(Media Access Control,MAC)功能,可編程邏輯器件FPGA實現(xiàn)流媒體傳輸報文的QOS功能,線路和系統(tǒng)接口轉(zhuǎn)換。本設(shè)計的主要芯片連接關(guān)系如圖1所示。
圖 1 流媒體接口板框
在系統(tǒng)的上行側(cè)(ASSP業(yè)務(wù)處理單元),F(xiàn)PGA完成包緩存、包分類、優(yōu)先級調(diào)度,以及l(fā)ine bus到system bus總線的轉(zhuǎn)換;在系統(tǒng)的下行側(cè)(業(yè)務(wù)處理單元ASSP),F(xiàn)PGA完成包緩存以及system bus總線到line bus的轉(zhuǎn)換。
本設(shè)計FPGA的上行要求線路控制模塊能以整包的形式接收ASSP發(fā)送的數(shù)據(jù),存入FPGA內(nèi)部緩沖區(qū),并能夠正確按照緩沖區(qū)的存儲狀態(tài)向ASSP反饋流控信息。由于響應(yīng)流控的問題,要求上行緩沖區(qū)在生成流控的門限基礎(chǔ)上有足夠的容量繼續(xù)接收一個最大包長的整包。在系統(tǒng)發(fā)送側(cè),要求能夠按照網(wǎng)絡(luò)處理器的要求發(fā)送數(shù)據(jù)Burst并正確響應(yīng)網(wǎng)絡(luò)處理器的流控。下行要求系統(tǒng)接收側(cè)能夠正確接收網(wǎng)絡(luò)處理器發(fā)送的Burst并存在緩沖區(qū)內(nèi),而且能夠根據(jù)緩沖區(qū)的狀態(tài)準(zhǔn)確地向網(wǎng)絡(luò)處理器反饋流控信息。下行線路接口控制模塊能夠在緩沖區(qū)存有整包的情況下向ASSP發(fā)送整包數(shù)據(jù),并能夠正確響應(yīng)ASSP送來的流控信號。
FPGA在單板上和ASSP連接,并通過接插件和業(yè)務(wù)處理單元連接。FPGA主要實現(xiàn)線路與系統(tǒng)總線的轉(zhuǎn)換以及狀態(tài)、統(tǒng)計信息的讀取等。功能結(jié)構(gòu)主要包括線路側(cè)接口的控制、系統(tǒng)側(cè)接口的控制、線路和系統(tǒng)的橋接邏輯,流控邏輯等。FPGA還需要提供了FPGA內(nèi)部寄存器的配置與狀態(tài)讀取、時鐘復(fù)位管理功能、時鐘檢測、包統(tǒng)計、包校驗等功能。
3.1線路接口控制邏輯
此模塊提供線路接口的視頻邏輯,在萬兆以太網(wǎng)接口卡中,F(xiàn)PGA和ASSP的線路接口通常是以太網(wǎng)連接單元接口(Ethernet Attachment Unit Interface,XAUI)接口。FPGA需要實現(xiàn)以太PCS和MAC功能。在接收用戶端完成MAC功能,識別二層報文發(fā)送給下級模塊。在發(fā)送用戶端連接,按照MAC的要求發(fā)出申請并接收應(yīng)答,向MAC的用戶接口發(fā)送數(shù)據(jù)。
3.2報文分類接口控制
此模塊按照萬兆MAC的用戶接口時序正確接收數(shù)據(jù),數(shù)據(jù)的接收以整包模式接收完整的XAUI frame。對于接收的數(shù)據(jù),F(xiàn)PGA根據(jù)報文的類型進行二層報文的提取,并區(qū)分高低兩個優(yōu)先級將數(shù)據(jù)及一些控制信息寫入上行兩個FIFO中。
具體的報文提取方法為:提供n個可配置的比較寄存器供驅(qū)動配置高優(yōu)先級報文類型,同時提供一個協(xié)議類型偏移配置寄存器。FPGA根據(jù)地址偏移從報文某處提取報文類型,然后與驅(qū)動配置的類型相匹配。如果匹配,則為高優(yōu)先級報文,進高優(yōu)先級隊列,否則為低優(yōu)先級報文,進低優(yōu)先級隊列。
3.3緩存和調(diào)度模塊
此模塊提供數(shù)據(jù)及控制信息的緩存,根據(jù)兩側(cè)數(shù)據(jù)接口的位寬以及所選器件Block Ram的資源情況,設(shè)定每套轉(zhuǎn)換的緩存由低優(yōu)先級數(shù)據(jù)先進先出隊列(First Input First Output,F(xiàn)IFO)和高優(yōu)先級二層報文FIFO構(gòu)成。在這個模塊中存在一個計數(shù)子模塊,計算緩存中存儲的數(shù)據(jù)包個數(shù)。當(dāng)緩存中至少存儲了一個完整的數(shù)據(jù)包后再開始緩存?zhèn)鹊淖x取,將報文發(fā)送到接口。
高低優(yōu)先級buffer調(diào)度采用嚴(yán)格優(yōu)先級調(diào)度方式,高優(yōu)先級隊列有完整報文就優(yōu)先調(diào)度出隊列,在流媒體中往往語音和視頻等實時業(yè)務(wù)都配置為高優(yōu)先級隊列;低優(yōu)先級隊列在高優(yōu)先級沒有完整報文時才允許調(diào)度,低優(yōu)先級隊列在流媒體中往往緩存高帶寬的下載業(yè)務(wù)。高低優(yōu)先級緩存需要響應(yīng)發(fā)送側(cè)流控模塊的流控,流控Xoff時停止對緩存的調(diào)度,流控Xon時開始對緩存進行調(diào)度。同時根據(jù)緩存設(shè)置的高低水線,分別作為流控信號的生成和解除條件。
3.4系統(tǒng)用戶接口控制模塊
此模塊的功能是實現(xiàn)和業(yè)務(wù)處理單元互連的系統(tǒng)接口,上行完成報文到系統(tǒng)接口的報文格式轉(zhuǎn)換,下行根據(jù)下行緩存的空滿狀態(tài),將數(shù)據(jù)和控制信息寫入下行緩存中。除此之外,下行接口模塊還提供錯誤處理及報文統(tǒng)計計數(shù),所有的錯誤包均由FPGA丟棄。
圖2 XAUI Core的仿真波形
線路接口與ASSP連接的XAUI接口,接口仿真波形如圖2所示。
系統(tǒng)接口與業(yè)務(wù)處理單元連接的并行總線SPI4.2接口。圖3是對該接口的仿真波形示意。
本設(shè)計基于FPGA實現(xiàn)了ASSP到業(yè)務(wù)處理單元接口轉(zhuǎn)換,并完成報文檢測和優(yōu)先級調(diào)度的設(shè)計,是視頻數(shù)據(jù)包在物理層、鏈路層傳輸轉(zhuǎn)換的可行方法,為使用實現(xiàn)流媒體技術(shù)的分組交換的工程設(shè)計提供了有益的幫助。
圖3 系統(tǒng)側(cè)并行總線仿真波形
[1]周夢然. CLPD/FPGA的開發(fā)與應(yīng)用[M].徐州:中國礦業(yè)大學(xué)出版社,2007.
[2]王金明. Verilog HDL程序設(shè)計教程[M].北京:人民郵電出版社,2004.
[3]孫航. Xilinx可編程邏輯器件的高級應(yīng)用與設(shè)計技巧[M].北京:電子工業(yè)出版社,2004.
Research on the conversion method and implementation of streaming media data in packet-switched network
He Bo, Yang Minhua
(ZTE Corporation, Nanjing 210012, China)
Streaming media is a format which plays continuously and immediately in the network such as audio, video or multimedia fle. This paper describes the conversion between system interface and line interface based on FPGA. The line interface is output by ASSP chip,and system interface is connected with service processing unit. FPGA completes packet caching, packet classifcation, priority scheduling and bus conversion in the data stream, and generates the corresponding fow control signals according to the buffer state. It provides useful help for the design of the engineering design packet-switched streaming media technology projects.
packet-switched; FPGA; data transmission; fow control
何波(1981— ),男,四川蓬溪,碩士,工程師;研究方向:數(shù)據(jù)通信。