DSP

硬件设计38之什么是MCASP?

2019-07-13 17:55发布

1.McASPMcASP是美国TI公司的DSP的一种接入接口。称为复通道音频接入接口。这是一种通用的音频接入接口。采用的是时分复用的数据流形式。https://wenku.baidu.com/view/ccc1e9fdba0d4a7302763a3d.htmlMcASP即multi-channel audio serial port,是通用音频接口,支持TDM(Time-Division Multiplexed stream)协议、I2S协议等。McASP可以非常灵活的与S/PDIF (Sony/Philips Digital Interface)等接口连接。McASP的数据线可以灵活的配置成输入或者输出,同步模式则根据具体接口设计来决定,可以配置成主模式(由内部生成帧同步、字同步、位同步)或者从模式(由外部提供帧同步、字同步、位同步)。从字面上理解,多通道音频串行接口,我们可以知道两点:多个通道串行McASP接口的时钟(包括帧同步、字同步、位同步)是独立的,这也就意味着McASP可以设置输入输出不同采样率的数据。1.1McASP的硬件架构先看结构框图,从下面可以知道其大概分为五部分: 1) FIFO:很有用的东西,通信接口一般都用的着,缓解CPU高速和端口慢速的矛盾。 2) 发送/接受格式单元:说明了就是把数据转换成人家特定的格式发送,通过它可以设定MSB/LSB,那些位没有用,可以MARK掉,还有rotate(是个什么鬼,没有搞懂,也没有用到)。 3) 状态机:这么复杂的设备,有了状态机,使进程控制更加简单,当然这也都是CPU自己完成的,用户不用关心,只需要初始化时把它打开就行。顺便提一句,Good Program Practice 可以多用状态机写。 4) Serializer:也就是串行器了,CPU内部数据传输都是并行,需要靠他完成并/串,串/并转换。5) Clock Generator:时钟产生器,这个相当重要,McASP传输数据都是同步进行,一套优良的时钟管理,可以很方便的配置时钟。McASP包括以下引脚:串行数据引脚AXR[n]:每个McASP达到16个。发送时钟:    AHCLKX:McASP的发送高频主时钟;    ACLKX:McASP的发送位时钟;发送帧同步信号AFSR;静音:AMUTEIN:McASP的静音输入(从外部器件);AMUTE:McASP的静音输出。2、McASP时钟配置2.1、Bit Clock        MCASP时钟发生器可以产生两个独立的时钟域,即采集时钟(Receive)和播放时钟(Transmit)bit clock主要有三种方式:内部时钟、外部时钟、混合时钟输入方式。        内部时钟是有主时钟经过分频送来的AUXCLK提供(具体请参考DM8168 TRM中的PRCM部分介绍);
         外部时钟则可以通过晶体提供,即输入到ACLKR/X引脚的外部时钟驱动;        混合式中输入方式,即外部高频时钟输入到AHCLK/R引脚,分频后作为ACLKR/X的驱动源;        由上图可以知道,CLKXM/CLKRM决定XCLK/RCLK是由内部提供还是外部输入;CLKXP/CLKRP控制XCLK/RCLK的时钟极性,即上升沿采样或者下降沿采样;注意:AHCLKX和AHCLKR也有两种方式,一种是外部提供,一种由AUXCLK倍频得到。2.2、Frame Clock帧同步信号有两种不同的模式:突发模式、TDM模式。帧同步信号的选择是通过对接收和发送帧同步信号控制寄存器AFSRCTLAFSXCTL来编程控制的。主要的配置选项包括以下几个方面:
  • 帧同步时钟驱动方式:内部产生、外部供给
  • 帧同步信号极性:上升沿、下降沿
  • 帧同步信号宽度:bit、word
  • 位延时:在第一个数据位前的0、1或2个时钟周期(在I2S中要求位延迟设置为1
3、McASP的传输方式在McASP传输模式中,TRM中讲解的很清楚,有三种:Burst Transfer Mode、Time-Division Multified Tramsfer Mode、Digital Audio Interface Transmit Transfer Mode。3.1、Burst Transfer Mode这种传输方式并非用于传输音频信号,常用于处理器之间传输控制信息等,此时其实McASP用作普通的串行通信接口。详细的配置方法请参见DM8168 TRM 14.2.6.1节。以下网页说明了该模式如何使用:http://e2e.ti.com/support/dsp/tms320c6000_high_performance_dsps/f/115/t/86981.aspx3.2、Time-Division Multified Tramsfer Mode最常用的一种传输方式;常用的音频格式I2S格式就是从TDM格式中把每帧中Slot数设置成2得到的。基本时序如下图:
图中每个Slot(最多32个slot)都可以看作是一路信号(maybe 音频信号),每帧数据中包括多个通道的数据。对于标准I2S信号而言,每帧中包括两个Slot(即左右声道数据);扩展后的I2S信号中有2*N个Slot,包含了N路立体声音频数据,例如TW2865、TVP5158这类decoder中音频为多路复合数据(详见datasheet中描述)。3.3、Digital Audio Interface Transmit Transfer Mode该传输模式作为以上两种方式的一种补充,传输方式基本类似于I2S,但编码方式有所区别,采用BMC编码(Biphase-Mark Code,中文名:差分曼彻斯特编码 )方式,如下图所示,详细解释请参考通信原理相关知识
识别差分曼彻斯特编码的方法:主要看两个相邻的波形,如果后一个波形和前一个的波形相同,则后一个波形表示0,如果波形不同,则表示1