介绍

许多数字音频系统正被引入消费者音频市场,包括CD,磁带,数字声音处理器和数字电视声音。在这些系统中的数字音频信号需要由许许多多(Very-large-scale integration)的IC组成,处理。在音频系统中常见的IC芯片有:
  • A/D and D/A 转化器(数模转化器)
  • 数字信号处理器
  • 数字录像,以及出错纠正器
  • 数字滤波器
  • 数字输入/输出的接口
由于设备和IC制造商众多,所以需要一个统一的规范来管理,这样就可以增加设备以及系统的可移植性。为了此目的,就引入了I2S(inter-IC sound)数字总线协议接口。

I2S规范

I2S总线只能用来处理audio data,而别的信号比如控制信号,编码信号则交给别的模块处理。为了最小化所需引脚以及保持简单的布局,I2S拥有三条数据信号线。
  • SCK(continuous serial clock)
  • WS(word select)
  • SD(serial data)
对于系统而言,产生SCK和WS的信号端是主设备(Master)。

trams是主设备(播放音乐的过程)
receive是主设备(录音的过程)

SCK

可以理解为该I2S需要工作的时钟频率,如下是SCK的计算公式:
SCK=2*采样频率*采样位数。

WS

WS选择线表明使用那个通道在传输数据。
WS=0,使用通道1,也就是左声道。
WS=1,使用通道2,也就是右声道。
注意以下几点:
1.   WS可以在串行时钟SCK的上升沿或者下降沿改变,并且WS信号不一定需要对称。(对称什么意思?  没搞懂)
2.   在从设备中,WS在时钟信号的上升沿改变。
3.   WS总是在MSB传输前的一个时钟周期改变。这样有利于从发送设备提交建立下次传输,同时有利于从接受设备接受数据,为一下接受做准备工作。

SD

用二进制补码的形式表示音频数据。传输数据的规则:
1.   保证数据的最高位(MSB)最先被传输。
2.   当系统的发送端数据长度大于接受端数据长度,则接受端会将多余的数据截断。
3.   当系统的发生端数据长度小于接受端数据长度,则接受端会将缺少的数据补齐。

Time Diagram

关于I2S的接口协议就简单介绍到这里。

Linux音频驱动-IIS总线标准相关推荐

  1. STM32MP157驱动开发——Linux 音频驱动

    STM32MP157驱动开发--Linux 音频驱动 一.简介 1.CS42L51 简介 2.I2S总线 3.STM32MP1 SAI 总线接口 二.驱动开发 1.音频驱动 1)修改设备树 i2c 接 ...

  2. 转载:Linux音频驱动-OSS和ALSA声音系统简介及其比较

    Linux音频驱动-OSS和ALSA声音系统简介及其比较 概述 昨天想在Ubuntu上用一下HTK工具包来绘制语音信号的频谱图和提取MFCC的结果,但由于前段时间把Ubuntu升级到13.04,系统的 ...

  3. Linux 音频驱动(四) ASoC音频驱动之Machine驱动

    目录 1. 基本介绍 2. 源码分析 2.1. Machine数据结构 struct snd_soc_dai_link 3. 声卡 3.1. 数据结构struct snd_soc_card 3.2. ...

  4. Linux 音频驱动(二) ASoC音频驱动之Platform驱动

    目录 1. 简介 2. 源码分析 2.1. CPU DAI 2.1.1. 数据结构struct snd_soc_dai_driver 2.1.2. 注册CPU DAI:snd_soc_register ...

  5. linux设备驱动之总线、设备、驱动

    文章转载至多个地方,网上拼凑的一篇文章,说的好听一些的话那就叫自己总结的文章,只 是多次引用啊,哈哈,哎,不管了,反正这个有利用学习进步就好,这是重要的,文章转载过来要经过一篇大脑才能成为自己的,以后 ...

  6. Linux 音频驱动

    Linux 音频驱动 硬件介绍 WM8960与IMX6ULL之间有两个通信接口:I2C和I2S 其中I2C用于配置WM8960 I2S用于音频数据传输 修改设备树文件 编写I2C子节点设备树 code ...

  7. Linux 音频驱动(五) ALSA音频驱动之PCM逻辑设备

    目录 1. 前言 2. PCM逻辑设备 2.1. 创建 PCM逻辑设备: 2.2. PCM逻辑设备文件操作函数集:snd_pcm_f_ops[] 2.3. Open PCM逻辑设备 2.4. Writ ...

  8. Linux音频驱动之二:Control接口的调用

    本文是基于mini2440开发板Linux版本号是linux-2.6.32.2的学习笔记 一. control接口说明 Control接口主要让用户空间的应用程序(alsa-lib)可以访问和控制音频 ...

  9. linux 音频架构绕过,linux音频驱动架构

    1.linux音频驱动架构分为3部分组成:硬件无关层(核心层ALSA).板级音频数字接口层驱动(McASP.McBSP等).外部codes驱动 sound/soc/davinci/ti81xx-etv ...

  10. Linux音频驱动开发概括

    原址 1.嵌入式音频系统硬件连接 下图所示的嵌入式设备使用IIS将音频数据发送给编解码器.对编解码器的I/O寄存器的编程通过IIC总线进行. 2.音频体系结构-ALSA ALSA是Advanced L ...

最新文章

  1. 这里有个自学数据分析并拿到大厂offer的文科小姐姐
  2. 什么是GREENPLUM
  3. Failed to read artifact descriptor进行安装maven项目出错
  4. [3]MVC3中使用Telerik(转)
  5. RTEMS实时操作系统精要(1)-简介
  6. Kylin、Druid、ClickHouse核心技术对比
  7. 特征工程(part3)--扁平化、过滤和分块
  8. 基于SIP协议的视频通讯
  9. php get 数据类型,PHP基础-数据类型-integet
  10. jquery的语法结构包括哪几部分?_牙釉质的组织学结构具体包括哪几部分
  11. office组件导入导出常见异常记录
  12. window服务器搭建私有Git详解
  13. python中的成员运算符用于判断什么_Python3基础-表达式和运算符
  14. 在国内程序员是吃青春饭的职业吗?
  15. Visio安装失败问题解决
  16. 安防网络摄像头海康大华硬盘录像机视频流媒体服务器EasyNVR调用接口时提示未授权问题解决方案
  17. 银行卡四要素验证接口测试报告
  18. 上海市城镇生育保险办法
  19. 计算机专业同学综合自我评估,计算机专业学生个人自我评价
  20. Java java.sql.SQLSyntaxErrorException:Duplicate column name ‘xxx‘问题解决

热门文章

  1. Webpack笔记(三)——一款破产版脚手架的开发
  2. PHP之mb_convert_case使用
  3. Android 比SwipeRefreshLayout更漂亮和强大的下拉刷新控件:Android-MaterialRefreshLayout
  4. 程序员面试金典--变位词排序
  5. mysql Packet for query is too large (1185 1024)异常
  6. 应用服务器文件路径设置
  7. c语言统计字符个数回车字符,C语言统计一串字符中空格键、Tab键、回车键、字母、数字及其他字符的个数(Ctrl+Z终止输入)...
  8. android socket_Android 10.0系统启动之Zygote进程(四)-「Android取经之路」
  9. plsql能连mysql吗_每日囧图连世界首富都秃顶,你还觉脱发是能用钱解决的事吗?...
  10. 基于Wiremock创建Mock Service平台