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