概述

I2S,PCM,IOM-2都是数字音频接口,传数据的。

I2C,SPI,UART,GPIO是控制接口,传控制信令的。

I2S

I2S(Inter-IC Sound Bus)是飞利浦公司为数字音频设备之间的音频 数据传输而制定的一种总线标准。

I2S至少3根线:

1. 比特时钟线

    首先解释一下比特时钟线。比特时钟线上对每个bit有一个脉冲,比特时钟频率是2×采样频率×采样位数,比如,在播放44.1Khz CD的时候,比特时钟频率就是:44.1KHz*16*2 = 1.4112MHz

2. 帧时钟线

    切换左右声道的数据,帧时钟的频率等于采样率。LRCK为“1”表示正在传输的是左声道的数据,为“0”则表示正在传输的是右声道的数据。LRCK的频率等于采样频率。

3. 复用数据线

    所谓复用,指的是左右声道的复用。传输数据是以2的补码,大端形式给出。

I2S可能还有一根线,是主时钟线或上行数据线。所以,碰到四线的I2S也不要惊讶哦~~

I2S有主从模式,就是谁来提供时钟的选择。谁提供时钟,谁就是主(Master)

PCM

也是传输数字音频的,一般是固定8k的采样率的单声道音频。

IOM-2

高品质音频,一般传给蓝牙A2DP的是这种接口

I2C

两根线:

  • 一个CLK线,
  • 一根DATA线

有主从模式,一般MCU做主,器件做从。I2C使用两根双向半双工的线,主提供时钟。时钟都是bit时钟,发送请求的时候,比如获取寄存器内容的时候,主发送请求,然后交出DATA线控制权,从回答请求,并返回寄存器内容。(简记比i2s少了根帧时钟线)

下面就是一主多从的例子:

SPI

Only 2chip select lines so max number ofdevices is very limited. Bus is faster andcan be driven over longer cable runsthan I2C. Programming more difficult.Device selection very limited unless youare willing to solder SMD.

UART

Welcome tothe 1970s! 通用异步串行口。按照标准波特率完成双向通讯,速度慢。UART总线是异步串口,因此一般比前两种同步串口的结构要复杂很多,一般由波特率产生器(产生的波特率等于传输波特率的16倍)、UART接收器、UART发送器组成,硬件上由两根线,一根用于发送,一根用于接收。 UART是用于控制计算机与串行设备的芯片。有一点要注意的是,它提供了RS-232C数据终端设备接口,这样计算机就可以和调制解调器或其它使用RS-232C接口的串行设备通信了。

GPIO

GPIO,通用型输入输出(GeneralPurpose I/O)的简称,其引脚可以供使用者由程式控制自由使用,PIN脚可作为通用输入(GPI)或通用输出(GPO)或通用输入输出(GPIO),如当clk generator, chip select等。

既然一个引脚可以用于输入、输出或其他特殊功能,那么一定有寄存器用来选择这些功能。对于输入,一定可以通过读取某个寄存器来确定引脚电平的高低;对于输出,一定可以通过写入某个寄存器来让这个引脚输出高电平或者低电平;对于其他特殊功能,则有另外的寄存器来控制它们。

 

SLIMBus 

音频、数据、总线和单条总线上的设备控制器;  
减少引脚数以降低产品消耗;
支持高质量音频多信道;
单条总线上多重并发采样率; 
高效、不受主机控制的、对等通用数据通信;
提高软件重用性和协同工作能力的标准消息集;
使用普通数字音频时钟,也同时使用已经建立的系统时钟
为优化总线功率消耗而采用动态时钟频率

例子

这边有个手机上FM+BT芯片接口的例子:蓝牙用的是PCM/I2S传输音频数据,控制信令走UART/I2C,FM音频走模拟电路。

I2S/PCM/IOM-2、I2C/SPI/UART/GPIO/slimbus的更多相关文章

  1. SPI、I2C、UART、I2S、GPIO、SDIO、CAN

    总线,总线,总要陷进里面.这世界上的信号都一样,但是总线却成千上万,让人头疼. 总的来说,总线有三种:内部总线.系统总线和外部总线.内部总线是微机内部各外围芯片与处理器之间的总线,用于芯片一级的互连: ...

  2. SPI、I2C、UART、I2S、GPIO、SDIO、CAN 简介

    转自http://sanwen.net/a/fmxnjoo.html SPI.I2C.UART.I2S.GPIO.SDIO.CAN,看这篇就够了 总线 总线,总要陷进里面.这世界上的信号都一样,但是总 ...

  3. SPI、I2C、UART(转)

    UART与USART(转) UART需要固定的波特率,就是说两位数据的间隔要相等. UART总线是异步串口,一般由波特率产生器(产生的波特率等于传输波特率的16倍).UART接收器.UART发送器组成 ...

  4. SPI、I2C、UART三种串行总线协议的区别和SPI接口介绍(转)

    SPI.I2C.UART三种串行总线协议的区别 第一个区别当然是名字: SPI(Serial Peripheral Interface:串行外设接口); I2C(INTER IC BUS) UART( ...

  5. SPI,UART,I2C都有什么区别,及其各自的特点

    区别: SPI:高速同步串行口.3-4线接口,收发独立.可同步进行 UART:通用异步串行口.按照标准波特率完成双向通讯,速度慢 I2C:一种串行传输方式,三线制,网上可找到其通信协议和用法的 3根线 ...

  6. 驱动之SPI,UART,I2C的介绍与应用20170118

    这篇文章主要介绍基本的驱动也是用的最多的协议类驱动中的SPI,I2C和UART.首先从最简单的UART也就是串口讲起: 1.UART UART由两根线也就是TX,RX以及波特率产生器组成,操作比较简单 ...

  7. 【转载】IIC SPI UART串行总线

    一.SPISPI(Serial Peripheral Interface,串行外设接口)是Motorola公司提出的一种同步串行数据传输标准,在很多器件中被广泛应用. 接口SPI接口经常被称为4线串行 ...

  8. MicroBlaze核的串行接口实验:SPI UART

    reference : https://blog.csdn.net/weixin_42413559/article/details/80720566 串行接口:SPI UART XPS->SDK ...

  9. [ZigBee] 8、ZigBee之UART剖析·二(串口收发)

    前言:上一节讲UART基本知识介绍完了,并深入剖析了一个串口发送工程,本节将进一步介绍串口收发! 1.初始化 在串口初始化部分,和上一节不同的地方是: 51 U0CSR |= 0x40; //允许接收 ...

随机推荐

  1. ssh 使用密钥与登录进行远程cp

    scp -P 50000 -i abc.pem  ubuntu@10.223.191.105://srv/log/webserver/main/nginx.access.2015-08-07.log ...

  2. p6 备忘录

    1.报表执行过程:PROC_PM_RP_Implent,PROC_PM_RP_Implent 2.新增用户无法获取p6 计划,主要是因为没有项目信息.分类码授权(计划分类).

  3. springmvc 动态代理 JDK实现与模拟JDK纯手写实现。

    首先明白 动态代理和静态代理的区别: 静态代理:①持有被代理类的引用  ② 代理类一开始就被加载到内存中了(非常重要) 动态代理:JDK中的动态代理中的代理类是动态生成的.并且生成的动态代理类为$Pr ...

  4. SQL SERVER数据库备份时出现“操作系统错误5(拒绝访问)。BACKUP DATABASE 正在异常终止。”错误的解决办法

    一般备份文件选择的目录为磁盘根目录或备份所选分区未授予sqlserver用户读写权限时会出现此错误. 解决办法就是给sqlserver用户授予权限: 选择要备份的文件夹 ,右键-->属性--&g ...

  5. RDIFramework.NET ━ .NET快速信息化系统开发框架钜献 V3.0 版本强势发布

    继上个版本“RDIFramework.NET V2.9版本”的推出,受到了重多客户的认可与选择,V2.9版本是非常成功与稳定的版本,感谢大家的认可与长期以来的关注与支持.V3.0版本在V2.9版本的基 ...

  6. AutoBundle in asp.net mvc 5

    using System.Collections.Concurrent; using System.Text; namespace System.Web.Optimization { public s ...

  7. Ubuntu下安装Numpy, SciPy and Matplotlib

    Python开发环境包含科学计算,需要安装NumPy, SciPy, Matplotlib.其中Matplotlib依赖于Python和NumPy.我们先安装NumPY和SciPy.  Matplot ...

  8. div中iframe高度自适应问题

    网页分为上.中.下三部分,上.下高度固定中间高度自适应:中间分为左.右两部分,左边宽度固定,右边宽度自适应.现在右侧div是宽度和高度都是自适应,右侧div里有个IFrame,想让IFrame自适应外 ...

  9. c语言第12次作业

    #include<stdio.h> struct student { ]; ]; ]; double grade; }; void main() { ]; ;i<;i++) { pr ...

  10. DevExpress 为TextEdit设置水印文字

    设置水印代码: //设置水印值public static void SetWatermark(this TextEdit textEdit, string watermark) { textEdit. ...