杜偉慶
(福州大學(xué)福建省數(shù)字電視工程研究中心,福建 福州 350002)
近年來,隨著數(shù)字衛(wèi)星廣播技術(shù)的飛速發(fā)展以及數(shù)字高清節(jié)目源的日益豐富,多功能高清衛(wèi)星接收機正在被越來越多的家庭廣泛采用。這類接收機普遍具有實時個人視頻錄制(Real-PVR)功能,因此都帶有多個調(diào)諧器(Tuner)。目前在歐洲及中東地區(qū),單個家庭內(nèi)就可能安裝有多個衛(wèi)星接收天線和多臺高清衛(wèi)星接收機。傳統(tǒng)情況下,為了保證每個Tuner的接收信號不互相干擾,接收天線上的低噪聲模塊(Low-Noise Block,LNB)輸出的信號必須通過獨立電纜與每個Tuner相連,這就大大增加了電纜安裝的復(fù)雜程度以及成本。而Unicable技術(shù)僅利用單根同軸電纜傳輸控制信號和頻段信號,配合Unicable器件,很好地解決了多個Tuner的信號連接問題,大大降低了布線的復(fù)雜度與成本。
Unicable技術(shù)最早是由著名衛(wèi)星運營商SES ASTRA領(lǐng)導(dǎo)的行業(yè)協(xié)會開發(fā)出來的一種共用總線協(xié)議。它通過單根同軸電纜向多個用戶終端傳送衛(wèi)星信號,有效地減少了衛(wèi)星接收設(shè)備安裝時的布線復(fù)雜度[1]。該協(xié)議在2007年3月被正式定為歐洲行業(yè)標準CENELEC EN50494,并在歐美和中東地區(qū)得到廣泛采用。
對于Ku波段(10.7~12.75 GHz)衛(wèi)星信號的接收,通常采用Universal LNB先將極其微弱的信號進行低噪聲放大,然后再將高波段/水平極化、高波段/垂直極化、低波段/水平極化和低波段/垂直極化這4類寬帶信號的頻譜分別搬移到第一中頻(950~2150 MHz)[2]。在傳統(tǒng)情況下,每臺接收機是通過獨立電纜控制Multi-Switch或DiSEqC設(shè)備,從而進行4路中頻信號的選擇性接收[3]。而采用Unicable技術(shù)的設(shè)備則是先將每臺接收機所要接收頻點的頻譜搬移到預(yù)先分配的某個固定中頻(User Band,又稱用戶頻帶),然后通過一個帶通濾波器產(chǎn)生一路窄帶子信號,最后將每臺接收機要接收的窄帶子信號復(fù)合成一個頻帶信號輸出給每臺接收機。為了保證各個窄帶子信號復(fù)合后不會互相干擾,分配給每臺接收機的固定中頻之間的間隔較大。Unicable設(shè)備頻譜處理示意圖如圖1所示。
圖1 頻譜處理示意圖
Unicable設(shè)備的控制信號主要由極化控制電壓和DiSEqC控制信號復(fù)合而成,這樣有助于提高Unicable技術(shù)的開放性和適用范圍。Unicable設(shè)備控制信號的時序和數(shù)據(jù)格式如圖2所示。
圖2 信號時序與數(shù)據(jù)格式
其中對于直流電壓信號的要求:低直流電壓范圍為12.5~14 V,高直流電壓范圍為17~19 V,該電壓與傳統(tǒng)LNB的垂直/水平極化控制電壓范圍一致。電壓建立與撤銷延時要求分別為:Ta范圍為4~22 ms,Td范圍為2~60 ms。合適的時延保證Unicable設(shè)備能夠準確及時地識別到總線的占用狀態(tài)[4]。Unicable指令序列采用DiSEqC信號傳輸方式,疊加在高直流電壓上發(fā)送。普通的Unicable指令采用5 byte編碼格式能有效降低總線占用時間,從而減小了沖突的風(fēng)險。而擴展的Unicable指令采用6 byte編碼格式,極少用到,因此不在本文討論范圍。對于上述信號的時序和格式,支持DiSEqC設(shè)備的數(shù)字衛(wèi)星接收機不需要更改硬件,只要通過修改軟件就可滿足要求,因此可以很好地支持Unicable功能。
Unicable設(shè)備控制指令分成標準操作指令和特殊模式指令兩大類[4]。標準操作指令是所有Unicable設(shè)備必須支持的,該類指令主要用于切換接收頻點、選擇用戶頻帶和釋放用戶頻帶,這類指令的命令字段值為0x5A。特殊模式指令為可選指令,并要求所有的Unicable設(shè)備都完全支持這類指令,如Unicable開關(guān)等。這類指令主要用于檢測Unicable設(shè)備所支持的輸入波段數(shù)和類型、輸出用戶頻帶數(shù)和頻率、采用的本振頻率等,接收機可用這類型指令對Unicable設(shè)備參數(shù)進行自動初始化,這類指令的命令字段值為0x5B。為了最小化總線上的通信總量,圖2所示的Unicalbe指令數(shù)據(jù)格式中幀頭值固定為E0h,這類指令無須應(yīng)答。Unicable設(shè)備可識別的地址為00h,10h和11h三種,一般默認為00h。通過在命令字段和2個數(shù)據(jù)字段填寫不同的值,可以控制Unicable設(shè)備實現(xiàn)不同功能,各類指令的命令字段、數(shù)據(jù)字段和功能如表1所示。
輸入波段序號由接收頻點的頻率值和極化方式計算得出,用戶頻點序號則是用戶預(yù)先配置給每臺接收機的,每個序號所對應(yīng)的固定中頻間隔較大,目前的Unicable設(shè)備一般支持4或者8個固定中頻。Signal_ON指令用于在每個固定中頻頻點同時產(chǎn)生能量信號,以便接收機自動檢測固定中頻頻率值;Config指令可用于自動檢測Unicable的輸入波段數(shù)和用戶中頻數(shù);LoFreq指令用于自動檢測Unicable設(shè)備采用的本振頻率,這兩個指令的子函數(shù)類型分別為0x01和0x02。
表1 Unicable指令與功能表
軟件控制模塊是數(shù)字衛(wèi)星接收機中實現(xiàn)Unicable功能的核心,它通過調(diào)用底層硬件的驅(qū)動程序產(chǎn)生相應(yīng)的信號控制Unicable設(shè)備,然后在內(nèi)部實現(xiàn)Unicable設(shè)備的資源管理、總線通信實現(xiàn)和沖突處理,最后通過一組簡單的API(應(yīng)用程序接口)向應(yīng)用層屏蔽了模塊功能實現(xiàn)的細節(jié)。軟件控制模塊的結(jié)構(gòu)框圖如圖3所示。
圖3 軟件控制模塊架構(gòu)
軟件控制模塊的設(shè)計采用分層設(shè)計的思想。最底層為平臺接口層,該層抽象了所有軟件控制模塊需要用到的底層接口,包括信號調(diào)諧、鎖定狀態(tài)獲取、極化電壓控制和DiSEqC指令操作等函數(shù)。良好的底層接口將使得軟件控制模塊更易于在不同平臺的移植,使得設(shè)計出來的軟件模塊更具通用性。位于中間的是資源管理層和通信處理層,資源管理層負責(zé)保存Unicable設(shè)備使用的本振參數(shù)、輸入波段參數(shù)和輸出固定中頻參數(shù)等,并將應(yīng)用層傳下來的頻點調(diào)諧參數(shù)轉(zhuǎn)化成具體的控制指令;通信處理層則負責(zé)具體控制信號的邏輯實現(xiàn)、固定中頻調(diào)諧以及通信沖突的處理。最上層為模塊API層,該層提供了一組簡單、規(guī)范的接口供應(yīng)用層調(diào)用,這些接口包括Unicable設(shè)備參數(shù)設(shè)置和頻點調(diào)諧等。
接收機在上電后,必須對Unicable軟件控制模塊的資源管理層的相關(guān)參數(shù)進行初始化。對于帶Unicable功能的Switch,這些參數(shù)由Flash中的默認配置區(qū)讀取或者由用戶從相關(guān)界面中輸入配置。對于帶Unicable功能的LNB,參數(shù)可由用戶從界面中輸入配置,也可以通過調(diào)用特殊模式指令進行自動初始化,模塊初始化流程如圖4所示。
圖4 模塊初始化流程
在模塊初始化完成后,就可以對具體的頻點進行調(diào)諧操作,頻點調(diào)諧時必須根據(jù)目標頻點的參數(shù)計算輸入波段序號和頻率轉(zhuǎn)換值 (10 bit),同時計算因頻率轉(zhuǎn)換值精度有限所帶來實際的固定中頻誤差,對實際設(shè)置到Tuner中的固定中頻做細微調(diào)整。整個調(diào)諧操作流程如圖5所示。
圖5 頻點調(diào)諧流程
Unicable設(shè)備采用的是共用總線技術(shù),通過單根同軸電纜連接多臺接收機,因此總線通信沖突是不可避免的。并且由于通信過程中采用無應(yīng)答類型的DiSEqC指令,所以接收機必須可以自己檢測到總線沖突并進行異常處理。在當(dāng)前頻點與目標頻點的符號率相近且信號鎖定的情況下,如果接收機發(fā)送的Channel_Change指令因總線沖突無法被Unicable設(shè)備識別,此時用戶固定頻點輸出的仍然為原來頻點的信號,但接收機將會誤判成已調(diào)諧成功且信號鎖定。本設(shè)計采用Channel_Change與PowerOFF指令配合使用的沖突檢測方法和隨機延時的處理方法,使得軟件模塊不依賴于平臺解復(fù)用驅(qū)動和解調(diào)器驅(qū)動,并且有效解決了相近符號率且不同頻點間的信號切換誤判問題。具體通信沖突檢測與異常處理流程如圖6所示。
圖6 通信沖突檢測與異常處理
當(dāng)前所有的主流接收機平臺都是采用C語言開發(fā),因此整個Unicable軟件控制模塊也都采用標準的C語言進行編碼實現(xiàn),并且運用面向?qū)ο蟮乃枷雽δK中的數(shù)據(jù)和函數(shù)進行封裝,這樣可以使得設(shè)計出來的軟件模塊更適合移植和重載[5]。面向?qū)ο笾饕w現(xiàn)在對UNI_CB結(jié)構(gòu)體的設(shè)計上,結(jié)構(gòu)體主要有成員變量和一系列函數(shù)指針組成,其定義大體如下所示:
在結(jié)構(gòu)體中,數(shù)據(jù)用于存儲當(dāng)前調(diào)諧器所采用的Unicable設(shè)備的資源以及接收頻點等相關(guān)信息。以Module開頭的函數(shù)指針分別指向模塊內(nèi)部各個流程的實現(xiàn)函數(shù),這些流程函數(shù)在實現(xiàn)過程中必須可重載,因為對于不同的UNI_CB元素,這類函數(shù)指針指向的實際為同一個函數(shù);以Interface開頭的函數(shù)指針則指向各個平臺的接口函數(shù),每個平臺的這些接口函數(shù)可能不一樣。對于具有雙調(diào)諧器的接收機,只要定義兩個UNI_CB元素,然后在模塊初始化階段根據(jù)各個調(diào)諧器的配置參數(shù)對元素進行初始化即可。
將實現(xiàn)后的軟件控制模塊在不同的接收機平臺 (低端如GX6105、中端如ALI3601等)進行移植和調(diào)試,然后分別結(jié)合Unicable LNB(如FRW_LSL_23)和Unicable Switch(如Sam_81KT)進行頻點 (S或S2)切換和搜臺的多次驗證測試,測試方法和結(jié)果歸納如下:
1)單接收機切換頻點與傳統(tǒng)Universal接收情況對比,時間大體一致,用戶無感覺延遲。
2)2臺接收機同時切換頻點,用戶無感覺明顯延遲;多臺接收機同時切換頻點,有的接收機略有延遲,延遲基本為1 s內(nèi),最大不超過2 s。
3)2臺接收機同時在同符號率的頻點間進行切換測試,無鎖定誤判現(xiàn)象出現(xiàn)。
4)3臺接收機同時搜臺,無漏臺現(xiàn)象出現(xiàn)。相比于傳統(tǒng)模式下,搜臺時間延遲并不會隨搜索頻點總數(shù)線性增大,因為通信沖突僅在少數(shù)頻點調(diào)諧過程發(fā)生,而不是每個頻點都發(fā)生。
5)傳統(tǒng)Univeral接收情況下的切臺和搜臺不受影響,并且這兩種模式下的高清、標清音視頻播放效果也都不受影響,因為Unicable的設(shè)備的采用只是改變了接收機調(diào)諧頻點的方法,并不會影響到音視頻解碼的解碼工作。
在Unicable工作模式下,調(diào)諧頻點的時間延遲主要由3個方面引入:1)發(fā)送Unicable命令所耗費的時間;2)Unicable設(shè)備本身的響應(yīng)時間;3)總線通信沖突所導(dǎo)致的延遲。前兩者的延遲時間基本固定,采用本文提出的總線沖突處理方法,可以使得切換頻點時間延遲降到最低。
隨著Unicable設(shè)備使用范圍的不斷擴大,用戶對于支持Unicable功能的衛(wèi)星接收的需求也越來越大。目前,本文設(shè)計的易移植Unicable軟件控制模塊已在多種中、高端數(shù)字衛(wèi)星接收機平臺以及數(shù)字尋星設(shè)備中移植使用,并且功能的實現(xiàn)和對于不同Unicable設(shè)備的兼容性也都得到用戶的充分認可。
[1]沈永明.衛(wèi)星接收方案設(shè)計中的Unicable技術(shù)[J].實用影音技術(shù),2009(10):27-34.
[2]沈永明.衛(wèi)星電視接收完全DIY[M].北京:人民郵電出版社,2011.
[3] 李春光,劉國棟.DVB-S中基于STV0299的DiSEqC功能設(shè)計與實現(xiàn)[J].計算機工程與設(shè)計,2004,25(10):1820-1823.
[4] EN50494,Satellite signal distribution over a single coaxial cable in single dwelling installations[S].2007.
[5]高煥堂.UML+OOPC嵌入式C語言開發(fā)精講[M].北京:電子工業(yè)出版社,2008.