《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于DSP/BIOS的數(shù)字電視傳輸流網(wǎng)絡(luò)采集系統(tǒng)
基于DSP/BIOS的數(shù)字電視傳輸流網(wǎng)絡(luò)采集系統(tǒng)
摘要: 本系統(tǒng)實現(xiàn)了在以TI公司的TMS320DM643為核心的嵌入式系統(tǒng)中,對數(shù)字電視傳輸流(TS)信號進(jìn)行采集并在以太網(wǎng)中傳輸。利用本系統(tǒng)可輕松地實現(xiàn)在局域網(wǎng)中對數(shù)字電視傳輸流信號的傳輸,、調(diào)度,。數(shù)字電視傳輸流信號源是針對歐洲數(shù)字有線廣播系統(tǒng)標(biāo)準(zhǔn)(DVB-C)的數(shù)字有線電視信號。網(wǎng)絡(luò)接入硬件在以TMS320DM643為核心的嵌入式系統(tǒng)中實現(xiàn),網(wǎng)絡(luò)接入軟件采用了TI公司針對C6000系列DSP推出的TCP/IPNDK(NetworkDeveloper’sKit)網(wǎng)絡(luò)開發(fā)包來實現(xiàn)
Abstract:
Key words :

TCP/IP是因特網(wǎng)上傳輸數(shù)據(jù)所必需的協(xié)議, 這種網(wǎng)絡(luò)通信模式在PC之間的實現(xiàn)已經(jīng)完善, 但是體積、價格等因素限制了其應(yīng)用的范圍。因此, 基于TCP/IP 協(xié)議與以太網(wǎng)的嵌入式系統(tǒng)網(wǎng)絡(luò)通信設(shè)計成為目前一個熱門的話題,。本系統(tǒng)實現(xiàn)了在以TI公司的TMS320DM643為核心的嵌入式系統(tǒng)中,對數(shù)字電視傳輸流(TS)信號進(jìn)行采集并在以太網(wǎng)中傳輸,。利用本系統(tǒng)可輕松地實現(xiàn)在局域網(wǎng)中對數(shù)字電視傳輸流信號的傳輸,、調(diào)度。數(shù)字電視傳輸流信號源是針對歐洲數(shù)字有線廣播系統(tǒng)標(biāo)準(zhǔn)(DVB-C)的數(shù)字有線電視信號,。網(wǎng)絡(luò)接入硬件在以TMS320DM643為核心的嵌入式系統(tǒng)中實現(xiàn),,網(wǎng)絡(luò)接入軟件采用了TI公司針對C6000系列DSP推出的TCP/IP NDK(Network Developer’s Kit)網(wǎng)絡(luò)開發(fā)包來實現(xiàn)。

系統(tǒng)電路設(shè)計

電路主要由5部分組成,。數(shù)字電視傳輸流網(wǎng)絡(luò)采集系統(tǒng)框圖如圖1所示,。



圖1 數(shù)字電視傳輸流網(wǎng)絡(luò)采集系統(tǒng)框圖

其主要功能是通過傳輸流接口模塊采集數(shù)字電視信號進(jìn)入PLD(Cyclone EP1C6Q240C8)芯片,進(jìn)行必要的處理后,,將信號發(fā)送到DSP(TMS320DM643)芯片存儲起來,,并進(jìn)行算法處理。通過TMS320DM643對BCM5221進(jìn)行必要的配置,,將存儲在TMS320DM643內(nèi)的數(shù)據(jù)通過BCM5221傳送到局域網(wǎng)中,并通過計算機(jī)接收數(shù)據(jù),。

傳輸流接口模塊

傳輸流接口模塊由CY7B933輸入接口芯片及其電器接口電路組成。CY7B933輸入接口電路是點(diǎn)對點(diǎn)的傳輸模塊,,可以通過光纖,、同軸電纜和雙絞線進(jìn)行高速的串行數(shù)據(jù)傳輸。輸入接口符合DVB-ASI的接口標(biāo)準(zhǔn),。輸入接口接收到串行位流后,,通過內(nèi)部PLL時鐘同步恢復(fù)數(shù)據(jù)的時鐘信息,并對位流進(jìn)行串并轉(zhuǎn)換、解碼和傳輸檢錯等操作,。這種輸入接口能靈活地把高速點(diǎn)對點(diǎn)串行數(shù)據(jù)轉(zhuǎn)變成并行數(shù)據(jù),,而且應(yīng)用領(lǐng)域廣泛,包括各種服務(wù)器,、存儲器和視頻傳輸?shù)膽?yīng)用,。

PLD控制模塊

在項目中,此部分硬件選用的是Altera公司的EP1C6Q240C8芯片,。

此模塊的主要功能是實現(xiàn)與CY7B933接收芯片的接口,把數(shù)據(jù)從CY7B933接收進(jìn)來,,并緩存數(shù)據(jù),。這部分功能均由VHDL語言編寫的功能模塊實現(xiàn)。主要有兩個功能模塊:RECEIVE與FIFO,。RECEIVE模塊主要負(fù)責(zé)從CY7B933接收數(shù)據(jù)字段,;FIFO模塊主要負(fù)責(zé)緩存數(shù)據(jù)。

RECEIVE模塊

RECEIVE模塊的功能是實現(xiàn)與CY7B933接收芯片的接口,,把數(shù)據(jù)從CY7B933接收進(jìn)來,。其工作方式是以一個傳輸流包為邊界接收數(shù)據(jù)的。

首先,,RECEIVE模塊會檢測傳輸流包的邊界,,通過查找包頭字節(jié)(固定為0x47)間的字節(jié)數(shù)來確定。因為包中數(shù)據(jù)也可能含有0x47,,所以要犧牲3個包的數(shù)據(jù)來檢查3次,。當(dāng)發(fā)現(xiàn)0x47這個字節(jié)的時候,就會觸發(fā)一個內(nèi)部的計數(shù)器開始計數(shù),。當(dāng)計數(shù)到188后,,如果下一個字節(jié)又是0x47,說明傳輸流包屬于188個字節(jié)的包,,那么計數(shù)器被清零,;如果下一個字節(jié)又是0x47,說明傳輸流包屬于188個字節(jié)的包,,那么計數(shù)器被清零,,否則計數(shù)器清零并重新開始檢測邊界。

當(dāng)檢測到邊界以后,,RECEIVE模塊開始接收數(shù)據(jù)包,。計數(shù)器會從零開始計數(shù),在接收數(shù)據(jù)的過程中使能wrreq輸出有效信號,同時把數(shù)據(jù)輸出到下一級,。當(dāng)計數(shù)到188時,,表示一個數(shù)據(jù)包接收完成。當(dāng)一個包的數(shù)據(jù)接收完之后,計數(shù)器清零,,并置ts188,,保持高電平一個時鐘周期。下一個周期檢測數(shù)據(jù)是否為0x47,,如果是,,說明是下一個數(shù)據(jù)包的邊界;否則,,說明出現(xiàn)了錯誤,,并重新回到上一段所說的檢測數(shù)據(jù)包邊界的狀態(tài)。

此外,,PLD模塊內(nèi)會有一個專用計數(shù)器記錄空包數(shù),,當(dāng)接收到數(shù)據(jù)包后,會首先檢測此數(shù)據(jù)包是否為空包,,如果是空包,,PLD模塊會把這個空包刪除,并在計數(shù)器中加1,。如果接收的不是空包,,就會把計數(shù)器的值加到這個數(shù)據(jù)包的私有字段中,并緩存到FIFO,。然后計數(shù)器自動清零,。這樣處理數(shù)據(jù)包的目的是為了減少網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)流量,從而可以傳輸更多的傳輸流數(shù)據(jù),。把計數(shù)器的值加入私有字段是為了在計算機(jī)接收到數(shù)據(jù)后,,可以把原來的空包恢復(fù)出來,從而保證原傳輸流數(shù)據(jù)的完整性,。

FIFO模塊

FIFO模塊的功能是從RECEIVE模塊接收數(shù)據(jù),,并緩存起來。當(dāng)RECEIVE模塊接收完一個完整的傳輸流數(shù)據(jù)包之后,,會發(fā)送ts188或ts204的中斷信號給DSP,,DSP就會啟動EDMA功能從FIFO模塊接收數(shù)據(jù)。DSP與FIFO模塊采用異步連接的方式,,具體的接收操作在DSP部分說明中再加以描述,。

DSP算法處理模塊

此模塊主要由以TMS320DM643為核心的嵌入式系統(tǒng)組成。主要實現(xiàn)從PLD模塊接收傳輸流數(shù)據(jù)包,,把數(shù)據(jù)包打包成TCP/IP格式,,并實現(xiàn)對網(wǎng)絡(luò)接口(BCM5221)控制模塊的初始化,然后把數(shù)據(jù)包傳送到網(wǎng)絡(luò)模塊,。

為了實現(xiàn)上述功能,,必須建立起一套以TMS320DM643為核心的基本系統(tǒng)。

系統(tǒng)的具體配置

時鐘配置:EMIF內(nèi)核時鐘ECLKIN是133MHz。此外,,系統(tǒng)的外設(shè)總線,、EDMA傳輸和L2存儲器的工作時鐘為CPU內(nèi)核時鐘的1/2,即300MHz,;片上定時器的工作時鐘為CPU內(nèi)核時鐘的1/8,,即75MHz。

中斷配置:TMS320DM643除了RESET和NMI引腳提供外部不可屏蔽中斷請求輸入以外,,還有兩個外部中斷引腳GP0[5]/EXT_INT5,、GP0[7]/EXT_INT7,以提供可屏蔽的外部中斷請求輸入,。系統(tǒng)中,,EXT_INT5外部中斷用作PLD模塊的請求接收數(shù)據(jù)信號,每當(dāng)PLD模塊接收完一個傳輸流包,,就會發(fā)送一個外部中斷信號給DSP,通知DSP接收數(shù)據(jù),。此外,,EDMA中斷用于接收完一個包的數(shù)據(jù)后做后續(xù)處理。



系統(tǒng)對EMIF的使用情況:

系統(tǒng)在CE0空間擴(kuò)展了4M×64bit的SDRAM存儲器(MT48LC4M32BPG),,用于存儲程序與數(shù)據(jù),。SDRAM的工作時鐘由TMS320DM643的ECLKOUT1提供,與EMIF的工作時鐘頻率相同,,本系統(tǒng)中默認(rèn)ECLKIN為其時鐘源,,即133MHz。

系統(tǒng)在CE1空間擴(kuò)展了4M×8bit的Flash存儲器(Am29LV033C),。在對Flash進(jìn)行讀/寫訪問前,,需要通過EMIF的CE1控制寄存器CE1CTL,將CE1空間配置為8-bit異步存儲器接口,,及讀/寫時序,。

系統(tǒng)在CE2空間擴(kuò)展了與FIFO模塊連接的接口。在DSP看來,,F(xiàn)IFO模塊可視為8bit異步只讀存儲器,。FIFO模塊的讀使能信號rdreq與TMS320DM643的CE2片選信號連接;FIFO模塊的讀時鐘信號rdclk與TMS320DM643的ARE讀使能信號連接,。

以太網(wǎng)接口

TMS320DM643上集成有一個EMAC+MDIO片上外設(shè),,EMAC是Ethernet Media Access Controller的縮寫,即以太網(wǎng)媒體訪問控制器,,MDIO是Management Data Input/Output的縮寫,,即管理數(shù)據(jù)輸入/輸出模塊。EMAC+MDIO用于為以太網(wǎng)物理層(PHY)器件提供接口,其中,,EMAC為接口以太網(wǎng)PHY提供數(shù)據(jù)通路,,MDIO為接口以太網(wǎng)PHY提供管理信息通路。

TMS320DM643的網(wǎng)絡(luò)接口原理框圖如圖2所示,。圖2描述了EMAC+MDIO與DSP中間有一個EMAC 控制模塊,。它主要包含一些必備的、使EMAC更加有效使用DSP的存儲空間,,控制其復(fù)位,、中斷的一些邏輯。

這些寄存器的地址空間為:0x1C800000~0x1C803FFF,。



圖2 TMS320DM643的網(wǎng)絡(luò)接口原理框圖

網(wǎng)絡(luò)接口控制模塊

本系統(tǒng)用Broadcom公司的BCM5221作為10/100Base-TX以太網(wǎng)收發(fā)器,,BCM5221的MII接口與TMS320DM643的MII接口對接。具體接口如圖3所示,。RJ45連接器選用AMP公司的406549-1,,其上帶兩個LED指示燈,右邊的LED為綠色,,用作指示連接狀態(tài),。左邊的為黃色,正常情況下用來指示數(shù)據(jù)傳輸,。



圖3 TMS320DM643與PHY設(shè)備連接框圖

電源模塊

系統(tǒng)包括4組電源:系統(tǒng)外接穩(wěn)壓電源,,把220V的交流電源電壓轉(zhuǎn)換成5V直流電壓;PLD模塊電源由兩種電源供電,,分別是3.3V和1.5V,;TMS320DM643需要兩種電源,分別為CPU核心和周邊的I/O接口供電,。周邊I/O電壓要求3.3V,,CPU核心電壓只要1.4V;網(wǎng)絡(luò)接口控制模塊采用3.3V電源供電,。

 

系統(tǒng)軟件設(shè)計

系統(tǒng)的軟件設(shè)計主要是通過TCP/IP網(wǎng)絡(luò)開發(fā)包NDK來實現(xiàn)的,。該開發(fā)包支持TCP/IP協(xié)議,并占用較少的系統(tǒng)資源,。NDK僅用200kB~250kB的程序空間和95kB的數(shù)據(jù)空間即可支持常規(guī)的TCP/IP服務(wù),。所以,NDK很適合目前嵌入式系統(tǒng)的硬件環(huán)境,,是實現(xiàn)DSP網(wǎng)絡(luò)開發(fā)的重要工具,。

系統(tǒng)軟件的框圖如圖4所示。



圖4 軟件系統(tǒng)圖

具體流程:系統(tǒng)配置主要在初始化函數(shù)中完成,,此初始化函數(shù)將在.cinit初始化后,,并在DSP/BIOS初始化和main函數(shù)之前調(diào)用,。系統(tǒng)配置需要開啟INT8中斷,也就是EDMA傳輸中斷,,并設(shè)置GPIO7引腳為高電平,,從而使PLD模塊始終處于初始狀態(tài)。TCP/IP協(xié)議配置在任務(wù)線程中完成,,主要實現(xiàn)服務(wù)器IP地址和網(wǎng)關(guān)的配置,。當(dāng)其完成后,系統(tǒng)就會觸發(fā)一個軟件中斷,,在軟件中斷程序中,,服務(wù)器會產(chǎn)生一個用于偵聽的端口,并開始偵聽網(wǎng)絡(luò)上的請求,。此時,,服務(wù)器已經(jīng)處于待命狀態(tài),等待客戶機(jī)的傳輸請求,。

當(dāng)客戶機(jī)的傳輸請求到來時,,系統(tǒng)首先會使GPIO7引腳變?yōu)榈碗娖剑琍LD模塊開始發(fā)送數(shù)據(jù),。當(dāng)其接收到一個完整的傳輸流數(shù)據(jù)包后,,就會發(fā)一個中斷給DSP,DSP啟動EDMA,,用ping-pong的方式接收數(shù)據(jù)進(jìn)入特定的存儲器,當(dāng)接收完一個完整的傳輸流數(shù)據(jù)包后,,會產(chǎn)生硬件EDMA中斷,,中斷程序主要是設(shè)置特定的標(biāo)志位為1,然后退出硬件中斷,,重新回到軟件中斷程序,。當(dāng)軟件中斷程序檢測到特定的標(biāo)志位為1時,就會開始傳輸在存儲器中的傳輸流數(shù)據(jù)包給客戶機(jī),。當(dāng)一個數(shù)據(jù)包傳輸完畢后,,特定的標(biāo)志會被置0,系統(tǒng)等待下一個數(shù)據(jù)包的到來,。

當(dāng)客戶機(jī)要求停止傳輸?shù)恼埱蟮絹頃r,,系統(tǒng)會重新使GPIO引腳變?yōu)楦唠娖剑琍LD模塊回到初試狀態(tài),。此時,,系統(tǒng)也會處于待命狀態(tài),繼續(xù)偵聽網(wǎng)絡(luò),。

系統(tǒng)初始化

初始化配置主要包括EMIF總線配置,、中斷配置和底層網(wǎng)絡(luò)配置3個部分,。初始化工作首先在DSP/BIOS的全局參數(shù)配置窗口進(jìn)行設(shè)置,然后調(diào)用初始化函數(shù)進(jìn)行配置,。

在DSP/BIOS的全局配置窗口主要設(shè)置了DSP的工作時鐘頻率為600MHz,,選擇使用的片級支持庫CSL為DM643的庫,選用小端訪問模式,,片內(nèi)256kB的SRAM全部用于Cache,,并調(diào)用初始化函數(shù)dm643_init()。

TCP/IP協(xié)議配置

初始化程序dm643_init()完成后,,系統(tǒng)將進(jìn)入各個線程,。首先,系統(tǒng)會觸發(fā)任務(wù)線程TSK0,,在TSK0任務(wù)線程中執(zhí)行函數(shù)StackTest(),,其首先調(diào)用NC-SystemOpen()函數(shù),完成協(xié)議棧及其所需內(nèi)存的初始化,,然后新建一個系統(tǒng)配置句柄hCfg = CfgNew();,,并實現(xiàn)服務(wù)器IP地址和網(wǎng)關(guān)的配置。在本系統(tǒng)中,,IP地址配置為"192.168.0.2",;子網(wǎng)掩碼為"255.255.255.0";網(wǎng)關(guān)地址為"192.168.0.1",。配置好之后,,系統(tǒng)會觸發(fā)一個軟件中斷,并做好偵聽網(wǎng)絡(luò)的準(zhǔn)備,。

網(wǎng)絡(luò)偵聽

前面在任務(wù)線程中已經(jīng)配置了IP地址和網(wǎng)關(guān),,下面就要在軟件中斷中設(shè)置端口并進(jìn)行偵聽。首先,,在開始使用報路之前,,必須分配一個文件環(huán)境fdOpenSession( TaskSelf() )給這個報路。接著就可以創(chuàng)建一個報路對象stcp = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP),,并設(shè)置端口sin1.sin_port = htons(1000),,在這里設(shè)置端口號為1000,當(dāng)然也可以設(shè)置其他的端口號,。然后把端口號與報路對象綁定bind( stcp, (PSA) &sin1, sizeof(sin1),。最后進(jìn)入偵聽狀態(tài)listen( stcp, 1)。

數(shù)據(jù)的接收

當(dāng)客戶端要求傳輸數(shù)據(jù)的信號到來后,,系統(tǒng)會使GPIO7引腳變?yōu)榈碗娖?,PLD模塊開始發(fā)送數(shù)據(jù)。DSP通過EDMA方式來接收數(shù)據(jù),。EDMA可以在沒有CPU參與的情況下,,由EDMA控制器完成DSP存儲空間內(nèi)的數(shù)據(jù)搬移,。系統(tǒng)主要采用EDMA的ping-pong方式來連續(xù)接收數(shù)據(jù)。用ping-pong方式的目的是為了使接收操作和發(fā)送操作分開進(jìn)行,,增強(qiáng)程序的操作性和可讀性,。

限于篇幅,網(wǎng)絡(luò)發(fā)送部分不再贅述,。

結(jié)語

本系統(tǒng)的硬件和軟件功能已經(jīng)實現(xiàn),,網(wǎng)絡(luò)傳輸?shù)乃俣葹?MBps。按照此速度,,假設(shè)傳輸流中的空包百分比為40%,,可以傳輸5MBps的傳輸流數(shù)據(jù),至少可以傳輸2~3路的TS流節(jié)目,。因此,,可以證明本系統(tǒng)的設(shè)計方法合理、有效,。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。