I2S

1 I2S数据  

  I2S(Inter-IC Sound)是现在使用最广泛的数字音频接口,通常用到三/四根线

  • SCLK/BCLK
  • LRCLK
  • SDIN
  • SDOUT

   
  串行时钟SCLK,也可以用叫位时钟BCLK,对应数字音频的每一位数据,SCLK有1个脉冲(1个周期)。SCLK的频率=通道数×采样频率×采样位数。通常有左右两个通道。
  采样位数 : 也就是codec采样时存储一个点数据所占的bit数,通常有8,16,24bit等。
  通道数[channel] : 是mono还是stereo,对应的是1或者是2通道。
  采样率 : codec每秒采样的点数,如44.1KHZ,就是每秒44100个点。
  帧时钟LRCLK,用于切换左右声道的数据。LRCLK为“0”表示正在传输的是左声道的数据,为“1”则表示正在传输的是右声道的数据。LRCLK的频率等于采样频率。
  SDIN/SDOUT串行数据,每位数据都是变化都是在BCLK的下降沿,在BCLK的上升沿接收数据。
  在实际的使用中通常还会有另外一个时钟MCLK,主时钟,也叫系统时钟。一般为LRCLK的256/384倍
  MCLK = 256 * LRCLK
  SCLK/LRCLK/MCLK都由master提供,调试声卡时,需要保证这几个时钟有正确输出。
  frames : 是由采样时通道数(channel)和采样位数(sample bit)来共同决定的,和采样频率等其他参数无任何联系,它仅仅是表示采样一次所对应的bit数. 
[1] : 1 frame of a Stereo 48khz 16bit PCM stream is 4 bytes. (对于采样率为48KHZ,采样位数16bit 的立体声的1frame为4字节).
[2] : 1 frame of a 5.1 48khz 16bit PCM stream is 12 bytes. (对于采样率为5.148KHZ,采样位数16bit的单声道的1rame为2字节).
  period : ALSA的官方是这样介绍的 : A period is the number of frames in between each hardware interrupt。意思就是硬件的每次中断所对应的frames数为一个period,简称一个周期。
exmple : 我们让codec工作在 stereo立体声,16-bits, 44.1KHZ 的采样流中

[1] 'stereo' = 2;
[2] 1 analog sample16-bits = 2bytes;
[3]1 frame = (num_channels)*(1sample in bytes)=(2channels) * (2 bytes (16 bits) per sample) = 4 bytes (32 bits)
[4] Bps_rate = (num_channels) * (1 sample in bytes) * (analog_rate) = 2 * 2 * 44100 = 176400 Bytes/sec.

如果 ALSA每秒中断一次,那么我们就需要准备176400 bytes的空间.
如果ALSA半秒中断一次,那么我们就需要准备 176400/2 = 88200 bytes个大小的空间. 100ms中断一次的话我们就需要 176400 * 0.1 = 17640 bytes大小空间.
  参考1:时序、格式
  参考2:音频相关概念

2 声音数字化

  声音有两种存在形式模拟信号(日常听到的)、数字信号(计算机使用)。两种形式声音可以相互转换。
模拟信号 –> 采样 –> 量化 –> 编码 –> 数字信号
  模拟信号到数字信号就是AD转换,数字信号到模拟信号是DA转换。 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值