<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 模擬技術(shù) > 設計應用 > 走對這幾步 讓 I2S 收發(fā)器跑起來(lái)!

走對這幾步 讓 I2S 收發(fā)器跑起來(lái)!

作者: 時(shí)間:2024-08-28 來(lái)源:ADI 收藏

文章 概述

本文引用地址:http://dyxdggzs.com/article/202408/462424.htm

本文介紹了收發(fā)器的配置與實(shí)現,用于FPGA的VHDL編程。是數字音頻的標準化串行通信總線(xiàn),由SCK、WS和SD三條線(xiàn)路組成。文章闡述了收發(fā)器的工作原理,包括數據傳輸方式、操作理論、配置方法、端口描述以及音頻數據事務(wù)傳輸。


本文詳細介紹了一個(gè)主 I2S 收發(fā)器組件用于 FPGA,以 VHDL 編寫(xiě)。 組件通過(guò) I2S 接口接收音頻數據,并將接收到的數據在某一采樣率上傳送給并行接口上的用戶(hù)邏輯芯片。 它還在某一采樣率上從用戶(hù)邏輯芯片上接收并行數據,并通過(guò) I2S 接口將這些數據傳輸出去。 圖1說(shuō)明了將 I2S 收發(fā)器集成到系統中的一個(gè)典型示例。
圖 示例實(shí)現

背景

I2S (也稱(chēng)為 IIS) 是用于數字音頻的標準化串行通信總線(xiàn)。該總線(xiàn)由串行時(shí)鐘 (SCK)、字段選擇信號 (WS)和串行數據 (SD) 3條線(xiàn)路組成。圖2顯示了 I2S 通信鏈路的數據幀。

圖 2. I2S 數據幀串行數據線(xiàn)傳輸兩個(gè)時(shí)間復用的數據通道——左信道和右信道。數據首先以2’s 二進(jìn)制補碼形式傳輸最高有效位(MSB)。字段選擇信號 (WS)表示當前正在傳輸的聲道(低=左聲道,高=右聲道)。該通道數據字段的MSB在字段選擇信號 (WS)切換后傳輸一個(gè)時(shí)鐘周期,然后是數字節的其余部分。數據位在下降時(shí)鐘沿上傳輸,在上升時(shí)鐘沿上讀取。I2S發(fā)送器或I2S接收器都可以充當主機(master)。主機提供串行時(shí)鐘和字段選擇信號。音頻編解碼器通常也需要一個(gè)“主時(shí)鐘”(MCLK) 來(lái)運行其內部電路。MCLK 頻率通常是采樣率的倍數,例如 256*Fs (其中 Fs 是采樣率)。要求取決于具體的音頻編解碼器。

操作理論這個(gè)I2S 收發(fā)器輸入一個(gè)主時(shí)鐘,并通過(guò)計數器從它得到串行時(shí)鐘和字段選擇信號。串行時(shí)鐘頻率是主時(shí)鐘的整數倍,字段選擇頻率(即采樣率)是串行時(shí)鐘的整數倍。接收數據從串行時(shí)鐘上升沿上的 sd_rx 端口時(shí)鐘進(jìn)入內部接收移位寄存器。在字段選擇切換后,為適當的通道啟用一個(gè)串行時(shí)鐘周期的移位,并繼續保持數據字段的寬度,然后再次禁用。在每個(gè)字段選擇開(kāi)關(guān)上,收發(fā)器分別在 r_data_rx 和 l_data_rx 端口上呈現右聲道和左聲道的接收數據。相反,在 r_data_tx 和 l_data_tx 輸入端口上呈現的左右數據在每個(gè)字段選擇開(kāi)關(guān)上并行加載到內部傳輸移位寄存器中。這些數據在串行時(shí)鐘下降沿上的 sd_tx 端口被時(shí)鐘輸出。在字段選擇切換后,為適當的通道啟用一個(gè)串行時(shí)鐘周期的移位,并在數據字段的寬度之外繼續一個(gè)串行時(shí)鐘,然后再次禁用。根據 I2S 總線(xiàn)規范,額外的傳輸位將 sd_tx 數據線(xiàn)設置為’ 0 ',以防數據寬度與接收 I2S 設備不匹配。

配置I2S 收發(fā)器

I2S 收發(fā)器通過(guò)在 ENTITY 中設置通用參數進(jìn)行配置。

sclk_ws_ratio

字段選擇 (ws) 信號的頻率是采樣率。 sclk_ws_ratio 參數定義了每個(gè)字段選擇周期的串行時(shí)鐘*(sclk)* 周期數。

mclk_sclk_ratio

mclk_sclk_ratio 參數定義了每個(gè)串行時(shí)鐘*(sclk)* 周期的主時(shí)鐘 (mclk) 周期數。

d_width

參數 d_width 以位為單位定義每個(gè)數據字段的大小。這并不需要等于一個(gè)字段選擇半周期內串行時(shí)鐘周期的數量(即在信道數據傳輸期間串行時(shí)鐘的數量)。如果在字段選擇半周期內有多余的時(shí)鐘周期,那么在額外的串行時(shí)鐘周期內串行數據接收端口 (sd_rx) 上的任何數據都將被忽略,并且串行數據傳輸端口 (sd_tx) 為這些額外的位輸出 ’ 0 '。

提供主時(shí)鐘 (Master Clock)

I2S 收發(fā)器需要一個(gè)主時(shí)鐘 時(shí)鐘輸入 來(lái)操作。該時(shí)鐘是發(fā)送到 I2S 收發(fā)器正在通信的 I2S 從設備的同一主時(shí)鐘信號。

通常,期望的采樣率 (Fs) 是已知的,I2S 設備需要一個(gè)該采樣率的若干倍的主時(shí)鐘。例如,假設期望的采樣率是常用的 44.1 kHz,并且 I2S 設備接受 256*Fs 的主時(shí)鐘。這意味著(zhù)用戶(hù)需要為 I2S 設備和 I2S 收發(fā)器提供11.29 MHz的 mclk 。mclk 信號可以在 FPGA 內部使用鎖相環(huán)導出。

端口的描述

I2S收發(fā)器接口說(shuō)明如表1所示。

表 端口的描述

音頻數據事務(wù)傳輸

I2S 收發(fā)器使 l_data_rx 和 r_data_rx 端口上的用戶(hù)邏輯可以使用接收到的數據。這兩個(gè)接收數據端口在每次 ws 轉換時(shí)都會(huì )更新。由于新的左聲道數據僅在 ws = ’ 0 '時(shí)接收,因此 l_data_rx 端口與 ws 的上升沿同時(shí)獲得新值,即當左聲道數據字段完成時(shí)。同樣,新的右聲道數據僅在 ws = " 1 " 時(shí)接收,因此 r_data_rx 端口與 ws 的下降沿并發(fā)獲得新值,即當右聲道數據字段完成時(shí)。用戶(hù)邏輯可以使用 ws 信號來(lái)指示新數據可用,從而以采樣率檢索該數據。圖3 說(shuō)明了這種行為。

類(lèi)似地,I2S 收發(fā)器在每個(gè) ws 轉換的 l_data_tx 和 r_data_tx 端口上鎖存新的傳輸數據。用戶(hù)邏輯可以使用 ws 信號來(lái)指示何時(shí)將其輸出數據鎖存,因此可以自由地在這些端口上呈現下一組傳輸數據。鎖存在 ws 下降沿上的 l_data_tx 值在左聲道數據字段傳輸期間在 sd_tx 上傳輸。同樣,鎖存在 ws 上升沿上的 r_data_tx 值在右聲道數據字段傳輸期間在 sd_tx 上傳輸。圖3 顯示了這種行為。圖 3. 時(shí)間圖

重置(Reset)

reset_n 輸入端口必須具有邏輯高,I2S 收發(fā)器才能正常工作。該端口上的低信號將異步復位組件。復位期間,組件保持 sclk 、 ws 和 sd_tx 端口為低電平。任何當前正在進(jìn)行的傳輸都將停止。任何當前正在進(jìn)行的接收被放棄, l_data_rx 和 r_data_rx 輸出端口清空。清除所有內部數據緩沖區。一旦解除復位,I2S 收發(fā)器恢復工作。

結論

I2S 收發(fā)器是一種可配置的可編程邏輯組件,通過(guò)標準 I2S 總線(xiàn)傳輸和接收音頻數據。它作為主控器工作,為接口提供串行時(shí)鐘和選字信號。它允許用戶(hù)為特定的采樣頻率、數據寬度、主時(shí)鐘和每字串行時(shí)鐘周期數進(jìn)行配置。



關(guān)鍵詞: ADI I2S

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>