已阅读5页,还剩49页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第五章多通道音频串行端口 McASP 5 1McASP简介 McASP MultichannelAudioSerialPort 是一个通用音频串行端口 McASP包括发送和接收部分 它们之间可以同步运行 也可以完全独立地使用各自的主时钟 位时钟和帧同步信号 并且可以使用具有不同位流格式的传输模式 McASP模块包括16个串行器 可以单独激活来进行发送或接收 另外 所有的McASP引脚都可以被配置为通用输入输出 GPIO 引脚 位 字和单元的定义 位 Bit 位是串行数据流中的最小组成部分 每个位的开始和结束都是用一个串行时钟的边沿作为标志 字 Word 字是一组位 它组成了在DSP和外部器件之间传输的数据 单元 Slot 一个单元包括组成字的那些位 有时为了将字填充到对于DSP和外部器件接口来说合适的位数 单元也包括那些用来填充字的附加位 在一个单元内 这些位可以是最高位先进或先出McASP 也可以是最低位 当字的长度小于单元长度时 字可以排列到单元的左边 开始 也可以排在单元的右边 末尾 不属于字的附加位可以用0 1或者字中的一位 一般是MSB或LSB 来填充 MostSignificantBitLeastSignificantBit 单元内位序和字对齐方式 帧定义及帧同步宽度 帧 Frame 一帧可以包括一个或多个单元 这由具体协议确定 McASP结构框图 McASP包括以下引脚 串行数据引脚AXR n 每个McASP达到16个发送时钟AHCLKX McASP的发送高频主时钟ACLKX McASP的发送位时钟发送帧同步信号AFSX接收时钟AHCLKR McASP的接收高频主时钟ACLKR McASP的接收位时钟接收帧同步信号AFSR静音AMUTEIN McASP的静音输入 从外部器件 AMUTE McASP的静音输出 5 2 2寄存器 McASP模块所使用的寄存器如表5 2所示 具体内容请阅读参考文献 3 TMS320C672xDSPMultichannelAudioSerialPort McASP ReferenceGuide SPRU878A pdf 5 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 发送数据 5 2 4串行器 串行器由寄存器SRCTL n 来控制 串行器负责将串行数据移入或移出McASP 每一个串行器包括一个移位寄存器 XRSR 数据缓存器 XRBUF 控制寄存器 SRCTL 接收 数据通过AXR n 引脚移入移位寄存器XRSR 在整个数据单元都被收集到了XRSR之后 接着这些数据就被复制到数据缓存XRBUF中 现在DSP就可以通过RBUF寄存器 接收XRBUF的别名 经格式化单元读取数据了 发送 DSP芯片通过向XBUF寄存器 发送XRBUF的别名 中写入数据 经过发送格式化单元 数据从XRBUF复制到XRSR中 由AXR n 引脚移出 跟串行时钟同步 5 2 5格式化单元 McASP有两个数据格式化单元 一个用作发送 一个用作接收 格式化单元包括三个部分 位屏蔽和填充 屏蔽位 进行符号扩展 旋转 字内对齐数据 位翻转 选择是MSB在前还是LSB在前 5 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引脚的例子 5 3 1McASP启动与初始化 按照下面的步骤来配置McASP 1 通过设置GBLCTL 0复位McASP到缺省值 2 配置除GBLCTL之外的所有McASP寄存器 3 启动高频串行时钟AHCLKX或AHCLKR 即使使用外部高频串行时钟这一步也是必需的 4 启动串行时钟ACLKX或ACLKR 如果使用外部串行时钟 可以跳过这一步 5 启动数据获取 6 激活串行器 7 确保所有的发送缓冲器在工作 8 状态机退出复位 9 帧同步信号发生器退出复位 10 只要接收到第一个帧同步信号 McASP就开始传输数据 1 突发传输模式McASP支持突发传输模式 这种模式下帧同步信号的产生不是周期性 而是数据驱动的 主要用于非音频数据的传输 例如在两个DSP芯片间传输控制信息 在突发帧同步信号模式下 帧同步信号延迟可以被指定为0 1或2个串行时钟周期 这是指帧同步信号边沿和单元开始之间的延迟 5 3 2传输模式 5 3 2传输模式 2 TDM传输模式TDM格式可以用于DSP芯片与一个或多个模 数转换器 ADC 数 模转换器 DAC 之间的数据传输 TDM格式包括三部分 时钟 数据和帧同步信号 在TDM的术语中 单元 通常也被称为 通道 一帧包括多个通道 每一个TDM帧是由帧同步信号来定义的 AFSX或AFSR 数据传输是连续的 因为TDM格式主要用于跟工作在固定采样频率下的数据转换器进行通信 在单元之间没有延迟 3 数字音频接口 DIT 传输模式除适合在同一系统内的芯片之间传输音频数据TDM传输模式和突发传输模式外 McASP的数字音频接口 DIT 传输模式也支持以S PDIF AES 3或IEC 60958格式传输音频数据 这些格式是用来在不同系统之间通过光缆或同轴电缆传送音频数据的 DIT模式仅仅适用于配置为发送器的串行器 对于配置为接收器的串行器不适用 5 3 2传输模式 5 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 建立时间 5 3 3数据发送和接收 2 接收数据就绪接收数据就绪标志即RSTAT寄存器中的RDATA位反映了XBUF寄存器的状态 当从XRSR n 移位寄存器向XRBUF n 缓冲器传输数据时 RDATA标志位被置位 表示RBUF中包含接收的数据并准备好让DSP来读取数据了 当RDATA位被写入1或者所有被配置为接收器的串行器都被读出了 标志位就会被清零 在这个例子中 当接收到字A的最后一位 A0 时 McASP将RDATA标志位置位 并产生一个AREVT事件 然而 在AREVT被激活前还需要5个McASP系统时钟 即AREVT延迟 紧接着AREVT之后 DSP开始对McASP服务 从XBUF读取字A DSP服务时间 DSP必须在McASP所要求的建立时间之前从XBUF读取字A 建立时间 4 使用CPU为McASP服务使用CPU为McASP服务可以通过中断 利用AXINT ARINT中断 或者通过查询XSTAT寄存器中的XDATA位来实现 CPU既可以通过dMAX端口访问也可以通过外围配置总线来访问它 要通过中断使CPU服务于McASP 必须分别将XINTCTL RINTCTL寄存器中的XSTAT RSTAT位使能 从而在数据准备就绪后产生中断AXINT ARINT 5 使用DMA为McASP服务尽管DMA也可以通过外围配置总线来服务于McASP 最佳方案还是通过dMAX端口来使用DMA为McASP服务 使用AXEVT AREVT 它是在XDATA RDATA数据从0变为1时被触发的 5 3 3数据发送和接收 1 发送位流数据对齐McASP发送器支持的串行格式为 单元大小 8 12 16 20 24 28 32位字大小 单元大小对齐 当每个单元中包含的位大于每个字中包含的位时 则左对齐 先将字移位 剩余的位被填充起来 右对齐 先将填充位移位 单元末尾的位由字占据 顺序 位的移出顺序 MSB 先将最高位移出 最后移出最低位 LSB 先将最低位移出 最后移出最高位 发送位流格式寄存器 XFMT 中的可编程选项支持这些串行格式的不同组合 XRVRS 位反转时可置为1 没有位反转时置为0 XROT 右旋位数可以是0 4 8 12 16 20 24或28位XSSZ 发送单元大小可以为8 12 16 20 24 28或32位 5 3 4格式化器 2 接收位流数据对齐McASP接收器支持的串行格式与发生器的格式相同 5 3 4格式化器 5 4McASP应用示例 C6727DSP可以使用McASP接口与其他DSP芯片进行通讯 5 5SPI串行数据接口 SPI是一个同步全双工的串行端口 可以支持3 4或5线传输 16位移位寄存器 5个输入输出引脚 中断 时钟极性和相位选择 接收缓冲仿真别名寄存器 接收缓冲寄存器 在主模式和从模式下 SPI支持的四种选择是 3 引脚选择 时钟 数据输入和输出是基本的SPI接口具有片选功能的4 引脚选择 这一引脚可用来支持在单个SPI总线上连接多个SPI从器件具有使能功能的4 引脚选择 利用这一引脚可以通过加入硬件握手来提高整个吞吐量具有使能和片选功能的5 引脚选择 使用所有的引脚 SPI操作 在3 引脚选项中的主模式下 DSP按照右对齐的方式 将传输数据写到SPIDAT0或SPIDAT1寄存器 这样就开始了一个数据传输 接着由SPIx CLK引脚输出一连串的时钟脉冲来完成整个操作 由SPIx CLK引脚输出的每个时钟脉冲使得SPI主器件和从器件每一位的传输都同时进行 传输之前必须设置字长 字长必须跟SPIx CLK引脚上设置的每次传输时钟脉冲数相匹配 当所有的数据位传输完成后 接收到的数据被复制到SPIBUF寄存器 以备DSP或DMA来读取 另外还会产生中断 SPI操作 3 引脚选择 为了避免跟总线上激活的从器件发生冲突 SPIx SCS引脚被主器件禁止时 还会使输出引脚进入高阻状态 在主模式下 SPIx SCS是一个输出引脚 C672xDSP仅仅支持一个SPIx SCS引脚 因此在主模式下这一引脚的用处是非常有限的 实际应用中 需要利用通用I O引脚来支持多个从器件的片选 SPI操作 带片选的4 引脚选项 握手操作按下列步骤进行 某一传输结束后 SPI主从模块需要等待传输结束后从SPI模块禁止SPIx ENA 标志着它需要等待 还没有准备好从模块通过从SPIBUF读接收数据来开始维护它的SPI然后 从器件向SPIDAT0或SPIDAT1写传输数据 这样就会使得从SPI激活SPIx ENA 标志着已经准备好进行下面的传输了同时 主器件可以随时维护它的SPI 为了避免从器件超载 在向它的SPIDAT0或SPIDAT1寄存器写之前不需要插入一个延迟 相反的 主SPI模块会自动延迟下一个传输 直到从模块再次激活SPIx ENA来指出已经准备好进行传输了 这个握手信号允许两个SPI以最大的可能速率进行通信 没有握手信号 主模块必须在每个传输之间插入一个足够长的延迟 来满足从模块维护它的SPI的最长响应时间 利用握手引脚 吞吐量由两个器件SPI端口的平均响应时间来决定 SPI操作 具有使能功能的4 引脚选项 5 引脚模式是两种4 引脚模式的扩展集 SPI操作 5 引脚选项 SPI模块支持多种数据格式选项 搬移方向 MSB或LSB开始字符长度 2到16位 SPI在发送和接收缓冲器中的数据排列 SPI时钟模式 SPI时钟模式 SPI数据传输示例 在两个器件之间 使用5位传输字符长度进行的一个SPI数据传输示意图 SPI主模式时序选项 主模式下的SPI支持多种选项来改变它产生片选信号 SPIx SCS 的时序 这样SPI就能够通过自动产生适当的延迟来支持各种不同从器件的时序要求 从而不会给DSP增加额外的开销 1 片选建立时间可以通过设定主器件 来为从器件在SPIx CLK的第一个边沿到来之前提供一定的片选建立时间 这个延迟可以设定为2到33个SYSCLK2周期 2 片选保持时间也可以通过设定主器件 来为从器件在SPIx CLK最后一个边沿之后提供一定的片选保持时间 这个延迟可以设定为1到32个SYSCLK2周期 3 传输间的自动延迟SPI主模块在某一传输之后可以自动加入2到65个SYSCLK2周期的延迟 在延迟结束之前不会开始新的传输 4 SPI片选延迟选项在几个连续的数据传输期间从器件必须是选定的 从而要求片选信号保持连续有效 而其他的从器件要求在连续的数据传输之间片选信号无效 SPI作为通用I O引脚SPI的每一个引脚都可以通过SPI引脚控制寄存器来编程设定为通用I O引脚 只要SPI的某一引脚未被用于选定的SPI总线协议 那么就应该通过将寄存器中的对应位设置为 0 来将这个不用的引脚编程为通用输入引脚或通用输出引脚 中断SPI模块产生两个级别的中断向量 这些中断连同来自I2C和其他SPI模块的中断被组合到一个中断请求里面 来产生C672xDSP的INT14 DMA接口SPI支持一个DMA接口来发送和接收数据传输 强烈建议利用SPIDMA接口进行数据传输 并限制使用中断来进行检错 因为在两个SPI模块和两个I2C模块中共用同一个中断请求 5 6I2C串行数据接口 I2C模块提供了一个在DSP芯片和I2C总线器件之间的接口 具有下列性能 支持字节格式的传输 7位和10位的寻址模式 支持多个主 发送器和从 接收器 支持多个从 发送器和主 接收器 组合的主发送 接收和接收 发送模式 仅在7位寻址模式中 数据传输速率从10kbps一直到400kbps Philips快速模式速率 I2C模块结构 I2C模块包括下列的基本部分 串行接口 一个数据引脚 SDA 和一个时钟引脚 SCL 数据寄存器 用来临时保存在SDA引脚和CPU或DMA控制器之间流通的接收数据和发送数据控制和状态寄存器一个外围数据总线接口 用来使能CPU和dMAX控制器来访问I2C模块寄存器一个时钟同步器 用来将I2C输入时钟 来自DSP时钟产生器的SYSCLK2 和SCL引脚上的时钟同步 以及用来将数据传输跟具有不同时钟速度的主机同步一个预定标器 用来将驱动到I2C模块的输入时钟 SYSCLK2 分频一个仲裁器 用来处理I2C模块 在它是主机时 和其他主机之间的仲裁的中断产生逻辑 向CPU发送中断 I2C操作模式 若I2C模块为主模块 那么开始它一般作为主发送器向某一从模块发送一个地址 在将数据发给从模块时 I2C模块必须保持为一个主发送器 为了从一个从模块接收数据 必须将I2C模块变换成主接收器模式 若I2C模块为从模块 那么开始它一般作为从接收器 并且在它识别出主模块发来的从地址时发出确认信息 如果主模块要向I2C模块发送数据 这时I2C模块必须保持为一个从接收器 如果主发送器向I2C模块发出数据请求 I2C模块必须要变换成从发送器模式 I2C开始和停止状态 START状态定义为当SCL为高时 SDA线上从高到低的转变 主模块驱动这一状态是用来指示出数据传输的开始 STOP状态定义为当SCL为高时 SDA线上从低到高的转变 主模块驱动这一状态是用来指示出数据传输的结束 I2C串行数据格式 I2C模块支持1到8位的数据长度 下图中给出的是8位数据格式 SDA线上的每一位等同于SCL线上的一个脉冲 并且数据传输时一般是以最高有效位 MSB 开始 可以发送或接收的数据长度是没有限制的 但是发送器和接收器传输的数据长度必须一致 I2C模块支持下列数据格式 7位寻址模式10位寻址模式自由数据格式模式 I2C7位寻址格式 在7位寻址格式中 开始状态后的第一个字节由一个7位的从地址和紧跟着的一个R W位组成 R W位决定着数据的方向 R W 0 主模块向寻址的从模块写 发送 数据R W 1 主模块从从模块读 接收 数据在R W后面插入了一个专门用来确认的 ACK 附加时钟周期 如果是从模块插入ACK位 后面紧跟着来自发送机 主或从 由R W位决定 的n位数据 n是一个2到8之间的数 接收机是在传输的数据位后面插入一个ACK位 I2C10位寻址格式 10位寻址格式跟7位寻址
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 精神病医院奖惩制度及细则
- 初中生如何设置奖惩制度
- 产后产后腰痛缓解
- 人工气管患者的舒适护理
- 2026年平顶山工业职业技术学院单招综合素质考试题库带答案详解(模拟题)
- 2026年山西警官职业学院单招职业适应性考试题库含答案详解(完整版)
- 2026年广西交通职业技术学院单招职业倾向性测试题库带答案详解(综合卷)
- 2026年广东省佛山市单招职业倾向性考试题库带答案详解(a卷)
- 2025年监管科技的合规风险评估模型
- 2026年广西培贤国际职业学院单招职业倾向性测试题库及答案详解(夺冠系列)
- 山东高考英语语法单选题100道及答案
- 职业道德与法治知识点总结中职高教版
- 2025年绿色低碳先进技术示范工程实施方案-概述及范文模板
- 2025上半年广西现代物流集团社会招聘校园招聘149人笔试参考题库附带答案详解
- 事故后企业如何进行危机公关与赔偿管理
- 2025年春新人教PEP版英语三年级下册全册教案
- OptixOSN3500智能光传输设备业务配置手册
- 【浙科综合实践】四上第四课项目一、美味的中秋月饼
- 深圳大学《算法设计与分析》2021-2022学年期末试卷
- 西泠印社三年级下册书法教案
- 大客户经理招聘笔试题及解答
评论
0/150
提交评论