光驱内重试次数计算的方法及装置 【技术领域】
本发明涉及光盘装置内的数据读取,特别是涉及一种在光盘装置上决定重试动作次数的最大值的方法和装置。
背景技术
光驱(CD-ROM drives)的特色就在于其能在高速下(像是16倍速或24倍速)读取数据,但是仍然有可能发生读取错误的情形。读取错误往往是起因于读取讯号其低信噪比(SNR),这也阻碍了数据检测的精准性。在一开始的读取工作时,如果一个记录在盘片上的数据区块(data block)无法正确读取时,光驱便执行重试的动作。因为在读取动作时出现的噪声,其强度和特性是多变的,如果信噪比足够大到能精确的恢复该数据区块的话,在重试动作期间重读该数据区块可能导致至少一个成功的读取动作。因此,往往进行多数次重试动作以达到成功地回复该数据区块。因为光驱在一个盘片周期内只能重试一次,大量的重试动作导致了俱增的潜时延迟(latency)。此外,在某些情况,即便无限制的增加重试的次数,信噪比也可能从未高到足以回复该数据区块,这也就是说,该数据区块是永远无法回复了。
已知关于重新读取方法描述如下。第一个常用的方法就是维持一个固定的重试次数,这个重试次数是根据盘片每单位时间旋转的数目(换言之就是盘片转速),来当作重试的预定次数。第二个方法就是在第一个方法无法更正错误时,暂时地降低盘片转速再重试,如果读取成功地话,再把盘片转速加速到原先的速度。第三个方法就是在第一个方法无法更正错误时,降低盘片转速再重试,如果读取成功的话,维持转速在降低后的速度。
前述关于重试的方法各有其优缺点。第一个方法因为盘片读取重试次数一直都维持在一预定次数,可以通过重试来修复对某数据区块的解读的机会有限,因此其错误校正能力(error correction capability)较低。第二个方法因为暂时的将盘片转速减速,可以降低噪声的大小和数量,因此有较好的错误校正能力,但是却增加了系统的负担。也就是说因为上述的方法,会使得转轴马达(spindle motor)转速频繁的改变。在错误更正后,盘片的转速也回复到原先的转速时,这会使得第二个方法有可能损害盘片。也就是说,盘片的损害可能是归因于盘片转速突然的改变。这也可能造成盘片的损害区域产生更进一步的读取错误,而且增加在辨认有损害倾向区域数据的困难。第三个方法也是使用到降低转速的方法,但不同的是,第三个方法在错误发生后,转速就维持不变,如果有错误发生就再降低转速,但这样会造成数据传送速度变得缓慢的缺点。
就拿已经纪录数字声讯数据的盘片来说,在读取处理模式下,光驱的读取头读到的数据,经由译码器处理后,暂时写在缓冲器(buffer)里。在缓冲器里译码后的数据很快就会被缓冲器清除掉,以便让新的数据能够写入。为能让声音读取处理的顺畅没有间断,试图重试动作的次数一定要有限制,这样一来,在执行下一个新的数据读取动作前,重试动作就能结束而不影响读取处理的顺畅。当数据缓冲器的内容是空的时候,下一个数据段的读取是不考虑错误的发生。
数字音源撷取(″DAE″),也就是一般所说的″转文件″,就是将盘片上的音轨以不同的编码压缩格式(像是WAV、MP3等等),藉由建立一个档案(或是一群档案)来复制到一硬盘或其它储存介质。如此一来,试图重试次数就必需要够大,以便能尽可能准确的复制盘片上的数据。
然而,如上述关于重试的方法,重试的次数已经固定住了,自然无法精准的复制盘片上的数据。因此,对一个固件设计师来说,想要确定一个重试次数,使其足以满足盘片上音源的读取处理和撷取两者,基本上是不可能的。
【发明内容】
本发明为一关于光盘装置内重试次数计算的方法和装置,而且对于读取处理和撷取两者都能达到最佳化的效果。
本发明提供一种当光盘装置上发生读取错误时,决定试图重试动作次数的最大值的方法。这个方法包含了下列步骤,接收光盘装置的读取头传来的射频讯号;检测该射频讯号的包络;当包络电平低于预定的阈值(predetermined threshold)时,致能一瑕疵讯号;在该瑕疵讯号的致能期间内,产生中断脉冲;藉由该中断脉冲,决定该试图重试动作次数的最大值。
本发明还提供一当光盘装置上发生读取错误时,一个试图重试动作次数的最大值的装置。这个装置包含了一射频处理器,用以接收和放大一来自光盘装置的读取头的射频讯号;一包络检测器,用以输出一射频讯号的包络;一瑕疵检测器,当该包络电平低于一预定的阈值时,致能一个瑕疵讯号,在该瑕疵讯号致能期间产生中断脉冲;一系统控制器,根据该中断脉冲,用以决定该试图重试动作次数的最大值。
【附图说明】
图1为一根据本发明的一实施例所绘的光盘装置方块图。
图2示出了图1的光盘装置中,RFAM、SBAD、DEF和中断讯号Interrupt的波形图。
图3为一流程图,用以表示图1中,当光盘装置上发生读取错误时,一个决定试图重试动作次数的最大值的方法。
附图符号说明
100~光盘
200~光学头
210~错误讯号产生器
220~聚焦/跟踪控制器电路
230~射频讯号放大器
240~包络检测器
250~瑕疵检测器
300~马达
310~马达控制器电路
320~滑动马达
330~滑动马达控制电路
430~激光驱动电路
500~系统控制器
【具体实施方式】
图1为一根据本发明的一实施例所绘的光盘装置方块图。在图1中,光盘100可以是一高密度纪录的介质。光学头200为一内建有用以录制或读取处理的半导体激光、不同型式的镜片、光讯号检测器和其它相似的装置。
在本实施例中,数据从光盘100上被纪录或读取处理。为了提供更精确的聚焦(focus)和跟踪(tracking),本实施例藉由错误讯号产生器210产生的聚焦/跟踪(focus/tracking)错误讯号FE/TE,输入一聚焦/跟踪控制器电路220来直接控制一物镜(图上并没有绘出)。一系统控制器500用以针对如光学头200、沟轨(land/groove)转换等所作的各种补偿发布指令。射频讯号放大器230用以放大一自光学头传送来的射频模拟讯号至预定的电平,且输出一讯号RFAM。该放大过后的射频讯号RFAM被送至包络检测器240,用以产生放大后射频讯号RFAM的包络讯号SBAD。
瑕疵检测器250用以输出一中断讯号Interrupt。当包络讯号SBAD的电平下降到比预定的阈值还低时,瑕疵检测器250内的讯号DEF(图上并没有绘出)将会持续被致能,直到包络讯号SBAD的电平超过阈值。本实施例的一种可能做法是,讯号DEF是以一预定的时间周期作周期性的检测。对每次的检测来说,如果讯号DEF的致能被检测到,则在该讯号Interrupt内产生中断脉冲。本实施例的另一种可能做法则是,对每次的检测来说,中断脉冲的产生只有在讯号DEF内有检测到电平的变化时才会产生中断脉冲。
本实施例的装置可进一步的包含一盘片旋转马达300、一马达控制电路310、一用以移动光学头200的滑动马达(slider motor)320和一滑动马达控制电路330。这些组件都是由系统控制器500控制,且皆为熟知的盘片读取处理器中的一部分。
图2表示了讯号RFAM、SBAD、DEF和Interrupt的波形。讯号RFAM的波形是藉由读取盘片上其中一个数据区块所得到的。特别要注意到,射频讯号在P1、P2和P3这三个时期,讯号都有下降的情形,这可能是因为数据错误、盘片瑕疵等等的原因。也因为如此,包络讯号SBAD也这P1、P2和P3这些期间内下降。在P1、P2和P3期间内,当讯号SBAD的电平低于一预先决定的阈值电平TH时,讯号DEF会被致能(被往上推)。而且当讯号SBAD的电平值又超过阈值电平TH时,讯号DEF就会被去能(de-assert,被往下拉)。本实施例的一种可能做法是,中断脉冲在P1、P2和P3这些周期内周期性的产生,如波形图讯号Interrupt(1)所示。本实施例的另一种可能做法则是,中断脉冲只有在讯号DEF的电平转变时才会产生,如波形图讯号Interrupt(2)所示。进一步来说,要注意到的关键是在一个期间内有多少中断脉冲产生。换句话来说,中断脉冲的分布和形式都不是关键所在。
图3为一流程图,用以表示图1中,当光盘装置上发生读取错误时,一个决定试图重试动作次数的最大值的方法。
从光盘片100中撷取关于读取ECC数据段的数据(步骤10),如此一个ECC数据段(换言之为16个扇区(sector))被读取处理(步骤S11)。接下来,从每个扇区来的数据会藉由解调器(图1上未绘出)来解调(步骤S12)。在去交错后(步骤S13),执行包含了PI错误修正(步骤S14)和PO错误修正(步骤S15)的ECC错误修正。如果ECC错误修正正确,ECC译码也被完成(步骤S17)。接下来就是执行读取主要数据和ID数据的动作。
如果在步骤15与步骤17之间的步骤S16中判断该错误修正无法执行的话,在16个扇区中,该个无法执行ECC修正的扇区将被取出(extracted)(步骤S18)。
在步骤S27中,系统控制器500根据中断讯号Interrupt内的中断脉冲数目,从RC1、RC2和RC3中选取一个值,用来当作重试次数最大值的参数。在此,一种可能的做法是,系统控制器500在一个错误数据段的读取期间,计算中断讯号Interrupt内中断脉冲的总数N。如果N比阈值N1大,在阈值N1与另一阈值N2之间,比阈值N2小的话,RC1、RC2和RC3各自被选定,也就是说RC1<RC2<RC3且N1>N2。简单来说,如果N值比较小,那最大重试次数值就比较大或N值比较大,最大重试次数值比较小。换句话说,N值越大,RC值(RC1、RC2、RC3)越小。
相对的,另一种可能的作法则是,系统控制器500根据仅在讯号DEF电平转变时产生脉冲的中断讯号Interrupt,从RC1、RC2和RC3中选取一个值,用来当作重试次数最大值的参数。系统控制器500在一个错误数据段的读取期间,计算讯号Interrupt内该读取期间的总长度L,该读取期间是介于一奇数编号和一偶数编号的中断脉冲之间。如果L比阈值L1大、在阈值L1与另一阈值L2之间、比阈值L2小的话,RC1、RC2和RC3各自被选定,也就是说RC1<RC2<RC3且L1>L2。简单来说,如果长度L值比较短,那最大重试次数值就比较大或最大重试次数值比较小,长度L值比较长。
在接下来的步骤S19中,读取处理重试要件都已经被设定好。在一个读取处理重试动作中,如果数据不能被正确的读取处理,光盘片上该相同的数据段会再次被读取。当执行读取处理重试动作时,信息可以在相同的要件或是修改过的要件下被重新读取。如果读取处理要件被修改过,系统控制器500可以在聚焦/跟踪控制器电路220中去改变聚焦或跟踪要件。当然,系统控制器500也可以是通过马达控制电路310来更改马达转速。
随着选择好一读取处理要件,该无法执行ECC修正的扇区被读取处理,且执行数据解调(步骤S20)。接着,ECC错误修正在新的读取扇区执行。在步骤S22中,新的读取扇区中的数据被加到存有前次读取数据的扇区中,如此一来ECC修正就可被执行了(该数据被储存在像是SRAM的内存中)。同时,如果该数据段的ECC错误修正可被执行,ECC译码也被完成(步骤S17)。如果步骤S23中ECC错误修正无法执行,在步骤S24中重试次数会被加1。
在步骤S28中,系统控制器500判断重试次数是否已经超过步骤S27所选择的最大值。如果是的话,系统控制器500将会在步骤S29回报ECC错误。除此之外,跳回步骤S18。在这个实施例中,不同的重试要件都会在步骤S19设定好。
如图3所示的方法中,步骤S27同样也可以运用在写入重试动作时,决定最大重试次数。
虽然本发明已以具体实施例披露如上,然其仅为了易于说明本发明的技术内容,而并非将本发明狭义地限定于该实施例,本领域的技术人员在不脱离本发明的精神和范围的前提下,可作些许的更动与润饰,因此本发明的保护范围以本发明的权利要求为准。