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

发布者:爱笑的猫咪最新更新时间:2020-05-06 来源: eefocus关键字: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 总线接口可以同时接收和发送数据。


三、音频串行接口格式

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  音频总线  S3C2440  I2S控制器 引用地址:I2S音频总线学习(三)S3C2440的I2S控制器

上一篇:s3c2440之IIS(2)I2S音频总线学习-数字音频技术
下一篇:S3C2440之IIS配置

推荐阅读最新更新时间:2024-11-16 23:27

S3C2440中的GPIO
1.S3C2440GPIO简单介绍 GPIO即General-purpose input/output ,这些管脚除了可以用作输入输出外,还可以配置成一些其他的功能,例如I2C,UART等,其实就是管脚复用的思想。 所有的这些管脚主要通过下面的寄存器进行控制, 2.JZ2440原理图 从上面的原理图截图中我们可以看到: 1.我们的nLED_1,nLED_2,nLED_4是连接到3.3V电源上的,所以我们的管脚需要输出低电平,LED灯才会亮。 2.我们的nLED_1,nLED_2,nLED_4是连接到s3c2440的GPF4,GPF5,GPF6上面的。 另外,在原理图中还有如下知识点。 3.控
[单片机]
<font color='red'>S3C2440</font>中的GPIO
ARM Linux S3C2440 之UART分析
在分析ARM-Linux s3c2440中UART的时有必要先了解 s3c2440A中串口的硬件知识。 硬件篇: S3c2440A串口提供三个独立的异步串行通信I/O端口(asynchronousserial I/O ports)。每一个串口均可以以普通中断方式或者DMA方式进行数据收发。采用系统时钟时,最大速率为115.2kbps.如果采用外部时钟(UEXTCLK),UART速度可以更快。每个串口包含有2个64-byte的FIFO缓存区用来发送或传输数据。S3c2440A 串口具有可编程波特率,红外(IR)收发数据,1或者2 位的停止位(stop),5/6/7/8 位数据宽度和奇偶校验功能(parity checking)。
[单片机]
ARM Linux <font color='red'>S3C2440</font> 之UART分析
s3c2440移植openharmony
s3c2440移植openharmony。OpenHarmony是开放原子开源基金会的一个孵化项目,OpenHarmony完全开源开放,OpenHarmony轻量和小型系统比较适合内存小的IOT设备。 OpenHarmony同时提供许多可选的系统组件,设备开发者能够按需配置。系统能够把这些能够选择的组件合成一个系列的系统能力让设备开发者更好的理解和开发。 想对OpenHarmony进行开发、编译、烧录、调测能够使用DevEco Device Tool。 现在的openharmony轻量和小型系统搭建系统环境Windows版本不支持在Windows平台编译,Hi3861除外,其它的只能在Ubuntu平台下编译。
[单片机]
基于 S3C2440 的嵌入式多媒体控制器设计
根据当今移动终端设备多功能、低功耗、易于移植的要求,分别从硬件和软件系统 2 方面提出了一种基于三星μS3C2440 芯片的嵌入式多媒体娱乐控制器的解决方案,同时介绍了利用 CLinux 构造嵌入式系统的方法,并提出了基于MiniGUI开发多媒体娱乐软件的基本方案。通过测试,系统能够满足用户在文字、音视频处理以及常用有线、无线数据交换等多方面的要求。 由于移动通信技术的高速发展,移动电话早已超出原有的进行语音通信的领域,正逐步成为手持娱乐终端的中心。手机用户希望自己的手机在完成通信基本功能的同时还能作为 PDA、MP3 播放器、数码相机、摄像机、视频播放机等。因此,设计出多功能、低功耗的多媒体终端至关重要。ARM+Linux系统
[单片机]
基于 <font color='red'>S3C2440</font> 的嵌入式多媒体<font color='red'>控制器</font>设计
linux-2.6.35.3内核移植(s3c2440
宿 主机:Fedora13 目标 机:s3c2440 交叉 编译 器:arm-linux-gcc-3.4.1 交叉编译器路径:/usr/local/arm/3.4.1 要移植 的内核 版本:linux-2.6.35.3 文件 系统 类型: yaffs2 一、准备工作 1、下载 解压内核 从官网上下载linux-2.6.35的内核, ftp://ftp.kernel.org/pub/linux/kernel/v2.6/ ,文件不大,约85M。 新建一个工作目录s3c2440,将内核源码包拷贝至工作目录下,再解压。 2、移植yaffs2驱动 下载最新的驱动http://www.aleph1.co.uk/cgi
[单片机]
u-boot-2011.06在基于s3c2440开发板的移植之NorFlash启动
在移植之前,我们还需要安装、配置eldk,用于编译u-boot。下面我们就先介绍一下eldk的安装与配置: 1.下载eldk 在 这里 选择任一版本的eldk并下载,我选择的是eldk4.2版本的arm-2008-11-24.iso文件。把该文件下载到/home/zhaocj/download/目录下。 2.在root权限下安装eldk 创建挂载点: mkdir /mnt/dvdrom 挂载光驱: mount –o loop /home/zhaocj/download/arm-2008-11-24.iso/mnt/dvdrom 安装eldk: cd /mnt/dvdrom ./install –d /opt/eldk4.2/
[单片机]
S3C2440 nand sdram启动时代码的运行转移过程
在reset期间,S3C2440 Nand Flash控制器通过和nand flash相连的管脚pin的状态获得信息(NCON,GPG13,GPG14,GPG15).启动电源或者系统复位后,NAND Flash控制器 会自动的下载4Kboot loader代码,下载了的boot loader 代码之后就在setppingstone 开始执行了。 S3C2440的boot code能够在外部的nand flash内存中执行。为了支持nand flash 的boot 引导,S3C2440有一个内部的SDRAM缓存称为“Steppingstone”,当booting的时候,Nand Flash的首4kbyte会被导入到Stepping
[单片机]
基于嵌入式Linux与S3C2440双USB接口的视频存储
  针对长途客车“三超”(中途超载上人,超时,超速)以及在非正常停靠站私自停车上人导致的客车超载,同时目前市面上视频监控设备由于体积大、成本高等,使其难以推广应用在车辆中等问题,整合USB摄像头低成本、USB存储介质较SD(Secure Digital Memory Card)卡存储速度更快、支持更大容量等优点,提出了基于嵌入式。Linux及S3C2440平台的双USB接口车载视频存储方案。本方案主要利用单片机判别模块采集车辆行驶过程中运动状态信息(是否超速,存在急刹车、中途停车超时等),并结合车门在车速为零时的开闭对长途客车在非正常停靠点超载上人进行主动视频监控,便于以后的责任追究和认定,为监控中心的管理提供辅助。    1 系
[嵌入式]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
更多每日新闻

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved