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