0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

音頻總線I2S協(xié)議:I2S收發(fā)模塊FPGA的仿真設(shè)計(jì)

454398 ? 來源:FPGA開源工作室 ? 作者:FPGA開源工作室 ? 2020-12-14 17:34 ? 次閱讀

1 概述

I2S(Inter—IC Sound)總線, 又稱 集成電路內(nèi)置音頻總線,是飛利浦公司為數(shù)字音頻設(shè)備之間的音頻數(shù)據(jù)傳輸而制定的一種總線標(biāo)準(zhǔn),該總線專門用于音頻設(shè)備之間的數(shù)據(jù)傳輸,廣泛應(yīng)用于各種多媒體系統(tǒng)。I2S采用了沿獨(dú)立的導(dǎo)線傳輸時(shí)鐘與數(shù)據(jù)信號的設(shè)計(jì),通過將數(shù)據(jù)和時(shí)鐘信號分離,避免了因時(shí)差誘發(fā)的失真,為用戶節(jié)省了購買抵抗音頻抖動的專業(yè)設(shè)備的費(fèi)用。

在飛利浦公司的I2S標(biāo)準(zhǔn)中,I2S主要有三個(gè)信號。

1.位時(shí)鐘 BICK(也叫串行時(shí)鐘SCLK),即對應(yīng)數(shù)字音頻的每一位數(shù)據(jù),BCLK都有1個(gè)脈沖。BCLK的頻率=2×采樣頻率×采樣位數(shù)。

2.幀時(shí)鐘LRCK,(也稱WS),用于切換左右聲道的數(shù)據(jù)。LRCK為“1”表示正在傳輸?shù)氖怯衣暤赖臄?shù)據(jù),為“0”則表示正在傳輸?shù)氖亲舐暤赖臄?shù)據(jù)。LRCK的頻率等于采樣頻率。

3.串行數(shù)據(jù)SDATA,就是用二進(jìn)制補(bǔ)碼表示的音頻數(shù)據(jù)。

有時(shí)為了使系統(tǒng)間能夠更好地同步,還需要另外傳輸一個(gè)信號MCLK,稱為主時(shí)鐘,也叫系統(tǒng)時(shí)鐘(Sys Clock),是采樣頻率的256倍或384倍。隨著技術(shù)的發(fā)展,在統(tǒng)一的 I2S接口下,出現(xiàn)了多種不同的數(shù)據(jù)格式。根據(jù)SDATA數(shù)據(jù)相對于LRCK和SCLK的位置不同,分為左對齊(較少使用)、I2S格式(即飛利浦規(guī)定的格式)和右對齊(也叫日本格式、普通格式)。

以下是I2S Sample rate 44.1Khz 和48Khz部分系列。

pIYBAF9uEeOAREfrAAKRy1tR9Ao056.png

2 模式

左對齊模式:SDATA 的MSB在BCLK的第一個(gè)上升獲得根據(jù)LRCK的傳輸。

o4YBAF9uEeWARAAXAAGl6CEKTZg274.png

I2S模式:SDATA 的MSB在BCLK的第二個(gè)上升獲得根據(jù)LRCK的傳輸。

o4YBAF9uEeeAGY26AAGcbdLDkXY934.png

右對齊模式。

pIYBAF9uEemAWzNQAAFoPItf77Q218.png

3 I2S收發(fā)模塊FPGA仿真設(shè)計(jì)

i2s_test模塊為i2s_in和i2s_out模塊的頂層,i2s_in模塊將輸入的串行數(shù)據(jù)轉(zhuǎn)換成并行的數(shù)據(jù),然后i2s_out模塊將并行數(shù)據(jù)轉(zhuǎn)換成串行數(shù)據(jù)輸出。

o4YBAF9uEeyAUlupAAJGwtkJOfI729.png

I2s_in模塊和I2s_out模塊的接口說明如下。

pIYBAF9uEe-AQo1RAAJbn1Mz3mk306.png

o4YBAF9uEfOAQjRFAAO5Na1gqnI467.png

I2s test bench設(shè)計(jì)

讓i2s_out模塊將并行轉(zhuǎn)為串行,然后使用i2s_in模塊將串行轉(zhuǎn)為并行。驗(yàn)證數(shù)據(jù)是否正確。

Test bench源碼:
1. // test bench

2.

3. `timescale 1ps/1ps

4.

5. module tb32bitmaster();

6.

7. initial begin #600000000 $finish; end //600us

8.

9. reg preset_n;

10. initial begin preset_n = 1; #10000 preset_n = 0; #100000 preset_n = 1; end

11.

12. reg pclk;

13. initial begin pclk = 0; #313333 pclk = 0; forever #11072.1 pclk = ~pclk; end

14.

15. reg start;

16. initial begin start = 0; #400000 start = 1; end

17.

18. reg clkd2, clkd4, clkd8, clkd16;

19. wire reset_n = preset_n;

20.

21. always @(posedge pclk or negedge reset_n)

22. if (0 == reset_n)

23. clkd2

24. else

25. clkd2

26.

27. always @(posedge clkd2 or negedge reset_n)

28. if (0 == reset_n)

29. clkd4

30. else

31. clkd4

32.

33. always @(posedge clkd4 or negedge reset_n)

34. if (0 == reset_n)

35. clkd8

36. else

37. clkd8

38. always @(posedge clkd8 or negedge reset_n)

39. if (0 == reset_n)

40. clkd16

41. else

42. clkd16

43.

44.

45. wire bck, lrck, sdata;

46. wire [31:0] y0, y1;

47.

48. i2s_in U_i2s_in(

49. .mclk(pclk),

50. .reset_n(reset_n),

51.

52. .in_bck(bck),

53. .in_lrck(lrck),

54. .in_sdata(sdata),

55. //controls

56. //output

57. .source_left(y0),

58. .source_right(y1)

59. );

60.

61. i2s_out u_i2s_out(

62. .in_bck(clkd16),

63. .reset_n(reset_n),

64. .source_left(32'h5555_aaaa),

65. .source_right(32'haaaa_5555),

66. .obck(bck),

67. .olrck(lrck),

68. .odata(sdata)

69. );

70. endmodule

71.

72. `include "i2s_out.v"

73. `include "i2s_in.v"

從仿真結(jié)果看我們的i2s_out和i2s_in模塊仿真設(shè)計(jì)成功。

編輯:hfy

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1624

    文章

    21538

    瀏覽量

    600449
  • I2S
    I2S
    +關(guān)注

    關(guān)注

    1

    文章

    62

    瀏覽量

    41742
收藏 人收藏

    評論

    相關(guān)推薦

    全面解析I2S、TDM、PCM音頻總線

    I2S是比較簡單的數(shù)字接口協(xié)議,沒有地址或設(shè)備選擇機(jī)制。在I2S總線上,只能同時(shí)存在一個(gè)主設(shè)備和發(fā)送設(shè)備。主設(shè)備可以是發(fā)送設(shè)備,也可以是接收設(shè)備,或是協(xié)調(diào)發(fā)送設(shè)備和接收設(shè)備的其它控制設(shè)
    發(fā)表于 09-20 10:58 ?1.2w次閱讀

    音頻接口I2S實(shí)驗(yàn)

    實(shí)驗(yàn)?zāi)康? 1.掌握有關(guān)音頻處理的實(shí)驗(yàn)原理及說明;2.通過實(shí)驗(yàn)了解I2S(Inter–ICSound)音頻接口的工作原理;3.通過實(shí)驗(yàn)掌握對處理器S
    發(fā)表于 12-29 00:07 ?116次下載

    基于FPGA和AD1836的I2S接口設(shè)計(jì)

    I2S(Inter IC Sound Bus)是飛利浦公司為數(shù)字音頻設(shè)備之間的音頻數(shù)據(jù)傳輸而制定的一種總線標(biāo)準(zhǔn),它既規(guī)定了硬件接口規(guī)范,也規(guī)定了數(shù)字
    發(fā)表于 03-29 11:02 ?6510次閱讀
    基于<b class='flag-5'>FPGA</b>和AD1836的<b class='flag-5'>I2S</b>接口設(shè)計(jì)

    CAN、I2SI2C、SPI、SSP總線的介紹和比較

    CAN、I2S、I2C、SPI、SSP總線的介紹和比較。
    發(fā)表于 07-14 16:20 ?52次下載

    I2S設(shè)備和MSP430器件的連接指南

    介紹 MSP430系列微處理器是快速強(qiáng)大的設(shè)備,非常適合用于各種無線收發(fā)器。在流式音頻應(yīng)用程序,但是,它是理想的微處理器支持音頻總線,允許互連到音頻
    發(fā)表于 05-19 15:56 ?32次下載
    <b class='flag-5'>I2S</b>設(shè)備和MSP430器件的連接指南

    i2s總線協(xié)議及結(jié)構(gòu)配置

    I2S總線, 又稱 集成電路內(nèi)置音頻總線,是飛利浦公司為數(shù)字音頻設(shè)備之間的音頻數(shù)據(jù)傳輸而制定的一
    發(fā)表于 01-29 15:45 ?6656次閱讀
    <b class='flag-5'>i2s</b><b class='flag-5'>總線</b><b class='flag-5'>協(xié)議</b>及結(jié)構(gòu)配置

    i2s音頻總線學(xué)習(xí)

    I2S是飛利浦公司針對數(shù)字音頻設(shè)備(如CD播放器、數(shù)碼音效處理器、數(shù)字電視音響系統(tǒng))之間的音頻數(shù)據(jù)傳輸而制定的一種總線標(biāo)準(zhǔn)。它采用了獨(dú)立的導(dǎo)線傳輸時(shí)鐘與數(shù)據(jù)信號的設(shè)計(jì),通過將數(shù)據(jù)和時(shí)鐘
    發(fā)表于 01-29 16:29 ?4168次閱讀
    <b class='flag-5'>i2s</b><b class='flag-5'>音頻</b><b class='flag-5'>總線</b>學(xué)習(xí)

    I2S接口工作原理_I2S接口介紹

    I2S總線, 又稱 集成電路內(nèi)置音頻總線,是飛利浦公司為數(shù)字音頻設(shè)備之間的音頻數(shù)據(jù)傳輸而制定的一
    發(fā)表于 01-29 17:18 ?10.7w次閱讀
    <b class='flag-5'>I2S</b>接口工作原理_<b class='flag-5'>I2S</b>接口介紹

    幾種常見的I2S數(shù)據(jù)格式

    I2S總線簡單有效,可以有效提升輸出數(shù)據(jù)的質(zhì)量,在各種嵌入式音頻系統(tǒng)中有廣泛應(yīng)用。但是在嵌入式音頻系統(tǒng)設(shè)計(jì)中,并不是所有的MCU都支持I2S
    發(fā)表于 01-29 19:18 ?1.2w次閱讀
    幾種常見的<b class='flag-5'>I2S</b>數(shù)據(jù)格式

    I2S音頻總線基本知識科普

    I2S(Inter—IC Sound)總線, 又稱集成電路內(nèi)置音頻總線,是飛利浦公司為數(shù)字音頻設(shè)備之間的
    的頭像 發(fā)表于 04-12 07:48 ?2.9w次閱讀
    <b class='flag-5'>I2S</b><b class='flag-5'>音頻</b><b class='flag-5'>總線</b>基本知識科普

    基于MM32F5270控制器的I2S音頻播放

    MM32F5270 系列控制器支持 I2S 總線接口,本章節(jié)在接下來會對 MM32F5270 I2S進(jìn)行介紹,并使用 MM32F5270 和 CS4344 芯片進(jìn)行 I2S 通信來演示
    的頭像 發(fā)表于 09-16 10:39 ?2150次閱讀

    I2S、TDM、PCM音頻總線

    I2S包括兩個(gè)聲道(Left/Right)的數(shù)據(jù),在主設(shè)備發(fā)出聲道選擇/字選擇(WS)控制下進(jìn)行左右聲道數(shù)據(jù)切換。通過增加I2S接口的數(shù)目或其它I2S設(shè)備可以實(shí)現(xiàn)多聲道(Multi-Channels)應(yīng)用。
    的頭像 發(fā)表于 09-20 11:01 ?4489次閱讀

    基于MM32F5270的I2S音頻播放

    基于MM32F5270的I2S音頻播放
    的頭像 發(fā)表于 10-30 17:13 ?1021次閱讀
    基于MM32F5270的<b class='flag-5'>I2S</b><b class='flag-5'>音頻</b>播放

    基于I2S接口的Linux內(nèi)核音頻技術(shù)

    I2S是飛利浦定義的數(shù)字音頻傳輸標(biāo)準(zhǔn),用于數(shù)字音頻數(shù)據(jù)在系統(tǒng)內(nèi)部器件之間傳輸。
    發(fā)表于 02-27 14:00 ?2447次閱讀
    基于<b class='flag-5'>I2S</b>接口的Linux內(nèi)核<b class='flag-5'>音頻</b>技術(shù)

    I2S總線的定義和特點(diǎn)

    I2S(Inter-IC Sound)總線,又稱為集成電路內(nèi)置音頻總線,是飛利浦公司(現(xiàn)為恩智浦半導(dǎo)體)為了數(shù)字音頻設(shè)備之間的
    的頭像 發(fā)表于 09-03 14:08 ?452次閱讀