<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > TI熱門信號(hào)鏈基礎(chǔ)系列之 54:誰(shuí)是音頻時(shí)鐘的“老板

          TI熱門信號(hào)鏈基礎(chǔ)系列之 54:誰(shuí)是音頻時(shí)鐘的“老板

          作者: 時(shí)間:2011-12-20 來(lái)源:網(wǎng)絡(luò) 收藏

          關(guān)鍵詞:I2S、主、MCK、PLL、BCK、LRCK、壓控振蕩器、VCO、、模擬、半導(dǎo)體、德州儀器、TI

          本文引用地址:http://www.ex-cimer.com/article/187080.htm

          知識(shí)#54 誰(shuí)是的“老板”,誰(shuí)是主,誰(shuí)又是從呢?

          作者:Dafydd Roche,德州儀器 (TI) 工程師

          傳統(tǒng) I2S—為何要包括系統(tǒng)

          過(guò)去,我們?cè)谟懻撘纛l話題時(shí),偶爾會(huì)提及 I2S。我在以前的一些文章中提到過(guò) I2S,其他人在做音頻研究時(shí)也都會(huì)提到它。簡(jiǎn)而言之,它是一種將立體聲數(shù)據(jù)從一端傳輸至另一端的同步方法。

          大多數(shù)人認(rèn)為 I2S 有三種信號(hào):

          1.數(shù)據(jù):輸入或者輸出數(shù)據(jù)

          2.位時(shí)鐘 (Bitclock,BCK):確立數(shù)據(jù)流中兩個(gè)相鄰位之間邊界的信號(hào)

          3.左/右時(shí)鐘 (LRCK)/字時(shí)鐘 (Wordclock):一個(gè)在采樣速率下運(yùn)行、占空比為 50% 的慢時(shí)鐘,它確立數(shù)據(jù)流中兩條相鄰?fù)ǖ溃ㄗ蠛陀遥┲g的邊界。

          I2S 的幕后英雄是主時(shí)鐘 (MCK),也稱作系統(tǒng)時(shí)鐘 (SCK),它常常被數(shù)字信號(hào)處理器 (DSP) 程序員和其他處理器愛(ài)好者們忽略。主時(shí)鐘 (MCK/SCK),通常為一個(gè)64、128、256 和 512 倍采樣速率 (FS) 的時(shí)鐘。它可以由一個(gè)輸入引腳直接提供,也可以通過(guò)一個(gè)鎖相環(huán)路 (PLL) 在某些器件內(nèi)部產(chǎn)生。

          一般而言,DSP 不需要音頻主時(shí)鐘,因?yàn)樗鼈兡軌蛞砸环N完全不同的速率對(duì)數(shù)據(jù)進(jìn)行處理,然后在 BCK 和 LRCK 的驅(qū)動(dòng)下,讓數(shù)據(jù)以某種速率進(jìn)入輸出緩沖器(或者通過(guò)輸入緩沖器接收數(shù)據(jù))。如果您能暫時(shí)將注意力從您的處理器上移開,您會(huì)發(fā)現(xiàn)音頻主時(shí)鐘重要得多。大多數(shù) MCK/SCK 輸入的音頻轉(zhuǎn)換器,都要求時(shí)鐘同步,而有一些則允許異相位。這就意味著,它們需要由相同的高速時(shí)鐘來(lái)提供,然后被除小。我接觸過(guò)的一些客戶會(huì)突發(fā)靈感地告訴我:“我的 ADC 需要一個(gè) MCK,但它離我的 DAC 太遠(yuǎn)。因此,我要在每個(gè)轉(zhuǎn)換器旁邊放置一個(gè)晶體……”有這種想法可以理解,但請(qǐng)您“千萬(wàn)別這么做!”

          您在購(gòu)買晶體時(shí),無(wú)法保證它剛好為 48.000 kHz。您的模數(shù)轉(zhuǎn)換器 (ADC) 晶體的運(yùn)行精確度可能會(huì)為 +5%,而數(shù)模轉(zhuǎn)換器 (DAC) 的運(yùn)行精確度可能為 –5%。這樣的精確度,會(huì)給您的設(shè)計(jì)帶來(lái)災(zāi)難性的后果!這是為什么呢,下面將為您娓娓道來(lái)。

          用于 I2S

          用于音頻 ADC 的主時(shí)鐘

          如圖 1 所示,高速主時(shí)鐘(例如:24.576 MHz 時(shí)鐘)用于驅(qū)動(dòng) ADC 的過(guò)采樣調(diào)制器。之后,來(lái)自過(guò)采樣調(diào)制器的數(shù)據(jù)被消減分解成 LRCK 給定的采樣速率。

          當(dāng) ADC 運(yùn)行在主模式(生成 BCK 和 LRCK,作為輸出)下時(shí),ADC 只是對(duì) MCK/SCK 進(jìn)行劃分,產(chǎn)生 LRCK 和 BCK 信號(hào)。這就對(duì)啦!LRCK/BCK 和主時(shí)鐘被同步—相位也可能同步(除非它是一個(gè)特殊分割器)。

          Figure_01.jpgFigure_01_副本.jpg

          圖 1 通用 ADC 結(jié)構(gòu)圖

          如果作為一個(gè)從器件,并且主時(shí)鐘不同步,則它產(chǎn)生的數(shù)據(jù)會(huì)過(guò)多或者過(guò)少,以至于數(shù)字抽取器無(wú)法剛好適合于輸出字。在這種條件下,許多 ADC 會(huì)拒絕流傳輸數(shù)據(jù)。

          DAC 也是如此。圖 2 顯示了一個(gè)高級(jí) DAC 結(jié)構(gòu)圖。此處,需要通過(guò) MCK/SCK 運(yùn)行內(nèi)插器,而 MCK/SCK 同時(shí)還驅(qū)動(dòng) △∑ 調(diào)制器。如果 MCK/SCK 不是采樣速率的整倍數(shù) (64/128/256/512),則在 △∑ 調(diào)制器輸出端可能會(huì)出現(xiàn)錯(cuò)誤數(shù)據(jù)。

          Figure_02_副本.jpg

          圖 2 通用 DAC 結(jié)構(gòu)圖

          我在哪里/如何生成 MCK/SCK 呢?

          在當(dāng)今的工業(yè)應(yīng)用中,CMOS 振蕩器由許多晶體振蕩器支持,并緊靠這些晶體振蕩器。它們都擁有非常好的精確度和較低的抖動(dòng)。偶爾會(huì)用到壓控振蕩器 (VCO),但它們會(huì)受到其輸出抖動(dòng)的困擾。

          許多現(xiàn)代的音頻轉(zhuǎn)換器現(xiàn)在都集成了一個(gè) PLL,以通過(guò)慢 BCK 產(chǎn)生 MCK。這樣做很有效。但是,您應(yīng)該注意,使用 PLL 時(shí)始終都會(huì)有產(chǎn)生抖動(dòng)的可能,從而降低了音頻性能。

          另外,我建議,如果在晶體源驅(qū)動(dòng) ADC 或是 DAC 兩者之間選擇,請(qǐng)您選擇通過(guò)一個(gè)晶體產(chǎn)生源來(lái)運(yùn)行 ADC。如果輸入很糟糕,那么您做什么都于事無(wú)補(bǔ)!(就像您不可能把爛泥打磨光亮?。?/p>

          因此,我的建議遵循的原則是:

          1、如果轉(zhuǎn)換器為一個(gè) I2S 從器件,則您必須通過(guò)相同源(如果轉(zhuǎn)換器帶有,則可以依靠?jī)?nèi)部 PLL),提供所有三個(gè) I2S 時(shí)鐘(MCK、BCK 和 LRCK)。

          2、如果轉(zhuǎn)換器為一個(gè) I2S 主器件,則請(qǐng)確定能夠提供一個(gè)可靠的無(wú)抖動(dòng) MCK源。然后,讓轉(zhuǎn)換器自己分配。在可能的情況下,讓 ADC 通過(guò)一個(gè)可靠的低抖動(dòng) MCK 源在主模式下運(yùn)行。這樣做可以確保最低抖動(dòng)和最小高頻失真。

          建議參閱資料:

          •《關(guān)于抖動(dòng)》,作者:Dan Lavry,Lavry 工程公司,版權(quán)所有 1997。



          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();