15-硬件设计-IIS的硬件电路设计

硬件设计-IIS的硬件电路设计


I2S是飞利浦在1986年定义的数字音频传输标准,用于数字音频数据在系统内器件之间传输,例如编解码器CODEC、DSP、数字输入/输出接口、ADC、DAC和数字滤波器等。其与IIC无关联。

1.iis接口说明

以WM8978为例。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
WM8978 的 I2S
接口,由 4 个引脚组成:

  1. ADCDAT:ADC 数据输出
  2. DACDAT:DAC 数据输入
  3. LRC:数据左/右对齐时钟
  4. BCLK:位时钟,用于同步

2.时序说明

WAV 一般采用线性 PCM(脉冲编码调制)编码,是由若干个 Chunk 组成。
按照在文件中的出现位置包括:RIFF WAVE Chunk、Format Chunk、 Fact Chunk(可选)和 Data Chunk。每个 Chunk 由块标识符、数据大小和数据三部分组成。
在这里插入图片描述
其中块标识符由 4 个 ASCII 码构成,数据大小则标出紧跟其后的数据的长度(单位为字节),注意这个长度不包含块标识符和数据大小的长度,即不包含最前面的 8 个字节。所以实际 Chunk的大小为数据大小加 8。

  1. RIFF 块以“RIFF”作为标示,紧跟 wav文件大小(该大小是 wav 文件的总大小-8),然后数据段为“WAVE”,表示是 wav 文件
    typedef __packed struct
    {
    u32 ChunkID; //chunk id;这里固定为"RIFF",即 0X46464952
    u32 ChunkSize ; //集合大小;文件总大小-8
    u32 Format; //格式;WAVE,即 0X45564157
    }ChunkRIFF ;
  2. 看Format 块(Format Chunk),该块以“fmt ”作为标示(注意有个空格!),
    typedef __packed struct
    {
    u32 ChunkID; //chunk id;这里固定为"fmt ",即 0X20746D66
    u32 ChunkSize ; //子集合大小(不包括 ID 和 Size);这里为:20.
    u16 AudioFormat; //音频格式;0X10,表示线性 PCM;0X11 表示 IMA ADPCM
    u16 NumOfChannels; //通道数量;1,表示单声道;2,表示双声道;
    u32 SampleRate; //采样率;0X1F40,表示 8Khz
    u32 ByteRate; //字节速率;
    u16 BlockAlign; //块对齐(字节);
    u16 BitsPerSample; //单个采样数据大小;4 位 ADPCM,设置为 4
    }ChunkFMT;
  3. (Data Chunk),该块是真正保存 wav 数据的地方
    typedef __packed struct
    {
    u32 ChunkID; //chunk id;这里固定为"data",即 0X61746164
    u32 ChunkSize ; //子集合大小(不包括 ID 和 Size);文件大小-60.
    }ChunkDATA;
    ChunkSize 后紧接着就是 wav 数据。根据 Format Chunk 中的声道数以及采样 bit 数。
    在这里插入图片描述
    在得到这些 wav 数据以后,通过 I2S 送给 WM8978,就可以欣赏音乐。

飞利浦(I2S)标准模式,数据在跟随 LRC 传输的 BCLK 的第二个上升沿时传输 MSB,其他位一直到 LSB 按顺序传输。传输依赖于字长、BCLK 频率和采样率,在每个采样的 LSB 和下一个采样的 MSB 之间都应该有未用的 BCLK 周期。
在这里插入图片描述
fs 即音频信号的采样率,比如 44.1Khz,因此可以知道,LRC 的频率就是音频信号的采样率。另外,WM8978 还需要一个 MCLK,本章我们采用 STM32F4 为其提供 MCLK 时钟,MCLK的频率必须等于 256fs,也就是音频采样率的 256 倍。
通过 IIC 接口(MODE=0)连接 WM8978,不过 WM8978 的 IIC 接口比较特殊:

  1. 只支持写,不支持读数据;
  2. 寄存器长度为 7 位,数据长度为 9 位。
  3. 寄存器字节的最低位用于传输数据的最高位(也就是 9 位数据的最高位,7 位寄存器的最低位)
  4. WM8978 的 IIC
    地址固定为:0X1A。

3.硬件设计注意事项

line in接口的意思是线路输入,通过其他音频设备采集音频信号。
MIC接口即麦克风接口。即microphone 。由Microphone缩写而来,麦克风学名为传声器,传声器是将声音信号转换为电信号的能量转换器件,俗称话筒。
phone就是最常用的音频线路输出。
SPEAKER扬声器,当连接外部扬声器时,它们会禁用内置扬声器。
在这里插入图片描述

  1. 数字电路与模拟电路分开
  2. 布局时音频的数据线最短
  3. 左声道右声道按照差分类处理。需要包地
  4. 模拟电源通过磁珠与数字电源隔开
  5. 音频信号箱上有ESD保护
  6. 注意电平匹配。

耳机驱动为什么要加耦合电容?
当使用直流耦合时,他们的容值和负载电阻一起决定低频截止频率。电容增加就会减少截止频率,提高低音质量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值