基于NDK的數字電視傳輸流(TS)網(wǎng)絡(luò )采集系統

發(fā)布時(shí)間:2010-6-21 13:53    發(fā)布者:zealot
電視發(fā)展到今天已經(jīng)進(jìn)入數字化的時(shí)代了,數字電視系統取代模擬電視系統的一大優(yōu)勢在于實(shí)現了信息的數字化。電視節目信息實(shí)現數字化,所有的信息可以在數字世界里傳播、轉換、存儲和處理,從而使得廣播電視網(wǎng)能夠和計算機網(wǎng)絡(luò )相連接,大大提高了信息處理的能力。

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

系統的電路設計

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



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

傳輸流(TS)接口模塊

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

PLD控制模塊

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

此模塊主要的功能是實(shí)現與CY7B933接收芯片的接口,把數據從CY7B933接收進(jìn)來(lái),并緩存數據。這部分功能均由VHDL語(yǔ)言編寫(xiě)的功能模塊實(shí)現。主要有兩個(gè)功能模塊:RECEIVE模塊與FIFO模塊。RECEIVE模塊主要負責從CY7B933接收芯片接收數據字段進(jìn)來(lái);FIFO模塊主要負責緩存數據。功能框圖如圖2所示,下面分別對RECEIVE模塊與FIFO模塊的功能進(jìn)行介紹。


RECEIVE模塊

RECEIVE模塊的功能是實(shí)現與CY7B933接收芯片的接口,把數據從CY7B933接收進(jìn)來(lái)。其工作方式是以一個(gè)傳輸流包為邊界接收數據的。
首先RECEIVE模塊會(huì )檢測傳輸流包的邊界,通過(guò)查找包頭字節(固定為0x47)間的字節數來(lái)確定。因為包中數據也可能含有0x47,所以要犧牲三個(gè)包的數據來(lái)檢查三次。當發(fā)現0x47這個(gè)字節的時(shí)候,就會(huì )觸發(fā)一個(gè)內部的計數器開(kāi)始計數。當計數到188后,如果下一個(gè)字節又是0x47,說(shuō)明傳輸流包屬于188個(gè)字節的包,那么計數器被清零;如果下一個(gè)字節又是0x47,說(shuō)明傳輸流包屬于188個(gè)字節的包,那么計數器被清零,否則計數器清零并重新開(kāi)始檢測邊界。

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

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

fifo模塊

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

DSP(TMS320DM643)算法處理模塊

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

為了實(shí)現上述功能,必須建立起一套以TMS320DM643為核心的基本系統。系統各個(gè)組成部分如圖3所示。



系統的具體配置

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

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

系統對EMIF的使用情況:

系統在CE0空間擴展了4 Mx64-bit的S DRAM 存儲器( MT48LC4M32BPG) ,用于存儲程序與數據。SDRAM的工作時(shí)鐘由T MS320DM643 的E CLKOUT1 提供,與E MIF 的工作時(shí)鐘頻率相同,本系統中默認為E CLKIN 為其時(shí)鐘源,即133MH z。

系統在CE1空間擴展了4Mx8-bit的Flash存儲器(Am29LV033C)。在對FLASH進(jìn)行讀/寫(xiě)訪(fǎng)問(wèn)前,需要通過(guò)EMIF的CE1控制寄存器CE1CTL將CE1空間配置為8-bit異步存儲器接口,及讀/寫(xiě)時(shí)序。

系統在CE2空間擴展了與PLD模塊的fifo模塊連接的接口。在DSP看來(lái),fifo模塊可視為8-bit異步只讀存儲器。如圖2所示,fifo模塊的讀使能信號rdreq與TMS320DM643的CE2片選信號連接;fifo模塊的讀時(shí)鐘信號rdclk,與TMS320DM643的ARE讀使能信號連接。

以太網(wǎng)(EMAC與MDIO)接口

TMS320DM643上集成有一個(gè)EMAC+MDIO片上外設,EMAC是Ethernet Media Access controller的縮寫(xiě),即以太網(wǎng)媒體訪(fǎng)問(wèn)控制器,MDIO是Management Data Input/Output的縮寫(xiě),即管理數據輸入/輸出模塊。EMAC+MDIO用于為以太網(wǎng)物理層(PHY)器件提供接口,其中EMAC為接口以太網(wǎng)PHY提供數據通路,MDIO為接口以太網(wǎng)PHY提供管理信息通路。以太網(wǎng)接口主要功能如下:符合IEEE 802.3協(xié)議;支持傳媒無(wú)關(guān)接口(MII);八個(gè)獨立的發(fā)送與接收通路;同步的10/100Mbit的數據操作;廣播及多幀的傳送。

TMS320DM643的網(wǎng)絡(luò )接口的原理框圖如圖4所示。



圖 4描述了EMAC+MDIO與DSP中間有一個(gè)EMAC control module模塊。它主要包含一些必備的使EMAC更加有效的使用DSP的存儲空間,控制其復位、中斷的一些邏輯。這些寄存器的地址空間為:0x1C800000~0x1C803FFF。

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

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



電源模塊

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

系統的軟件設計

系統的軟件設計主要是通過(guò)TI公司推出的專(zhuān)門(mén)針對C6000系列的TCP/IP網(wǎng)絡(luò )開(kāi)發(fā)包NDK(Network Developer's Kit)來(lái)實(shí)現的。該開(kāi)發(fā)包支持TCP/IP協(xié)議,并占用較少的系統資源。NDK僅用200~250KB程序空間和95KB數據空間即可支持常規的TCP/IP服務(wù)。所以,NDK很適合目前嵌入式系統的硬件環(huán)境,是實(shí)現DSP網(wǎng)絡(luò )開(kāi)發(fā)的重要工具。

系統軟件的框圖如圖6所示。



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

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

當客戶(hù)機要求停止傳輸的請求到來(lái)時(shí),系統會(huì )重新使GPIO引腳變?yōu)楦唠娖,PLD模塊回到初試狀態(tài)。此時(shí)系統也會(huì )處于待命狀態(tài),繼續偵聽(tīng)網(wǎng)絡(luò )。

系統初始化

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

在DSP/BIOS的全局配置窗口主要設置了DSP 的工作時(shí)鐘頻率為600MHz,選擇使用的片級支持庫CSL為 DM642的庫,選用小端訪(fǎng)問(wèn)模式,片內256k的SRAM全部用于CACHE高速緩存,并調用初始化函數dm643_init()。

TCP/IP協(xié)議配置

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

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

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

數據的接收

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

網(wǎng)絡(luò )發(fā)送

接收完一幀的數據后會(huì )觸發(fā)硬件中斷,在硬件中斷函數中會(huì )把特定的標志置為1,然后從硬件中斷函數中返回,并進(jìn)入軟件中斷函數。軟件中斷函數把剛剛接收到的數據發(fā)送到網(wǎng)絡(luò )中。

軟件中斷函數會(huì )一直偵聽(tīng)是否有新的TCP/IP報路連接請求,當檢測到有新的報路連接請求,就會(huì )創(chuàng )建一個(gè)報路來(lái)連接到請求連接的應用程序。建立連接后,軟件中斷函數會(huì )等待客戶(hù)機的命令?蛻(hù)機此時(shí)會(huì )發(fā)送一個(gè)傳輸命令給服務(wù)器,服務(wù)器接收到這個(gè)命令后,軟件中斷函數就會(huì )準備發(fā)送數據。

軟件中斷函數會(huì )等待一幀傳輸流數據的到來(lái),也就是等待特定的標志置1。當檢測到標志位置1后,軟件中斷函數就會(huì )把剛剛接收到的數據包發(fā)送出去。發(fā)送成功后,又會(huì )把標志位置0,重新等待下一個(gè)數據包的到來(lái)。如此循環(huán)的把數據包發(fā)送出去。

當收到結束連接的請求后,會(huì )清楚標志位,并設置GPIO7引腳為高電平,從而使PLD模塊回到初始狀態(tài)。然后關(guān)閉連接,并回到偵聽(tīng)狀態(tài)。

結束語(yǔ)

本系統的硬件和軟件功能已經(jīng)實(shí)現,網(wǎng)絡(luò )傳輸的速度為2Mbytes/s。按照 此速度,假設傳輸流中的空包百分比為40%計算,可以傳輸5 Mbytes/s的傳輸流數據,也就是50Mbit/s的傳輸流,至少可以傳輸2~3路的TS流節目。因此,可以證明本系統的設計方法合理、有效。
DSP(TMS320DM643)在數字信號處理方面具有的比其他芯片更為強大優(yōu)勢,現在我們已經(jīng)在DSP(TMS320DM643)系統中實(shí)現了數字電視傳輸流的網(wǎng)絡(luò )功能,日后可以在本系統中繼續增添新的數字信號處理,特別是視音頻處理模塊,從而實(shí)現更強大的功能。
本文地址:http://selenalain.com/thread-13369-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页