基于tic6416dsk的tlv320aic23音频编解码芯片驱动的一般实现内容摘要:

BSP1 串口和 UTOPIA 接口复用, McBSP2 串口和 PCI 的 EEPROM 接口复用,使用时要注意。 由于 TMS320C6416 采用了新型芯片制造工艺, I/O 电压为,内核电压仅为。 当时钟频率为 600MHz 时, DSP 的最大功耗小于。 第三章 编解码芯片驱动的硬件接口设计 11 第三章 编解码芯片驱动的 硬件接口 设计 系统结构概述 由于本文所介绍的音频 编解码芯片驱动 的主要作用是实现对 编解码芯片AIC23 的控制和实现音频信号的采集与回放,因此本系统可分为主要的两个部分。 一个是以 AIC23 音频编解码芯片为核心的音频采集与回放,编码与解码模块。 另一个是以 C6416DSP 为核心的数据处理和控制模块。 C6416DSP 有 3 个多通道缓冲串口 McBSP,可以方便地利用其中两个 McBSP 完成对 AIC23 的控制与通信,音频信号经由 编解码芯片 AIC23 采样编码转换成数字信号后,通过 McBSP 传输至 DSP 的数据存储器 RAM 中,在这期间可由 DSP 对数据进行 处理,而后再经过 McBSP 发送给 编解码芯片 AIC23,将数字信号转换成模拟信号。 对于 McBSP 与数据存储器之间的数据传输,我们将采用 EDMA 的方式进行。 多通道缓冲串口 McBSP 简介 McBSP( Multichannel Buffered Serial Port) 多通道缓冲串口是在 TI公司早期 TDM 串口和 BSP 串口基础上产生的,它是一种高速,全双工通信带缓冲的串口,可以与 TMS320C6000 器件,工业标准的编解码芯片, ADC 等连接,最高串行速度四分之一的始终周期。 既可以实现时 分多路通信功能,又可以通过 BSP 提供的DMA 功能实现不用 CPU 参与的自动缓存功能,从而把 DSP 从繁重的串口通信中解放出来,提高了运行的效率。 McBSP 串口包括一个数据通道和一个控制通道,由引脚,接收发送部分,时钟及帧同步信号产生器,多通道选择以及 CPU 中断信号和 DMA同步信号等组成。 数据通道主要是过数据发送寄存器 DXR 和数据接收寄存器 DRR完成数据的发送和接收。 控制通道完成的任务包括内部时钟,帧同步信号的产生和控制,以及对多通道的选择等,控制通道还负责产生中断信号送往 CPU。 McBSP 具有以下功能: 基于 C6416DSK 的音频编解码芯片驱动程序开发 12 ■ 全双工通信 ■ 允许连续数据流的双缓冲数据寄存器 ■ 收发独立的选帧信号和定时信号 ■ 与工业标准编解码器,模拟接口芯片( AIC)以及其它串行 A/D, D/A 设备的直接接口 ■ 数据传输可利用外部移位时钟或一个内部频率可编程的移位时钟 ■ 通过 5 通道 DMA 控制器的自缓冲能力 另外, McBSP 的功能还包括: ■ 与 多种 设备或方式的直接接口,包括 T1/E1 帧方式, MVIP 兼容的交换方式以及STBUS 兼容设备, SPI 设备等。 ■ 可与多达 128 个通道进行多通道收发 ■ 支持传输的数据字长可以是 8 位, 12位, 16 位 , 24位和 32 位 ■ μ 律和 A律压扩 ■ 对于 8 位数据传输,可选择高位( LSB)先传或低位( MSB)先传 ■ 可编程设置帧同步和数据时钟信号的极性 ■ 高度可编程的内部时钟和帧信号 管脚接口 和寄存器 McBSP 管脚和寄存器基本结构如下图所示: 第三章 编解码芯片驱动的硬件接口设计 13 图 31 McBSP 结构图 McBSP 由连接外部设备的数据通道和控制通道组成。 数据通过独立的管脚和外部设备进行数据的收发。 另外 4 个管脚提供了控制信息(定时和帧同步)接口。 设备与 McBSP 通过可由片内外设总线访问的 32 位控制寄存器实现 通信。 数据通过数据发送管脚( DX)和数据接收管脚( DR)与连接到 McBSP 的设备通信,控制信息(定时和帧同步)通过 CLKK, CLKR, FSX 和 FSR 管脚通信。 C6000通过 32位宽的控制寄存器和 McBSP 通信,控制寄存器可由内部外设总线访问。 CPU或 DMA/EDMA 控制器从数据接收寄存器( DDR)读数据,把要发送的数据写到数据发送寄存器( DXR)。 写入 DXR 中的数据通过发送移位寄存器( XSR)移出至 DX 管脚。 类似地,数据接收( DR)管脚上接收到的数据先移入到接 收 移位寄存器( RSR)中,然后被复制到接 收 缓冲 寄存器( RBR)中, RBR 然后再将数据复制到 DRR,后者等待 CPU 或 DMA/EDMA 控制器将数据读走。 这就允许内部的数据搬移和内部的数据通信可以同时进行。 基于 C6416DSK 的音频编解码芯片驱动程序开发 14 由 McBSP 结构图我们可以看出, McBSP 的接收操作经过 3个缓冲而发送操作经过 2个缓冲。 接收数据到达数据接收管脚( DR)后被转移至接收移位寄存器( RSR),一旦一个完整的单元( 8,12,16,20,24,32bit)被接收,只要 接 收 缓冲寄存器( RBR)没有满,接收移位寄存器( RSR)中的数据就会被复制到 RBR中。 接下来 接 收 缓冲寄存器( RBR) 中的数据被复 制到 数据接收寄存器( DDR) ,除非 DDR 中的数据还没有被 CPU 或 DMA/EDMA 控制器读取。 CPU 或 DMA/EDMA 控制器将发送数据写入 数据发送寄存器( DXR) ,如果在 发送移位寄存器( XSR) 中没有数据,那么 数据发送寄存器( DXR) 中的数据就会复制到 XSR,或者当最后一位数据由数据发送 管脚 ( DX)发送时复制到 XSR。 传输帧同步后, XSR 开始将发送数据转移至 DX。 串口的接收时钟 CLKR 和发送时钟 CLKX 既可以由外部设备提供又可以由内部时钟产生器提供;帧同步信号 FSX 和 FSR 的输入和输出极性也可以进行选择; 串口的信号发送和接收部分既可以单独运行又可以和在一起配合工作。 CPU 中断信号和 DMA 同步信号使得 McBSP 串口可由 CPU 控制运行,还可以脱离 CPU 通过直接内存存取单独运行,多通道选择使得串口具备了多通道信号通信能力。 C6416DSP 的 McBSP 寄存器如下表所示: 缩写 寄存器名称 McBSP0 McBSP1 McBSP2 RBR 接收缓冲寄存器 RBR0 RBR1 RBR2 RSR 接收转移寄存器 RSR0 RSR1 RSR2 XSR 发送转移寄存器 XSR0 XSR1 XSR2 DRR 数据接 收寄存器 DDR0 DDR1 DDR2 DXR 数据发送寄存器 DXR0 DXR1 DXR2 SPCR 串口控制寄存器 SPCR0 SPCR1 SPCR2 RCR 接收控制寄存器 RCR0 RCR1 RCR2 XCR 发送控制寄存器 XCR0 XCR1 XCR2 SRGR 采样率产生寄存器 SRGR0 SRGR1 SRGR2 MCR 多通道控制寄存器 MCR0 MCR1 MCR2 RCERE0 增强接收通道使能寄存器 0 RCERE00 RCERE01 RCERE02 第三章 编解码芯片驱动的硬件接口设计 15 RCERE1 增强接收通 道使能寄存器 1 RCERE10 RCERE11 RCERE12 RCERE2 增强接收通道使能寄存器 2 RCERE20 RCERE21 RCERE22 RCERE3 增强接收通道使能寄存器 3 RCERE30 RCERE31 RCERE32 XCERE0 增强发送通道使能寄存器 0 XCERE00 XCERE01 XCERE02 XCERE1 增强发送通道使能寄存器 1 XCERE10 XCERE11 XCERE12 XCERE2 增强发送通道使能寄存器 2 XCERE20 XCERE21 XCERE22 XCERE3 增强发送通道使能寄存器 3 XCERE30 XCERE31 XCERE32 PCR 管脚控制寄存器 PCR0 PCR1 PCR2 数据接收寄存器( DRR)保存着将要被写入数据总线的数据,对于带有 EDMA外设的器件, DDR 寄存器被通过 EDMA 总线和外设总线映射到存储器地址, DDR 地址可通过外设总线和 EDMA 总线访问。 CPU 和 EDMA 控制器都可以通过映射的存储器地址访问 DDR,一个对任何 EDMA 总线地址的访问相当于一个对相应的 McBSP的 DDR寄存器的访问。 从任何一个 EDMA 总线上在 DDR 地址读取数据相当于在外设总线上从相应的 McBSP 的 DDR 上读取数据。 数据发送寄存器( DXR)保存着将要被载入数据移位寄存器的数据,对于带有EDMA 外设的器件 DXR 寄存器被通过 EDMA 总线和外设总线映射到存储器地址, DXR地址可通过外设总线和 EDMA 总线访问。 CPU 和 EDMA 控制器都可以通过映射的存储器地址访问 DDR,一个对任何 EDMA 总线地址的访问相当于一个对相应的 McBSP 的DXR 寄存器的访问。 从任何一个 EDMA 总线上在 DXR 地址写入数据相当于在外设总线上从相应的 McBSP 的 DDR 上写入数据。 串口控制 寄存器( SPCR),接收控制寄存器( RCR),发送控制寄存器( XCR),采样率产生寄存器( SRGR),多通道控制寄存器( MCR),管脚控制寄存器( PCR),以及 4 个 增强接收通道使能寄存器 和 4 个 增强发送通道使能寄存器 用于控制多通道缓冲串口的工作状态,在使用 McBSP 之前要进行配置,写入相关参数。 基于 C6416DSK 的音频编解码芯片驱动程序开发 16 与 McBSP 之间的硬件接口 C6416具有 3个多通道缓冲串口 McBSP,其中 McBSP1作为单向控制通道控制向 AIC23发出控制信号,配置 AIC23 内部的控制寄存器, McBSP2承担双向数据 传输的任务。 AIC23 与 McBSP 的接口电路如图 所示: 图 32 控制通道 McBSP1的 FSX1, CLKX1, TX1 分别控制 AIC23 的 CS, SCLK, SDIN 引脚,而数据传输通道 McBSP2的 FSR2, FSX2, DX2, DR2, CLKR 和 CLKX 分别与 AIC23的对应引脚 LRCIN, LRCOUT, DIN, DOUT,BCLK 想链接实现数据的交换。 当 AIC23 和 McBSP 接口电路实现之后, McBSP2 可以使用硬件中断 CPU 方式或EDMA 方式接收和发送数据。 因此,在接收数据时,接收引脚 DR2 从 AIC23 接收的数据在 FSR2 和 CLKR 得作用下先移位到接收移位寄存器 RSR2 中,紧接着复制到接收缓冲寄存器 RBR2 中,然后复制到数据接收寄存器 DRR2 中,最后 CPU 或 EDMA 控制器从 DRR2 读入数据。 同样,当发送数据时,在 FSX2 和 CLKX 的作用下, CPU 或EDMA 控制器把要发送的数据写到数据发送寄存器 DXR2,接着发送移位寄存器 XSR2把数据转移到发送引脚 DX2 上,以便通过 AIC23 的 D/A 转换输送到外面。 而接收和发送帧同步脉冲既可以由内部采样速率产生器产生,也可以由外部时钟源驱动,McBSP2 分别在相应的 时钟的上升沿和下降沿进行数据的检测。 第三章 编解码芯片驱动的硬件接口设计 17 控制器 控制器简介 增强型直接存储器访问( Enhanced Direct Memory Access, EDMA), 是TMS320C64x 的一种重要的数据访问方式, 增强型直接存储器访问( EDMA)控制器用于执行二级高速缓存或内存控制器与外部设备之间的所有数据传输。 这些数据传输包括高速缓存存取,非高速缓存访问,用户可编程数据传输和主机访问等。 EDMA 控制器与 DMA 控制器的结构是不同的。 相对于 DMA 控制器来说, EDMA 控制器 提供了几种增强功能,包括提供了 64 个通道( C64x), 优先级可编程功能以及连接数据传输链的功能, EDMA 控制器允许读写任何可寻址存储器空间的数据移动操作,包括内存,外部设备和外部存储器。 EDMA 控制器结构 如图 所示: 基于 C6416DSK 的音频编解码芯片驱动程序开发 18 EDMA 控制器包括: ■ 事件和中断处理寄存器 ■ 事件编码器 ■ 参数 RAM ■ 地址生成硬件 事件寄存器捕获 EDMA 事件, EDMA 事件指的是触发 EDMA 启动的同步信号,如果多个事件同时发生,通过事件编码器可以解决事件优先级问题。 相对于此次事件的传输参数存储在 EDMA 参数 RAM 中 ,并且传递个给地址生成硬件单元,从而寻址 EMIF 或外部设备来执行必要的数据读写操作。 C6416 的 EDMA 的事件寄存器最高可以获取 64 个事件,因此,作为 EDMA 事件输入的同步事件很有可能同时发生,对于这种情况,事件处理的顺序通过事件编码器解决。 这种机制仅仅选择同时发生的时间而对事件的实际优先级没有影响。 实际优先级由存储在 EDMA 控制器参数 RAM中的参数决定。 传输参数 EDMA控。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。