摘要:針對IBM STBX25XX機頂盒的硬件結構特點,設計了Hopen機頂盒軟件平臺#65377;通過對Hopen嵌入式實時操作系統內核的移植#65380;各功能部件驅動的定制和開發,使得Hopen機頂盒軟件平臺可以運行在PowerPC架構的硬件上,完成了數字電視節目的播放功能,從而拓寬了Hopen的應用領域#65377;
關鍵詞:機頂盒;嵌入式實時操作系統;數字電視
中圖分類號:TP316.89文獻標志碼:A
文章編號:1001-3695(2007)04-0279-03
0引言
數字電視機頂盒(SetTop Box)是一種新型的消費類電子產品,它可以將數字電視信號轉換成模擬電視信號,以便用戶使用現有的模擬信號電視機即可收看數字電視節目#65377;它不僅可以提供高影像質量的電視畫面,還可以提供視頻點播#65380;娛樂#65380;教育和商業化活動等新增交互式服務,從而擴展了電視機的功能,改變了收看電視的原有方式#65377;
機頂盒是一個專用的帶有通信接口的嵌入式系統#65377;其硬件主要負責數字信號的解調和音頻#65380;視頻的編解碼工作;其軟件包括嵌入式實時操作系統#65380;各硬件模塊的驅動及其應用,負責各功能部件的控制#65380;管理和協調工作,以完成數字電視節目播放等功能#65377;
本文根據Hopen嵌入式實時操作系統項目的需求,在IBM的STBX25XX機頂盒硬件平臺上,通過移植我國自主研發的Hopen嵌入式實時操作系統來實現各個驅動模塊及其應用,從而構建Hopen機頂盒軟件平臺#65377;
1機頂盒硬件平臺和軟件系統
機頂盒處于數字電視網絡與電視機之間,是一個復雜的#65380;完整的嵌入式計算機系統#65377;它由硬件平臺和軟件系統兩部分組成#65377;
1.1硬件平臺
從硬件構造上機頂盒可以分為前端和后端兩部分#65377;前端是網絡接口模塊,包括調諧器和解調器,它主要負責信道解調;后端包括微處理器#65380;內存#65380;外存#65380;解復用器#65380;音/視頻解碼器#65380;解擾引擎#65380;數字音/視頻編碼器#65380;回傳通道及其他外部設備,它主要負責信源解碼#65377;回傳通道負責向網絡傳送上行數據,用于開展交互式應用#65377;機頂盒硬件結構如圖1所示#65377;
機頂盒利用前端選擇頻道,解調輸出指定頻點的多套節目的MPEG2傳輸流數據給解復用器#65377;先由解復用器過濾出某套電視節目音/視頻基本流(PES)數據,再由解擾引擎對加密的數據進行解擾后將視頻PES送入視頻解碼器;經解壓縮后送給數字信號編碼器(DENC)進行編碼后成為模擬視頻信號,由視頻輸出電路輸出;同時將音頻PES送入音頻解碼器,解壓縮并與視頻同步后經音頻輸出電路輸出#65377;
本文選用IBM STBX25XX作為硬件平臺#65377;它基于IBM PowerPC架構,集成了高端機頂盒的各種重要功能部件,音/視頻子系統性能穩定,驅動開發靈活#65380;方便#65377;該平臺主要部件包括PowerPC405D4微處理器#65380;16 MB的SDRAM#65380;8 MB的Flash芯片#65380;MPEG2解復用芯片和DVB解擾芯片#65380;MPEG2音/視頻解碼器和NTSC/PAL/SECAM數字編碼器等#65377;
1.2Hopen軟件平臺
機頂盒軟件系統由軟件平臺和運行于其上的各個應用程序組成#65377;軟件平臺負責硬件資源的管理#65380;各功能部件的控制#65380;人機界面的實現等,并把這些服務的接口提供給應用程序#65377;應用程序使用這些服務,實現機頂盒的各種功能,典型的應用包括數字電視節目播放#65380;管理#65380;加/解密控制及交互式應用等#65377;
1.2.1軟件平臺結構
Hopen軟件平臺由Hopen內核#65380;文件系統和各驅動模塊組成,其結構如圖2所示#65377;
Hopen內核支持全程可搶占式調度方式和快速現場切換,具有實時性#65377;其功能模塊可以根據需求而進行靈活地裁減和擴充,因此,可滿足機頂盒的需求#65377;它是Hopen軟件平臺中最關鍵的模塊,負責系統的初始化#65380;線程調度#65380;內存管理#65380;中斷控制#65380;任務間通信和時鐘管理等操作系統最基本的核心功能#65377;
各個驅動模塊被文件系統封裝起來,通過設備節點來訪問#65377;一個字符設備對應一個字符設備節點,一個塊設備對應一個塊設備節點#65377;用戶可以使用統一的文件I/O操作來訪問各種設備,非常方便#65377;
Hopen軟件平臺的文件系統有兩個,即ROMFS和JFFS2#65377;其中ROM文件系統是只讀的,是本平臺的根文件系統,用于存放根文件系統映像;JFFS2是一種專用于Flash設備的可讀寫文件系統,用于存放應用程序數據信息#65377;MTD(存儲技術設備)是用于訪問存儲設備的文件子系統,它位于硬件驅動和上層文件系統之間,提供了一個抽象的接口,使存儲設備驅動更加簡單,并通過Flash硬件驅動實現Flash的讀寫#65377;
1.2.2驅動程序模型
為了能更好地實現各種不同的驅動模塊,本文采用了兩種驅動模型,即單片(Monolithic)驅動程序和分層(Layered)驅動程序#65377;
單片驅動程序基于單個碼片,直接將硬件設備的功能傳遞給操作系統,適用于串口#65380;E2PROM#65380;Flash芯片#65380;NIM模塊和幀緩沖等功能相對簡單的設備#65377;
分層的驅動程序由四層組成,即接口層(INF Layer)#65380;操作系統獨立層(OSI Layer)#65380;操作系統相關層(OSD Layer)和原子層(Atom Layer)#65377;其調用關系如圖3所示#65377;
(1)INF層提供與文件系統的接口,通常實現設備的初始化函數和一組標準的文件操作函數,包括open#65380;read#65380;write#65380;ioctl#65380;release等函數#65377;
(2)OSI提供與操作系統無關的設備控制功能#65377;
(3)OSD層提供與操作系統相關的設備控制功能#65377;
(4)Atom層實現對底層硬件訪問的接口,包括寄存器的讀寫及對中斷信號的管理等#65377;
音/視頻解碼#65380;解復用器#65380;智能卡#65380;IR接口和圖形驅動等都是基于分層模型實現的#65377;
2軟件平臺實現
2.1Hopen內核的移植
為了使Hopen內核可以運行于PowerPC架構的硬件平臺上,需要結合PowerPC體系結構的特點對Hopen內核的硬件抽象層進行改造#65377;改造主要包括系統初始化過程#65380;通用中斷控制器UIC的管理和定時器的設置#65377;
(1)PowerPC系統的初始化過程(圖4)#65377;
(2)通用中斷控制器UIC的管理
在PowerPC體系結構中,UIC位于中斷源與CPU之間,所有的中斷都是通過UIC被傳遞到CPU的#65377;它可以管理外部中斷和內部中斷,最多可管理32個中斷源#65377;
通用中斷控制器UIC對32個中斷請求隊列進行封裝,使得所有的中斷處理具有統一的接口#65377;中斷請求隊列數組定義如下(其中startup和shutdown用于開啟和關閉其所屬的通道;enable和disable用來使能和屏蔽其所屬的通道;do用于對中斷控制器的響應):
(3)內部定時器的設置
內部定時器由PIT#65380;TSR和TCR三個寄存器控制#65377;PIT是32位的計數器#65377;由于內部定時器的時鐘源頻率為27 MHz,定時為100次/s,PIT應設置為270 000#65377;同時應清空狀態寄存器TSR,設置控制寄存器的PIT中斷使能位和自動重載使能位#65377;其代碼如下:
2.2文件系統的設置
本軟件平臺將Flash分為四個區,各區的大小均為2 MB#65377;其作用分別如下:
Hopen OS分區用于存放Hopen操作系統的映像和應用程序,以實現機頂盒的基本功能;Boot Loader分區用于存放系統的BootLoader,它負責系統的初始化及引導操作系統的執行;File System(ROM)分區是ROM文件系統分區,用于存放ROM只讀文件系統映像,可使用工具將映像文件燒寫到該分區的起始位置;File System(JFFS2)為JFFS2文件系統分區,可讀寫,用于保存電視節目列表及系統設置信息等應用程序數據#65377;
在操作系統內核初始化結束后,首先調用do_mount函數將File System(ROM)分區作為根文件系統掛載,以便使其成為系統的MTD塊設備;然后將File System(JFFS2)掛載到/mnt/flash路徑下,如果掛載失敗則輸出報錯信息,系統停止運轉#65377;
2.3關鍵驅動的實現
視頻解碼器是控制功能較為復雜的模塊,是最關鍵的字符設備#65377;它的驅動分為四層,用于控制解碼器初始化#65380;MPEG2視頻數據的解壓縮和輸出#65377;
(1)INF層定義了vid_init函數和一組file_operations結構的文件操作接口函數#65377;
vid_init函數首先初始化DENC編碼器,設置顯示格式為PAL制式,然后初始化各個緩沖區,最后注冊字符設備#65377;其代碼如下:
文件操作接口函數用于接收用戶通過訪問字符設備節點傳遞來的操作請求,調用OSI層和OSD層提供的函數來進行處理#65377;其結構定義如下:
(2)OSI層實現了解碼器的啟動#65380;暫停#65380;停止#65380;各種播放效果的設置及DENC編碼器等與操作系統無關的控制功能#65377;
(3)OSD層實現了解碼器各種內存緩沖區管理功能,包括基本流數據緩沖區#65380;幀緩沖區#65380;同屏顯示緩沖區#65380;Rate緩沖區#65380;Clip緩沖區和用戶數據緩沖區等#65377;這些管理使用了Hopen核心的睡眠#65380;喚醒#65380;同步和互斥等操作,因此與操作系統相關#65377;
(4)ATOM層是各種功能的底層實現,提供各種操作對視頻解碼器寄存器的訪問函數,并負責DENC編碼器的控制#65380;視頻解碼器中斷信號管理和數據同步等功能#65377;
3系統測試
根據機頂盒的工作原理,編寫應用程序,進行如下測試:
首先設置前端鎖定698 000 MHz頻點,符號率為6 875,采用QAM32解調方式;然后分別打開解復用器的各個過濾器#65380;視/音頻解碼器;最后將節目號設置為0,啟動播放#65377;
通過上述測試,系統可以正常運行,播放復用在該頻點的第一套節目,聲音和畫面效果清晰#65380;穩定#65377;
4結束語
本文將Hopen實時嵌入式操作系統應用于機頂盒硬件平臺上,實現了各個設備的驅動,并編寫了數字電視節目播放應用#65377;測試表明,該系統運行穩定#65380;畫面流暢#65380;聲音清晰,Hopen系統能夠很好地滿足音/視頻播放的實時性要求,而且在此軟件平臺之上,用戶可以自主開發各種功能豐富的應用程序#65377;這不僅拓寬了Hopen的應用領域,也為機頂盒的應用提供了一個新的解決方案#65377;
本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。