新聞中心

EEPW首頁 > 消費(fèi)電子 > 設(shè)計(jì)應(yīng)用 > 基于DSP/BIOS的數(shù)字電視傳輸流網(wǎng)絡(luò)采集系統(tǒng)設(shè)計(jì)

基于DSP/BIOS的數(shù)字電視傳輸流網(wǎng)絡(luò)采集系統(tǒng)設(shè)計(jì)

作者: 時(shí)間:2010-05-12 來源:網(wǎng)絡(luò) 收藏

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

系統(tǒng)電路

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



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

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

傳輸流接口模塊

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

PLD控制模塊

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

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

RECEIVE模塊

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

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

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

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

tcp/ip相關(guān)文章:tcp/ip是什么



上一頁 1 2 3 下一頁

評論


相關(guān)推薦

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

關(guān)閉