信號鏈基礎知識:誰(shuí)是音頻時(shí)鐘的“老板”
大多數人認為 I2S 有三種信號:
1.數據:輸入或者輸出數據
2.位時(shí)鐘 (Bitclock,BCK):確立數據流中兩個(gè)相鄰位之間邊界的信號
3.左/右時(shí)鐘 (LRCK)/字時(shí)鐘 (Wordclock):一個(gè)在采樣速率下運行、占空比為 50% 的慢時(shí)鐘,它確立數據流中兩條相鄰通道(左和右)之間的邊界。
I2S的幕后英雄是主時(shí)鐘 (MCK),也稱(chēng)作系統時(shí)鐘 (SCK),它常常被數字信號處理器 (DSP) 程序員和其他處理器愛(ài)好者們忽略。主時(shí)鐘 (MCK/SCK),通常為一個(gè)64、128、256和512倍采樣速率 (FS) 的時(shí)鐘。它可以由一個(gè)輸入引腳直接提供,也可以通過(guò)一個(gè)鎖相環(huán)路 (PLL) 在某些器件內部產(chǎn)生。
一般而言,DSP不需要音頻主時(shí)鐘,因為它們能夠以一種完全不同的速率對數據進(jìn)行處理,然后在BCK和LRCK的驅動(dòng)下,讓數據以某種速率進(jìn)入輸出緩沖器(或者通過(guò)輸入緩沖器接收數據)。
如果您能暫時(shí)將注意力從您的處理器上移開(kāi),您會(huì )發(fā)現音頻主時(shí)鐘重要得多。大多數MCK/SCK輸入的音頻轉換器,都要求時(shí)鐘同步,而有一些則允許異相位。這就意味著(zhù),它們需要由相同的高速時(shí)鐘來(lái)提供,然后被除小。我接觸過(guò)的一些客戶(hù)會(huì )突發(fā)靈感地告訴我:“我的ADC需要一個(gè)MCK,但它離我的DAC太遠。因此,我要在每個(gè)轉換器旁邊放置一個(gè)晶體……”有這種想法可以理解,但請您“千萬(wàn)別這么做!”
您在購買(mǎi)晶體時(shí),無(wú)法保證它剛好為48.000 kHz。您的模數轉換器 (ADC) 晶體的運行精確度可能會(huì )為+5%,而數模轉換器 (DAC) 的運行精確度可能為–5%。這樣的精確度,會(huì )給您的設計帶來(lái)災難性的后果!這是為什么呢,下面將為您娓娓道來(lái)。
用于 I2S
用于音頻ADC的主時(shí)鐘
如圖1所示,高速主時(shí)鐘(例如:24.576 MHz時(shí)鐘)用于驅動(dòng)ADC的過(guò)采樣調制器。之后,來(lái)自過(guò)采樣調制器的數據被消減分解成LRCK給定的采樣速率。
當ADC運行在主模式(生成BCK和LRCK,作為輸出)下時(shí),ADC只是對MCK/SCK進(jìn)行劃分,產(chǎn)生LRCK和 CK信號。這就對啦!LRCK/BCK和主時(shí)鐘被同步—相位也可能同步(除非它是一個(gè)特殊分割器)。

圖1 通用ADC結構圖
如果作為一個(gè)從器件,并且主時(shí)鐘不同步,則它產(chǎn)生的數據會(huì )過(guò)多或者過(guò)少,以至于數字抽取器無(wú)法剛好適合于輸出字。在這種條件下,許多ADC會(huì )拒絕流傳輸數據。
DAC也是如此。圖2顯示了一個(gè)高級DAC結構圖。此處,需要通過(guò)MCK/SCK運行內插器,而MCK/SCK同時(shí)還驅動(dòng)△∑調制器。如果MCK/SCK不是采樣速率的整倍數 (64/128/256/512),則在△∑調制器輸出端可能會(huì )出現錯誤數據。

圖2 通用DAC結構圖
我在哪里/如何生成MCK/SCK呢?
在當今的工業(yè)應用中,CMOS振蕩器由許多晶體振蕩器支持,并緊靠這些晶體振蕩器。它們都擁有非常好的精確度和較低的抖動(dòng)。偶爾會(huì )用到壓控振蕩器 (VCO),但它們會(huì )受到其輸出抖動(dòng)的困擾。
許多現代的音頻轉換器現在都集成了一個(gè)PLL,以通過(guò)慢BCK產(chǎn)生MCK。這樣做很有效。但是,您應該注意,使用PLL時(shí)始終都會(huì )有產(chǎn)生抖動(dòng)的可能,從而降低了音頻性能。
另外,我建議,如果在晶體源驅動(dòng)ADC或是DAC兩者之間選擇,請您選擇通過(guò)一個(gè)晶體產(chǎn)生源來(lái)運行ADC。如果輸入很糟糕,那么您做什么都于事無(wú)補!(就像您不可能把爛泥打磨光亮!)
因此,我的建議遵循的原則是:
1、如果轉換器為一個(gè)I2S從器件,則您必須通過(guò)相同源(如果轉換器帶有,則可以依靠?jì)炔?PLL),提供所有三個(gè)I2S時(shí)鐘(MCK、BCK和LRCK)。
2、如果轉換器為一個(gè)I2S主器件,則請確定能夠提供一個(gè)可靠的無(wú)抖動(dòng)MCK源。然后,讓轉換器自己分配。在可能的情況下,讓ADC通過(guò)一個(gè)可靠的低抖動(dòng)MCK源在主模式下運行。這樣做可以確保最低抖動(dòng)和最小高頻失真。
評論