- 電視接收棒的系統(tǒng)總體設(shè)計(jì)方案
- 電視接收棒的硬件驅(qū)動(dòng)程序的設(shè)計(jì)
- 硬件的驅(qū)動(dòng)是由主控芯片來(lái)完成
- 用基于DirectShow技術(shù)搭建的媒體播放器
近年來(lái),電視數(shù)字化的發(fā)展十分迅速,我國(guó)于2007年8月正式實(shí)施自主開(kāi)發(fā)的國(guó)家地面數(shù)字電視廣播DMB-TH標(biāo)準(zhǔn),基于DMB-TH標(biāo)準(zhǔn)的便攜產(chǎn)品成為數(shù)字電視技術(shù)及產(chǎn)業(yè)發(fā)展的熱點(diǎn),市場(chǎng)潛力巨大。USB2.0標(biāo)準(zhǔn)于2004年4月推出,增加了高速模式,將USB接口的速度提高到了480Mb/s,是原來(lái)全速模式速度的40倍,拓展了USB接口的應(yīng)用范圍,使得通過(guò)USB接口傳輸高速率的標(biāo)清乃至高清數(shù)字電視變?yōu)榭赡堋?br />
本文所研究與設(shè)計(jì)的USB數(shù)字電視接收棒正是基于USB2.0以及DMB-TH標(biāo)準(zhǔn)的便攜式設(shè)備,它可實(shí)現(xiàn)在筆記本電腦,臺(tái)式機(jī)等帶USB接口的設(shè)備上對(duì)數(shù)字電視的接收,并通過(guò)相應(yīng)的上層播放軟件實(shí)時(shí)的播放數(shù)字電視節(jié)目。
系統(tǒng)總體設(shè)計(jì)方案
1系統(tǒng)框架
USB數(shù)字電視接收棒系統(tǒng)主要有以下4個(gè)模塊構(gòu)成,如圖1為系統(tǒng)的原理圖。
(1)高頻頭:負(fù)責(zé)將天線接收到的高頻信號(hào)轉(zhuǎn)換為基帶信號(hào),并將信號(hào)傳輸至信道解調(diào)器。
(2)信道解調(diào)器:完成自動(dòng)增益控制、PN幀頭捕獲、信道估計(jì)與均衡、自動(dòng)偵測(cè)與鎖頻、FFT變換等,將基帶信號(hào)轉(zhuǎn)換成TS碼流輸出,并將TS碼流輸至USB傳輸控制芯片。
(3)USB傳輸控制模塊:該模塊作為主控模塊,加載相應(yīng)的驅(qū)動(dòng)程序后,通過(guò)I2C總線完成對(duì)高頻頭和信道解調(diào)器的初始化和后續(xù)控制,并將TS碼流傳輸至PC機(jī)端。
(4)PC機(jī)端應(yīng)用軟件:實(shí)現(xiàn)對(duì)TS碼流的接收,并通過(guò)播放器實(shí)時(shí)播放節(jié)目。
2硬件資源
硬件方面,由于USB數(shù)字電視接收棒是一種體積小,功耗低,移動(dòng)性好的便攜式設(shè)備,且針對(duì)的是國(guó)標(biāo)DMB-TH,所以選擇的芯片也必須在這些方面特別考慮。經(jīng)過(guò)研究,高頻頭選擇AnalogDevice公司的AD-MTV102,信道解調(diào)芯片選擇凌汛公司的LGS-8GL5芯片,它們都支持DMB-TH標(biāo)準(zhǔn),USB傳輸控制芯片選擇Cypress公司的CY7C68013芯片,由這三塊芯片搭建的硬件系統(tǒng)只需要USB接口的5V電壓就可以滿(mǎn)足其功耗要求,且體積小巧(普通U盤(pán)大小),便于攜帶,完全滿(mǎn)足系統(tǒng)的設(shè)計(jì)要求。
3軟件資源
軟件方面,PC機(jī)端應(yīng)用程序的核心部分是實(shí)時(shí)播放器,需要播放的是TS碼流,這是MPEG-2標(biāo)準(zhǔn)定義的一種碼流。本方案采用基于DirectShow技術(shù)搭建的媒體播放器。DirectShow是DirectX家族中的成員,它為在Windows平臺(tái)上處理各種格式的多媒體文件的回放、音視頻采集等高性能要求的多媒體應(yīng)用提供了完整的解決方案,重要的是它很好地支持了MPEG-2標(biāo)準(zhǔn),它使應(yīng)用程序開(kāi)發(fā)人員從復(fù)雜的數(shù)據(jù)傳輸、硬件差異、同步性等工作解脫出來(lái),總體應(yīng)用框架和底層工作由DirectShow來(lái)完成,大大加快了開(kāi)發(fā)進(jìn)度。
硬件驅(qū)動(dòng)程序的設(shè)計(jì)
硬件驅(qū)動(dòng)程序是系統(tǒng)設(shè)計(jì)中很關(guān)鍵的一個(gè)部分,它直接關(guān)系到各硬件芯片是否能正常穩(wěn)定的工作。硬件的驅(qū)動(dòng)是由主控芯片來(lái)完成,在本方案中將uSB傳輸控制芯片CY7C68013作為主控芯片,它內(nèi)置增強(qiáng)型的8051內(nèi)核,通過(guò)I2C總線來(lái)控制前端的高頻頭和信道解調(diào)芯片,完成對(duì)前端的驅(qū)動(dòng)。
硬件驅(qū)動(dòng)程序設(shè)計(jì)主要是根據(jù)硬件電路的設(shè)計(jì)特點(diǎn)來(lái)編寫(xiě)CY7C68013的固件程序。固件程序可以處理來(lái)自系統(tǒng)的USB標(biāo)準(zhǔn)請(qǐng)求,完成各種數(shù)據(jù)的交換工作和事物處理。CypreSS公司提供了固件程序框架,用戶(hù)可在此框架上增加自己的功能代碼以完成相應(yīng)功能。整個(gè)硬件驅(qū)動(dòng)流程圖如圖2所示。
(1)設(shè)定USB芯片的工作方式為SlaveFIFO,Au-toIn模式,利用端點(diǎn)2(設(shè)為1024×4b大小)進(jìn)行傳輸。在這種模式下USB芯片內(nèi)的數(shù)據(jù)傳輸不需要8051內(nèi)核的干預(yù),利用CY7C68013特有的量子FIFO自動(dòng)完成數(shù)據(jù)的傳輸,這樣可以保證數(shù)據(jù)的傳輸速率不受到8051內(nèi)核的頻率限制而達(dá)到一個(gè)較高的速度,滿(mǎn)足USB2.0高速傳輸?shù)囊蟆?br />
(2)打開(kāi)I2C總線,初始化高頻頭,延遲1s后設(shè)定高頻頭的掃描頻率,這里延遲1s是為了保證高頻頭在初始化后能正常穩(wěn)定的工作,是芯片在技術(shù)上的要求。
(3)初始化信道解調(diào)器,并將其設(shè)定為自動(dòng)模式,使其自動(dòng)檢測(cè)信號(hào)參數(shù)并將信息反饋給高頻頭,協(xié)調(diào)兩塊芯片之間的某些參數(shù)(如增益等),使兩者配合工作。
(4)判斷信號(hào)是否鎖定,如未鎖定,再判斷是否是第一次進(jìn)行鎖頻,如果先前未曾鎖頻過(guò)則需改變高頻頭的掃描頻率,再次檢測(cè),直到鎖定。如果曾經(jīng)鎖頻過(guò),則無(wú)需改變頻率,再次自動(dòng)檢測(cè)即可。
(5)在鎖定信號(hào)以后,每間隔5s再次檢測(cè)鎖定情況,如果失鎖則返回第四步再次進(jìn)行檢測(cè)。循環(huán)判斷信號(hào)鎖定情況的目的是為了避免系統(tǒng)在正常工作時(shí),由于信號(hào)質(zhì)量變差而造成失鎖導(dǎo)致系統(tǒng)不能正常工作(例如系統(tǒng)接收時(shí)進(jìn)入隧道等環(huán)境),通過(guò)定時(shí)檢測(cè)信號(hào)鎖定情況就可以在發(fā)生此類(lèi)事件后進(jìn)行必要的操作,讓系統(tǒng)重新正常工作。
PC機(jī)應(yīng)用程序設(shè)計(jì)
1應(yīng)用程序的主要功能
PC機(jī)應(yīng)用程序是用戶(hù)與底層資源信息交互的一個(gè)平臺(tái)。在本方案中,應(yīng)用程序主要完成以下兩大功能。
(1)從USB端口接收CY7C68013所傳輸進(jìn)來(lái)的TS碼流,存入緩沖區(qū)內(nèi)。這個(gè)功能相對(duì)簡(jiǎn)單,利用Cy-press公司提供的通用驅(qū)動(dòng)程序和_些相應(yīng)的API函數(shù),在打開(kāi)USB設(shè)備獲得設(shè)備句柄之后,設(shè)置每次讀取數(shù)據(jù)量的大小,然后開(kāi)啟一個(gè)線程循環(huán)讀取數(shù)據(jù),就能連續(xù)不斷的得到TS碼流。其中每次讀取數(shù)據(jù)量的大小對(duì)于播放的流暢度影響很大,在本方案中曾經(jīng)將該參數(shù)分別設(shè)為1024B,8192B,10240B,30720B,61440B等數(shù)值進(jìn)行測(cè)試比較,發(fā)現(xiàn)該參數(shù)的值越大播放效果越好,它直接影響著丟包率。最終本方案將該值設(shè)為61440B,這也是實(shí)測(cè)所能得到的最大數(shù)值,在這個(gè)參數(shù)下節(jié)目播放出來(lái)的效果最好。
[page]
(2)搭建實(shí)時(shí)媒體播放器,將所接收到的TS碼流解碼播放。這是PC機(jī)應(yīng)用程序的核心部分。在選擇搭建實(shí)時(shí)媒體播放器的策略上有兩種方法:一是利用開(kāi)源的播放器進(jìn)行修改,但絕大多數(shù)開(kāi)源播放器都是基于Linux平臺(tái)下編寫(xiě)的,要在Windows平臺(tái)下使用需要經(jīng)過(guò)移植才行,移植工作量很大,且移植后播放器穩(wěn)定性較難控制。另一個(gè)是基于DirectShow技術(shù),自行編寫(xiě)播放器。DirectShow是微軟DirectX家族中的成員,與Windows有著天然的“血緣”關(guān)系,是Windows平臺(tái)下搭建媒體播放器的最佳選擇。并且微軟提供了相應(yīng)的開(kāi)發(fā)套件,使得開(kāi)發(fā)工作量得以減少,開(kāi)發(fā)周期大大縮短?;谝陨显?,本方案選擇基于DirectShow技術(shù)搭建實(shí)時(shí)媒體播放器。
2DirectShow技術(shù)在系統(tǒng)中的應(yīng)用
在DirectShow技術(shù)中,一個(gè)播放器由多個(gè)功能不同的Filter連接而成,這些Filter不是獨(dú)立工作,而是互相聯(lián)系、互相配合,是一個(gè)有機(jī)的整體,這個(gè)整體稱(chēng)之為FilterGraph。一般將Filter分為以下幾類(lèi),見(jiàn)表1。
本系統(tǒng)搭建的FilterGraph如圖3所示。
實(shí)驗(yàn)結(jié)果
在完成了USB數(shù)字電視接收棒的系統(tǒng)總體方案設(shè)計(jì)之后,根據(jù)所選用的芯片,參照相應(yīng)技術(shù)手冊(cè),設(shè)計(jì)了電路原理圖并制作了印刷電路板。在硬件制作期間,同時(shí)進(jìn)行軟件的開(kāi)發(fā)工作。在硬件制作完成后,利用KEILC和VC6++進(jìn)行了調(diào)試。利用筆記本電腦在室內(nèi)和運(yùn)動(dòng)狀態(tài)下分別進(jìn)行了長(zhǎng)時(shí)間(12h)測(cè)試,USB端口接收數(shù)據(jù)的速度穩(wěn)定在1.8MB/s。測(cè)得廈門(mén)地區(qū)國(guó)標(biāo)DMB-TH數(shù)字電視的參數(shù)見(jiàn)表2。
實(shí)驗(yàn)結(jié)果表明:無(wú)論在靜止和運(yùn)動(dòng)狀態(tài)下,整個(gè)系統(tǒng)長(zhǎng)時(shí)間工作穩(wěn)定,體積小,功耗低,接收效果好,誤碼率低,音視頻同步,節(jié)目播放清晰流暢,頻道切換小于1s,達(dá)到了設(shè)計(jì)要求。播放效果如圖4所示,播放頻道為廈門(mén)衛(wèi)視,圖中右下腳為USB數(shù)字電視接收棒及配套天線。
本文首先介紹了USB數(shù)字電視接收棒的系統(tǒng)總體設(shè)計(jì)方案,然后詳細(xì)介紹了系統(tǒng)實(shí)現(xiàn)的兩個(gè)關(guān)鍵點(diǎn)——硬件驅(qū)動(dòng)程序的設(shè)計(jì)和PC主機(jī)應(yīng)用程序的設(shè)計(jì)。隨著國(guó)標(biāo)DMB-TH的標(biāo)準(zhǔn)的實(shí)施和推廣,各地地面數(shù)字電視節(jié)目的增多,USB數(shù)字電視接收棒作為便攜式、可熱插拔的數(shù)字電視接收設(shè)備必將受到人們的青睞,實(shí)用價(jià)值和市場(chǎng)前景看好。