本文简要地介绍了机顶盒硬盘接口技术以及文件系统的实现要点,并通过两个例子(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实现等。
陶雄飞:博士生,研究方向为多媒体与通信系统等。
张健:高级工程师,主要研究方向为卫星通信和光通信等。
葛新:工程师,主要研究方向为卫星通信和无线电频谱管理等。