2007年12月24日 星期一

暗藏於晶片間的數位「聲道」玄機:I2S介面

轉載至http://tech.digitimes.com.tw/print.aspx?zNotesDocId=2D8D85C2E646BB564825700000435D7D

與I2C字樣與含意相近的,I2S的全稱是Inter-IC Sound,意指在晶片間傳遞的音源,至於會有哪些晶片需要相互傳遞數位音源,這包括了數位信號處理器(DSP)、類比數位轉換晶片(ADC)、數位類比轉換晶片(DAC)、數位過濾晶片(Digital Filter)、CD更錯晶片(Error Correction)、數位錄音晶片(Digital Recording)、數位電視音源晶片(Digital TV)、數位錄音帶(Digital Audio Tape)等,另外全球定位系統晶片(GPS)、數位廣播晶片(DAB)等也經常用上,或者SPDIF與I2S兩種介面都提供,前者適合外傳、外接,後者方便數位音源在機內進行再傳遞、再轉換、再處理。

簡單而言I2S有3條線路,稱呼與功用大體如下:

■SCK(continuous Serial Clock):串列傳輸的時脈線,專精、獨立的時脈傳遞。
■SD(Serial Data):串列傳輸的資料線,傳遞兩個聲道的數位音源資訊。
■WS(Word Select):字元選擇線,字元(Word)在此所指即是音源聲道(Channel)。

這3條線路的邏輯電壓準位等相關要求,全然比照一般TTL標準,即0V∼0.8V為Lo、2.4∼5.0V為Hi,就連源出(Source)與汲入(Sink)的電流值標準也類同於TTL,事實上I2S本就發創於標準TTL仍相當盛行的80年代,因此電氣特性的表現過於「基本」自然不足為怪。

接著我們要說明I2S的連接,一般而言I2S是一對一的連接,即音源發送端與音源接收端直接相連,且SD的資料傳輸永為單一方向不會改變,並非是雙向式傳輸。進一步的,到底由誰來發送SCK時脈呢?無論發送端或接收端都可擔任,不過必須在設計之初就決定由哪端發出,且在運作過程中無法再行變換。

同樣的,WS聲道控制線路也要一起頭就決定由誰來輸出,當WS輸出0時表示SD將要輸出的是Channel 1(或稱Channel A)的左聲道音源,反之輸出1則是Channel 2(或稱Channel B)的右聲道音源。簡單來說,3線都是單方單向的傳遞線路。

雖然在I2S介面上有收有發,但誰是I2S介面的主控者(Master)、受控者(Slave)呢?這取決於線路的配置法,凡是對外輸出SCK線路訊號的即是I2S的主控者,至於SD、WS在設計上可決定由主控端發送,也可決定由受控端發送,毫不影響主控、受控的角色。

另外也有一種比較特別的搭配組態,即是由一個超然中立的控制端來充當主控者,由它來廣播SCK時脈訊號,同時也由其來掌控及發送WS訊號。

附註:一般而言主控者選擇擔任發送端後就無法擔任接收端,或擔任接收端後就無法擔任接收端,不過若真的希望角色能互換,也是允許用軟體對接腳進行輸出入功用的再設定、轉換來實現。



▲圖說:誰負責SCK的對外發送,誰就是I2S介面中的主控者,無論發送器、接收器、控制器都可以是主控者。(圖片來源:Semiconductors.Philips.com)

刻意安排先行傳輸MSB的用意

接著我們要說明收端兩端如何傳遞SD資訊,此即是以SCK時脈為基準,當SCK由Lo轉成Hi(即上升緣觸發)時,發送端的SD資訊就會被接收端給閂鎖(Latch)。一旦Latch後,下一筆資料可選擇在任何時間進行變換,I2S對資料的變換時機沒有強制的要求。至於WS,一樣可在任何時間進行變化,但接收端的取樣與資訊認定一樣發生在上升緣觸發的時間點。

值得注意的是,WS的0、1狀態轉變時,同一上升緣的SD資訊依然是WS未轉態前的聲道資訊,確定WS狀態轉變後,下一個上升緣時SD線路才正式傳輸WS新指定聲道的音源資訊,畢竟接收端在接獲聲道變換的訊息後,需要一點時間進行內部邏輯機制的調整與準備,無法即時接收反應。

再來是壓軸部分:SD的數位音源傳輸,SD的串列傳輸順序是先傳遞最高位元(MSB,亦稱最高影響性位元),最後才傳遞LSB,或許有人認為這只是設定安排上的不同,應當也可以將順序反過來傳遞,但其實不然,以MSB為最優先傳送實有其充分理由。

I2S希望做到收發兩端不需任何的事先溝通協議就能正常進行傳遞,而所謂事先協議指的是讓兩端取得默契,如接下來的傳輸將是每聲道、每取樣多少位元解析度的資訊,是16-bit?20-bit?還是24-bit?

I2S之所以能不用事先溝通就可以直接傳送,就在於使用MSB先傳的特性,如果發送端是20-bit,接收端是更高解析度的24-bit,那麼傳送完20bits後的剩餘4bits可以由接收端自行補「0」,反過來說,若接收端只有16-bit,則傳送過來的20bits中,最後的4bits資訊可以直接丟捨忽略。同樣的道理並不限於上面所述的16-bit、20-bit、24-bit,只要有解析度位元數差距的情形都一律適用。



▲圖說:I2S在進行WS邏輯位準的改變後,SD便在下一個SCK時脈時開始傳輸另一聲道的數位音訊,並從MSB開始傳遞。(圖片來源:Semiconductors.Philips.com)

至於I2S可以含在多少音源資訊?以基本規範而言,一個時脈400nS,因此傳輸頻率為2.5MHz,等於可傳送2.5Mbps,如此約可傳遞24-bit解析度、48kHz取樣率的雙聲道音源,因為:

24bits x 48000Hz x 2Channel = 2304000bits/Sec = 2.304Mbps

2.5Mbps減去2.304Mbps後,只剩200kbps不到的傳輸頻寬,實在無法再傳遞什麼。不過,由於I2S在時序上的制訂都盡可能採行相對性、比例性的定義,以一個時脈週期為基準並稱為T,高低準位的時間最少須大於0.35T,延遲時間必須小於0.8T,上升時間必須大於0.15T等,這表示整個傳輸可以單純地透過時脈頻率拉升來加速資料傳量,不需要為提昇傳輸而有太多的環節顧慮。

附註:一般音樂CD的解析度為16-bit,取樣率為44.1kHz,但也可增至更優質的20-bit、24-bit,而專業的DAT其取樣率為48kHz,而DSR稍低,為32kHz。



▲圖說:I2S介面對時序的規範要求都盡可能採行相對性、比例性的設計,以SCK的一個時脈週期為T,其餘相關要求都以T為基準比例。(圖片來源:Semiconductors.Philips.com)

結論

在今日大談5.1、6.1的多聲道時代,以及Intel提出解析度高達32-bit的高清晰度音效(HD Audio)的時代,各位可能會對筆者在此所談論的雙聲道、24-bit感到不耐,然各位仔細想,眼前可有解析度高達32-bit的錄音麥克風?即便有可有任何音樂內容是以32-bit取樣錄製?(18-bit已是極優)很明顯的,24-bit依舊是萬中挑一的嚴選,一般多為16-bit、20-bit,就連DVD-Audio、SACD等也僅在24-bit。
另外5.1、6.1的多聲道,也僅適合在打造家庭劇院,狹小、個人專用的書房空間並不合適,且只有一人使用的情況下甜蜜區(Sweet Spot)不需太大,用2.1的喇叭組態便能營造足夠的方位音效感,至於真正要如電影般的大範圍甜蜜區佈建,就要動用如SDDS(Sony Dynamic Digital Sound)的7.1組態,一般5.1也辦不到。

況且,在外出時的個人使用,或在車內等場合也不能用多聲道,除非是林肯級座車才有可能,一般房車休旅車同樣是雙聲道即足夠,而在隨身用、車用電子、DAB/DVB/DMB(數位音訊、視訊、多媒體資訊廣播)、GPS等興盛的今天,電子工程師必然要務實地對機外SPDIF、機內I2S等數位音訊介面有通透性瞭解才行。

附註:I2S之後亦有增強型規格,稱為I2S Enhanced。


▲圖說:要佈建電影院等級的大範疇方位音效甜蜜區,需動用SDDS(Sony Dynamic Digital Sound)的8聲道技術才行。(圖片來源:SDDS.com)

6 則留言:

holland 提到...

很有用的資料,謝謝你!

holland 提到...

很有用的資料,謝謝你!

Kuan-Po Huang 提到...

很棒的資料,感謝!

Unknown 提到...

超有用喎

Sam chou 提到...

您好
你的資訊對我認識這各介面非常有幫助。

我想請問i2s這各介面,再PCB Layout上有甚麼需要注意的,再麻煩jack分享。

謝謝

maninblack 提到...

"凡是對外輸出SCK線路訊號的即是I2S的主控者,至於SD、WS在設計上可決定由主控端發送"
但是您提供的圖WS都是跟SCK同向。

另外Nordic他們自家I2S解釋:
The I2S mode decides which of the two sides (Master or Slave) shall provide the clock signals LRCK and SCK, and these signals are always supplied by the Master to the Slave.

所以不知道這是不是都是如此?