1、硬件接口
(1)硬件原理图
IIS部分用来传声音和收声音,L3接口部分用来控制声音。
(2)2410和声卡连接图
(3)声音采集
(4)录音和播放
2、IIS
(1)
当LRCK是低电平时传输的是左声道数据,是高电平时传输的是右声道数据。是采样频率,
SCLK是位时钟,每个时钟传输1位数据。
还有CDCLK,系统时钟,用于让芯片工作于一定的频率下。2410提供给编解码芯片的。
(2)最多支持16位数据
(3)传输8位数据时,因为有16个时钟,所以后面八位填0
3、L3接口不等于3线接口
4、L3接口各线功能
1、UDA1341TS这颗CODEC和S3C2440的硬件接口为L3和IIS.其中,L3为实现UDA1341TS这颗CODEC内部寄存器配置的硬件接口,而IIS则为音频数据流的数据接口.
1-2.主控端原理图:
S3C2440-L3原理图:
2.数据手册及通讯协议:
主控需要根据一定的协议(如IIC、SPI、IIS、L3等)和设备端通讯,从而达到数据的交互效果.而这过程往往是基于某种协议来实现设备端内部寄存器的配置而达到设备功能的设置动作.这些信息往往需要从SOC的数据手册和DEV的数据手册获取.
2-1.UDA1341TS的DATASHEET:
我们要达到控制某颗IC内部的信息,往往是通过其寄存器的读写实现的.下面针对UDA1341TS这颗CODEC的数据手册来看一下其内部寄存器.在这里实现UDA1341TS的内部寄存器操作是通过L3总线实现的.类似IIC总线协议,L3总线上也可以挂多个设备,每个设备都要有一个唯一的地址.UDA1341TS的设备地址为0x5.见数据手册:
其中第一个byte中,bit[7]~bit[2]表示UDA1341TS的设备地址,见上图红色标识部分:000101.而bit[1]~bit[0]表示后续传输的数据类型.一共有三种类型(还有一种保留未使用).如下图:
00表示DATA0,01表示DATA1,10表示STATUS.这里其实就是指UDA1341TS的内部寄存器的地址.因此,
00010100b表示是DATA0的地址; 用于控制音量
00010101b表示是DATA1的地址; 表示读回一些信息
00010110b表示是STATUS的地址; 表示状态信息(时钟,数据位宽)
00010111b保留.
因此,sound/soc/codecs/uda134x.h中宏定义便轻易理解:
其中,DATA0里面就包含了音量的控制:
用于设置音量
其中,往DATA0这个寄存器写入一些特定的数值还可以进入"扩展地址"模式,见上图中的EAn(n = 2,1,0)一栏.根据其数据手册.如下:
当进入EA模式,必须通过ED进行设置.因此,EA的基地址为0xC0,ED的基地址为0xE0.因此,sound/soc/codecs/uda134x.h下面的宏便很容易理解了:
#define UDA134X_EXTADDR_PREFIX 0xC0
#define UDA134X_EXTDATA_PREFIX 0xE0
同样,EAn有三个位(n = 0,1,2).其偏移地址为0x0到0x7.因此,sound/soc/codecs/uda134x.h下面的宏便很容易理解:
#define UDA134X_EA000 0
#define UDA134X_EA001 1
#define UDA134X_EA010 2
#define UDA134X_EA011 3
#define UDA134X_EA100 4
#define UDA134X_EA101 5
#define UDA134X_EA110 6
#define UDA134X_EA111 7
当处理EA模式下,可以实现增益、MIC灵敏度的设置.如下:
其中,DATA1表示峰值级别:
其中,STATUS包括里面IC系统的功能控制,比如复位:看最高位是0还是1.
2-2.S3C2440相关的DATASHEET:
S3C2440和UDA1341TS的硬件接口主要分两部分:L3和IIS.
2-2-1.L3
其中,UDA1341TS的L3三根线L3MODE、L3DATA、L3CLOCK分别接到S3C2440的GPB2、GPB3、GPB4.因此,只能通过模拟L3时序协议来实现和UDA1341TS通讯配置.其中L3分为地址模式和数据模式.
地址模式对应的协议时序图如下:
由此时序图可知,L3MODE处于低电平,在L3CLOCK的上升沿的时候,L3DATA上的数据被识别.因此,用GPIO模拟.
对应sound/soc/codecs/l3.c下面代码:
/*
* Send one byte of data to the chip. Data is latched into the chip on
* the rising edge of the clock.
*/
static void sendbyte(struct l3_pins *adap, unsigned int byte)
{
int i;
for (i = 0; i < 8; i++) {
adap->setclk(0);
udelay(adap->data_hold);//Tclk(L3)L-Tsu(L3)DA
adap->setdat(byte & 1);
udelay(adap->data_setup);//Tsu(L3)DA
adap->setclk(1);
udelay(adap->clock_high);//Th(L3)DA
byte >>= 1;
}
}
数据模式对应的协议时序图如下:
由此时序图可知,L3MODE处于高电平,在L3CLOCK的上升沿时L3DATA线上的数据被识别.因此,用GPIO模拟.
对应sound/soc/codecs/l3.c下面代码:
/*
* Send a set of bytes to the chip. We need to pulse the MODE line
* between each byte, but never at the start nor at the end of the
* transfer.
*/
static void sendbytes(struct l3_pins *adap, const u8 *buf,
int len)
{
int i;
for (i = 0; i < len; i++) {
if (i) {
udelay(adap->mode_hold);
adap->setmode(0);
udelay(adap->mode);
}
adap->setmode(1);
udelay(adap->mode_setup);
sendbyte(adap, buf[i]);
}
}
2-2-2.IIS
S3C2440内部集成了IIS控制单元.对外引出了五个引脚:IISDO、IISDI、IISSCLK、IISLRCK和CDCLK.由IIS的协议可知:
IISDO:
用于数字音频信号的输出;
IISDI:
用于数字音频信号的输入;
IISSCLK:
串行时钟,也叫位时钟BCLK.每一个时钟信号代表一位数字音频信号,因此IISSCLK的频率=声道数×采样频率×采样位数,如采样频率fs为44.1kHz,采样的位数为16位,声道数2个(左、右两个声道),则IISSCLK的频率=32fs=1411.2kHz;
IISLRCK:
也称WS.用于切换左右声道的数据.LRCK为“1”表示正在传输的是左声道的数据,为“0”则表示正在传输的是右声道的数据.LRCK的频率等于采样频率;
CDCLK:
为该芯片提供系统编解码时钟,主要用于音频的A/D、D/A采样时的采样时钟,一般CDCLK为256fs或384fs.
[注:]采样频率fs对频率的设置至关重要,常用的fs有8kHz、16kHz、22.05kHz、44.1kHz、48kHz、96kHz等
相关推荐
**IIS(Inter-IC Sound)接口在S3C2410中的应用** IIS,全称为Inter-IC Sound,是一种广泛应用于音频设备之间的数字音频接口标准,它允许音频...这将对后续的音频处理项目,如声音采集、音频播放等,提供坚实的基础。
IIS接口只传输声音数据,而声音的录制和播放涉及到采样频率、模数转换(ADC)精度等多个方面。声音录制是指将声音信号转换为数字信号的过程,涉及到采样频率(采样率)和ADC精度。声音播放则是将数字声音数据按照...
本文介绍了如何实现IIS总线的驱动,以及如何配置和控制CS5396芯片,确保音频数据的准确无误采集。 5. 接口设计与工作原理 系统中的接口设计包括处理器与IIS总线的接口、IIS总线与CS5396芯片的接口,以及芯片与外部...
根据给定的文件信息,我们可以深入探讨S3C44B0微处理器中关于IIS(内部声音集成电路)总线接口的关键知识点。S3C44B0是一款基于ARM架构的微处理器,广泛应用于各种嵌入式系统设计中,尤其是涉及音频处理的应用场景。...
这些传感器能实时采集环境温度和湿度,并通过单线数字接口向ESP8266发送数据。在编程时,我们需要适配DHT库,确保正确读取和处理传感器返回的数据,然后可能将其上传到云平台或者本地存储以供后续分析。 **超声波...
2. 初始化ADC:通过IIS接口与麦克风连接,配置ADC采样率和位深度,确保正确获取声音信号。 3. 数据采集:启动ADC,按照设定的参数进行连续采样,将模拟信号转换为数字信号。 4. 存储数据:将采集到的音频数据保存到...
本项目聚焦于通过ffmpeg库采集麦克风输入的声音,并将其编码为AAC(Advanced Audio Coding)格式,这是一种高效的音频压缩标准,广泛应用于数字音频广播、流媒体服务等。下面我们将深入探讨这一主题。 首先,`audio...
`rtaudio`是一个跨平台的API,用于实时音频I/O,支持Windows、Mac OS X、Linux等操作系统,提供了简单易用的接口来实现录音和播放功能。 2. **AAC编码**: AAC编码是音频压缩的一种方法,由Fraunhofer IIS和杜比...
- **音频采集与播放**:通过S3C2440的IIS接口与UDA1341芯片相连,实现了音频数据的采集与播放。S3C2440通过IIS接口支持双通道DMA模式,能够高效地进行音频数据的发送与接收。 - **SIP协议栈**:用户代理客户端(UAC...
在功能描述方面,FM1288包括对各个接口的详细介绍,如串行EEPROM接口、UART接口、兼容IIC的SHI接口、数字语音数据接口(包括PCM和IIS接口)、ADC和DAC等。例如,芯片的串行EEPROM接口允许通过两个专用引脚与外部...
- **IIS音频输入输出接口**:用于连接音频设备,实现声音的输入和输出。 - **摄像头接口**:支持连接摄像头,实现图像采集功能。 - **串口电路**:用于实现串行通信。 - **USB接口**:支持USB主机模式和设备模式,可...
全双工通讯允许数据在同一时刻双向传输,这对于需要同时进行声音采集、发送、接收和播放的语音聊天系统来说至关重要。系统中包含多个线程,每个线程负责特定任务,如声音数据的采集、发送、接收和播放。父线程负责...
IIS(集成电路间音效)是一种数字音频接口标准,MagicARM2410开发板可能集成了IIS接口,用于连接音频编解码器,实现高质量的音频输入和输出。 ### CAN总线 CAN(控制器局域网络)是一种用于汽车和其他环境中的实时...
4. 音频输入输出:通过UDA1341 Codec芯片实现声音的采集和播放,通过IIS总线与CPU交互。 5. PSTN网络接口:Conexant的CX06833芯片提供PSTN网络接入,通过UART接口与CPU通信。 6. 存储部分:SDRAM和NOR型FLASH分别...
- **第1章 嵌入式系统开发与应用概述**:介绍了嵌入式系统的概念、发展历史、应用领域等基础知识,以及基于ARM架构的嵌入式开发环境概述,还涉及到了常用的ARM开发工具介绍及如何进行嵌入式系统的开发与应用。...
- **应用程序开发**:在完成驱动程序的移植后,开发人员可以根据需求编写相应的应用程序,以实现音频和视频的采集、压缩、传输和播放等功能。常用的音频编码格式包括AAC、MP3等,视频编码格式则包括H.264、MPEG-4等...
在实际识别阶段,系统通过IIS总线接口与S3C6410微处理器进行通信,将语音信号的识别结果与预存模板比对,找出最佳匹配的声音识别效果,并通过嵌入式Linux操作系统控制垃圾桶的运动。 电机驱动模块的作用是根据ARM...
- **IIS接口**:支持主机和设备模式,适用于数字音频流传输。 ##### 8. I2C控制器 - **一个I2C控制器**:用于与各种I2C设备通信。 ##### 9. PWM输出 - **四个PWM通道**:可用于电机控制等应用。 ##### 10. 红外...