機頂盒是視頻點播(VOD)系統(tǒng)的終端設(shè)備,是用戶與VOD服務(wù)器之間的智能接口。它用于視頻業(yè)務(wù)的接收和用戶請求的發(fā)送。因此,VOD系統(tǒng)中的數(shù)據(jù)傳輸被分成兩個通路:下行通路用于把視頻信息傳送到用戶;上行通路用于把用戶的點播需求傳送到發(fā)送端?;赑C機的機頂盒是將機頂盒的功能做成普通的PC插卡形式,利用計算機實現(xiàn)視頻點播的所有功能。這樣做有幾點好處:
1 充分利用微機的軟、硬件資源,從而降低了用戶終端設(shè)備的成本;
2 兼容性好,可適應不同的接入網(wǎng)和不同類型的業(yè)務(wù);
3 軟件維護和升級方便,適應未來發(fā)展;
4 可設(shè)計易操作、美觀和基于Windows95/98的用戶界面。
該機頂盒由兩塊普通PC機插卡構(gòu)成,它們分別完成下行數(shù)據(jù)的接收和上行數(shù)據(jù)的發(fā)送。上行數(shù)據(jù)的發(fā)送由一塊內(nèi)置MODEM卡通過電話線完成,下行數(shù)據(jù)的接收則由另一塊插卡通過CATV網(wǎng)實現(xiàn)。
本文研究的主要內(nèi)容是在微機上如何實現(xiàn)下行數(shù)據(jù)的正常接收。為此,提出了一種以數(shù)字調(diào)諧器、最新QAM數(shù)字解調(diào)芯片和高性能MPEG-2解復用芯片為核心的機頂盒設(shè)計方案。在機頂盒的硬件設(shè)計中,采用了先進的I2C總線技術(shù)、QAM數(shù)字解調(diào)技術(shù)、MPEG-2解復用技術(shù)、FIFO存儲器技術(shù)以及通用的ISA總線接口技術(shù);在軟件設(shè)計中,采用了VC++編程技術(shù)和Windows95/98環(huán)境下利用VToolsD開發(fā)虛擬設(shè)備驅(qū)動程序即VxD的技術(shù)。
1 機頂盒的硬件設(shè)計
機頂盒的主要功能是為人們提供一個訪問VOD業(yè)務(wù)的途徑,為合法用戶提供一個友好的界面,其接收部分的總體硬件框圖如圖1所示。
在圖1中,來自CATV網(wǎng)的下行數(shù)據(jù)經(jīng)數(shù)字調(diào)諧電路實現(xiàn)頻點選擇,某一頻點上的數(shù)據(jù)流中包含了十幾路節(jié)目的數(shù)據(jù),這些數(shù)據(jù)在發(fā)送端經(jīng)過了MPEG-2標準的系統(tǒng)復用。該電路輸出中頻信號,然后由模/數(shù)轉(zhuǎn)換電路輸出數(shù)字信號,作為QAM解調(diào)電路的輸入。上述過程中的頻點選擇和QAM解調(diào)均由微處理器經(jīng)I2C總線控制。
QAM解調(diào)后的數(shù)字信號送到MPEG-2解復用電路,實現(xiàn)通道選擇,即選出用戶點播的一路節(jié)目。該節(jié)目的數(shù)據(jù)為MPEG-1標準的壓縮形式。為了節(jié)約成本和簡化電路,并考慮到目前微機的速度很高、且為Windows95操作系統(tǒng),本設(shè)計中不采用硬件解壓縮方式,而是將數(shù)據(jù)經(jīng)主機接口電路以DMA傳輸方式傳送到計算機的內(nèi)存中,用軟件方法對該路節(jié)目進行實時解壓縮處理并播放出來。
上述整個電路可分為幾個相對獨立的模塊,下面分別對它們進行介紹。
1.1 數(shù)字調(diào)諧電路1
數(shù)字調(diào)諧電路實際上就是一個高頻頭,它的作用是接收來自CATV網(wǎng)的下行數(shù)據(jù),根據(jù)微處理器的指令,實現(xiàn)頻點選擇(與模擬電視相似)。某一選定頻點的數(shù)據(jù)流中仍含有多路節(jié)目的數(shù)字信號,每個用戶只收看某一頻點中的一路節(jié)目。頻點選擇由微處理器通過I2C總線控制。數(shù)字調(diào)諧電路與后級電路的連接如圖2所示。
1.2 A/D視頻轉(zhuǎn)換電路2
高頻頭輸出的模擬中頻信號的幅值已滿足A/D轉(zhuǎn)換器的輸入要求,因此將它直接送給A/D轉(zhuǎn)換器數(shù)字化,以供后續(xù)的數(shù)字電路進一步處理。該模/數(shù)轉(zhuǎn)換器采用Philips公司的芯片,它將模擬視頻信號轉(zhuǎn)換成二進制編碼的數(shù)字視頻信號。A/D轉(zhuǎn)換電路的連接如圖2所示。
1.3 QAM解調(diào)電路1~2
QAM解調(diào)電路是機頂盒接收部分的重點和難點之一,芯片的選型十分重要。它的作用是將A/D視頻轉(zhuǎn)換電路輸出的數(shù)字信號進行QAM解調(diào)和其它處理后輸出基帶數(shù)字信號。
QAM解調(diào)電路采用最新QAM數(shù)字解調(diào)芯片。該芯片的功能強大,全數(shù)字化處理,芯片外部不需要反饋環(huán)路,支持16、32、64、128和256QAM的解調(diào)。為了實現(xiàn)芯片的強大功能,其內(nèi)部有大批的控制/配置寄存器供用戶編程使用,這些寄存器可通過I2C總線或并行總線進行讀或?qū)懖僮?。芯片輸出糾錯后的MPEG-2傳輸流。
上述介紹的調(diào)諧電路、A/D視頻轉(zhuǎn)換電路和QAM解調(diào)電路組成了一個相對獨立的整體,它們的應用電路框圖如圖2所示。
1.4 I2C總線控制電路3~4
在上述電路中,調(diào)諧電路的頻點選擇、QAM解調(diào)芯片內(nèi)部一系列寄存器的讀寫操作均由微處理器通過I2C總線控制。而微處理器芯片內(nèi)沒有I2C總線接口 因此需要設(shè)計I2C總線控制電路。該電路由I2C 總線控制器芯片PCF8584構(gòu)成,它可用作大多數(shù)并行總線與串行的I2C總線之間進行雙向通信的接口。 利用它可以很方便地將微處理器接入I2C總線實現(xiàn)芯片間的數(shù)據(jù)傳輸和控制。
I2C總線控制電路與其它電路的連接方法如圖3所示。
1.5 MPEG-2 系統(tǒng)解復用電路1~25
在視頻點播系統(tǒng)中,發(fā)送端的節(jié)目源是基于MPEG-1標準的數(shù)據(jù)流,它只適合相對無誤差的環(huán)境,如CD-ROM、VCD的傳輸。為了適應有噪聲或損耗介質(zhì)信道的傳輸,需將多路不同節(jié)目的MPEG-1格式的碼流按照MPEG-2標準進行傳輸復用。因此,在接收端需要相應的MPEG-2解復用電路的支持。
MPEG-2解復用電路從微處理器接收指令實現(xiàn)通道選擇,即從調(diào)諧電路已選定的頻點中選擇用戶點播的一路節(jié)目,滿足用戶的點播要求。
MPEG-2解復用電路采用高性能的MPEG-2系統(tǒng)解復用芯片。該芯片在接收到MPEG-2系統(tǒng)傳輸碼流后,對傳輸層和PES(Packetized Elementary Stream)層作解復用處理,提供某一路的碼流緩沖,其輸出送到主機接口電路,其應用電路框圖如圖3所示。
1.6 計算機的接口電路設(shè)計6~8
本設(shè)計中,計算機的接口電路有兩大任務(wù):一是微處理器通過該接口電路實現(xiàn)對調(diào)諧電路、QAM解調(diào)電路、MPEG-2解復用電路的控制與訪問,以便完成多路節(jié)目數(shù)據(jù)流的分接;二是接口電路將解復用電路輸出的一路節(jié)目數(shù)據(jù)傳送到計算機的內(nèi)存中,供微機對其進行軟件解壓縮并播放出來。
由圖3可知,微處理器對調(diào)諧電路和QAM解調(diào)電路的訪問與控制是通過I2C總線控制器芯片PCF8584實現(xiàn)的,而微處理器對解復用電路的訪問與控制則直接通過解復用芯片的微處理器接口實現(xiàn)。此外,解復用芯片輸出的一路節(jié)目數(shù)據(jù)還需通過接口電路傳送到微機的內(nèi)存中。為了適合實時、高速或突發(fā)數(shù)據(jù)的傳輸,接口電路采用DMA傳輸技術(shù),并利用FIFO(First In First Out)存儲器作為數(shù)據(jù)緩沖電路。由于FIFO具有一定的存儲容量,能起到緩沖作用,故能很好地解決外設(shè)與計算機之間的速率匹配問題。此外,當外設(shè)進行連續(xù)的數(shù)據(jù)傳輸時,主機的DMA傳輸可以間歇地進行,從而能夠讓主機有時間執(zhí)行數(shù)據(jù)處理和顯示等后臺任務(wù)。
2 機頂盒的軟件設(shè)計
在機頂盒中,軟件設(shè)計主要包括三個部分:各芯片的讀寫操作。接口軟件編程和用戶界面的設(shè)計。數(shù)字調(diào)諧電路、QAM解調(diào)電路、I2C總線控制器和MPEG-2解復用電路的芯片中都含有大量的控制和配置寄存器供用戶進行讀寫操作,以便預置有關(guān)的參數(shù)或?qū)δ承﹨?shù)進行控制。這需要通過編程來實現(xiàn)。機頂盒的用戶界面是一個典型的WINDOWS界面,機頂盒的所有功能(包括解壓縮)都通過它來完成,因此可采用VC++進行編程。接口軟件的功能是把插卡接收到的數(shù)據(jù)以DMA方式傳送到計算機的內(nèi)存中,要實現(xiàn)Windows95/98下DMA方式的數(shù)據(jù)傳輸,需要編寫虛擬設(shè)備驅(qū)動程序。這是整個軟件設(shè)計中的重點和難點。限于篇幅下面簡單說明虛擬設(shè)備驅(qū)動程序的設(shè)計思想。
DMA虛擬設(shè)備驅(qū)動程序采用VtoolsD編寫,可由Win32應用程序動態(tài)裝載。驅(qū)動程序負責將外設(shè)中的數(shù)據(jù)以DMA方式傳送到內(nèi)存中的兩塊緩沖區(qū)里,應用程序分別從這兩塊緩沖區(qū)輪流讀取數(shù)據(jù)。實現(xiàn)方法如下:
驅(qū)動程序的入口是一個被稱作Control Dispatcher的函數(shù),它負責處理與該VxD相關(guān)的系統(tǒng)控制信息,并調(diào)用相應的處理例程。一個可被動態(tài)裝載的VxD應能處理以下消息:SYS_DYNAMIC_DEVICE_INIT(用于VxD的初始化階段);SYS_DYNAMIC_DEVICE_EXIT(用于VxD的退出階段);W32_DEVICEIOCONTROL(用于應用程序和VxD的通信)。當Win32應用程序利用函數(shù)CreateFile來動態(tài)裝載VxD時,系統(tǒng)發(fā)送SYS_DYNAMIC_DEVICE_INIT消息,Control Dispatcher調(diào)用該消息的處理例程OnSysDynamicDeviceInit進行VxD的初始化設(shè)置,例如DMA控制器的初始化、分配內(nèi)存空間、中斷控制器的初始化等。當Win32應用程序調(diào)用DeviceIoControl 函數(shù)向VxD發(fā)送數(shù)據(jù)時,Control Dispatcher調(diào)用該消息的處理例程OnW32DeviceIoControl此時可以接收從應用程序發(fā)來的消息如主窗口句柄等。當Win32應用程序關(guān)閉該VxD或Win32應用程序本身被關(guān)閉時,Control Dispatcher調(diào)用該消息的處理例程OnSysDynamicDeviceExit,此時可以做一些清理性工作,如釋放DMA緩沖區(qū)等。
每當一次DMA傳輸結(jié)束便產(chǎn)生一個硬件中斷。在VxD的中斷處理例程中,對DMA控制器重新進行初始化(即改變DMA緩沖區(qū)的首地址使之指向另一個緩沖區(qū),以便開始下一次DMA傳輸),同時向Win32應用程序發(fā)送消息通知它讀取內(nèi)存中的數(shù)據(jù)。
3 實驗結(jié)果
將上述機頂盒電路做成一塊PC插卡用于接收下行數(shù)據(jù)。首先對電路中的各個模塊分別進行了多次調(diào)試和試驗。然后在此基礎(chǔ)上,利用試驗用的節(jié)目源(即按照MPEG-2標準進行傳輸復用后的多個不同節(jié)目的碼流)對整個電路進行了聯(lián)調(diào)。它可以實現(xiàn)頻點選擇、QAM解調(diào)和通道選擇,從而得到用戶所要點播的某一路節(jié)目。該路節(jié)目的數(shù)據(jù)流格式遵從MEPG-1標準,速率約為1.4Mb/s。最后利用編寫好的虛擬設(shè)備驅(qū)動程序通過接口電路成功地將該路節(jié)目傳送到計算機的內(nèi)存中。編寫一個用于調(diào)試的Win32應用程序,讀取內(nèi)存中的節(jié)目數(shù)據(jù)并形成一個數(shù)據(jù)文件后由金山影霸播放,效果良好。
在本文已有工作的基礎(chǔ)上,下一步工作將從以下幾個方面著手:
(1)軟件解壓縮播放程序的編程。
(2)軟件解壓縮播放程序與虛擬設(shè)備驅(qū)動程序的通信調(diào)試。
(3)用戶界面的設(shè)計和編程。
-
機頂盒
+關(guān)注
關(guān)注
4文章
386瀏覽量
54076 -
視頻
+關(guān)注
關(guān)注
6文章
1934瀏覽量
72816 -
服務(wù)器
+關(guān)注
關(guān)注
12文章
9024瀏覽量
85187
發(fā)布評論請先 登錄
相關(guān)推薦
評論