




已阅读5页,还剩37页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第九章多通道音频串行端口 McASP 9 1McASP术语 McASP MultichannelAudioSerialPort 是一个通用音频串行端口 McASP包括发送和接收部分 它们之间可以同步运行 也可以完全独立地使用各自的主时钟 位时钟和帧同步信号 并且可以使用具有不同位流格式的传输模式 McASP模块包括16个串行器 可以单独激活来进行发送或接收 另外 所有的McASP引脚都可以被配置为通用输入输出 GPIO 引脚 位 字和单元的定义 位 Bit 位是串行数据流中的最小组成部分 每个位的开始和结束都是用一个串行时钟的边沿作为标志 字 Word 字是一组位 它组成了在DSP和外部器件之间传输的数据 单元 Slot 一个单元包括组成字的那些位 有时为了将字填充到对于DSP和外部器件接口来说合适的位数 单元也包括那些用来填充字的附加位 在一个单元内 这些位可以是最高位先进或先出McASP 也可以是最低位 当字的长度小于单元长度时 字可以排列到单元的左边 开始 也可以排在单元的右边 末尾 不属于字的附加位可以用0 1或者字中的一位 一般是MSB或LSB 来填充 MostSignificantBitLeastSignificantBit 单元内位序和字对齐方式 帧定义及帧同步宽度 帧 Frame 一帧可以包括一个或多个单元 这由具体协议确定 9 2 1McASP的接口信号 McASP包括以下引脚 串行数据引脚AXR n 每个McASP达到16个发送时钟AHCLKX McASP的发送高频主时钟ACLKX McASP的发送位时钟发送帧同步信号AFSX接收时钟AHCLKR McASP的接收高频主时钟ACLKR McASP的接收位时钟接收帧同步信号AFSR静音AMUTEIN McASP的静音输入 从外部器件 AMUTE McASP的静音输出 McASP在数字音频编码 解码系统中应用的例子 McASP到6通道DAC和2通道DAC McASP到数字放大器 作为数字音频编码器的McASP 使用McASP接口时考虑的事项 9 2 2寄存器 McASP模块所使用的寄存器如表5 2所示 具体内容请阅读参考文献 3 TMS320C672xDSPMultichannelAudioSerialPort McASP ReferenceGuide SPRU878A pdf 参见课本P179 9 2 3时钟和帧同步信号发生器 McASP的时钟发生器能产生独立的发送和接收时钟 可以对它们单独进行编程 它们相互之间可以完全异步 串行时钟 位速率时钟 可以源自 内部 将内部时钟源通过两个分频器产生时钟外部 直接由ACLKR X引脚输入混合 一个外部高频时钟输入到McASP的AHCLKX引脚或AHCLKR引脚 然后被分频产生位速率时钟在内部和混合的情况下 位速率时钟信号是内部产生的 需要由ACLKX引脚或ACLKR引脚引出 在内部产生的情况下 一个内部产生的高频时钟由ACLKX引脚或ACLKR引脚引出作为系统中其它部分的参考时钟 McASP需要以位时钟和帧同步信号的最小值运行 并且能够使这些时钟以一个外部高频主时钟作为基准 1 发送时钟 发送时钟由寄存器ACLKXCTL和AHCLKXCTL进行配置 XCLK边沿搬移数据 ACLKX内部 外部 位时钟分频器 AHCLKX内部 外部 高频时钟分频器 2 接收时钟 接收时钟由寄存器ACLKRCTL和AHCLKRCTL进行配置 3 帧同步信号发生器 帧同步信号有两种不同的模式 突发式和TDM式 帧同步信号的选择是通过对接收和发送帧同步信号控制寄存器 AFSRCTL和AFSXCTL 的编程来控制的 这些选择包括 内部产生或外部产生 帧同步信号极性 上升沿或下降沿 帧同步信号宽度 一位或一个字 位延迟 在第一个数据位前的0 1或2个时钟周期 利用McASP时钟和帧的灵活性进行处理的例子 以48kHz的速率从DVD中接收数据 但是以96kHz或192kHz的速率输出解码的音频 这可以通过输入一个高频主时钟 以内部产生的位时钟速率的8分频进行接收 以4分频或2分频进行发送来实现 以一个取样速率 如 44 1kHz 接收数据 但以不同的取样速率 如 48kHz 发送数据 9 2 4串行器 串行器由寄存器SRCTL n 来控制 串行器负责将串行数据移入或移出McASP 每一个串行器包括一个移位寄存器 XRSR 数据缓存器 XRBUF 控制寄存器 SRCTL 接收 数据通过AXR n 引脚移入移位寄存器XRSR 在整个数据单元都被收集到了XRSR之后 接着这些数据就被复制到数据缓存XRBUF中 现在DSP就可以通过RBUF寄存器 接收XRBUF的别名 经格式化单元读取数据了 发送 DSP芯片通过向XBUF寄存器 发送XRBUF的别名 中写入数据 经过发送格式化单元 数据从XRBUF复制到XRSR中 由AXR n 引脚移出 跟串行时钟同步 9 2 5格式化单元 McASP有两个数据格式化单元 一个用作发送 一个用作接收 因为所有的发送器使用同一个数据格式化单元 因此McASP一次只能支持一种发送格式 例如 当McASP在串行器1上发送 左对齐 格式时 就不会在串行器0上以 I2S格式 发送 同样的 McASP的接收部分也是一次只支持一种接收格式 并且这种格式对于所有的接收串行器都适用 然而 McASP可以以一种格式发送而以一种完全不同的格式接收 格式化单元包括三个部分 位屏蔽和填充 屏蔽位 进行符号扩展 旋转 字内对齐数据 位翻转 选择是MSB在前还是LSB在前 位屏蔽和填充部分包括一个完整的32位屏蔽寄存器 它允许选定位完全通过或者被屏蔽掉 然后插入一个0 一个1或者原来的32位中的其中一位来作为填充值填充被屏蔽了的位 在最后一种选择中 当在符号位被选择用来填充剩余位时允许进行符号扩展 旋转部分进行4的倍数位 0到28位之间 的位旋转 可以通过 R X FMT寄存器编程进行控制 注意 这是一个旋转过程 不是移位过程 因此在旋转操作中 第0位被移位到第31位 位翻转部分或者是让32位全部直接通过 或者是交换他们 这对于MSB在前或者LSB在前的数据格式都是允许 如果使能位未翻转 McASP就会自然的以LSB在前的次序进行发送和接收 最后要注意 R X FMT的 R X DATDLY位也可以决定数据的格式 例如 对于I2S格式和左对齐格式之间的差别就是由帧同步信号的边沿和单元的第一个数据位之间的延迟决定的 对于I2S格式 R X DATDLY需要设置为1个时钟延迟 然而左对齐格式就需要设置为0个时钟延迟 9 2 6时钟检查电路 音频系统中最普遍的误差源是片外DIR电路不稳定引起的串行时钟错误 为了迅速检查出时钟错误 在McASP中包含了一个用于发送和接收时钟的时钟检查电路 因为这两个时钟是可以源于片外的 时钟检查电路可以检测时钟错误并能从错误时钟中恢复 对于它的使用与编程请参考相关器件数据手册 9 2 7引脚控制 除了AMUTEIN外的McASP的所有引脚都是双向输入 输出引脚 而且 这些双向引脚既可以作为McASP引脚使用也可以作为通用输入 输出 GPIO 引脚 由下列寄存器来控制引脚功能 引脚功能寄存器 PFUNC 选择引脚是作为McASP引脚还是GPIO引脚 引脚方向寄存器 PDIR 选择引脚是输入还是输出引脚数据输入寄存器 PDIN 显示引脚的输入数据引脚数据输出寄存器 PDOUT 如果引脚被配置为通用 GPIO 输出口 PFUNC n 1andPDIR n 1 那么数据就会由此引脚输出 在引脚被配置为McASP引脚时 PFUNC n 0 此寄存器不可用 引脚数据设置寄存器 PDSET PDOUT的别名 向PDSET n 写入1就会将相应PDOUT n 设置为1 写入0没有影响 仅在引脚配置为GPIO输出时 PFUNC n 1 PDIR n 1 此寄存器可用 引脚数据清除寄存器 PDCLR PDOUT的别名 向PDCLR n 写入一个1就会将相应PDOUT n 设置为0 写入0没有影响 仅在引脚配置为GPIO输出时 PFUNC n 1 PDIR n 1 此寄存器可用 McASP引脚控制方框图 1 McASP引脚控制 即使McASP引脚被用作串行通道功能 非通用输入输出口 也必须正确的设置McASPGPIO寄存器PFUNC和PDIR 当使用这些引脚的串行通道功能时 必须将每个引脚的PFUNC n 清零 有些输出要求PDIR n 1 如时钟引脚作为时钟输出使用时 串行数据引脚作为发送使用时 以及AMUTE作为静音输出使用时都有这样的要求 时钟输入和配置为接收的引脚必须设置PDIR n 0 2 GPIO引脚控制 将PFUNC n 设置为1来进行GPIO操作配置PDIR n 为要求的方向PDOUT PDSET PDCLR控制引脚的输出值不管PDIR和PFUNC的设置如何 PDIN通常反映引脚的状态 将引脚用作GPIO引脚的例子 例5 1 通用输入引脚PDIR n 0 输入 PFUNC n 1 GPIO功能 可以读PDIN寄存器来获得引脚输入状态例5 2 通用输出引脚 使用PDOUT激活PDIR n 0 默认为输入 PFUNC n 1 GPIO功能 PDOUT n 需要的输出值PDIR n 1 在PDOUT n 配置为需要的值后变为输出 例5 3 通用输出引脚 使用PDSET将数据从0变到1如果引脚被配置为通用输出引脚 并输出0 若将输出从0变为1 推荐使用PDSET寄存器而不是使用PDOUT寄存器 这是因为对PDSET寄存器的写操作仅仅影响所关心的引脚 将一个引脚从0变到1 要进行如下操作 置位PDSET n 将置位相应的PDOUT n 例2 4 通用输出引脚 使用PDCLR将数据从1变到0如果引脚被配置为通用输出引脚 并输出1 若将输出从1变为0 推荐使用PDCLR寄存器而不是使用PDOUT寄存器 这是因为对PDCLR寄存器的写操作仅仅影响所关心的引脚 将一个引脚从1变到0 要进行如下操作 设置PDCLR n 将清零相应的PDOUT n 将引脚用作GPIO引脚的例子 9 3 1McASP启动与初始化 按照下面的步骤来配置McASP 1 通过设置GBLCTL 0复位McASP到缺省值 2 配置除GBLCTL之外的所有McASP寄存器省电和仿真管理 PWRDEMU接收寄存器 RMASK RFMT AFSRCTL ACLKRCTL AHCLKRCTL RTDM RINTCTL RCLKCHK 如果使用外部时钟AHCLKR或ACLKR 那么为了GBLCTL寄存器的正确同步 必须提前提供时钟信号发送寄存器 XMASK XFMT AFSXCTL ACLKXCTL AHCLKXCTL XTDM XINTCTL XCLKCHK 如果使用外部时钟AHCLKX或ACLKX 那么为了GBLCTL寄存器的正确同步 必须提前提供时钟信号串行器寄存器 SRCTL n 全局寄存器 PFUNC PDIR DITCTL DLBCTL AMUTE 注意只有在前面步骤中时钟和帧设置完后才能对PDIR进行设置 这是因为一旦一个时钟引脚被配置为输出 时钟引脚就开始以时钟控制寄存器所定义的速率输出时钟信号 因此必须确保在将引脚设置为输出前对时钟控制寄存器进行正确配置 这一要求对帧同步信号引脚也同样适用 DIT寄存器 对于DIT模式的操作 要启动寄存器DITCSRA n DITCSRB n DITUDRA n 和DITUDRB n 3 启动高频串行时钟AHCLKX或AHCLKR 即使使用外部高频串行时钟这一步也是必需的通过设置GBLCTL中接收器的RHCLKRST位或发送器的XHCLKRST位分别使内部高频串行时钟分频器退出复位 GBLCTL中所有其他位都保持0在继续进行操作前对GBLCTL进行一次读操作 确保写入的数据成功加载到GBLCTL 4 启动串行时钟ACLKX或ACLKR 如果使用外部串行时钟 可以跳过这一步通过设置GBLCTL中接收器的RCLKRST位或发送器的XCLKRST位 使各自的内部串行时钟分频器退出复位 GBLCTL中所有其他位都保持以前的状态不变 在继续进行操作前对GBLCTL进行一次读操作 确保写入的数据成功加载到GBLCTL 5 启动数据获取如果对McASP使用DMA 那么在McASP退出复位前启动数据获取并在这一步开始DMA操作 如果对McASP使用CPU中断 按要求激活发送或接收中断 如果对McASP使用CPU查询 那么在这一步就不需要进行任何操作 6 激活串行器在开始之前 通过写入XSTAT FFFFh和RSTAT FFFFh分别清除发送和接收状态寄存器通过设置GBLCTL中接收器的RSRCLR位或发送器的XSRCLR位 使各自的串行器退出复位 GBLCTL中所有其他位都保持以前的状态不变在继续进行操作前对GBLCTL进行一次读操作 确保写入的数据成功加载到GBLCTL 7 确保所有的发送缓冲器在工作 8 状态机退出复位通过设置GBLCTL中接收器的RSMRST位或发送器的XSMRST位使状态机退出复位 GBLCTL中所有其他位都保持以前的状态不变在继续进行操作前对GBLCTL进行一次读操作 确保写入的数据成功加载到GBLCTL 9 帧同步信号发生器退出复位通过设置GBLCTL中接收器的RFRST位或发送器的XFRST位使帧同步信号发生器退出复位在继续进行操作前对GBLCTL进行一次读操作 确保写入的数据成功加载到GBLCTL 10 只要接收到第一个帧同步信号 McASP就开始传输数据McASP是跟帧同步信号边沿同步的 而不是跟帧同步信号电平同步的 3 回读GBLCTL的重要性在第1小节中指出要对GBLCTL进行回读操作 直到写入的位被成功写入GBLCTL 这一步操作是很重要的 因为发送器和接收器的状态机分别以各自的位时钟运行 它们一般比DSP芯片内部的总线时钟慢几十到几百倍 因此 在DSP向GBLCTL 或RGBLCTL和XGBLCTL 写数据到McASP真正识别这一写操作之间需要好几个周期 如果跳过这一步 那么McASP可能永远不会知道设置或清除GBLCTL的复位位 最终导致一个未初始化的McASP RGBLCTL和XGBLCTL可以单独改变GBLCTL的发送和接收部分 它们也可以立即反映出更新的值 对于调试很有用 只有GBLCTL可以被用到回读操作中 1 突发传输模式McASP支持突发传输模式 这种模式下帧同步信号的产生不是周期性 而是数据驱动的 主要用于非音频数据的传输 例如在两个DSP芯片间传输控制信息 在突发帧同步信号模式下 帧同步信号延迟可以被指定为0 1或2个串行时钟周期 这是指帧同步信号边沿和单元开始之间的延迟 对于每个被识别的帧同步信号的边沿都有一个单元被移动 这一单元后和下一个帧同步信号前的附加数据块都被忽略对于发送来说 当在内部产生发送用帧同步信号时 帧同步信号是在前一传输结束并且所有的XBUF n 将每个串行器都设置为发送器 都被新数据更新后开始的 对于接收来说 当在内部产生接收用帧同步信号时 帧同步信号是在前一传输结束并且所有的RBUF n 将每个串行器都设置为接收器 都被读出后开始的 9 3 2传输模式 9 3 2传输模式 2 TDM传输模式TDM格式可以用于DSP芯片与一个或多个模 数转换器 ADC 数 模转换器 DAC 之间的数据传输 TDM格式包括三部分 时钟 数据和帧同步信号 在TDM的术语中 单元 通常也被称为 通道 一帧包括多个通道 每一个TDM帧是由帧同步信号来定义的 AFSX或AFSR 数据传输是连续的 因为TDM格式主要用于跟工作在固定采样频率下的数据转换器进行通信 在单元之间没有延迟 系统中发送端和接收端每个单元的位数要一致 因为单元边界不是由帧同步信号决定的 虽然帧同步信号是单元0和一个新帧开始的标志 TDM格式下帧同步信号的延迟位数 一个典型的音频系统中 需要在每个数据转换设备的取样周期内传输一帧数据 为了支持多通道传输 可以让每帧包含更多的单元 以高时钟频率运行 也可以使用附加的数据引脚来传输相同数目的通道 以低时钟频率运行 例如 一个6通道DAC可以设计成图5 16所示用单个串行数据引脚AXR n 进行传输 在这种情况下 串行时钟必须非常快 这样才能在每个帧周期内传输完6个通道 也可以选择将6通道DAC设计成使用三个串行数据引脚AXR 0 1 2 在每个取样周期内每个引脚传输两个通道的数据 在后面这种情况下 如果取样周期相同 那么串行时钟比前一种情况要慢三倍 McASP非常灵活 这两种类型的DAC都支持 3 数字音频接口 DIT 传输模式除适合在同一系统内的芯片之间传输音频数据TDM传输模式和突发传输模式外 McASP的数字音频接口 DIT 传输模式也支持以S PDIF AES 3或IEC 60958格式传输音频数据 这些格式是用来在不同系统之间通过光缆或同轴电缆传送音频数据的 DIT模式仅仅适用于配置为发送器的串行器 对于配置为接收器的串行器不适用 9 3 2传输模式 9 3 3数据发送和接收 1 数据就绪状态和事件 中断的产生 1 发送数据就绪发送数据就绪标志即XSTAT寄存器中的XDATA位反映了XBUF寄存器的状态 当从XRBUF n 缓冲器向XRSR n 移位寄存器传输数据时 XDATA标志位被置位 表示XBUF是空的并准备好接收从DSP来的新数据了 当XDATA位被写入1或者所有被配置为发送器的串行器都被DSP写入数据 标志位就会被清零 在这个例子中 当字A的最后一位 A0 被发送出去时 McASP将XDATA标志位置位 并产生一个AXEVT事件 然而 在AXEVT被激活前还需要5个McASP系统时钟 即AXEVT延迟 紧接在AXEVT之后 DSP开始对McASP服务 向XBUF写入字C DSP服务时间 DSP必须在McASP所要求的建立时间之前向XBUF写入字C 建立时间 发送DMA事件 AXEVT DSP服务时间的计算 假定 器件 300MHz的C672xDSP芯片 McASP以192kHz的帧速率发送I2S格式数据 假定单元大小为32位 McASP系统时钟周期的计算 C672xDSP使用SYSCLK2作为McASP的系统时钟 它以150MHz运行 器件频率的一半 因此 McASP系统时钟周期 1 150MHz 6 7ns ACLKX时钟周期的计算 在这个例子中 每帧有两个32位的单元 每帧共有64位 ACLKX时钟周期是 1 192kHz 64 81 4ns AXEVT事件之间的单元 对于I2S格式 每192kHz个帧McASP产生两个AXEVT事件 因此 AXEVT事件之间的单元是 1 192kHz 2 2604ns AXEVT延迟 5个McASP系统时钟周期 6 7ns 5 33 5ns 建立时间 3个McASP系统时钟周期 4个ACLKX周期 6 7ns 3 81 4ns 4 345 7ns DSP服务时间 单元时间 AXEVT延迟 建立时间 2604ns 33 5ns 345 7ns 2225ns 9 3 3数据发送和接收 2 接收数据就绪接收数据就绪标志即RSTAT寄存器中的RDATA位反映了XBUF寄存器的状态 当从XRSR n 移位寄存器向XRBUF n 缓冲器传输数据时 RDATA标志位被置位 表示RBUF中包含接收的数据并准备好让DSP来读取数据了 当RDATA位被写入1或者所有被配置为接收器的串行器都被读出了 标志位就
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国银行2025日照市秋招结构化面试经典题及参考答案
- 交通银行2025南平市结构化面试15问及话术
- 建设银行2025郑州市秋招笔试性格测试题专练及答案
- 农业银行2025上海市秋招英文面试题库及高分回答
- 2026年行业前瞻性分析报告
- 中国银行2025绍兴市信息科技岗笔试题及答案
- 班组岗前安全培训课件
- 农业银行2025金融科技岗笔试题及答案西藏地区
- 农业银行2025黔东南苗族侗族自治州秋招英文面试题库及高分回答
- 农业银行2025秋招半结构化面试题库及参考答案河南地区
- 2025-2030彩妆产业行业市场现状供需分析及投资评估规划分析研究报告
- 快递客户服务培训
- 馒头店管理制度
- 企业如何通过品牌战略实现增长和扩展
- 中药敷贴课件
- 动物无害化处理场建设项目可行性研究报告建议书
- 2025-2030年中国中高端猪肉市场发展现状及营销策略分析报告
- 全国林业碳汇计量监测技术指南(试行)
- DBJ33T 1289-2022 住宅厨房混合排气道系统应用技术规程
- 低温杜瓦瓶安全操作规程(4篇)
- 2025年中电科太力通信科技限公司招聘高频重点提升(共500题)附带答案详解
评论
0/150
提交评论