《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 解決方案 > 基于安路FPGA的雙端口千兆以太網(wǎng)視頻傳輸卡

基于安路FPGA的雙端口千兆以太網(wǎng)視頻傳輸卡

2015-07-27
關(guān)鍵詞: ANLOGIC AL3 視頻傳輸 FPGA

摘要

       本文介紹了一種使用ANLOGIC(上海安路信息科技有限公司) AL3 FPGA實(shí)現(xiàn)的基于千兆以太網(wǎng)的實(shí)時(shí)視頻傳輸系統(tǒng)。本文首先對(duì)AL3 FPGA的特點(diǎn),KSZ9031RNX千兆PHY芯片和視頻傳輸帶寬計(jì)算等進(jìn)行了簡(jiǎn)要介紹,然后詳細(xì)描述了系統(tǒng)硬件架構(gòu)和FPGA程序架構(gòu),通過采用乒乓式的頁模式訪問SDRAM解決視頻緩存帶寬瓶頸,實(shí)現(xiàn)了1080P 30幀/秒的實(shí)時(shí)視頻傳輸。

正文

       AL3LA10是上海安路科技最新推出的FPGA器件。該器件采用自主獨(dú)創(chuàng)LUT4/LUT5混合邏輯單元結(jié)構(gòu),包含10K等效邏輯單元,總共500Kbits RAM塊,擁有豐富的高性能LVDS差分接口。該芯片封裝可以兼容ALTERA CYCLONE4和XILINX SPARTAN6等多種芯片,同時(shí)比國外同等芯片提供更多的RAM塊和差分IO資源,非常適合于大容量視頻數(shù)據(jù)的采集,傳輸和顯示等方面應(yīng)用。

       KSZ9031RNX是一款三速自適應(yīng)PHY芯片,該芯片使用RGMII接口與FPGA(MAC)連接。該芯片的突出特點(diǎn)是可以通過MDIO接口設(shè)置RGMII接口每一個(gè)引腳的延時(shí),降低FPGA端對(duì)延時(shí)調(diào)整的復(fù)雜度。TFP401A是TI的一款DVI視頻解碼芯片,最大支持1080P分辨率。該芯片接收顯卡輸出的LVDS信號(hào),解碼后輸出LVTTL電平的并行場(chǎng)同步數(shù)據(jù)。

       一個(gè)千兆以太網(wǎng)端口的最大帶寬為1Gb/s,本設(shè)計(jì)使用雙端口千兆以太網(wǎng),因此本設(shè)計(jì)支持的最大視頻傳輸帶寬為2Gb/s。對(duì)于1080P 60幀/秒的視頻的帶寬為1920*1080*60*24,大約為3Gb/s,超過了本系統(tǒng)的最大網(wǎng)絡(luò)傳輸帶寬。而1080P 30幀/秒的視頻帶寬為1920*1080*30*24,大約為1.5Gb/s,小于本系統(tǒng)的最大網(wǎng)絡(luò)傳輸帶寬,因?yàn)楸鞠到y(tǒng)支持1080P 30幀的視頻實(shí)時(shí)傳輸。由于本系統(tǒng)使用兩個(gè)千兆以太網(wǎng)端口,因此每個(gè)端口的帶寬大約為750Mb/s,有效帶寬大概為75%。

       如圖1所示為本系統(tǒng)的硬件結(jié)構(gòu)框圖。DVI視頻從顯卡輸出后通過TFP401A解碼后,輸出R8G8B8的場(chǎng)同步點(diǎn)陣數(shù)據(jù),包括HSYNC,VSYNC,DE,ODCK,DATA等信號(hào),F(xiàn)PGA根據(jù)HSYNC,VSYNC,DE等場(chǎng)同步信號(hào)從視頻源接收以及截取有效視頻數(shù)據(jù)。視頻數(shù)據(jù)進(jìn)入FPGA后,將通過兩片SDRAM乒乓式的存入與讀出,每次以DVI視頻源的幀同步為切換信號(hào),使得每次在SDRAM中存入一幀,然后切換至另外一塊SDRAM。從SDRAM讀出時(shí)會(huì)根據(jù)控制信號(hào)確定哪些數(shù)據(jù)發(fā)至第一塊PHY,剩下的數(shù)據(jù)發(fā)送至第二塊PHY。PC機(jī)軟件可以通過UART口設(shè)置FPGA的某些參數(shù),同時(shí)還能回讀發(fā)送卡當(dāng)前的工作狀態(tài)信息。

圖片1.png

圖1 雙端口千兆以太網(wǎng)視頻傳輸卡硬件

       圖2為本系統(tǒng)的軟件架構(gòu)圖,F(xiàn)PGA通過VSYNC信號(hào)來判斷每一幀的起點(diǎn),并以此信號(hào)控制SDRAM的切換,以及內(nèi)部各級(jí)FIFO的清空。FPGA根據(jù)HSYNC和DE信號(hào)獲取一幀中點(diǎn)數(shù)據(jù)的坐標(biāo),根據(jù)控制從中截取有效的視頻圖像數(shù)據(jù)向后一級(jí)傳至異步緩存FIFO1。該異步緩存FIFO1主要用于DVI數(shù)據(jù)輸入和SDRAM讀寫的異步時(shí)鐘域轉(zhuǎn)換。SDRAM讀寫控制模塊根據(jù)FIFO1深度指示信息從FIFO1中讀出數(shù)據(jù)寫入SDRAM1或者SDRAM2, 同時(shí)SDRAM讀寫控制模塊判斷FIFO2和FIFO3的深度,當(dāng)深度小于某個(gè)值時(shí)則從SDRAM1或者SDRAM2中讀出寫入FIFO2或者FIFO3。以太網(wǎng)打包模塊則負(fù)責(zé)對(duì)數(shù)據(jù)進(jìn)行按照UDP格式打包,包括添加UDP包頭,從FIFO2或者FIFO3中讀出數(shù)據(jù)填入包中,同時(shí)計(jì)算FCS校驗(yàn)并添加到包尾。同時(shí)該模塊還有一個(gè)工作就是將數(shù)據(jù)轉(zhuǎn)換為滿足RGMII時(shí)序的雙沿?cái)?shù)據(jù)寫入PHY芯片KSZ9031RNX。

圖片2.png

圖2 雙端口千兆以太網(wǎng)視頻傳輸卡軟件架構(gòu)圖

       UART是PC軟件與傳輸卡的接口,用于PC機(jī)控制傳輸卡的視頻截取分辨率,通常不會(huì)將DVI接收的視頻全部通過千兆以太網(wǎng)發(fā)送出去,而是截取其中一部分。另外PC機(jī)還可以控制千兆以太網(wǎng)端口1和千兆以太網(wǎng)端口2分別發(fā)送的分辨率,例如從DVI輸出視頻截取1920*768的圖像,則端口1和端口2可以分別發(fā)送1920*384。兩個(gè)端口分別發(fā)送的行數(shù)可以任意調(diào)整,但總數(shù)保持與截取的高度一致。

       整個(gè)系統(tǒng)的時(shí)鐘域如圖3所示,DVI視頻輸入部分使用TFP401A輸入的像素?cái)?shù)據(jù)伴隨時(shí)鐘ODCK,該時(shí)鐘頻率會(huì)隨著輸入視頻分辨率變化而變化,視頻分辨為1080P,該時(shí)鐘頻率最高,約為157MHz。SDRAM讀寫控制部分,使用PLL輸出時(shí)鐘,頻率為150MHz,在該時(shí)鐘頻率下實(shí)現(xiàn)SDRAM的讀寫,以及將數(shù)據(jù)寫入到異步FIFO2和FIFO3。以太網(wǎng)打包和發(fā)送部分使用固定時(shí)鐘125MHz,這是因?yàn)榍д滓蕴W(wǎng)的發(fā)送時(shí)鐘為固定的125MHz。

圖片3.png

圖3 雙端口千兆以太網(wǎng)視頻傳輸卡軟件時(shí)鐘域

       SDRAM控制模塊負(fù)責(zé)數(shù)據(jù)寫入和讀出SDRAM的控制,由于該模塊工作時(shí)鐘為150MHz,所以SDRAM的工作時(shí)鐘也為150MHz。SDRAM的地址使用行列地址復(fù)用,同時(shí)還需要有預(yù)充電和刷新時(shí)間,因此SDRAM頁訪問一次有效讀寫數(shù)據(jù)為256個(gè),而寫入實(shí)際花費(fèi)時(shí)鐘數(shù)為285個(gè),讀出實(shí)際花費(fèi)時(shí)鐘數(shù)為300個(gè),由此計(jì)算出SDRAM的實(shí)際寫入有效帶寬為256/285*150MHz,SDRAM的實(shí)際讀出有效帶寬為256/300*150MHz。1080P,30幀/秒的圖像數(shù)據(jù)帶寬為1920*1080*30,大約為62.5MHz,由于使用乒乓存儲(chǔ)方式,在每一幀圖像的存入與讀出過程中只要滿足SDRAM寫入帶寬265/285*150>62.5和讀出帶寬256/300*150>62.5即可。通過該處可以看出實(shí)際SDRAM的讀寫帶寬相對(duì)數(shù)據(jù)帶寬裕量很大,但實(shí)際上SDRAM的工作時(shí)鐘并不能降低。因?yàn)镈VI圖像數(shù)據(jù)每一行數(shù)據(jù)是連續(xù)輸入, 1080P每行連續(xù)輸入1920*1.2點(diǎn),其中前1920點(diǎn)為有效像素,剩下的為行消隱。要保證下一行數(shù)據(jù)來之前,將FIFO1中的數(shù)據(jù)寫入SDRAM,而使得FIFO1不至于寫滿,就必須滿足F_SDRAM*1920>F_ODCK*1920*1.2 , F_ODCK最大時(shí)鐘為157MHz,因此F_SDRAM的時(shí)鐘最小為131MHz,因此本設(shè)計(jì)最終選用了150MHz的SDRAM工作時(shí)鐘。

總結(jié)

       本文設(shè)計(jì)了一種雙端口千兆以太網(wǎng)傳輸卡,他可以最大支持1080P 30幀/秒的視頻發(fā)送,而且發(fā)送的圖像分辨率大小,圖像區(qū)域均可由PC軟件靈活控制。本設(shè)計(jì)通過SDRAM的乒乓式頁模式訪問提高了SDRAM的讀寫帶寬。最終根據(jù)設(shè)計(jì)做出了如圖4的硬件板,并編寫了相應(yīng)的FPGA程序,在硬件板上進(jìn)行測(cè)試,系統(tǒng)性能和穩(wěn)定性均滿足要求。

       實(shí)踐證明,安路AL3 FPGA芯片性能穩(wěn)定,邏輯效率、IP模塊和時(shí)序性能方面不輸與國外芯片,本設(shè)計(jì)中涉及幾個(gè)高速時(shí)鐘時(shí)序余量充足,部分性能指標(biāo)甚至超過國外芯片。另外,配套TD編譯軟件,功能較為齊全、編譯速度快、時(shí)序準(zhǔn)確、上手容易、能夠滿足一般開發(fā)需求。 

圖片4.png

圖4 雙端口千兆以太網(wǎng)視頻傳輸卡


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請(qǐng)及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。