本文簡要地介紹了機頂盒硬盤接口技術以及文件系統的實現要點,并通過兩個例子(PVR和NVOD)說明了具有硬盤接口的機頂盒的用途。 文/陶雄飛華中科技大學 文/張健葛新中國電子設備系統工程總公司 外部接口更加豐富將是數字機頂盒硬件發展的趨勢之一,比如通過USB接口可以實現和數碼相機以及其它USB設備相連,通過ATA接口可以掛接硬盤實現節目存儲等功能。 本文主要研究如何在機頂盒上實現硬盤的接口,同時通過實例說明了帶硬盤接口的機頂盒的應用。 1 某些機頂盒解碼芯片內嵌ATAPI接口,如STi5517,而大多數機頂盒解碼芯片都具有外部接口總線,如SC2005的EBUS總線,通過配置時序可以模擬ATA接口總線的時序。通過簡單的外圍接口電路, 圖1ATA接口電路示意圖 將硬盤接到ATAPI或模擬的ATA接口,就可以實現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中的接口方式下,解碼器與硬盤之間的數據傳輸只能采用PIO方式。如果解碼器具有支持DMA傳輸的的ATA接口,那么就可以通過DMA方式從硬盤讀取數據以及向硬盤寫入數據。 硬盤的底層驅動主要包括實現硬盤探測、診斷和初始化,以及硬盤的讀、寫等,通過以下的幾個函數來實現這些操作。
文/姚春光國防科技大學
(1)通過ATAIdentifyDevice()來探測是否有硬盤存在;
(2)通過ATASetTransferMode()配置硬盤的傳輸方式;
(3)通過ATAExecuteDeviceDiagnostic()該函數來獲取硬盤的信息,執行該函數后硬盤會返回512個字節的數據,其中就包括硬盤的相關信息,例如硬盤容量,生產商,序列號,柱面數,磁頭數,扇區數等;如果沒有返回這512個字節的數據,那么就說明硬件上的電路或者程序存在問題;這個步驟必須通過,否則之后的工作無法進行;
(4)在完成以上3步后,就基本上可以對硬盤進行直接的讀寫操作了,采用
ATARead(UINT32start_sector,UINT32sector_count,UINT8*sector_data),
ATAWrite(UINT32start_sector,UINT32sector_count,UINT8*sector_data)
這兩個函數對硬盤進行讀寫,在測試時必須注意,硬盤屬于塊設備,以扇區為單位,每個扇區512個字節,所以讀寫的數據量都是512的整數倍,也就是說,即使寫一個字節的數據,對硬盤來說就是寫一個扇區,讀亦然。
2文件系統
為了增強應用程序的可移植性,同時為了方便對硬盤中的文件進行讀寫,必須對這些文件進行管理,對文件進行管理的軟件以及被管理的文件被稱為文件系統。從系統的角度看,文件系統是對存放文件的存儲空間進行組織、分配,負責文件的讀寫,并對存入的文件進行保護和檢索的系統,而從用戶的角度看,文件系統為用戶提供了按“名字”存取的機制。文件系統設計直接關系到對硬盤訪問的性能,文件系統在PVR機頂盒中占有非常重要的作用。
在機頂盒的硬盤中進行文件的存取具有以下的特點。
(1)目前的機頂盒大多數是在嵌入式系統上實現,嵌入式系統的資源有限;
(2)機頂盒的硬盤中存放的大多都是音、視頻文件,而音、視頻文件一般來說都比較大;
(3)機頂盒存放的音、視頻文件、數據文件是從有線電視網絡中接收的,音、視頻數據在網絡中傳輸的速度較快。
因此其文件系統的設計應從以下幾方面進行考慮。
2.1硬盤空間的管理
目前的硬盤可以容納幾十GB的數據,要把一個文件存放到硬盤,首先要考慮的是把這些數據存放到硬盤的什么地方,這就需要建立一個管理磁盤空間的登記表,它記錄在硬盤中,那些地方已存數據,哪些地方未存數據。
其次,文件系統存放數據一般都是以簇為單位的,簇的大小一般為扇區大小的整數倍,因此,文件都是以簇為單位來分配磁盤空間的,簇大小的確定對于文件系統的性能有重要的影響,簇太大,那么一個文件即使只有一個字節,也要占據一個簇的空間,簇太小,一個文件有很多塊組成,每讀寫一個磁盤塊,都有尋道延遲和旋轉延遲,從而導致文件的讀寫速度變慢。
在機頂盒的硬盤中存放的大多都是音、視頻等比較大的文件,另外,由于機頂盒對文件系統的存取速度的要求比較高,因此,機頂盒文件系統的簇可以相對大些。
2.2磁盤調度算法
對硬盤中的某一磁盤塊進行讀寫時,要控制磁盤臂的伸縮,將磁盤臂上的磁頭移到相應的磁道,通過磁盤的轉動,對準相應扇區,這樣才能讀寫該扇區的數據,因此,讀寫磁盤塊所需要的時間取決于下面3個因素。
(1)尋道時間,即將磁頭移到相應柱面的時間;
(2)尋扇區時間,即將相應扇區旋轉到磁頭下面的時間;
(3)數據傳輸的時間。
對于大多數硬盤而言,尋道時間大約為ms級,尋道時間遠大于尋扇區時間和數據傳輸時間的開銷。對磁盤的調度,主要考慮的是如何縮短尋道時間,這就涉及到磁盤調度算法。
對磁盤進行調度的算法有很多種,如先來先服務算法、按優先級高優先服務的算法、最短尋道算法以及電梯算法等等。根據所設計系統的目標的不同,可以采用不同的算法來設計文件系統。
2.3磁盤緩沖算法
由于訪問內存的速度要遠遠高于訪問硬盤的速度,因此,可以采用內存緩沖的來提高系統的系統。
應用程序在讀取一個磁盤塊的數據時,有可能還需要下一磁盤塊的數據;在向一個磁盤塊寫入數據時,可能還要向下一磁盤塊寫入數據。這樣的話,在請求讀取數據時,系統就多讀取一塊或幾塊的數據,如果應用程序下一次真的需要這一塊數據時,數據已經緩沖到內存中了。同樣,應用程序在向硬盤寫入數據時,系統并不把這些數據寫入到硬盤中,而是將數據保存到內存的緩沖區中,等緩沖到一定的程度才將數據寫入磁盤。
上面的對數據進行緩沖的方法對PVR機頂盒的文件系統是十分適用的,PVR機頂盒讀寫的文件一般都是比較大的音、視頻文件,而且,在錄/放的過程中,本次讀寫完成后,一般還會對隨后下一塊數據進行讀寫,對數據進行緩沖的算法可以提高系統的響應速度。
另外,一個完整、健壯的文件系統還需要有數據保護、錯誤恢復等功能,在此不贅述。
3應用
具有硬盤接口的機頂盒的應用十分廣泛,如音樂下載欣賞,個人數字錄像機(PVR),準視頻點播(NVOD)等等,下面將簡單的介紹它在PVR和NVOD中的應用。
3.1PVR
PVR機頂盒接收來自有線電視網絡的數字信號,經過解調、解復用等處理后得到的音、視頻PES(PacketedElementaryStream)數據被存放到硬盤中,以供用戶在以后的任何時刻觀看。由于硬盤容量大,能存儲的節目量相當可觀的,另外,硬盤還有定位快的特點,因此,PVR機頂盒能輕松實現快進、快退、暫停等操作,還可以迅速的跳躍到任何時段進行播放,讓用戶盡情享受數字電視帶來的樂趣。
PVR機頂盒接收的數據在硬盤中是以PES數據包的格式存儲于硬盤的。機頂盒接收CABEL的射頻信號,經過解調模塊后輸出TS流到解復用模塊,通過解復用模塊對音、視頻PID過濾后形成音、視頻的PES分組數據送到音、視頻的接收緩沖區中,然后存儲到硬盤中,回放時,從硬盤中讀取PES數據,送到播放緩沖區,經DMA送入AV解碼模塊,數據處理流程如圖2所示。工作在PIO4方式下的硬盤完全滿足PVR機頂盒數據存取的需要。
圖2PVR機頂盒的數據處理流程
在圖2中,虛線框①表示數字電視播放的數據流程,虛線框②表示的是錄制節目的數據流程,虛線框③表示的是節目回放的數據流程。
以上3個數據流程經過一定的組合可以組成不同的工作方式,如圖2的邊錄邊放方式由①、②完成,圖3中的Time-Shift播放方式由②、③完成。
建立在EPG(ElectronicProgramGuide)的基礎之上的預約錄制的功能是PVR機頂盒的一大特色,根據EPG信息中的節目預告,選擇喜愛的節目,一旦該節目播放的時間到,即對節目進行錄制,預約錄制如果能結合定時開機,效果會更好。
3.2NVOD
伴隨計算機寬帶網絡技術及數字視頻技術的發展,視頻點播(VOD)服務成為現實。真視頻點播(TVOD,TrueVideoonDemand)可為每個客戶提供一個信道,滿足客戶隨時點播、隨時響應的需求,TVOD提高了系統的交互性能,卻以犧牲系統帶寬為代價。準視頻點播(NVOD,NearVideoonDemand)是將同一音視頻文件在相隔一定時間段的幾個信道播放,如圖3所示,NVOD實現了利用有限帶寬為眾多用戶提供服務的功能。
圖3傳統NVOD示意圖
在圖3中,陰影部分表示播放的音視頻數據,在t0時刻開始在信道1廣播這些數據,在t1(=t0+Δt)時刻開始在信道2廣播,以此類推。
Δt=L/n,其中L是播放整個音視頻數據所需的時間,n為信道數,Δt是最大等待時間(即用戶等待此音視頻數據從頭播放所需最長的時間)。如果L=120min,4個信道用來傳送數據,那么最大等待時間為30min。
為了縮小等待時間,而不占用更多的帶寬資源,一個普遍的方法是將音視頻數據分割成固定長度的分段,然后將這些分段在按照一定的規律在幾個信道中廣播,這些方法中比較有代表性的有快速廣播(FB)算法,PAGODA算法等,但是這些算法都是建立在接收終端具有一定的緩沖能力的基礎上的。
圖4FB算法示意圖
圖4為k+1個信道的FB算法示意圖,長度為L的音視頻數據被分成了N=2k+1-1個分段,每個分段長度為Δt=L/N,各個分段在各自的信道上按以下的原則播發:
在信道k上按順序廣播分段組{S2k-1…S2k-1}。
按照以上播發的機制,在機頂盒沒有緩沖能力的情況下,只有在t=t1時刻才能無間斷的收看完所有的音視頻數據。
如果機頂盒有硬盤接口,那么硬盤就可以用來緩沖數據,由于硬盤在PIO4方式下的最高傳輸速率為16.6Mbit/s,在傳輸流的碼率為4Mbit/s時只能緩沖4個信道的數據,即通過5個通道傳輸NVOD數據,本文以k=4個信道為例,音視頻數據被分割為N=15個分段,機頂盒在t=t0時刻開始接收并播放音視頻數據分段S1,同時,將S2、S4、S8數據分段緩沖到硬盤中,在t=t1時刻,分段S1播放完畢后,從硬盤中讀取S2分段并播放,與此同時,將S3、S5、S9數據緩沖到硬盤中,按照這樣的方法,就可以無間斷的播放完所有的音視頻數據。在其它的t=t0+i*Δt時刻都可以通過緩沖的方式播放完所有的數據。如果L=120min,則用戶的等待時間最大為Δt=L/N=120/15=8min,大大小于傳統NVOD的等待時間,表2是一些有代表性的NVOD算法和傳統的NVOD在信道個數k=4,音視頻數據長度L=120min時,視頻可分割的最大分段數和最大等待時間。
算法最大分段數最大等待時間 RFS254.8min FB158min 傳統NVOD430min 表2k=4和L=120min時算法對比 不難看出,具有硬盤緩沖能力的機頂盒配合一定的算法可以大大減少用戶從頭欣賞音視頻節目所需要等待的時間。 4結束語 本文主要介紹了如何在機頂盒內實現硬盤的硬件接口,并討論了在機頂盒上設計文件系統時的一些應考慮的問題,并在此基礎上通過兩個例子說明了具有硬盤接口的機頂盒的應用。機頂盒的硬盤接口技術極大地豐富了機頂盒的功能,帶給用戶全新的享受,是一種非常有市場前景的技術,必將隨著數字電視的普及加速發展。 參考文獻 [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
姚春光:博士生,研究范圍包括衛星通信信道編碼、調制解調技術,數字信號處理及其FPGA實現等。
陶雄飛:博士生,研究方向為多媒體與通信系統等。
張健:高級工程師,主要研究方向為衛星通信和光通信等。
葛新:工程師,主要研究方向為衛星通信和無線電頻譜管理等。