基于EM8620的IPTV機頂盒設計
傳統的電視業務一致采用單向廣播模式運營,隨著科技的進步,人們越來越希望在電視中實現雙向交互功能,通過交互通信,運營商能夠及時地得知用戶的需求,而終端用戶也可以改變以往單一被動的信息接收模式,更多地參與到業務運營中。近期iptv(網絡電視)的出現,使這愿望成為可能,它作為電視和網絡通信技術的融合,以ip為傳送通道,能夠向用戶提供包括電視在內的更為廣泛的多種交互式視音頻服務。
在iptv的系統中,用戶終端機頂盒是一個非常關鍵的設備,它不但是收看電視節目的終端,而且還是一個信息匯聚、交互的平臺,被認為是構成未來家庭多媒體中心的重要組成部分,本文介紹一種基于em8620芯片的iptv機頂盒設計方案,該方案能夠通過網絡實現交互電視業務,支持mpeg2、mpeg4、vc-1(wmv9)、real等多種視頻壓縮標準解碼,具有電視節目錄制、數字版權保護、dvd播放等多種功能。
1 硬件設計
1.1 設計要求分析
通過為iptv業務特性的詳細分析,總結出fpga機頂盒硬件設計方面的四項要求:
(1)具有網絡接入功能,能夠利用lan、dsl等方式接入到互聯網、支持tcp/ip、ftp、rtp、rtsp、rtcp、igmp多種網絡協議。
(2)支持多種視頻壓縮格式,目前mpeg2、mpeg4、vc-1等標準在iptv中都有使用,有些運營商甚至是在交叉使用,這與傳統數字電視采用單一的mpeg2標準情況大相徑庭。因此,設計的機頂盒能支持的壓縮標準越多,業務開展就越靈活,產品的使用范圍就越廣泛。
(3)具有完善的增殖業務設計,其中包括視頻點播、電子表決、互動游戲、網絡瀏覽、網絡游戲等,增殖業務是網絡電視獲取利潤的關鍵,所以設計機頂盒時要充分考慮到各種增殖業務的擴展應用。
(4)選擇低成本的專用硬件平臺。機頂盒不同于通用計算機,他是一個嵌入式系統,低成本、低功耗和穩定性是硬件設計要遵循的原則,一些早期的iptv機頂盒設計方案采用了基于intel的高性能通用處理器架構,雖然性能很好,但是在功耗和成本方面最終很難被市場和運營商認可。
1.2 em8620硬件平臺
設計方案中采用一個低成本但功能相對豐富的集成芯片--em8620作為硬件平臺,它是sigma designs公司專門針對數字視頻通信設計的最新一款多格式解碼芯片、內嵌166mhz的32位rsic處理器,具有豐富的音視頻接口,此外還包括pci總線控制器和ide總線接口,依托二者能夠實現網絡接入、usb外設和ide外設(如硬盤、光驅)訪問等功能。圖1是該芯片的邏輯單元框圖,其主要功能和特點包括:

(1)能夠同時支持兩路標準清晰度電視節目解碼,實現畫中畫。;
(2)視頻支持mpeg2、mpeg4標清和高清解碼,支持vc-1和real的標清解碼;
(3)支持dvd格式信號解碼;
(4)音頻支持dolby ac3,mpeg1和mpeg2的層1、2、3,mpeg2的bc多聲道層1、2、3,mpeg2 aac,mpeg4
aac,windows wma;
(5)具有自適應去隔行功能;
(6)具有去閃爍濾波的osd功能,色彩支持32比特/像素;
(7)具有視頻、osd、子圖像和光標等4個圖像層;
(8)具有pci2.1的總線控制接口;
(9)采用2d圖形加速;
(10)具有ide接口,能夠連接光驅和硬盤設備,實現電視錄像和程序存儲;
(11)具有ntsc/pal復合視頻及s-video分量輸出,帶有可選的macrovision防錄制保護;
(12)具有ypbpr/rgb分量視頻輸出,帶有可選的macrovision防錄制保護;
(13)具有3路i2s串行數字pcm音頻輸出,實現5.1聲道環繞聲;
(14)具有spdif(iec60958)數字音頻輸出。
1.3 設計原理
遵循iptv機頂盒的設計要求,以em8620為核心的硬件設計原理框圖如圖2所示,它包括多個不同的數據處理模塊。

1.3.1 pci總線
pci總線上連接有一個10/100m的以太網控制器(ctl8100)和一個usb2.0主控制器(vt6212)用于實現網絡接入及usb設備接入功能。
1.3.2 10/100m以太網控制器
10/100m以太網控制器采用realtek公司的rtl8100,它是一個高度集成的低成本單片以太網控制器,該控制器具有acpi電源功能和網絡喚醒功能,通過使用魔術包(magic
packet)和喚醒幀的方式可以很方便地實現網絡管理和維護,因此使用它可以實現非常理想的嵌入式網絡解決方案,同時它還具有pci/mini-pci接口和10/100mhz網絡帶寬自適應功能,并兼容pci2.2和pc99/pc2001、pci存儲空間或i/o空間映射數據傳輸等其他功能。
1.3.3 usb2.0主控制器
usb2.0主控制器采用威盛公司的vt6212,它是一個四端口usb2.0控制芯片,能支持高達480mbps的傳輸速度,并采用動態中止時序控制(dynamic
stop clock control)降低功耗。vt6212利用主機端控制接口(enhanced host controller
interface)方式提供高速數據傳輸,利用通過控制芯片接口(universal host controller interface)方式向下兼容低速的usb1.1數據傳輸,此外tv6212也支持32-bit卡總線模式、可搭配pcmcia接口作為usb
2.0集線器,增加外設的接入數量。
1.3.4 視頻輸出
em8620能夠提供模擬和數字兩種視頻信號輸出,模擬視頻采用復合(cvbs)、分量(s-video和yprpb)方式直接輸出,輸出中都可采用macrovision技術進行防盜版錄制保護。數字視頻(24bit
rgb)連接到dvi信號合成芯片(sil164),編碼為dvd格式后輸出。
1.3.5 dvi信號合成
dvi是目前使用非常廣泛的數字視頻接口,既可以適應于高/標清數字電視顯示、也可以用于普通的電腦監視器顯示。此處選擇silicon
image公司的sil164實現dvi信號合成和發送。sil164采用paneilink數字技術設計,支持從vga到uxga(640×480-1600×1200)的清晰度顯示范圍,數據速率范圍為25-165mbps,具有12bit(半像素時鐘沿)和24bit(真彩色支持)兩種設計模式,同時支持i2c總線控制,具有熱插拔特性,完全兼容dvi1.0規范。
1.3.6 音頻輸出
em8620可提供三路i2s和一路spdif等兩種串行數字音頻信號,其中每路i2s信號承載兩個聲道的pcm數據,三路i2s信號連接到音頻dac后,轉換為6路模擬音頻,用于實現dolby
ac3的5.1聲道環繞聲;spdif串行數字信號直接輸出,可承載兩路pcm音頻或壓縮的5.1 聲道dolby ac3音頻。
1.3.7 外設總線
外設總線上連接有ide硬盤、dvd光驅和flash存儲器,ide硬盤用于實現個人錄像機功能,用戶可以將播放的電路節目方便地存儲到ide硬盤,同時也可以用于存儲通過增殖業務從網絡上下載的各類其他數據;dvd光驅可使機頂盒實現dvd播放功能,flash存儲器的作用非常重要,用于存儲整個機頂盒的操作系統軟件。雖然也可以將操作系統安裝到ide硬盤,但是ide硬盤的穩定性遠不如flash存儲器,并且還會受到其他應用程序,特別是病毒的攻擊,非常容易造成系統崩潰。
1.3.8 fp/vfd和紅外信號接收
fp/vfd用于機頂盒的前面板控制和狀態顯示,紅外信號接收用于接收遙控器發送的控制信號。
1.3.9 uart
雖然iptv具有雙向業務通道,能夠采用認證的方式實現節目的版權保護,但是考慮到目前數字電視中的條件接收到多采用智能卡方式,為保護系統的兼容性,此處仍然設計有基于uart的智能卡通信模塊,用于支持使用智能卡進行密鑰解密的工作方式。
2 軟件設計
軟件主要包括嵌入式的操作系統和各類驅動及應用軟件。由于當前linux有著優良的可移植性和廣泛的兼容性,因此在本方案中操作系統采用μclinux實現,而應用軟件主要包括電子節目指南、數字版權保護和條件接收、瀏覽器、圖形用戶界面、軟件解碼模塊等。
2.1 嵌入式操作系統
μclinux是面向mmu(內存管理單元)設計的嵌入式操作系統。內核由linux2.0 kernel發展而來,同標準linux相比,它繼承了原有的工作穩定性強、網絡功能強大等主要優點。此外,它具有占用空間小、執行效率高等特點,由于iptv機頂盒需要實現各種基于網絡的增殖業務,因此對于網絡通信協議的需求比較廣泛,μclinux包括tcp/ip等多種網絡協議,能夠支持當前各種基于ip的業務,同時它還具有良好的開放性,任何新協議都可以很方便地加入到內核中,具備了持續升級的可擴展能力。
在使用μclinux進行軟件設計時,一個需要著重考慮的問題是內存管理,由于em8620沒有mmu管理存儲器,因此μclinux不能使用虛擬內存管理技術,內存訪問應采用直接尋址方式,所有程序訪問的地址都是實際的物理地址,操作系統內存空間失去保護后,系統內各個進程實際上是共享同一個內存空間,因此在設計多進程任務時就需要特別注意進行內存保護,防止程序操作越界溢出。具體而言,就是在每個進程初始化時,μclinux會根據用戶的申請分配一段連續的堆棧地址空間,而后該進程中所有的數據操作都在此內存空間內完成,所以開發人員必須對每個任務進程所需的最大內存空間做出正確估計和分配,一旦生成的數據空間大于所分配的內存空間,就會產生內存溢出,侵犯其他程序的地址空間,從而導致程序的運行異常,嚴重者將導致系統崩潰。
傳統linux最大的缺點之一是,系統非正常關閉后,經常會產生硬盤碎片,使操作系統無法正常引導啟動,此處,將μclinux編譯后燒寫到flash上采用flash內核啟動方式,避免了上述缺點。
2.2 應用軟件
2.2.1 電子節目指南
電子節目指南是用戶獲取電視節目播出信息的直接途徑,從現有數字電視用戶的調查中發現,電子節目指南是當前最受用戶歡迎的功能,電子節目指南一般包括電視節目單、節目簡介、當前節目信息顯示、節目預定等多個環節,通常它的設計采用基于中間件或定制編寫軟件模塊的方式實現,過程復雜、靈活度差。此處采用基于瀏覽器的電子節目指南設計,電視節目信息以html方式或xml方式傳送,機頂盒接收后利用瀏覽器顯示給用戶觀看,其風格和瀏覽方式都具有很強的靈活性,由于其他類型的增殖業務如網絡瀏覽、電視購物等方式都需要瀏覽器,因此使用瀏覽器不會增加系統的額外開銷。
2.2.2 數字版權保護
數字版權保護設計分為兩種,一種是針對已錄制節目的保護,另一種是針對實時播出節目的保護,由于機頂盒具有個人錄像機功能,用戶能夠方便地將實時播出的電視節目錄制到硬盤上,并通過usb接口拷貝出去進行散發。為防止這種盜版拷貝的情況發生,設計了嚴格的數字版權保護模塊,當用戶進行錄像時,對存儲到硬盤的節目進行加密處理,加密密鑰由每個機頂盒特有的硬件信息生成,這樣即使將節目拷貝到其他同類型機頂盒中也不能進行播放,從而實現了嚴格的版權保護功能,對于實時播出的加密節目,沿用了基于智能卡的工作方式,首先提取ip網絡傳送過來的密鑰數據流,通過uart接口送到智能卡中進行解密,解密后控制字存儲在內存中使用后即刻銷毀,防止盜取和破解。
2.2.3 圖形用戶界面
為方便地對ide硬盤及其他接口進行操作,此處為用戶提供了圖形用戶界面,它采用minigui引擎,界面啟動后,用戶可以通過遙控器或連接usb鼠標/鍵盤非常方便地進行操作。
除了上述應用軟件外,還可支持各種java、flash程序運行,便于實現電視購物、在線游戲等功能,此外其包括wmv9、real等一系列多媒體播放程序,用于各種類型的網絡音視頻節目及本地的dvd光盤播放。
2.3 軟件調試
軟件調試分為內核調試和應用程序調試兩個步驟。
2.3.1 內核調試
內核調試的一個簡單方法是利用jtag燒寫器直接將μclinux寫入到flash中,這種調試過程需要反復擦寫flash,過程較煩瑣,而且浪費時間,為了克服上述缺點,此處為em8620編寫了一個bootloader程序,通過以太網將μclinux下載到內存中運行。內核調試穩定后再燒寫到flash,如此可以有效地簡化整個調試過程,提高工作效率。
2.3.2 應用程序調試
應用程序的開發和調試采用兩種方式,一種是對功能和消耗資源較少的程序,采用telnet方式通過以太網連接到機頂盒上直接開發調試。由于μclinux支持多用戶工作方式,因此多個不同開發人員可同時登陸到系統內進行各自調試而互不影響,但是作為一個嵌入式處理器,em8620的運算能力畢竟有限,如果任務過多會影響調試速度,為此,消耗資源較大的應用程序需采用交叉編譯的方法,即程序的調試和編譯在速度較快的pc機上完成,然后利用gnu工具交叉編譯為基于μclinux的目標代碼,再通過以太網傳送到機頂盒中運行。
當前,iptv的發展正如火如荼,各地電視和電信運行商都在加大力度進行iptv建設,未來幾年對于iptv機頂盒的需求將迅速擴大,本文實現的這種基于em8620的iptv機頂盒,具有豐富的功能接口,并可支持高清及標清多種視頻格式解碼,符合未來iptv業務發展的技術要求,是一個可長期有效的解決方案。
評論