问个关于异步时钟的问题
就是网上看到好多解码器,都说为了杜绝信号源时钟的jitter,采用了本地的高质量时钟,那么这样就有一个问题了,信号源时钟和本地时钟如果不同步,快一点或者慢一点,那岂不是要出大事,就算子啊本地开辟一个比较大的FIFO,播放时间长一点,一样会出问题吧,要是信号源快了,就意味着,隔一段时间,就要舍弃一个原始数据,要是信号源慢了,那么隔一段时间,数据就会缺少一个??难道说,使用本地时钟,还需要对原始数据进行重采样,数字插值或者滤波之类的处理?? 对于usb dac,FIFO快空了的时候会让系统加快数据发送,快满了的时候让系统减慢发送,而读FIFO速率由本地时钟决定,降低时基抖动
对于接收spdif的dac,出现你说的这么严重的时基抖动就不叫时基抖动了,误码会导致DIR失锁不能正常播放
抖动 通常不会这么严重,lz放心用即可 楼主描述的不是异步时钟,是通讯速率跟不上………………………… 我描述的,是信号源时钟和本地时钟不同步的问题,和抖动没有关系,当然,使用本地时钟就是为了消除信号源的时钟抖动影响的;
比如说,信号源时钟是44.1005k,本地时钟是44.1001k那么,就是信号源发送数据的速度会比解码器消耗数据的速度快,不管FIFO多大,时间长了,总会溢出,反过来的话,信号源慢了,FIFO就会空,我的意思是这个问题要如何解,时钟不同步是一定存在的,因为没有两个始终会完全一样嘛{:titter:} dudududu 发表于 2015-3-4 20:55
我描述的,是信号源时钟和本地时钟不同步的问题,和抖动没有关系,当然,使用本地时钟就是为了消除信号源的 ...
这样的时钟长时间连续播放你会享受间断性爆音{:titter:}
每次换曲dir重新锁定一次,清空FIFO,重新开始
所以大概不会出现明显问题吧
wangrb 发表于 2015-3-5 23:03
这样的时钟长时间连续播放你会享受间断性爆音
每次换曲dir重新锁定一次,清空FIFO,重新开始
...
诶,所以,这是个治标不治本的做法,遇到高码流,长时间的文件,那么爆音间隔就会变小 为了杜绝信号源时钟的jitter,采用了本地的高质量时钟
正如这句话所描述的,使用本地时钟考虑的的是 时钟本身 的稳定性问题,与FIFO啊、同步啊什么的没任何关系
dykwai1 发表于 2015-3-6 13:21
为了杜绝信号源时钟的jitter,采用了本地的高质量时钟
正如这句话所描述的,使用本地时钟考虑的的是 时钟本 ...
但是同样的,必须要面对适中的同步性问题吧,就算你本地时钟性能出奇的好,但是前后不同步,有啥用?时不时的断流或者数据溢出 同步是另外一个问题,分两个方面
一个是数据流的,一般是通过fifo缓冲辅助以插入数据、删除数据的办法处理
一个是时钟的,异步时钟一般是通过使用异步fifo的方法解决的 dykwai1 发表于 2015-3-7 11:02
同步是另外一个问题,分两个方面
一个是数据流的,一般是通过fifo缓冲辅助以插入数据、删除数据的办法处理
...
那么也就是说,不能绝对保证传输的是原始数据咯,时不时的要删除一笔数据,或者插入一笔多余的数据? FIFO 尺寸设置合适的话,插入或删除数据的几率是很低的 dykwai1 发表于 2015-3-9 09:27
FIFO 尺寸设置合适的话,插入或删除数据的几率是很低的
意思就是要把fifo搞大一点,是么{:lol:} 基本是这个意思,具体多大尺寸合适需要实际测试,太大了浪费且会带来一些延迟 你需要的是一个与外部时钟同步的锁相环,本地时钟多么精确都没有用! mdj-fish 发表于 2015-3-9 16:01
你需要的是一个与外部时钟同步的锁相环,本地时钟多么精确都没有用!
这个有现成的芯片么? 一般音频时钟是多少m,可以允许多少ns的抖动,我有办法做如果时钟频率不是特别高的话,可以根据fifo水线来恢复时钟,如果是需要精度很高,可以考虑用dds,这样肯定不会丢数据 如果不用dds可以用高速时钟分频,类似锁相环,但是有高速时钟周期的抖动,不知道这个能不能接受,比如说,用200m的本地时钟可能会产生5ns 的抖动,如果可以接受,fpga就可以做这个事情 发重复了,编辑掉 Fourier00 发表于 2015-3-10 19:25
的抖动,如果可以接受,fpga就可以做这个事情
ns??现在的数字音频接收芯片的jitter指标基本都在50ps级别,ns会被直接pass掉的
话说,FPGA对高速时钟做分频的话,假设时钟源是高质量的,忽略其本身的jitter,那么FPGA在分频的过程中,会引入多大的jitter呢? dudududu 发表于 2015-3-12 09:21
ns??现在的数字音频接收芯片的jitter指标基本都在50ps级别,ns会被直接pass掉的
话说,FPGA对高速时钟 ...
如果是200m的时钟,最小的抖动就是5ns的,更加高速肯定跑不上去,看来这种方案肯定是不行的,只能外面做一个dds,然后通过dds来恢复时钟,要求是50ps以内,那么实际上要求时钟在(50/(227*1e3))*1e6
=220ppm那可以用dds来通过fifo水线来恢复时钟 Fourier00 发表于 2015-3-12 12:08
如果是200m的时钟,最小的抖动就是5ns的,更加高速肯定跑不上去,看来这种方案肯定是不行的,只能外面做 ...
DDS不是合成时钟的么?
另外你这个公式是什么意思,可以细说下不?
这么说,DDS还可以消除时钟抖动?看不明白的说啊 dudududu 发表于 2015-3-12 12:51
DDS不是合成时钟的么?
另外你这个公式是什么意思,可以细说下不?
这么说,DDS还可以消除时钟抖动?看不 ...
Dds是频率合成的意思,他就是可以根据控制字来产生频率的东西,如果控制字是fifo水线的值的线性函数,就可以通过水线和dds来恢复时钟,保证fifo不溢出,也就是可以恢复对端时钟,在通信中很常见的一种应用,那个算法的是吧50ps除44k的周期,可以求出频偏抖动范围,单位是ppn Fourier00 发表于 2015-3-12 13:05
Dds是频率合成的意思,他就是可以根据控制字来产生频率的东西,如果控制字是fifo水线的值的线性函数,就 ...
这里的jitter,应该说的是音频系统里面的主时钟,一般是bitclk的4倍湖综合8倍,或者更高,几十MHz dudududu 发表于 2015-3-12 16:36
这里的jitter,应该说的是音频系统里面的主时钟,一般是bitclk的4倍湖综合8倍,或者更高,几十MHz ...
我觉得偶尔差几ns应该也没有关系,我们当然搞spdif也是通过这样恢复时钟的,还是可以接受,用fpga方案很好实现,200m时钟,5ns按照24bit算的话也就是208ps也挺大的
页:
[1]