新聞中心

EEPW首頁 > EDA/PCB > 設(shè)計應(yīng)用 > 基于FPGA的以太網(wǎng)視頻廣播接收系統(tǒng)的設(shè)計

基于FPGA的以太網(wǎng)視頻廣播接收系統(tǒng)的設(shè)計

作者: 時間:2007-07-16 來源:網(wǎng)絡(luò) 收藏
 :本文介紹了一種實用的基于,由于采用了技術(shù),使得系統(tǒng)結(jié)構(gòu)簡單,可靠性高。最后進(jìn)行了波形仿真,結(jié)果表明了設(shè)計的正確性。
關(guān)鍵詞;;現(xiàn)場可編程門陣列;設(shè)計

一、引 言
  近年來,現(xiàn)場可編程門陣列()技術(shù)以其獨有的優(yōu)勢,在電子設(shè)計領(lǐng)域得到越來越廣泛的應(yīng)用。FPGA除具有集成度高、體積小、功耗低、電路簡單、可靠性高等優(yōu)點外,還有自身突出的優(yōu)點,即“現(xiàn)場可編程性”,用戶可以很方便地通過相應(yīng)的軟件,在較短時間內(nèi)對FPGA內(nèi)部邏輯反復(fù)設(shè)計或修改,直到滿意為止。這就大大縮短了開發(fā)周期,提高了最終產(chǎn)品的性能。

  是最廣泛使用的網(wǎng)絡(luò)標(biāo)準(zhǔn)。它成為最受歡迎的技術(shù),不僅因為其在市場上最低的NIC(網(wǎng)絡(luò)接口卡)和HUB端口價格,還因為它具有維護(hù)簡單、易于擴(kuò)充等優(yōu)點。

  本文介紹的是基于標(biāo)準(zhǔn)以太網(wǎng)(10 Mbps)和快速以太網(wǎng)(100 Mbps)的系統(tǒng)。由于系統(tǒng)的主要部分采用了FPGA設(shè)計技術(shù),使得系統(tǒng)的成本較低和開發(fā)周期較短,而且由于前端采用的是具有10M/100M兼容的芯片,并同時支持兩種特性的以太網(wǎng)(全雙工和半雙工),有助于實現(xiàn)全雙工和半雙工以太網(wǎng)之間的無縫連接,從而使得該系統(tǒng)具有廣闊的應(yīng)用前景和實用性。

、基本原理
  系統(tǒng)實現(xiàn)中涉及到網(wǎng)絡(luò)方面的許多相關(guān)技術(shù)和各種相關(guān)的協(xié)議、標(biāo)準(zhǔn),下面作一簡要介紹。

1.CSMA/CD協(xié)議
  以太網(wǎng)用載波偵聽多路訪問/沖突檢測(CSMA/CD)作為它的媒體訪問控制協(xié)議,CSMA/CD定義了以太網(wǎng)節(jié)點為傳輸數(shù)據(jù)如何獲得對網(wǎng)絡(luò)媒體的訪問。其工作過程如下:

(1)如果介質(zhì)空閑,則傳輸數(shù)據(jù),否則,轉(zhuǎn)(2); 
  (2)如果介質(zhì)忙,則堅持偵聽,直到介質(zhì)空閑,立即傳送數(shù)據(jù);
 ?。?)如果在傳送過程中,檢測到?jīng)_突發(fā)生,發(fā)送一個短的阻塞碼,以確保讓所有終端都檢測到?jīng)_突發(fā)生,然后停止發(fā)送;
 ?。?)發(fā)送完阻塞碼后,等待一個隨機時間,再試圖重新發(fā)送,即轉(zhuǎn)(1)。

  目前,實際使用較多的沖突檢測方法是終端發(fā)送器把數(shù)據(jù)發(fā)送到線纜上,終端接收器又把數(shù)據(jù)接收回來和發(fā)送的數(shù)據(jù)比較,判別是否一致,若一致,沒有沖突;若不一致,表示沖突發(fā)生。

2.以太網(wǎng)幀格式
  當(dāng)應(yīng)用程序用UDP(TCP)傳送數(shù)據(jù)時,數(shù)據(jù)被送入?yún)f(xié)議棧中,然后逐個通過每一層直到被當(dāng)作一串比特流送入網(wǎng)絡(luò),其中每一層對收到的數(shù)據(jù)都要增加一些首部信息(有時還要增加尾部信息)。UDP傳給IP的數(shù)據(jù)單元稱作UDP報文段或簡稱為UDP段,IP傳給網(wǎng)絡(luò)接口層的數(shù)據(jù)單元稱作IP數(shù)據(jù)報。

  在OSI模型中,數(shù)據(jù)鏈路層傳輸?shù)臄?shù)據(jù)單位是幀。同樣,以太網(wǎng)CSMA/CD也是通過幀來發(fā)送實際數(shù)據(jù)的。以太網(wǎng)802.3u的MAC子層定義了幀結(jié)構(gòu),如圖1所示。


  其中:前導(dǎo)碼用于物理信號的同步,為7個字節(jié)的10101010序列和1個字節(jié)的10101011序列;目的地址和源地址使用的是MAC地址,前3個字節(jié)稱為Block ID,它標(biāo)志生產(chǎn)設(shè)備的廠家并由IEEE賦值;后3個字節(jié)稱為設(shè)備ID,它由廠家賦值,而且總是唯一的;數(shù)據(jù)長度指要傳送的數(shù)據(jù)的總長度;數(shù)據(jù)和填充字符可以從0到1 500字節(jié)不等,若實際數(shù)據(jù)小于所需的最小長度,MAC將追加一些可變的填充字符(PAD),以維持64字節(jié)的最小幀規(guī)模。若數(shù)據(jù)比1 500字節(jié)長,則更高層(一般是第三層)將把數(shù)據(jù)字段分成不同的幀進(jìn)行傳送;幀校驗用來確保進(jìn)行正確的傳送,循環(huán)冗余校驗(CRC)用來進(jìn)行有效幀的檢查。在以太網(wǎng)數(shù)據(jù)包的數(shù)據(jù)部分,包含了各種上層協(xié)議的首部。在本文的系統(tǒng)中,包含了IP首部和UDP首部。

3.介質(zhì)無關(guān)接口(MII)
MII是一個用于互連控制器和收發(fā)器的全新介質(zhì)無關(guān)接口,它是100 Mbit/s快速以太網(wǎng)開發(fā)工作的一個組成部分。此接口提供了新的物理連接機制以及控制器和收發(fā)器的功能劃分。該接口主要由以下一些信號組成:

(1)發(fā)送信號
  包括半字節(jié)寬(Nibble-wide)的發(fā)送數(shù)據(jù)信號,加上相關(guān)的發(fā)送時鐘、發(fā)送允許信號和發(fā)送差錯信號。數(shù)據(jù)用時鐘同步,時鐘率是數(shù)據(jù)率的1/4 (即100 Mbit/s以太網(wǎng)用25 MHz的時鐘),發(fā)送信號用于將數(shù)據(jù)從控制器移動到收發(fā)器,然后編碼并發(fā)送到LAN上。

(2)接收信號
  包括半字節(jié)寬的接收數(shù)據(jù),加上相關(guān)的接收時鐘、接收數(shù)據(jù)有效信號和接收差錯信號。數(shù)據(jù)用時鐘同步,時鐘率是數(shù)據(jù)率的1/4。接收信號用于將解碼的數(shù)據(jù)從收發(fā)器移動到控制器。

(3)以太網(wǎng)控制信號
  這些信號是由收發(fā)器生成的載波偵聽和沖突檢測信號,用于控制器做介質(zhì)訪問控制。它們只用于半雙工模式,在全雙工模式中被忽略。

(4)管理信號
  包括一個串行管理I/O信號和相關(guān)的時鐘信號。用于在控制器和收發(fā)器之間雙向交換配置和控制的管理信息。

三、系統(tǒng)設(shè)計
該系統(tǒng)實現(xiàn)的總體框圖如圖2所示。

  其中以太網(wǎng)接口采用的是傳統(tǒng)的RJ45接口,10M/100M收發(fā)器可以采用DM9101 單片實現(xiàn),F(xiàn)PGA部分采用的是Xilinx公司的Spartan II系列的芯片,MPEG-1解碼芯片采用了C-Cube公司的解碼芯片。10M/100M收發(fā)器到FPGA之間采用MII標(biāo)準(zhǔn)的接口,F(xiàn)PGA到 MPEG-1解碼芯片之間采用I2S形式的接口。

1.DM9101
  DM9101是一個物理層的、單片、低功耗的100Base-TX和10Base-T操作的轉(zhuǎn)換器。在介質(zhì)這一邊,它既為用于100Base -TX快速以太網(wǎng)的非屏蔽雙絞線對(5類同軸電纜)提供一個直接的接口,也為用于10Base-T以太網(wǎng)的UTP5/UTP3提供直接的接口。通過 IEEE802.3u介質(zhì)無關(guān)接口(MII),DM9101可以與介質(zhì)接入控制(MAC)層相連接,確保了在不同生產(chǎn)商的產(chǎn)品之間的高度互操作性。

  該芯片集成了MII標(biāo)準(zhǔn)接口、100Base-TX發(fā)送/接收器、10Base-T發(fā)送/接收器、自動協(xié)商、沖突檢測、載波偵聽、4B5B編/解碼器、加/解擾器、串口和并口之間的轉(zhuǎn)換等功能。

  由于采用了MII標(biāo)準(zhǔn)接口,使得設(shè)計者可以通過該接口的管理信號線對該芯片的寄存器進(jìn)行設(shè)置,從而完成對10 Mbps和100 Mbps兩種速率的選擇,突出了設(shè)計的靈活性。

2.FPGA設(shè)計
由于要使數(shù)據(jù)能在以太網(wǎng)上傳輸,服務(wù)器端的發(fā)送程序應(yīng)該把要傳輸?shù)臄?shù)據(jù)進(jìn)行打包(或封裝)。本系統(tǒng)中所要傳輸?shù)臄?shù)據(jù)為視頻數(shù)據(jù)(VCD數(shù)據(jù)),而VCD數(shù)據(jù)一般是以dat格式存放在光盤中的。因而在接收端應(yīng)對接收到的數(shù)據(jù)包進(jìn)行解包,并同時完成數(shù)據(jù)格式轉(zhuǎn)換的功能,使得送到MPEG-1解碼芯片的數(shù)據(jù)格式為dat格式的數(shù)據(jù),從而進(jìn)行解碼,最后用普通的電視機就能夠接收。

  因而該部分主要要實現(xiàn)的功能是:先完成對接收到的以太網(wǎng)數(shù)據(jù)幀進(jìn)行解包,取出封裝在以太網(wǎng)數(shù)據(jù)幀中的數(shù)據(jù)部分,然后再分別解IP數(shù)據(jù)包和UDP數(shù)據(jù)包,把真正的具有VCD播放格式的數(shù)據(jù)取出來,經(jīng)過一個先進(jìn)先出(FIFO)緩沖器輸出到MPEG-1解碼芯片進(jìn)行解碼。其中在解包的過程中,要對數(shù)據(jù)進(jìn)行校驗,校驗正確的數(shù)據(jù)包才進(jìn)行傳送,對于校驗不正確的數(shù)據(jù)包采用了直接丟棄的方法,所采用的校驗算法是循環(huán)冗余校驗算法(CRC)。

  設(shè)計框圖如圖3所示。


  (1)前導(dǎo)檢測:當(dāng)系統(tǒng)檢測到連續(xù)出現(xiàn)了15個nibble的1010,同時隨后的一個nibble為1011時,說明一個以太網(wǎng)數(shù)據(jù)幀開始了,應(yīng)該對該部分的數(shù)據(jù)作進(jìn)一步的處理。

 ?。?)組字節(jié):由于從DM9101芯片出來的數(shù)據(jù)信號是以一次四位元組(nibble)的形式傳輸?shù)模蚨獙λM(jìn)行組字節(jié)操作,每2個nibble組成一個字節(jié),具體操作過程依據(jù)的是MII幀結(jié)構(gòu)中的字節(jié)組成格式進(jìn)行。

 ?。?)CRC校驗:對以太網(wǎng)幀中的目的地址、源地址、長度、數(shù)據(jù)進(jìn)行CRC校驗,并與幀的最后四個字節(jié)進(jìn)行比較,如果一致,即為正確的以太網(wǎng)數(shù)據(jù);若不一致,則丟棄這一幀。

 ?。?)MPEG-1數(shù)據(jù):取出以太網(wǎng)幀中的長度字節(jié)的值,用這個值來預(yù)置一個計數(shù)器,從而對數(shù)據(jù)進(jìn)
行計數(shù)控制,取出其中的MPEG-1格式的有效數(shù)據(jù)。

  (5)FIFO:由于普通的以太網(wǎng)的數(shù)據(jù)傳輸速率是10
Mbps或100 Mbps,而進(jìn)行MPEG-1解碼時的速率一般為1.5 Mbps左右,因而要對數(shù)據(jù)流進(jìn)行速率調(diào)整。該FIFO直接利用了Spartan II系列芯片內(nèi)部的存儲模塊進(jìn)行緩存。

 ?。?)同步頭檢測:dat格式的數(shù)據(jù)幀有一個同步頭為:00FFFFFFFFFFFFFFFFFFFF00(十六進(jìn)制),當(dāng)檢測到該同步頭時,表明一個dat數(shù)據(jù)幀開始了,應(yīng)將其后的數(shù)據(jù)連同該同步頭信息一起輸出至解碼芯片。

  (7)串行輸出:把最后得到的數(shù)據(jù)轉(zhuǎn)換為串行數(shù)據(jù),并以I2S的格式將數(shù)據(jù)和時鐘等信號輸出到  MPEG-1解碼芯片中進(jìn)行解碼。  


四、仿真結(jié)果
1.組字節(jié)仿真結(jié)果
  數(shù)據(jù)從2個nibble組成一個字節(jié)的仿真結(jié)果如圖4所示。其中,CLK信號是25 MHz的時鐘信號,DA是由4位數(shù)據(jù)組成的數(shù)據(jù)信號,它們由DM9101芯片輸出;DATA為組成字節(jié)后的8位數(shù)據(jù)信號,CLKB是由CLK信號二分頻所得到的Byte時鐘信號。

2.I2S格式仿真結(jié)果
  以I2S格式輸出的數(shù)據(jù)的仿真結(jié)果如圖5所示。仿真中采用的格式是:32位BCK,MSB最先,右通道為低電平。其中BCK是位時鐘信號,LRCK是左右時鐘選擇時鐘,DATA是VCD格式的MPEG-1視/音頻數(shù)據(jù)。



 結(jié)
  本系統(tǒng)所采用的FPGA芯片為Xilinx公司的Spartan II系列芯片,用Foundation軟件工具開發(fā)。設(shè)計輸入完成后,進(jìn)行整體的編譯和邏輯仿真,然后進(jìn)行轉(zhuǎn)換、布局、延時仿真生成配置文件,最后下載至 FPGA器件,實現(xiàn)其硬件功能。由于系統(tǒng)的很多功能由一塊FPGA實現(xiàn),外圍器件很少,所以系統(tǒng)體積小、可靠性高,且器件的可編程性使得系統(tǒng)功能易于完善。仿真結(jié)果表明,各信號的邏輯功能和時序配合完全達(dá)到了設(shè)計要求。

參考文獻(xiàn)

[1] IEEEStandard 802.3.(2000 Edition)[S].
[2] 前導(dǎo)工作室譯.TCP/IP技術(shù)大全[M].機械工業(yè)出版社,2001.
[3] 郎波,黃冬泉,等譯.千兆以太網(wǎng)技術(shù)與應(yīng)用[M].機械工業(yè)出版社,2000.
[4] 劉毓敏.光盤機(CD、VCD、DVD、LD)技術(shù)基礎(chǔ)教程[M].電子工業(yè)出版社,1998.


評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉