I2S音频总线学习

IIS音频总线学习(一)数字音频技术

一、声音的基本概念

声音是通过一定介质传播的连续的波。

图1 声波

重要指标:

  1. 振幅:音量的大小
  2. 周期:重复出现的时间间隔
  3. 频率:指信号每秒钟变化的次数

声音按频率分类:

图2 声音的频率(语音信号频率范围:300Hz-3kHz)

声音的传播携带了信息,它是人类传播信息的一种主要媒体。 声音的三种类型:

  1. 波形声音:包含了所有声音形式
  2. 语音:不仅是波形声音,而且还有丰富的语言内涵(抽象→提取特征→意义理解)
  3. 音乐:与语音相比,形式更规范。音乐是符号化的声音。

二、声音的数字化

1.声音信号的类型

  • 模拟信号(自然界、物理)
  • 数字信号(计算机)

2.声音数字化过程

图3 声音数字化过程

3.声音数字化过程示意图

图4 声音数字化过程示意图

4.声音数字化三要素


采样频率


量化位数


声道数


每秒钟抽取声波幅度样本的次数


每个采样点用多少二进制位表示数据范围


使用声音通道的个数


采样频率越高

声音质量越好

数据量也越大


量化位数越多

音质越好

数据量也越大


立体声比单声道的表现力丰富,但数据量翻倍


11.025kHz

22.05 kHz

44.1  kHz


8位=256

16位=65536


单声道

立体声

5.声音数字化的数据量

音频数据量=采样频率×量化位数×声道数/8(字节/秒)


采样频率

(kHz)


量化位数

(bit)


数据量(KB/s)


单声道


立体声


11.025


8


10.77


21.35


16


21.53


43.07


22.05


8


21.53


43.07


16


43.07


86.13


44.1


8


43.07


86.13


16


86.13


172.27

三、音频的文件格式

1.WAV文件

WAV是Microsoft/IBM共同开发的PC波形文件。因未经压缩,文件数据量很大。
特点:声音层次丰富,还原音质好

2.MP3文件

MP3(MPEG Audio layer3)是一种按MPEG标准的音频压缩技术制作的音频文件。
特点:高压缩比(11:1),优美音质

3.WMA文件

WMA(Windows Media Audio)是Windows Media格式中的一个子集(音频格式)。
特点:压缩到MP3一半

4.MIDI文件

MIDI(乐器数字接口)是由一组声音或乐器符号的集合。
特点:数据量很小,缺乏重现自然音

四、数字音频压缩标准

1.音频压缩方法概述

图5

压缩编码技术是指用某种方法使数字化信息的编码率降低的技术

音频信号能压缩的基本依据:

①声音信号中存在大量的冗余度;
②人的听觉具有强音能抑制同时存在的弱音现象。

音频信号压缩编码的分类:

①无损压缩(熵编码)
霍夫曼编码、算术编码、行程编码
②有损压缩
波形编码--PCM、DPCM、ADPCM 、子带编码、矢量量化
参数编码--LPC
混合编码--MPLPC、CELP

2.音频压缩技术标准


分类


标准


说明


电话语

音质量


G.711


采样8kHz,量化8bit,码率64kbps


G.721


采用ADPCM编码,码率32kbps


G.723


采用ADPCM有损压缩,码率24kbps


G.728


采用LD-CELP压缩技术,码率16kbps


调幅广

播质量


G.722


采样16kHz,量化14bit,码率224(64)kbps


高保真

立体声


MPEG

音频


采样44.1kHz,量化16bit,码率705kbps (MPEG三个压缩层次,384-64kbps)

五、声卡

1.声卡的主要功能

声卡是负责录音、播音和声音合成的一种多媒体板卡。其功能包括:
①录制、编辑和回放数字音频文件
②控制和混合各声源的音量
③记录和回放时进行压缩和解压缩
④语音合成技术(朗读文本)
⑤具有MIDI接口(乐器数字接口)

2.芯片类型

  • CODEC芯片(依赖CPU,价格便宜)
  • 数字信号处理器DSP(不依赖CPU)

I2S音频总线学习(二)I2S总线协议

一、I2S总线概述

音响数据的采集、处理和传输是多媒体技术的重要组成部分。众多的数字音频系统已经进入消费市场,例如数字音频录音带、数字声音处理器。对于设备和生产厂家来说,标准化的信息传输结构可以提高系统的适应性。I2S(Inter—IC Sound)总线是飞利浦公司为数字音频设备之间的音频数据传输而制定的一种总线标准,该总线专责于音频设备之间的数据传输,广泛应用于各种多媒体系统。

二、I2S总线规范

I2S总线拥有三条数据信号线:

1、SCK: (continuous serial clock)  串行时钟

对应数字音频的每一位数据,SCK都有1个脉冲。SCK的频率=2×采样频率×采样位数。

2、WS: (word select)  字段(声道)选择

用于切换左右声道的数据。WS的频率=采样频率。

命令选择线表明了正在被传输的声道。
         WS为“1”表示正在传输的是左声道的数据。
         WS为“0”表示正在传输的是右声道的数据。
        WS可以在串行时钟的上升沿或者下降沿发生改变,并且WS信号不需要一定是对称的。在从属装置端,WS在时钟信号的上升沿发生改变。WS总是在最高位传输前的一个时钟周期发生改变,这样可以使从属装置得到与被传输的串行数据同步的时间,并且使接收端存储当前的命令以及为下次的命令清除空间。

3、SD: (serial data)  串行数据

用二进制补码表示的音频数据。 I2S格式的信号无论有多少位有效数据,数据的最高位总是被最先传输(在WS变化(也就是一帧开始)后的第2个SCK脉冲处),因此最高位拥有固定的位置,而最低位的位置则是依赖于数据的有效位数。也就使得接收端与发送端的有效位数可以不同。如果接收端能处理的有效位数少于发送端,可以放弃数据帧中多余的低位数据;如果接收端能处理的有效位数多于发送端,可以自行补足剩余的位(常补足为零)。这种同步机制使得数字音频设备的互连更加方便,而且不会造成数据错位。为了保证数字音频信号的正确传输,发送端和接收端应该采用相同的数据格式和长度。当然,对I2S格式来说数据长度可以不同。

对于系统而言,产生SCK和WS的信号端就是主设备,用MASTER表示,简单系统示意图如图1所示:

图1 简单系统配置和基本接口时序

另一个基本的接口时序图可以参看图2所示:

图2 I2S典型的接口时序

4、时序要求

在IIS总线中,任何设备都可以通过提供必需的时钟信号成为系统的主设备置,而从属设备通过外部时钟信号来得到它的内部时钟信号,这就意味着必须重视主设备和数据以及命令选择信号之间的传播延迟,总的延迟主要由两部分组成:
1.外部时钟和从设备的内部时钟之间的延迟
2.内部时钟和数据信号以及命令选择信号之间的延迟
        对于数据和命令信号的输入,外部时钟和内部时的延迟不占据主导的地位,它只是延长了有效的建立时间(set-up time)。延迟的主要部分是发送端的传输延迟和设置接收端所需的时间。见图3和图4:

图3 Timing for IIS Transmitter

图4  Timing for IIS Receiver

其中:

5、电气特性

输出电压:

VL <0.4V     
           VH>2.4V

输入电压

VIL=0.8V    
            VIH=2.0V

注:目前使用的TTL电平标准,随着其他IC(LSI)的流行,其他电平也会支持。

I2S音频总线学习(三)S3C2440的I2S控制器

一、I2S控制器结构框图

S3C2440A的Inter-IC Sound (IIS)总线接口作为一个编解码接口连接外部8/16位立体声音频解码IC用于迷你碟机和可携式应用。IIS总线接口支持IIS总线数据格式和MSB-justified数据格式。该接口对FIFO的访问采用了DMA模式取代了中断。它可以在同一时间接收和发送数据。

图1 结构框图

  1. 总线接口,寄存器组和状态机(BRFC):总线接口逻辑和FIFO 访问由状态机控制。
  2. 5 位双预定标器(IPSR):一个预定标器用于IIS 总线接口的主时钟发生器,另外一个用作外部编解码时钟发生器。
  3. 64 位FIFO(TxFIFO 和RxFIFO):在发送数据传输时,数据写到TxFIFO;在接收数据传输时,从RxFIFO 读取数据。
  4. 主IISCLK 发生器(SCLKG):在主设备模式,串行位时钟是从主时钟生成。
  5. 通道发生器和状态机(CHNC):IISCLK 和iislrck 是由通道状态机生成并控制。
  6. 15 位移位寄存器(SFTR):在发送模式下并行数据移位成串行数据输出,在接收模式下串行数据输入移位成并行数据。

二、发送接收模式

1.通常传输

IIS 控制寄存器对于发送接收FIFO 有一个FIFO 准备标志位。当FIFO 准备发送数据时,如果FIFO 非空,FIFO 准备标志位置1。如果FIFO 为空,FIFO 准备标志位置0。当接收FIFO非满,对于接收FIFO 的FIFO 准备标志位置1。其指出FIFO 准备好接收数据。如果接收FIFO 为满,FIFO 准备标志置0。这些标志用于决定CPU 读写FIFO 的时间。用这种方法当CUP 在访问发送接收FIFO 时,串行数据能被发送和接收。

2.DMA 传输

在此模式下,发送或接收FIFO 对DMA 控制器是可访问的。在发送或接收模式下的DMA服务请求是由FIFO 准备标志自动执行。

3.发送和接收模式

在此模式下IIS 总线接口可以同时接收和发送数据。在OSS驱动中使用该模式。

三、音频串行接口格式

1.IIS 总线格式

IIS 总线有四线包括串行数据输入(IISDI),串行数据输出(IISDO),左右通道选择(IISLRCK)和串行位时钟(IISCLK)。生成IISLRCK 和IISCLK 的设备是主设备。串行数据以2 的补码发送,MSB(Most Significant Bit 最高位)先发。因为发送器和接收器可能有不同的字长,MSB(最高位)先发。发送器不必知道接收器可以处理多少位,接收器也不必知道会收到多少位。当系统字长大于发生器的字长,字为了数据发送而被截断(最低位被置0)。如果接收器接收大于其字长的位,在LSB(最低位)后的位被忽略。另外,如果接收器收到的位数小于其字长,缺少的位被置0。因此MSB 有一个固定的位置,而LSB 的位置取决于字长。只要IISLRCK 发送改变,发送器在一个时钟周期内发送下一个字的MSB。由发送器发送的串行数据可以和时钟信号的下降沿和上升沿同步。但是,串行数据必须在串行时钟信号的上升沿锁存到接收器。因此当同步上升沿的数据发送时有一些限制。左右通道选择线指出了正在发送的通道。IISLRCK 可以在串行时钟的下降沿或上升沿被改变,当时其不需要对称。在从设备,信号在串行时钟的下降沿或上升沿被锁存。在MSB 被发送,IISLRCK 线改变一个时钟周期。此允许发送器导出用于建立发送的串行数据同步时序。此外,其使能接收存储前一个字且为下一个字的接收清除输入。

2.MSB JUSTIFIED 格式

MSB JUSTIFIED 总线格式在结构上和IIS 总线格式。唯一和IIS 总线格式的区别,MSB JUSTIFIED 格式实现了只要IISLRCK 改变,发送器总是发送下一个字的MSB。

图2 IIS格式和MSB JUSTIFIED数据格式

四、IIS采集频率和主设备时钟

I2S主设备时钟频率可以通过采样频率来选择,这是因为I2S主设备时钟频率是由I2S分频器产生的(主设备时钟频率=PCLK/预分频器值),因此必须选择合适的预分频值和CODECLK的采样频率类型(256fs或384fs),才能获得合适的I2SLRCK频率(I2SLRCK频率=主设备时钟频率/CODECLK)。
           串行位采用频率类型(16/32/48fs)可以通过配置信道的串行位数和CODECLK采样频率类型来完成(串行位时钟频率类型=CODECLK的采用类型/串行数据位数)。

五、IIS 总线接口特殊寄存器

I2S相关的寄存器包括I2S控制寄存器I2SCON、I2S模式寄存器I2SMOD、I2S分频寄存器I2SPSR、I2SFCON寄存器和FIFO寄存器。

1)I2SCON控制寄存器

I2SCON控制寄存器物理地址为0x55000000,可读/写,复位后值为0x100。寄存器各个比特位意义如下:

[8] 左右声道标记,0=左声道,1=右声道;
[7] 发送FIFO就绪标记,取0时表示没有就绪,取1时表示FIFO就绪;
[6] 接收FIFO就绪标记,取0时表示没有就绪,取1时表示FIFO就绪;
[5] 发送DMA请求使能,取0时请求禁止,取1时请求使能;
[4] 接收DMA请求使能,取0时请求禁止,取1时请求使能;
[3] 发送通道空闲命令,在空闲状态(暂停传输)时,I2SLRCK是不激活的,0表示I2SLRCK产生,1表示不产生;
[2] 接收通道空闲命令,在空闲状态(暂停传输)时,I2SLRCK是不激活的,0表示I2SLRCK产生,1表示不产生;
[1] I2S预分频器使能,取0时预分频器禁止,取1时预分频器使能;
[0] I2S接口使能,取0时I2S禁止,取1时I2S使能。

2)I2SMOD模式寄存器

I2SMOD模式寄存器物理地址为0x55000004,可读/写,复位后值为0x000。寄存器各个比特位意义如下:

[8] 主从模式选择,取0时为主模式,取1时为从模式;
[7:6] 发送/接收模式选择,00=无,01=接收模式,10=发送模式,11=发送/接收模式;
[5] 左右通道优先级,取0时右通道高左通道低,取1时右通道低左通道高;
[4] 串行接口格式,取0时I2S兼容格式,取1时MSB可调格式;
[3] 每通道串行数据位,取0时8位,取1时16位;
[2] 主时钟频率选择,取0时主时钟是256fs(采样频率),取1时为384fs;
[1:0] 串行位时钟频率选择,00=位时钟是16fs,01=位时钟是32fs,10=位时钟是48fs,11=未定义。

3)I2S分频寄存器I2SPSR

I2S分频寄存器物理地址为0x55000008,可读/写,复位后值为0x000。寄存器各个比特位意义如下:

[9:5] A预分频值,预分频器A的除因子,I2S总线接口主时钟=MCLK/A预分频因子;
[4:0] B预分频值,预分频器B的除因子,外部CODEC时钟=MCKL/B预分频因子。

4)I2SFCON寄存器

I2SFCON寄存器物理地址为0x5500000C,可读/写,复位后值为0x000。寄存器各个比特位意义如下:

[15] 发送FIFO访问模式选择,取0时工作于普通模式,取1时工作在DMA模式;
[14] 接收FIFO访问模式选择,取0时工作于普通模式,取1时工作在DMA模式;
[13] 控制发送FIFO使能,取1时使能,取0时禁止;
[12] 控制接收FIFO使能,取1时使能,取0时禁止;
[11:6] 发送端FIFO数据计数,计数值0~32;
[5:0] 接收端FIFO数据计数,计数值0~32。

5)FIFO寄存器I2SFIF

FIFO寄存器物理地址为0x55000010,可读/写,复位后值为0x000。寄存器各个比特位意义如下:I2S总线接口在发送/接收模式有两个64字节的FIFO,每个FIFO由宽16、深32的表组成,并且每个FIFO单元可以分别操作高字节或低字节。通过FIFO入口访问发送和接收FIFO,入口地址为0x55000010。

I2S音频总线学习(四)I2S接口设计

一、数据发送端的设计

图1 发送端

随着WS信号的改变,导出一个WSP脉冲信号,进入并行移位寄存器装入DATA LEFT或DATA RIGHT,从而输出数据被激活。串行数据在时钟下降沿移出。串行数据的默认输入是0,因此所有位于最低位(LSB)后的数据将被设置为0。

二、数据接收端的设计

图2 接收端

随着第一个WS信号的改变,WSP在SCK信号的下降沿重设计数器。在“1 out of n”译码器对计数器数值进行译码后,第一个串行的数据(MSB)在SCK时钟信号的上升沿被存放进入B1,随着计数器的增长,接下来的数据被依次存放进入B2到Bn中。在下一个WS信号改变的时候,数据根据WSP脉冲的变化被存放进入左(声道)锁存器或者右(声道)锁存器,并且将B2一Bn的数据清除以及计数器重设,如果有冗余的数据则最低位之后的数据将被忽略。注意:译码器和计数器(虚线内的部分)可以被一个n比特移位寄存器所代替,如图3所示。

当计数计满时,即ENn为高时,计算器EN信号变成低电平,使计数器停止计数,同时也使串并转换模块停止接收数据。

图3  接收端

原文地址:https://www.cnblogs.com/tianqiang/p/10187170.html

时间: 2024-08-29 14:04:45

I2S音频总线学习的相关文章

Avalon总线学习 ---Avalon Interface Specifications

Avalon总线学习 ---Avalon Interface Specifications 1.Avalon Interfaces in a System and Nios II Processor 2.Avalon Interfaces in a System Design and External Processor 3.传统的读和写时序图 4.在slave端,读和写,被主设备设置了wait信号 5.Piplined 读数据,Latency可调 6. 7 8. 9. 10 11 12 13

CAN总线学习笔记

1.总线状态 总线有"显性"和"隐性"两个状态,"显性"对应逻辑"0","隐性"对应逻辑"1"."显性"状态和"隐性"状态与为"显性"状态,所以两个节点同时分别发送"0"和"1"时,总线上呈现"0". 2.优先级  在CAN总线上,若同一个时刻,既有节点向总线上发送隐形

CAN总线学习系列之二——CAN总线与RS485的比较

CAN总线学习系列之二--CAN总线与RS485的比较 上 一节介绍了一下CAN总线的基本知识,那么有人会问,现在的总线格式很多,CAN相对于其他的总线有什么特点啊?这个问题问的好,所以我想与其它总线做一 下比较,首先呢,就比较一下大家耳熟能详的485总线,其实485总线只是一种电平标准,并不是什么新的协议,与232差不多,当然这么说不是很恰当,但 是有助于大家理解.       下面开始比较了: CAN(Controller Area Network)属于现场总线的范畴,它是一种有效支持分布式

CAN总线学习系列之三——CAN控制器的选择

CAN总线学习系列之三--CAN控制器的选择 在进行CAN总线开发前,首先要选择好CAN总线控制器.下面就比较一些控制器的特点. 一些主要的CAN总线器件产品 制造商 产品型号 器件功能及特点 Intel 82526825278XC196CA/CB CAN通信控制器,符合CAN2.0ACAN通信控制器,符合CAN2.0B扩展的8XC196+CAN通信控制器,符合CAN2.0A Philips 82C200SJA100082C250TJA1040TJA10548XC5928XCE598P51XA-

CAN总线学习系列之— CAN总线特点介绍

CAN总线学习系列之- CAN总线特点介绍 CAN 总线作为一种工业界的流行总线广泛应于工业自动化.多种控制设备.交通工具.医疗仪器以及建筑.环境控制等各个行业中,它是是一种多主机局域网,所以这样 一种总线的潜力是很巨大的,接下来将写几篇入门的小文章,来介绍一下CAN的学习和开发方法,主要是配合我们的开发板,其实入门还是很容易的,通过这几篇 文章如果你能建立起一个初步的概念,能够自己搭起自己的一个节点(包括硬件和软件),那就说明你学会了CAN的基本开发技术,实际的工业现场CAN的开发 不是那么简

蓝牙音频模块IIS数传BLE模块I2S音频总结说明

一.简介 I2S音频的接口包含MCLK.BCK.LRCK.SDATA 1.BT401模块音频输出,既支持DAC立体声输出,同时也支持I2S输出.只能二选一. 2.但是请注意,虽然BT401模块是一样,但是I2S输出版本的固件和DAC输出的固件是不同的 3.I2S的输出,支持主或者从.但是目前我们开发的固件,只支持BT401作为主机使用 二.问题 1.1测试环境硬件说明[BT401测试DEMO板 + PCM5102A] 左图是对应的测试 环境   ..  右图是BT401所使用到IO口的定义 演示

关于音频总线IIS的学习---Verilog

主要思想: 在分析寄存器的值变化的时候,将时钟的边沿分两边来看,边沿之前,边沿之后,在always 块语句里面用来分析判断的寄存器的值,都应该用边沿变化之前的值,边沿之后, always块做操作的寄存器的值才发生变化. 记住,一定是寄存器量(reg定义的),像audio_sck 这种外部输入的异步信号要判断上升沿状态下的即时值. `timescale 1ns / 1ps ///////////////////////////////////////////////////////////////

android下调试声卡驱动之I2S音频通信

一.I2S概述 I2S(Inter-IC Sound)总线是飞利浦公司为数字音频设备之间的音频数据传输而制定的一种总线标准,该总线专责于音频设备之 间的数据传输.由4条线组成的数字音频接口,常用于HiFi,STB便携设备.Tx  和Rx信号线用于音频传输.而位时钟和左右时钟 (LRC)用于同步链接.I2S具有灵活性,因为控制器和解码器都可以控制位时钟和左右时钟.位时钟因采样率和主系统时钟而有不 同.LRCLK与采样率相同.少数设备支持独立的ADC和DAC的LRCLK.这使在不同采样率情况下同步捕

Linux音频驱动学习之:(1)ASOC分析

一.音频架构概述 (1)ALSA是Advanced Linux Sound Architecture 的缩写,目前已经成为了linux的主流音频体系结构,想了解更多的关于ALSA的这一开源项目的信息和知识,请查看以下网址:http://www.alsa-project.org/.在内核设备驱动层,ALSA提供了alsa-driver,同时在应用层,ALSA为我们提供了alsa-lib,应用程序只要调用alsa-lib提供的API,即可以完成对底层音频硬件的控制. (2)PCM是英文Pulse-c