基于NIOS II的video over ip設(shè)計(jì)
2.3 通過Video over ip 模塊的MPEG2-TS 流在以太網(wǎng)中的傳輸
任意的網(wǎng)絡(luò)數(shù)據(jù)進(jìn)入網(wǎng)口之后,F(xiàn)PGA 中的Video over ip 模塊會(huì)按照MPEG2-TS 特征位以及整個(gè)幀的幾個(gè)標(biāo)志位加以比較, 然后作判斷: 滿足MPEG-TS 數(shù)據(jù)的幀且類型字段中協(xié)議標(biāo)志位不為17(17表示UDP),模塊會(huì)將這個(gè)標(biāo)志位改為17,然后從專門的數(shù)據(jù)通道進(jìn)行傳輸。其他數(shù)據(jù)允許直接通過NiosII 處理器。
3 實(shí)際設(shè)計(jì)介紹
3.1 硬件部分
本設(shè)計(jì)基于Altera Cyclone 系列的FPGA,而NiosII 處理器則是內(nèi)嵌在FPGA 中的一個(gè)片上可編程處理器(SOPC)。我們通過Altera 提供的集成開發(fā)環(huán)境QuartusII 中所帶的sopc_builder 從FPGA 中劃取資源來構(gòu)建硬件。整個(gè)SOPC 系統(tǒng)硬件部分與MCU 系統(tǒng)如單片機(jī)、Arm等非常類似, 是一個(gè)32 位的嵌入式CPU,有內(nèi)部指令集。這一點(diǎn)與FPGA 芯片本身差別非常大。此外FPGA 通過一個(gè)DP83848 的PHY芯片與網(wǎng)口插座相連,這樣網(wǎng)絡(luò)設(shè)備的MAC 層做到FPGA 或SOPC中。NoisII 系統(tǒng)的硬件結(jié)構(gòu)如圖2 所示。
圖2 基于NiosII 的SOPC 系統(tǒng)硬件結(jié)構(gòu)
3.2 軟件部分
圖3 控制外設(shè)所用到得webserver 在播放視頻時(shí)的穩(wěn)定性測(cè)試
FPGA的程序可以通過Quartus 集成環(huán)境開發(fā), 我們通過Verilog語言編寫,然后直接通過Quartus 編譯后即可下載運(yùn)行。而NiosII 部分的軟件則要使用Altera 提供的另一個(gè)集成環(huán)境NiosEDS,并編寫嵌入式的C 語言來開發(fā)。之后再通過環(huán)境所帶的編譯器編譯下載運(yùn)行。而Video over ip 模塊我們通過Verilog 語言編寫,然后打包成IP 核可以被sopc_builder 加載調(diào)用。此外還需要通過NiosEDS 自帶的niche_stack 網(wǎng)絡(luò)協(xié)議棧搭建一個(gè)嵌入式webserver。
4 檢測(cè)說明及小結(jié)
正如前文所說,webserver 基于HTTP 協(xié)議,該協(xié)議以TCP 協(xié)議為基礎(chǔ)。測(cè)試時(shí)我們將一臺(tái)電腦通過網(wǎng)線與實(shí)驗(yàn)板的網(wǎng)口相連,并通過VLC 播放器對(duì)FPGA 不間斷播放MPEG2-TS 格式的視頻流,同時(shí)將NiosII 上的werbserver 開啟運(yùn)行。如果沒有Video over ip 模塊,由于視頻數(shù)據(jù)的碼率較大,給webserver 造成極大的延遲,并很快崩潰。當(dāng)我們開啟Video over ip 模塊之后,為保險(xiǎn)起見,做了12 小時(shí)的連續(xù)不間斷視頻播放, 同時(shí)電腦通過不斷刷新web 頁(yè)面的方式不斷訪問
webserver,即以此方式檢查PC 機(jī)與webserver 連接的通斷。經(jīng)測(cè)試,這12 小時(shí)間以及之后webserver 中的頁(yè)面始終可以正常訪問, 無異常情況。測(cè)試結(jié)果符合預(yù)期要求。測(cè)試過程如圖3 所示。
tcp/ip相關(guān)文章:tcp/ip是什么
評(píng)論