ScrollView java设计模式 resultMap 工厂模式 excel layout directory datepicker vue钩子函数 小程序demo源码 安卓程序源代码 less比较级 linux全局搜索文件 java二维数组赋值 idea开发python excel加减混合求和 mysql时间戳转时间 python入门 python报错 python文件操作 python使用正则表达式 java开发环境配置 java设置 java数组最大值 linux教学 php开发实例 win7loader 乱码查看器 海鸥浏览器 快捷精灵 黑市商人 excel应用大全 摩斯密码在线翻译 机械键盘个别键位失灵 脚本编程 手工画像 谷歌浏览器访问助手 js刷新当前页面 top命令详解 分解机耐久度
当前位置: 首页 > 学习教程  > 

PCM和I2S区别

2020/10/16 17:47:47 文章标签: pcm接口

今天突然想到I2S和PCM接口都是数字音频接口,而我所见的蓝牙到cpu以及codec的音频接口都是用PCM接口,是不是两个接口有各自不同的应用呢?先来看下概念。PCM(PCM-clock、PCM-sync、PCM-in、PCM-out)脉冲编码调制&#xf…

      今天突然想到I2S和PCM接口都是数字音频接口,而我所见的蓝牙到cpu以及codec的音频接口都是用PCM接口,是不是两个接口有各自不同的应用呢?先来看下概念。
      PCM(PCM-clock、PCM-sync、PCM-in、PCM-out)脉冲编码调制,模拟语音信号经过采样量化以及一定数据排列就是PCM了。理论上可以传输单声道,双声道立体声和多声道。是数字音频的raw data。
      I2S是音频数字化后数据排列的一种格式,说传输的就是PCM,支持单声道和立体声。
      以我理解PCM是一个通称、混称,I2S是对原始PCM进行数据排序处理,本质就是PCM,可以说I2S是PCM的子集。所以我想蓝牙芯片上的PCM接口同样可以用I2S来传输。CPU和codec上的PCM和I2S接口也是为支持更多硬件提供的资源。
        从系统上讲,cpu的dsp出来的都是pcm信号,我称PCM_father,送到DAC可从speaker等放出,至PCM接口出来PCM_son1,至I2S接口出来PCM_son2,然后送至外部codec或其他外设,通话DAC I2S DAC分别对应。以前一直我有个误解,其实手机里常用的codec也就是对PCM和模拟声音信号的转换,不能解码mp3等压缩编码,这个还是要专用dsp或者软件解码来做的。
      一点新知,理解上肯定还是有错误,以后慢慢积累,温故知新。
 
新的理解:
一般手机cpu到蓝牙的通话实时音频和mp3之类的音频都使用pcm,有的蓝牙芯片内置MP3codec,mp3走uart/usb更合适。

从蓝牙角度讲,蓝牙在制定协议的时候就特意为通话需求制定了一个协议层,专门定义了一种包结构(sco)用于通话,有很好的实时性。而通过uart传输的包一般为alc,用分组传输的方式。两种包的编解使用的软硬件都有些区别。sco包支持的基础码率也是8k的pcm.所以一般蓝牙芯片都会有一个pcm接口
 
PCM和I2S最明显的一个不同就是PCM_SYNC信号和LRCLK信号这两个复用的pin
PCM_SYNC用来同步帧,有long  fram  sync和short  frame  sync等模式,但并不专门区分左右声道。
而I2S中,这个pin叫做LRCLK,专门用来区分左右声道,以此来同步。低电平代表左声道,高电平代表右声道。

同时,时钟的上升沿和下降沿哪个是输入采样和输出,在PCM和I2S是不同的,I2S还有自己特定的格式。

FYI:
http://blog.sina.com.cn/s/blog_4d5768e801000apo.html
 
http://blog.csdn.net/sepnic/article/details/6536855

本文链接: http://www.dtmao.cc/news_show_300135.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?