數(shù)字視聽產(chǎn)品是近幾年消費電子類產(chǎn)品的一個熱點,而數(shù)字電視接收機頂盒是其中的一個重要的組成部分。本文主要介紹了一款基于STi5518 芯片的DC-618C型數(shù)字電視接收機頂盒的軟件設計與應用,對同類產(chǎn)品的具體實現(xiàn)有一定的指導作用。
1 引 言
數(shù)字電視的崛起在我國被譽為廣電產(chǎn)業(yè)的第三次革命,它巨大的市場潛力正逐漸凸現(xiàn)出來。數(shù)字傳輸方式因其采用了先進的技術,具有傳統(tǒng)的模擬傳輸方式所無法比擬的優(yōu)勢,取代后者已是不可阻擋的趨勢。目前,數(shù)字電視正在世界范圍內(nèi)迅速地推廣,作為接收數(shù)字電視的新興家電,機頂盒正悄悄進入千家萬戶。
機頂盒(STB,Set Top Box)是廣播媒介實現(xiàn)數(shù)字化后接收端的重要設備,一般置于電視機上, 從功能來看,機頂盒主要分為上網(wǎng)機頂盒、數(shù)字衛(wèi)星綜合接收解碼器、數(shù)字地面機頂盒,以及有線電視數(shù)字機頂盒,這些設備由于具有很好的網(wǎng)絡功能,因此也成為信息家電的代表。
我們在這里討論的主要是指有線電視數(shù)字機頂盒,它的基本功能是接收數(shù)字電視廣播節(jié)目,同時具有所有廣播和交互式多媒體應用功能。
數(shù)字電視機頂盒的技術含量非常高,它集中反映了多媒體、計算機、數(shù)字壓縮編碼、加解擾算法、加解密算法、通信技術和網(wǎng)絡技術的發(fā)展水平,在設計技術上主要包括機頂盒硬件技術和軟件技術兩大部分, 其中,軟件技術占有更為重要的位置。除了音視頻的解碼由硬件實現(xiàn)外,包括電視內(nèi)容的重現(xiàn)、操作界面的實現(xiàn)、數(shù)據(jù)廣播業(yè)務的實現(xiàn),直至機頂盒和個人計算機的互聯(lián)以及和Intemet的互聯(lián)都需要由軟件來實現(xiàn)。
我們在這里介紹一款基于STi5518 芯片的DC-618C型數(shù)字電視接收機頂盒的軟件設計。
2 DC-618C數(shù)字電視接收機頂盒的軟件設計
2.1實時操作系統(tǒng)基本原理
STi5518解碼芯片本身的性能比較強大,可以滿足應用對硬件的要求,關鍵在于軟件對硬件的管理上,隨著應用的復雜化,一個嵌入式控制系統(tǒng)可能要同時控制和監(jiān)視很多外設,要求有實時響應,有很多處理任務,各個任務之間有多種信息傳遞。如果仍采用原來的程序設計方法存在兩個問題,一是中斷可能得不到及時響應。處理時間過長,這對于一些控制場合是不允許的,對于網(wǎng)絡通信方面則會降低系統(tǒng)整體的信息流量。二是系統(tǒng)任務多,要考慮的各種可能也多,各種資源如調(diào)度不當就會發(fā)生死鎖,降低軟件可靠性,程序編寫任務量都會有大幅度增加。
實時操作系統(tǒng)(RTOS)是一段在嵌入式系統(tǒng)啟動后首先執(zhí)行的背景程序,用戶的應用程序是運行于RTOS之上的各個任務。RTOS根據(jù)各個任務的要求,進行資源(包括存儲器、外設等)管理、消息管理、任務調(diào)度、異常處理等工作。在RTOS支持的系統(tǒng)中,每個任務均有一個優(yōu)先級,RTOS根據(jù)各個任務的優(yōu)先級,動態(tài)地切換各個任務,保證對實時性的要求。在編寫程序時,可以分別編寫各個任務,大大減小了程序編寫的工作量,而且減小了出錯的可能,保證最終程序具有高可靠性。
實時多任務操作系統(tǒng),以分時方式運行多個任務,宏觀表現(xiàn)為多個任務同時運行。任務之間的切換以優(yōu)先級為根據(jù),只有采用優(yōu)先服務方式的RTOS才是真正的實時操作系統(tǒng),時間分片方式和協(xié)作方式的RTOS并不是真正的實時,RTOS的主要功能模塊有調(diào)度和中斷處理(為了優(yōu)化用匯編編寫)、任務管理、事件管理、定時器管理、報文管理、循環(huán)隊列管理、資源管理、固定存儲塊管理、規(guī)范的UART管理和自動掉電管理等,這些也是標準的RTOS所應具有的基本功能。RTOS也體現(xiàn)了一種新的系統(tǒng)設計思想和一個開放的軟件框架,工程師可以在不大量變動系統(tǒng)其它任務的情況下增加或去掉一個任務,一個項目開發(fā)的過程中,可以有多個工程師同時進行系統(tǒng)的軟件開發(fā),各個人之間只要制訂好規(guī)程和協(xié)議即可,既縮短了開發(fā)時間,又降低了最終軟件產(chǎn)品對于具體某個開發(fā)者的依賴性。為RTOS設計的成熟和通用的任務可以以庫函數(shù)的形式供其它人繼續(xù)利用,這一點和C語言的設計思想一致。