概述
電視發(fā)展到今天已經(jīng)進入數(shù)字化的時代了,數(shù)字電視系統(tǒng)取代模擬電視系統(tǒng)的一大優(yōu)勢在于實現(xiàn)了信息的數(shù)字化。電視節(jié)目信息實現(xiàn)數(shù)字化,所有的信息可以在數(shù)字世界里傳播、轉換、存儲和處理,從而使得廣播電視網(wǎng)能夠和計算機網(wǎng)絡相連接,大大提高了信息處理的能力。
TCP/IP是Internet網(wǎng)絡上傳輸數(shù)據(jù) 所必需的協(xié)議,這種網(wǎng)絡通信模式在PC機之間的實現(xiàn)已經(jīng)完善, 但是由于體積、價格等因素限制了應用的范圍。因此,基于TCP/IP 協(xié)議與Ethernet的嵌入式系統(tǒng)網(wǎng)絡通信設計成為目前一個熱門的話題。 本 系統(tǒng)實現(xiàn)了在以TI公司的TMS320DM643為核心的嵌入式系統(tǒng) 中對數(shù)字電視傳輸流信號進行采集與在Ethernet中傳輸。利用本系統(tǒng)可輕松的實現(xiàn)在局域網(wǎng)中對數(shù)字電視傳輸流信號的傳輸、調度。數(shù)字電視傳輸流信號源是針對歐洲數(shù)字有線廣播系統(tǒng)標準(DVB-C)的數(shù)字有線電視信號。網(wǎng) 絡接入硬件是在以TI公司的TMS320DM643為核心的嵌入式系統(tǒng)中實現(xiàn),網(wǎng)絡接入軟件采用了TI公司的針對C6000系列DSP推出的TCP/IP NDK(Network Developer‘s Kit)網(wǎng)絡開發(fā)包來實現(xiàn)。
系統(tǒng)的電路設計
電路部分主要由五部分組成。數(shù)字電視傳輸流網(wǎng)絡采集系統(tǒng)框圖如圖1所示。
主要功能是通過傳輸流接口模塊采集數(shù)字電視信號進入PLD(CYCLONE EP1C6Q240C8)芯片,進行必要的處理后,將信號發(fā)送到DSP(TMS320DM643)芯片儲存起來并進行算法處理。通過TMS320DM643芯片對BCM5221芯片進行必要的配置,將儲存在MS320DM643芯片內的數(shù)據(jù)通過BCM5221芯片傳送到局域網(wǎng)中,并通過計算機接收數(shù)據(jù)。
傳輸流(TS)接口模塊
傳輸流接口模塊由CY7B933輸入接口芯片及其電器接口電路組成。CY7B933輸入接口電路是點對點的傳輸模塊,可以通過光纖、同軸電纜和雙絞線進行高速的串行數(shù)據(jù)傳輸。輸入接口符合DVB-ASI的接口標準。輸入接口接收到串行位流后,通過內部PLL時鐘同步恢復數(shù)據(jù)的時鐘信息,并對位流進行串并轉換、解碼和傳輸檢錯等操作。這種輸入接口能靈活的實現(xiàn)把高速點對點串行數(shù)據(jù)轉變成并行數(shù)據(jù),而且應用領域廣泛,包括各種服務器,存儲器和視頻傳輸?shù)膽谩?/p>
PLD控制模塊
在項目中,此部分硬件選用的是Altera公司的CYCLONE EP1C6Q240C8芯片。
此模塊主要的功能是實現(xiàn)與CY7B933接收芯片的接口,把數(shù)據(jù)從CY7B933接收進來,并緩存數(shù)據(jù)。這部分功能均由VHDL語言編寫的功能模塊實現(xiàn)。主要有兩個功能模塊:RECEIVE模塊與FIFO模塊。RECEIVE模塊主要負責從CY7B933接收芯片接收數(shù)據(jù)字段進來;FIFO模塊主要負責緩存數(shù)據(jù)。功能框圖如圖2所示,下面分別對RECEIVE模塊與FIFO模塊的功能進行介紹。
RECEIVE模塊
RECEIVE模塊的功能是實現(xiàn)與CY7B933接收芯片的接口,把數(shù)據(jù)從CY7B933接收進來。其工作方式是以一個傳輸流包為邊界接收數(shù)據(jù)的。
首先RECEIVE模塊會檢測傳輸流包的邊界,通過查找包頭字節(jié)(固定為0x47)間的字節(jié)數(shù)來確定。因為包中數(shù)據(jù)也可能含有0x47,所以要犧牲三個包的數(shù)據(jù)來檢查三次。當發(fā)現(xiàn)0x47這個字節(jié)的時候,就會觸發(fā)一個內部的計數(shù)器開始計數(shù)。當計數(shù)到188后,如果下一個字節(jié)又是0x47,說明傳輸流包屬于188個字節(jié)的包,那么計數(shù)器被清零;如果下一個字節(jié)又是0x47,說明傳輸流包屬于188個字節(jié)的包,那么計數(shù)器被清零,否則計數(shù)器清零并重新開始檢測邊界。
當檢測到邊界以后,RECEIVE模塊開始接收數(shù)據(jù)包。計數(shù)器會從零開始計數(shù),在接收數(shù)據(jù)的過程中使能wrreq輸出有效信號,同時把數(shù)據(jù)輸出到下一級。當計數(shù)到188,表示一個數(shù)據(jù)包接收完成。當一個包的數(shù)據(jù)接收完之后,計數(shù)器清零,并置ts188,保持高電平一個時鐘周期。下一個周期檢測數(shù)據(jù)是否為0x47,如果是說明是下一個數(shù)據(jù)包的邊界,否則說明出現(xiàn)了錯誤,并重新回到上一段所說的檢測數(shù)據(jù)包邊界的狀態(tài)。
此外,PLD模塊內會有一個專用計數(shù)器記錄空包數(shù),當接收到數(shù)據(jù)包后會首先檢測此數(shù)據(jù)包是否空包,如果是空包PLD模塊會把這個空包刪除,并在計數(shù)器中加一。如果接收的不是空包就會把計數(shù)器的值加到這個數(shù)據(jù)包的私有字段中,并緩存到FIFO。然后計數(shù)器自動清零。這樣處理數(shù)據(jù)包的目的是為了減少網(wǎng)絡傳輸?shù)臄?shù)據(jù)流量,從而可以傳輸更多的傳輸流數(shù)據(jù)。把計數(shù)器的值加入私有字段是為了在計算機接收到數(shù)據(jù)后可以把原來的空包恢復出來,從而保證原傳輸流數(shù)據(jù)的完整性。
fifo模塊
fifo模塊的功能實現(xiàn)從RECEIVE模塊接收數(shù)據(jù),并緩存起來。當RECEIVE模塊接收完一個完整的傳輸流的數(shù)據(jù)包之后,會發(fā)送ts188或ts204的中斷信號給DSP,DSP就會啟動EDMA功能從fifo模塊接收數(shù)據(jù)。DSP與fifo模塊是采用異步連接的方式,具體的接收操作在DSP部分說明中加以描述。
DSP(TMS320DM643)算法處理模塊
此模塊主要以TI公司的TMS320DM643為核心的嵌入式系統(tǒng)組成。主要實現(xiàn)從PLD模塊接收傳輸流數(shù)據(jù)包,把數(shù)據(jù)包打包成TCP/IP格式,并實現(xiàn)對網(wǎng)絡接口(BCM5221)控制模塊的初始化,然后把數(shù)據(jù)包傳送到網(wǎng)絡模塊。
為了實現(xiàn)上述功能,必須建立起一套以TMS320DM643為核心的基本系統(tǒng)。系統(tǒng)各個組成部分如圖3所示。
系統(tǒng)的具體配置
時鐘配置:EMIF內核時鐘ECLKIN是133MHz。此外,系統(tǒng)上外設總線、EDMA傳輸和L2存儲器的工作時鐘為CPU內核時鐘的1/2,即300MHz;片上定時器的工作時鐘為CPU內核時鐘的1/8,即75MHz。
中斷配置:TMS320DM643除了RESET和NMI引腳提供外部不可屏蔽中斷請求輸入以外,還有2個外部中斷引腳GP0[5]/EXT_INT5、GP0[7]/EXT_INT7提供可屏蔽的外部中斷請求輸入。系統(tǒng)中EXT_INT5外部中斷用作PLD模塊的請求接收數(shù)據(jù)信號,每當PLD模塊接收完一個傳輸流(TS)包就會發(fā)送一個外部中斷信號給DSP,通知DSP接收數(shù)據(jù)。此外,EDMA中斷用于當接收完一個包的數(shù)據(jù)后做后續(xù)處理。
系統(tǒng)對EMIF的使用情況:
系統(tǒng)在CE0空間擴展了4 Mx64-bit的S DRAM 存儲器( MT48LC4M32BPG) ,用于存儲程序與數(shù)據(jù)。SDRAM的工作時鐘由T MS320DM643 的E CLKOUT1 提供,與E MIF 的工作時鐘頻率相同,本系統(tǒng)中默認為E CLKIN 為其時鐘源,即133MH z。
系統(tǒng)在CE1空間擴展了4Mx8-bit的Flash存儲器(Am29LV033C)。在對FLASH進行讀/寫訪問前,需要通過EMIF的CE1控制寄存器CE1CTL將CE1空間配置為8-bit異步存儲器接口,及讀/寫時序。
系統(tǒng)在CE2空間擴展了與PLD模塊的fifo模塊連接的接口。在DSP看來,fifo模塊可視為8-bit異步只讀存儲器。如圖2所示,fifo模塊的讀使能信號rdreq與TMS320DM643的CE2片選信號連接;fifo模塊的讀時鐘信號rdclk,與TMS320DM643的ARE讀使能信號連接。
TMS320DM643上集成有一個EMAC+MDIO片上外設,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提供管理信息通路。以太網(wǎng)接口主要功能如下:符合IEEE 802.3協(xié)議;支持傳媒無關接口(MII);八個獨立的發(fā)送與接收通路;同步的10/100Mbit的數(shù)據(jù)操作;廣播及多幀的傳送。
TMS320DM643的網(wǎng)絡接口的原理框圖如圖4所示。
圖 4描述了EMAC+MDIO與DSP中間有一個EMAC control module模塊。它主要包含一些必備的使EMAC更加有效的使用DSP的存儲空間,控制其復位、中斷的一些邏輯。這些寄存器的地址空間為:0x1C800000~0x1C803FFF。
網(wǎng)絡接口(BCM5221)控制模塊
本系統(tǒng)中用Broadcom公司的BCM5221作為10/100Base-TX以太網(wǎng)收發(fā)器,BCM5221的MII接口與TMS320DM643的MII接口對接。具體接口如圖5所示。RJ45連接器選用AMP公司的406549-1,其上帶兩個LED指示燈,右邊的LED為綠色,用作指示連接狀態(tài)。左邊的為黃色,正常情況下用來指示數(shù)據(jù)傳輸。
系統(tǒng)包括四組電源:系統(tǒng)外接穩(wěn)壓電源,把220V的交流電源電壓轉換成5V直流電壓;PLD模塊電源有兩種電源供電,分別是3.3V和1.5V;TMS320DM643需要2種電源,分別為CPU核心和周邊的I/O接口供電。周邊I/O電壓要求3.3V,CPU核心電壓只要1.4V;網(wǎng)絡接口控制模塊采用3.3V電源供電。
系統(tǒng)的軟件設計
系統(tǒng)的軟件設計主要是通過TI公司推出的專門針對C6000系列的TCP/IP網(wǎng)絡開發(fā)包NDK(Network Developer’s Kit)來實現(xiàn)的。該開發(fā)包支持TCP/IP協(xié)議,并占用較少的系統(tǒng)資源。NDK僅用200~250KB程序空間和95KB數(shù)據(jù)空間即可支持常規(guī)的TCP/IP服務。所以,NDK很適合目前嵌入式系統(tǒng)的硬件環(huán)境,是實現(xiàn)DSP網(wǎng)絡開發(fā)的重要工具。
系統(tǒng)軟件的框圖如圖6所示。
具體流程:系統(tǒng)配置主要在初始化函數(shù)中完成,此初始化函數(shù)將在.cinit初始化后,并在DSP/BIOS初始化和main函數(shù)之前調用。系統(tǒng)配置需要開啟INT8中斷,也就是EDMA傳輸中斷,并設置GPIO7引腳為高電平,從而使PLD模塊始終處于初始狀態(tài)。TCP/IP協(xié)議配置在任務線程中完成,主要實現(xiàn)服務器IP地址和網(wǎng)關的配置。當其完成后,系統(tǒng)就會觸發(fā)一個軟件中斷,在軟件中斷程序中,服務器會產(chǎn)生一個用于偵聽的端口,并開始偵聽網(wǎng)絡上的請求。此時,服務器已經(jīng)處于待命狀態(tài),等待客戶機的傳輸請求。
當客戶機的傳輸請求到來時,系統(tǒng)首先會使GPIO7引腳變?yōu)榈碗娖剑琍LD模塊開始發(fā)送數(shù)據(jù)。當其接收到一個完整的傳輸流數(shù)據(jù)包后就會發(fā)一個中斷給DSP,DSP啟動EDMA,用ping-pong的方式接收數(shù)據(jù)進入特定的存儲器,當接收完一個完整的傳輸流數(shù)據(jù)包后,會產(chǎn)生硬件EDMA中斷,中斷程序主要是設置特定的標志為1,然后退出硬件中斷,重新回到軟件中斷程序。當軟件中斷程序檢測到特定的標志為1時,就會開始向網(wǎng)絡中傳輸在存儲器中的傳輸流數(shù)據(jù)包給客戶機。當一個數(shù)據(jù)包傳輸完畢后,特定的標志會被置0,系統(tǒng)等待下一個數(shù)據(jù)包的到來。
當客戶機要求停止傳輸?shù)恼埱蟮絹頃r,系統(tǒng)會重新使GPIO引腳變?yōu)楦唠娖剑琍LD模塊回到初試狀態(tài)。此時系統(tǒng)也會處于待命狀態(tài),繼續(xù)偵聽網(wǎng)絡。
系統(tǒng)初始化
初始化配置主要包括了EMIF總線配置、中斷配置和底層網(wǎng)絡配置三個部分。初始化工作首先在DSP/BIOS的全局參數(shù)配置窗口進行設置,然后調用初始化函數(shù)進行配置。
在DSP/BIOS的全局配置窗口主要設置了DSP 的工作時鐘頻率為600MHz,選擇使用的片級支持庫CSL為 DM642的庫,選用小端訪問模式,片內256k的SRAM全部用于CACHE高速緩存,并調用初始化函數(shù)dm643_init()。
TCP/IP協(xié)議配置
初始化程序dm643_init()完成后,從現(xiàn)在起系統(tǒng)將進入各個線程。首先 ,系統(tǒng)會觸發(fā)任務線程TSK0,在TSK0任務線程中執(zhí)行函數(shù)StackTest(), 其 首先調用NC- SystemOpen()函數(shù)完成協(xié)議棧及其所需內存的初始 化,然后新件一個系統(tǒng)配置句柄hCfg = CfgNew(),并實現(xiàn)服務器IP地址和網(wǎng)關的配置。在本系統(tǒng)中,IP地 址配 置為“192.168.0.2”;子網(wǎng)掩碼為“255.255.255.0”;網(wǎng)關地址為“192.168.0.1”。配置好之后,系統(tǒng)會觸發(fā)一個軟件中斷,并做好偵聽網(wǎng)絡的準備 。
網(wǎng)絡偵聽
前面在任務線程中已經(jīng)配置了IP地址和網(wǎng)關,下面就要在軟件中斷中設置端口和進行偵聽。首先在開始使用報路之前,必須分配一個文 件環(huán)境fdOpenSession( TaskSelf() )給這個報 路。接著就可以創(chuàng)建一個報路對象stcp = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP),并設置端口sin1.sin_port =htons(1000),在這里我們設置端口號為1000,當然也可以設置其他的端口號。然后把端口號與報路對象綁定bind( stcp, (PSA) &sin1,sizeof(sin1)。最后進入偵聽狀態(tài)listen( stcp, 1)。
數(shù)據(jù)的接收
當客戶端要求傳輸數(shù)據(jù)的信號到來后,系統(tǒng)會使GPIO7引腳變?yōu)榈碗娖剑琍LD模塊開始發(fā)送數(shù)據(jù)。DSP通過EDMA方式來接收數(shù)據(jù)。EDMA可以在沒有CPU參與的情況下,由EDMA控制器完成DSP存儲空間內的數(shù)據(jù)搬移。系統(tǒng)主要采用EDMA的ping-pong方式來連續(xù)的接收數(shù)據(jù)。用ping-pong的方式的目的是為了使接收操作和發(fā)送操作分開處理,爭強程序的操作性和可讀性。
網(wǎng)絡發(fā)送
接收完一幀的數(shù)據(jù)后會觸發(fā)硬件中斷,在硬件中斷函數(shù)中會把特定的標志置為1,然后從硬件中斷函數(shù)中返回,并進入軟件中斷函數(shù)。軟件中斷函數(shù)把剛剛接收到的數(shù)據(jù)發(fā)送到網(wǎng)絡中。
軟件中斷函數(shù)會一直偵聽是否有新的TCP/IP報路連接請求,當檢測到有新的報路連接請求,就會創(chuàng)建一個報路來連接到請求連接的應用程序。建立連接后,軟件中斷函數(shù)會等待客戶機的命令。客戶機此時會發(fā)送一個傳輸命令給服務器,服務器接收到這個命令后,軟件中斷函數(shù)就會準備發(fā)送數(shù)據(jù)。
軟件中斷函數(shù)會等待一幀傳輸流數(shù)據(jù)的到來,也就是等待特定的標志置1。當檢測到標志位置1后,軟件中斷函數(shù)就會把剛剛接收到的數(shù)據(jù)包發(fā)送出去。發(fā)送成功后,又會把標志位置0,重新等待下一個數(shù)據(jù)包的到來。如此循環(huán)的把數(shù)據(jù)包發(fā)送出去。
當收到結束連接的請求后,會清楚標志位,并設置GPIO7引腳為高電平,從而使PLD模塊回到初始狀態(tài)。然后關閉連接,并回到偵聽狀態(tài)。
結束語
本系統(tǒng)的硬件和軟件功能已經(jīng)實現(xiàn),網(wǎng)絡傳輸?shù)乃俣葹?Mbytes/s。按照 此速度,假設傳輸流中的空包百分比為40%計算,可以傳輸5 Mbytes/s的傳輸流數(shù)據(jù),也就是50Mbit/s的傳輸流,至少可以傳輸2~3路的TS流節(jié)目。因此,可以證明本系統(tǒng)的設計方法合理、有效。
DSP(TMS320DM643)在數(shù)字信號處理方面具有的比其他芯片更為強大優(yōu)勢,現(xiàn)在我們已經(jīng)在DSP(TMS320DM643)系統(tǒng)中實現(xiàn)了數(shù)字電視傳輸流的網(wǎng)絡功能,日后可以在本系統(tǒng)中繼續(xù)增添新的數(shù)字信號處理,特別是視音頻處理模塊,從而實現(xiàn)更強大的功能。
編輯:jq
-
TCP
+關注
關注
8文章
1395瀏覽量
80203 -
emacs
+關注
關注
0文章
17瀏覽量
10981 -
MDIO
+關注
關注
0文章
14瀏覽量
11316
發(fā)布評論請先 登錄
醫(yī)院IPTV數(shù)字電視系統(tǒng):構建醫(yī)院IPTV數(shù)字電視數(shù)智化醫(yī)療信息融合傳播平臺

GY/T 318-2018 地面數(shù)字電視廣播單頻網(wǎng)系統(tǒng)實施指南
DSP6678編譯NDK報錯的原因?
電視信號分析儀的技術原理和應用
普源DS1102Z-E示波器對數(shù)字電視信號的分析

在米爾電子MPSOC實現(xiàn)12G SDI視頻采集H.265壓縮SGMII萬兆以太網(wǎng)推流
4K有線數(shù)字電視節(jié)目質量測試方法

電視機傳輸數(shù)字用什么網(wǎng)線好
在米爾電子MPSOC實現(xiàn)12G SDI視頻采集H.265壓縮SGMII萬兆以太網(wǎng)推流
數(shù)字電視的usb接口有什么用
音頻傳輸系統(tǒng)原理,音頻傳輸系統(tǒng)有哪些功能和作用
電視數(shù)字音頻輸出是什么接口
MTK/MSTAR數(shù)字電視SOC芯片TSUMV56RUU-Z1適用液晶顯示器一體機拼接屏LED顯示屏
賓館酒店電視信號高清改造-廣電信號接入數(shù)字電視同軸高清傳輸系統(tǒng)應用

評論