我用pcm上的两路pcm语音设备线路走一个四线音频,为什么啸叫音特别大

PCM = Pulse Code Modulation  是通过等时间隔(即采样率时钟周期)采样将模拟信号数字化的方法图为4 bit 采样深度的PCM数据量化示意图:

PCM数字音频接口,说明接口传输的音频数据是通过PCM方式采样得到的区别于PDM形式;IIS传输的也是PCM类型数据,属于其一个特例

相比于IIS,PCM接口更加灵活通过时分复用TDM方式,PCM接口支持多大N个声道的数据;TDM不像IIS囿统一标准不同厂家TDM时有差异。

TDM/PCM数字音频接口的硬件拓扑结构也与I2S相近;

PCM:传输单声道数据比如麦克风;

IIS:传输双声道数据,比如喇叭;

TDM:传输两个以上声道数据同时区别于IIS特定格式。

根据SD相对于FSYNC的位置TDM分两种基本模式:

Mode A :数据在FSYNC有效后,BCLK的第二个上升沿有效;

Mode B: 數据在FSYNC有效后BCLK的第一个上升沿有效;

不同厂商对于两种模式的定义可能有点差别。

FSYNC的高电平等于一个BCLK的周期其频率就等于采样率,与通道数无关

其中又分为长帧同步和短帧同步:

  • 短帧同步:一个脉冲宽度等于一个BCLK的周期长度;

上图所示即为短帧同步;

  • 长帧同步:一个脈冲宽度等于一个slot的长度;

欢迎加入硬件QQ群:,一起讨论硬件问题分享调试心得,共同成长

    在用解码器解码音频数据得到PCM音頻数据块之后可以在将数据送给声卡播放之前调节其音量大小,PCM格式本身就是以一定的数据位记录音量的高低(如16位便是以2个byte的长度記录采样时间点音量的大小),因此音频音量大小的调节原理就是调节这个值而已非常的简单。需要注意的就是越界问题在调节完后偠做处理。

    另外有了上面的知识,也可以很容易判断音频中是否有长时间没有声音的情况以便后面做语言识别的时候可以直接截取有聲音的部分做识别。

3.   调用snd_kernel_minor函数获得设备的此设备号該此设备号已经存在则返回BUSY,小于返回错误

最终出现的设备节点会出现在/dev/snd下。


至此整个pcm设备创建,调用以及应用到驱动整个流程分析完毕。:)

我要回帖

更多关于 pcm语音设备 的文章

 

随机推荐