關于機頂盒硬盤接口設計及其文件實現(xiàn)要點

來源:《衛(wèi)星與網(wǎng)絡》雜志 更新日期:2007-12-11 作者:佚名

硬盤接口及驅(qū)動

    本文簡要地介紹了機頂盒硬盤接口技術以及文件系統(tǒng)的實現(xiàn)要點,并通過兩個例子(PVR和NVOD)說明了具有硬盤接口的機頂盒的用途。

    文/姚春光國防科技大學

    文/陶雄飛華中科技大學

    文/張健葛新中國電子設備系統(tǒng)工程總公司

    外部接口更加豐富將是數(shù)字機頂盒硬件發(fā)展的趨勢之一,比如通過USB接口可以實現(xiàn)和數(shù)碼相機以及其它USB設備相連,通過ATA接口可以掛接硬盤實現(xiàn)節(jié)目存儲等功能。

    本文主要研究如何在機頂盒上實現(xiàn)硬盤的接口,同時通過實例說明了帶硬盤接口的機頂盒的應用。

    1

    某些機頂盒解碼芯片內(nèi)嵌ATAPI接口,如STi5517,而大多數(shù)機頂盒解碼芯片都具有外部接口總線,如SC2005的EBUS總線,通過配置時序可以模擬ATA接口總線的時序。通過簡單的外圍接口電路,

    圖1ATA接口電路示意圖

    將硬盤接到ATAPI或模擬的ATA接口,就可以實現(xiàn)CPU對硬盤的控制。圖1是解碼芯片和ATA硬盤的接口電路示意圖。

    ATA硬盤有PIO模式和DMA模式兩種傳輸方式,PIO是ProgrammedInputOutput(可編程輸入輸出)的縮寫,目前的PIO有1、2、3、4四種模式。DMA模式分為SingleWord和MultiWord兩種模式,它們和PIO模式所對應的速率如表1所示。

    傳輸模式傳輸速率

    SinglewordDMA02.1Mbit/s

    PIOmode03.3Mbit/s

    SinglewordDMA1,multiwordDMA04.2Mbit/s

    PIOmode15.2Mbit/s

    PIOmode2,singlewordDMA28.3Mbit/s

    PIOmode311.1Mbit/s

    MultiwordDMA113.3Mbit/s

    PIOmode4,multiwordDMA216.6Mbit/s

    Ultra-ATAMultiwordDMA333.3Mbit/s

    表1ATA的傳輸模式和速率

    在圖1中的接口方式下,解碼器與硬盤之間的數(shù)據(jù)傳輸只能采用PIO方式。如果解碼器具有支持DMA傳輸?shù)牡腁TA接口,那么就可以通過DMA方式從硬盤讀取數(shù)據(jù)以及向硬盤寫入數(shù)據(jù)。

    硬盤的底層驅(qū)動主要包括實現(xiàn)硬盤探測、診斷和初始化,以及硬盤的讀、寫等,通過以下的幾個函數(shù)來實現(xiàn)這些操作。

文件系統(tǒng)

   (1)通過ATAIdentifyDevice()來探測是否有硬盤存在;

    (2)通過ATASetTransferMode()配置硬盤的傳輸方式;

    (3)通過ATAExecuteDeviceDiagnostic()該函數(shù)來獲取硬盤的信息,執(zhí)行該函數(shù)后硬盤會返回512個字節(jié)的數(shù)據(jù),其中就包括硬盤的相關信息,例如硬盤容量,生產(chǎn)商,序列號,柱面數(shù),磁頭數(shù),扇區(qū)數(shù)等;如果沒有返回這512個字節(jié)的數(shù)據(jù),那么就說明硬件上的電路或者程序存在問題;這個步驟必須通過,否則之后的工作無法進行;

    (4)在完成以上3步后,就基本上可以對硬盤進行直接的讀寫操作了,采用

    ATARead(UINT32start_sector,UINT32sector_count,UINT8*sector_data),

    ATAWrite(UINT32start_sector,UINT32sector_count,UINT8*sector_data)

    這兩個函數(shù)對硬盤進行讀寫,在測試時必須注意,硬盤屬于塊設備,以扇區(qū)為單位,每個扇區(qū)512個字節(jié),所以讀寫的數(shù)據(jù)量都是512的整數(shù)倍,也就是說,即使寫一個字節(jié)的數(shù)據(jù),對硬盤來說就是寫一個扇區(qū),讀亦然。

    2文件系統(tǒng)

    為了增強應用程序的可移植性,同時為了方便對硬盤中的文件進行讀寫,必須對這些文件進行管理,對文件進行管理的軟件以及被管理的文件被稱為文件系統(tǒng)。從系統(tǒng)的角度看,文件系統(tǒng)是對存放文件的存儲空間進行組織、分配,負責文件的讀寫,并對存入的文件進行保護和檢索的系統(tǒng),而從用戶的角度看,文件系統(tǒng)為用戶提供了按“名字”存取的機制。文件系統(tǒng)設計直接關系到對硬盤訪問的性能,文件系統(tǒng)在PVR機頂盒中占有非常重要的作用。

    在機頂盒的硬盤中進行文件的存取具有以下的特點。

    (1)目前的機頂盒大多數(shù)是在嵌入式系統(tǒng)上實現(xiàn),嵌入式系統(tǒng)的資源有限;

    (2)機頂盒的硬盤中存放的大多都是音、視頻文件,而音、視頻文件一般來說都比較大;

    (3)機頂盒存放的音、視頻文件、數(shù)據(jù)文件是從有線電視網(wǎng)絡中接收的,音、視頻數(shù)據(jù)在網(wǎng)絡中傳輸?shù)乃俣容^快。

    因此其文件系統(tǒng)的設計應從以下幾方面進行考慮。

    2.1硬盤空間的管理

    目前的硬盤可以容納幾十GB的數(shù)據(jù),要把一個文件存放到硬盤,首先要考慮的是把這些數(shù)據(jù)存放到硬盤的什么地方,這就需要建立一個管理磁盤空間的登記表,它記錄在硬盤中,那些地方已存數(shù)據(jù),哪些地方未存數(shù)據(jù)。

    其次,文件系統(tǒng)存放數(shù)據(jù)一般都是以簇為單位的,簇的大小一般為扇區(qū)大小的整數(shù)倍,因此,文件都是以簇為單位來分配磁盤空間的,簇大小的確定對于文件系統(tǒng)的性能有重要的影響,簇太大,那么一個文件即使只有一個字節(jié),也要占據(jù)一個簇的空間,簇太小,一個文件有很多塊組成,每讀寫一個磁盤塊,都有尋道延遲和旋轉(zhuǎn)延遲,從而導致文件的讀寫速度變慢。

硬盤空間的管理

   在機頂盒的硬盤中存放的大多都是音、視頻等比較大的文件,另外,由于機頂盒對文件系統(tǒng)的存取速度的要求比較高,因此,機頂盒文件系統(tǒng)的簇可以相對大些。

    2.2磁盤調(diào)度算法

    對硬盤中的某一磁盤塊進行讀寫時,要控制磁盤臂的伸縮,將磁盤臂上的磁頭移到相應的磁道,通過磁盤的轉(zhuǎn)動,對準相應扇區(qū),這樣才能讀寫該扇區(qū)的數(shù)據(jù),因此,讀寫磁盤塊所需要的時間取決于下面3個因素。

    (1)尋道時間,即將磁頭移到相應柱面的時間;

    (2)尋扇區(qū)時間,即將相應扇區(qū)旋轉(zhuǎn)到磁頭下面的時間;

    (3)數(shù)據(jù)傳輸?shù)臅r間。

    對于大多數(shù)硬盤而言,尋道時間大約為ms級,尋道時間遠大于尋扇區(qū)時間和數(shù)據(jù)傳輸時間的開銷。對磁盤的調(diào)度,主要考慮的是如何縮短尋道時間,這就涉及到磁盤調(diào)度算法。

    對磁盤進行調(diào)度的算法有很多種,如先來先服務算法、按優(yōu)先級高優(yōu)先服務的算法、最短尋道算法以及電梯算法等等。根據(jù)所設計系統(tǒng)的目標的不同,可以采用不同的算法來設計文件系統(tǒng)。

    2.3磁盤緩沖算法

    由于訪問內(nèi)存的速度要遠遠高于訪問硬盤的速度,因此,可以采用內(nèi)存緩沖的來提高系統(tǒng)的系統(tǒng)。

    應用程序在讀取一個磁盤塊的數(shù)據(jù)時,有可能還需要下一磁盤塊的數(shù)據(jù);在向一個磁盤塊寫入數(shù)據(jù)時,可能還要向下一磁盤塊寫入數(shù)據(jù)。這樣的話,在請求讀取數(shù)據(jù)時,系統(tǒng)就多讀取一塊或幾塊的數(shù)據(jù),如果應用程序下一次真的需要這一塊數(shù)據(jù)時,數(shù)據(jù)已經(jīng)緩沖到內(nèi)存中了。同樣,應用程序在向硬盤寫入數(shù)據(jù)時,系統(tǒng)并不把這些數(shù)據(jù)寫入到硬盤中,而是將數(shù)據(jù)保存到內(nèi)存的緩沖區(qū)中,等緩沖到一定的程度才將數(shù)據(jù)寫入磁盤。

    上面的對數(shù)據(jù)進行緩沖的方法對PVR機頂盒的文件系統(tǒng)是十分適用的,PVR機頂盒讀寫的文件一般都是比較大的音、視頻文件,而且,在錄/放的過程中,本次讀寫完成后,一般還會對隨后下一塊數(shù)據(jù)進行讀寫,對數(shù)據(jù)進行緩沖的算法可以提高系統(tǒng)的響應速度。

    另外,一個完整、健壯的文件系統(tǒng)還需要有數(shù)據(jù)保護、錯誤恢復等功能,在此不贅述。

    3應用

    具有硬盤接口的機頂盒的應用十分廣泛,如音樂下載欣賞,個人數(shù)字錄像機(PVR),準視頻點播(NVOD)等等,下面將簡單的介紹它在PVR和NVOD中的應用。

    3.1PVR

    PVR機頂盒接收來自有線電視網(wǎng)絡的數(shù)字信號,經(jīng)過解調(diào)、解復用等處理后得到的音、視頻PES(PacketedElementaryStream)數(shù)據(jù)被存放到硬盤中,以供用戶在以后的任何時刻觀看。由于硬盤容量大,能存儲的節(jié)目量相當可觀的,另外,硬盤還有定位快的特點,因此,PVR機頂盒能輕松實現(xiàn)快進、快退、暫停等操作,還可以迅速的跳躍到任何時段進行播放,讓用戶盡情享受數(shù)字電視帶來的樂趣。

應用

    PVR機頂盒接收的數(shù)據(jù)在硬盤中是以PES數(shù)據(jù)包的格式存儲于硬盤的。機頂盒接收CABEL的射頻信號,經(jīng)過解調(diào)模塊后輸出TS流到解復用模塊,通過解復用模塊對音、視頻PID過濾后形成音、視頻的PES分組數(shù)據(jù)送到音、視頻的接收緩沖區(qū)中,然后存儲到硬盤中,回放時,從硬盤中讀取PES數(shù)據(jù),送到播放緩沖區(qū),經(jīng)DMA送入AV解碼模塊,數(shù)據(jù)處理流程如圖2所示。工作在PIO4方式下的硬盤完全滿足PVR機頂盒數(shù)據(jù)存取的需要。

    圖2PVR機頂盒的數(shù)據(jù)處理流程

    在圖2中,虛線框①表示數(shù)字電視播放的數(shù)據(jù)流程,虛線框②表示的是錄制節(jié)目的數(shù)據(jù)流程,虛線框③表示的是節(jié)目回放的數(shù)據(jù)流程。

    以上3個數(shù)據(jù)流程經(jīng)過一定的組合可以組成不同的工作方式,如圖2的邊錄邊放方式由①、②完成,圖3中的Time-Shift播放方式由②、③完成。

    建立在EPG(ElectronicProgramGuide)的基礎之上的預約錄制的功能是PVR機頂盒的一大特色,根據(jù)EPG信息中的節(jié)目預告,選擇喜愛的節(jié)目,一旦該節(jié)目播放的時間到,即對節(jié)目進行錄制,預約錄制如果能結合定時開機,效果會更好。

    3.2NVOD

    伴隨計算機寬帶網(wǎng)絡技術及數(shù)字視頻技術的發(fā)展,視頻點播(VOD)服務成為現(xiàn)實。真視頻點播(TVOD,TrueVideoonDemand)可為每個客戶提供一個信道,滿足客戶隨時點播、隨時響應的需求,TVOD提高了系統(tǒng)的交互性能,卻以犧牲系統(tǒng)帶寬為代價。準視頻點播(NVOD,NearVideoonDemand)是將同一音視頻文件在相隔一定時間段的幾個信道播放,如圖3所示,NVOD實現(xiàn)了利用有限帶寬為眾多用戶提供服務的功能。

    圖3傳統(tǒng)NVOD示意圖

    在圖3中,陰影部分表示播放的音視頻數(shù)據(jù),在t0時刻開始在信道1廣播這些數(shù)據(jù),在t1(=t0+Δt)時刻開始在信道2廣播,以此類推。

    Δt=L/n,其中L是播放整個音視頻數(shù)據(jù)所需的時間,n為信道數(shù),Δt是最大等待時間(即用戶等待此音視頻數(shù)據(jù)從頭播放所需最長的時間)。如果L=120min,4個信道用來傳送數(shù)據(jù),那么最大等待時間為30min。

    為了縮小等待時間,而不占用更多的帶寬資源,一個普遍的方法是將音視頻數(shù)據(jù)分割成固定長度的分段,然后將這些分段在按照一定的規(guī)律在幾個信道中廣播,這些方法中比較有代表性的有快速廣播(FB)算法,PAGODA算法等,但是這些算法都是建立在接收終端具有一定的緩沖能力的基礎上的。

    圖4FB算法示意圖

    圖4為k+1個信道的FB算法示意圖,長度為L的音視頻數(shù)據(jù)被分成了N=2k+1-1個分段,每個分段長度為Δt=L/N,各個分段在各自的信道上按以下的原則播發(fā):

    在信道k上按順序廣播分段組{S2k-1…S2k-1}。

    按照以上播發(fā)的機制,在機頂盒沒有緩沖能力的情況下,只有在t=t1時刻才能無間斷的收看完所有的音視頻數(shù)據(jù)。

結束語

    如果機頂盒有硬盤接口,那么硬盤就可以用來緩沖數(shù)據(jù),由于硬盤在PIO4方式下的最高傳輸速率為16.6Mbit/s,在傳輸流的碼率為4Mbit/s時只能緩沖4個信道的數(shù)據(jù),即通過5個通道傳輸NVOD數(shù)據(jù),本文以k=4個信道為例,音視頻數(shù)據(jù)被分割為N=15個分段,機頂盒在t=t0時刻開始接收并播放音視頻數(shù)據(jù)分段S1,同時,將S2、S4、S8數(shù)據(jù)分段緩沖到硬盤中,在t=t1時刻,分段S1播放完畢后,從硬盤中讀取S2分段并播放,與此同時,將S3、S5、S9數(shù)據(jù)緩沖到硬盤中,按照這樣的方法,就可以無間斷的播放完所有的音視頻數(shù)據(jù)。在其它的t=t0+i*Δt時刻都可以通過緩沖的方式播放完所有的數(shù)據(jù)。如果L=120min,則用戶的等待時間最大為Δt=L/N=120/15=8min,大大小于傳統(tǒng)NVOD的等待時間,表2是一些有代表性的NVOD算法和傳統(tǒng)的NVOD在信道個數(shù)k=4,音視頻數(shù)據(jù)長度L=120min時,視頻可分割的最大分段數(shù)和最大等待時間。

    算法最大分段數(shù)最大等待時間

    RFS254.8min

    FB158min

    傳統(tǒng)NVOD430min

    表2k=4和L=120min時算法對比

    不難看出,具有硬盤緩沖能力的機頂盒配合一定的算法可以大大減少用戶從頭欣賞音視頻節(jié)目所需要等待的時間。

    4結束語

    本文主要介紹了如何在機頂盒內(nèi)實現(xiàn)硬盤的硬件接口,并討論了在機頂盒上設計文件系統(tǒng)時的一些應考慮的問題,并在此基礎上通過兩個例子說明了具有硬盤接口的機頂盒的應用。機頂盒的硬盤接口技術極大地豐富了機頂盒的功能,帶給用戶全新的享受,是一種非常有市場前景的技術,必將隨著數(shù)字電視的普及加速發(fā)展。

    參考文獻

    [1]STMicroelectronics,STi5517Low-costinteractiveset-topboxdecoderdatasheet,2003

    [2]LSILogic,ConsumerProductsDivision,DTVSourceGroup.ApplicationNote:SC2005SupportforanATAHardDiskDrive.2000

    [3]Yu-CheeTseng,Ming-HourYang,andChi-HeChang.ARecursiveFrequency-SplittingSchemeforBroadcastingHotVideosinVODService.IEEETransactionsonCommunications,VOL.50,NO.8,August2002

    [4]Li-ShenJuhn,Li-MingTseng.FastDataBroadcastingandReceivingSchemeforPopularVideoService.IEEETransactionsonBroadcasting,Vol44,No.1,March1998

作者簡介

    姚春光:博士生,研究范圍包括衛(wèi)星通信信道編碼、調(diào)制解調(diào)技術,數(shù)字信號處理及其FPGA實現(xiàn)等。

    陶雄飛:博士生,研究方向為多媒體與通信系統(tǒng)等。

    張。焊呒壒こ處,主要研究方向為衛(wèi)星通信和光通信等。

    葛新:工程師,主要研究方向為衛(wèi)星通信和無線電頻譜管理等。

廣告聯(lián)系:010-82755684 | 010-82755685 手機版:m.pjtime.com官方微博:weibo.com/pjtime官方微信:pjtime
Copyright (C) 2007 by PjTime.com,投影時代網(wǎng) 版權所有 關于投影時代 | 聯(lián)系我們 | 歡迎來稿 | 網(wǎng)站地圖
返回首頁 網(wǎng)友評論 返回頂部 建議反饋
快速評論
驗證碼: 看不清?點一下
發(fā)表評論