
多通道缓冲串口(McBSP) .ppt
35页第9章 多通道缓冲串口(McBSP),概述,McBSP接口信号和控制寄存器,数据发送和接收,McBSP的标准操作,µ-律/A-律压扩硬件操作,SPI协议:CLKSTP,McBSP引脚作为通用I/O,McBSP应用实例,9.1 概述,TMS320C6000的多通道缓冲串口(Multichannel Buffered Serial Port,McBSP)是在C2x、C3x、C5x以及C54x串口的基础上发展的,它具有如下功能:(1)全双工通信;(2)允许连续的数据流的双缓冲数据寄存器;(3)收发独立的帧信号和定时信号(4)与工业标准的编/解码器﹑模拟接口芯片(AICs)以及其他串行A/D﹑D/A转换设备接口连接;(5)数据传输可利用外部时钟或者内部可编程时钟;(6)支持以下方式的直接接口:T1/E1帧方式MVIP兼容的交换方式和ST-BUS兼容设备,包括:MVIP帧方式、H.100帧方式和SCSA帧方式IOM-2兼容设备AC97兼容设备IIS兼容设备SPI设备,9.1 概述,(7)可与多达128个通道进行多通道收发;(8)支持传输的数据字长可以是8﹑12﹑16﹑20﹑24和32位;(9)内置的µ-律和A-律压扩;(10)对8位数据的传输,可以选择LSB先或者MSB先传;(11)可编程设置帧同步信号和数据时钟信号的极性;(12)高度可编程的内部传输时钟和帧同步信号。
9.2 McBSP接口信号和控制寄存器,多通道缓冲串口可以分为由连接外部设备的数据通道和控制通道,原理框图如图9-1所示通过DR和DX引脚进行数据的接收和发送,其他的4个引脚提供控制信号(时钟和帧同步)接口设备通过可由片内外设总线访问的32位控制寄存器实现与McBSP的通信9.2 McBSP接口信号和控制寄存器,表9-1给出了相关的接口引脚信号9.2 McBSP接口信号和控制寄存器,通过使用串口控制寄存器(SPCR)和引脚控制寄存器(PCR)来配置串口McBSP的控制寄存器及存储映射地址如表9-2所示McBSP控制寄存器只能通过外设总线来访问用户应该在改变串口控制寄存器(SPCR),引脚控制寄存器(PCR),接收控制寄存器(RCR)和发送控制寄存器(XCR)之前暂停McBSP,否则会导致不确定状态9.3 数据发送和接收,9.3.1 串口的复位McBSP有两种复位的方式:芯片复位使接收器和发送器以及采样率发生器处于复位状态,当芯片复位被清除时,FRST=GRST=RRST=XRST=0,整个串口处于复位状态;通过设置串口控制寄存器SPCR中的XRST和RRST位,分别复位McBSP, SPCR中的GRST复位采样率发生器。
9.3.2 时钟和帧的配置,McBSP的时钟和帧同步信号的一个典型时序如图9-2所示时钟CLKR和CLKX分别定义了数据的接收和发送各位之间的边界,帧同步信号FSR和FSX则定义了一个数据单元传输的开始9.3.2 时钟和帧的配置,1.帧和时钟操作接收器和发送器使用相同时钟系统,CLKRP=CLKXP接收器和发送器使用相反的边沿,以此确保有效的数据建立和数据保持时间图9-3说明了使用上升沿时钟的外部串行设备提供时钟的数据被McBSP接收器使用相同时钟的下降沿采样9.3.2 时钟和帧的配置,2.采样率发生器和帧采样率发生器由三级分频器组成,提供一个可编程的数据时钟(CLKG)和帧信号(FSG)图9-4为采样发生器的原理图CLKG和FSG是McBSP内部信号,通过编程驱动接收或者发送时钟CLK(R/X)和帧FS(R/X)9.3.2 时钟和帧的配置,3.数据时钟产生当接收/发送时钟模式设置为1时,数据时钟CLK(R/X)被内部采样率发生器输出时钟驱动可以从如下各种数据位块中选择接收器和发送器所需的数据:输入时钟到采样率发生器,可以使用内部时钟源或者专用的外部时钟源TMS320C620x/C670x DSP使用CPU时钟作为采样率发生器的内部时钟源。
TMS320C621x/C671x DSP使用CPU时钟的1/2作为内部时钟源TMS320C64x DSP使用CPU时钟的1/4作为内部时钟源;采样率发生器的输入时钟源可由可编程设置的值进行分频驱动CLKG无论采用何种采样率发生器的源,都可在CLKSRG的上升沿产生CLKG和FSG9.3.2 时钟和帧的配置,4.帧同步产生数据帧同步可以独立的为接收器和发送器以及所有数据延迟值编程假设SRGR的FSGM=1,则当SPCR的FRST位设置为1时,激活帧产生逻辑,从而产生帧同步信号帧同步编程选项如下:具有同步脉冲之间可编程周期的帧脉冲和在采样率发生器(SRGR)中指定的可编程有效宽度;发生器可以触发本身的帧同步信号,该信号由DSR到XSR复制产生,这将在DXR到XSR的复制时产生帧同步,数据延迟能够按照要求编程,但是最大的数据包率不能以这种方式实现;接收器和发送器可以独立地在FSR和FSX引脚上选择一个外部帧同步9.3.2 时钟和帧的配置,5.数据和帧(1)帧同步相位帧同步表示McBSP传输的开始帧同步引导的数据流最多有相位1(phase1)和相位2(phase2)两个相位可以在RCR和XCR寄存器的(R/X)PHASE位设置相位数。
每帧各相位的单元数和每单元的位数则通过(R/X)FRLEN1/2和(R/X)WDLEN1/2设置图9-5为双相位帧的实例,相位1包含两个数据单元,每个单元包含12位,其后的相位2包含三个数据单元,每个单元包含8个位9.3.2 时钟和帧的配置,表9-3列出了控制接收/发送每个相位的帧长和数据单元长度的寄存器的字段单帧中每帧的最大数据单元个数为128,双帧则是256每个数据单元的字长可以是8﹑12﹑16﹑20﹑24或者329.3.2 时钟和帧的配置,(2)帧长度表9-4为接收/发送帧长度配置,(R/X)CR中的(R/X)FRLEN1/2字段宽度为7,它支持的每帧中的数据单元个数最多为128R/X)PHASE=0选择单相数据帧,(R/X)PHASE=1选择双相帧对于单相帧,(R/X)FRLEN2的值没有意义W代表每帧的数据单元数,帧长度字段应该编程设为(W-1)R/X)FRLEN1=1或0000001b,(R/X)FRLEN2=2或0000010b9.3.2 时钟和帧的配置,(3)数据单元长度接收/发送控制寄存器中的(R/X)WDLEN1/2字段决定了接收器和发送器每帧的各相位数据单元的字长。
图9-6中,(R/X)WDLEN1=001b,(R/X)WDLEN2=000b对于(R/X)PHASE=0,表示单相帧,(R/X)WDLEN2的值无意义4)使用帧长度和数据单元长度的数据打包利用帧长度和数据单元长度可以有效地对数据进行打包图9-6所示为4个8位数据单元的单相帧,考虑到单相帧传输4个8位数据单元,有如下情况:(R/X)PHASE=0,表示单相帧;(R/X)FRLEN1=0000011b,表示每帧4个数据单元;(R/X)WDLEN1=000b,表示数据单元长度为8位9.3.2 时钟和帧的配置,该实例也可以看做一个32位数据单元的单相位帧数据流,图9-7所示为一个包含32位数据单元的单相帧的数据流R/X)PHASE=0,表示单相帧;(R/X)FRLEN1=0b,表示每帧有一个数据单元;(R/X)WDLEN1=101b,表示数据单元长度为32位9.3.2 时钟和帧的配置,(5)数据延迟帧同步有效后的第一个时钟周期定义了帧的开始如果需要,实际数据的收/发的起始时刻可以相对于帧信号的起始存在延迟,这称为数据延迟该延迟由接收/发送控制寄存器的RDATDLY和XDATDLY位分别设置,范围从0~2个时钟((R/X)DATDLY=00b~10b),图9-8所示为数据延迟时序,由于数据经常在一个周期的有效帧同步脉冲后,所以通常选择1位的延迟。
9.3.2 时钟和帧的配置,该设置使串口可以与多种T1帧方式的设备接口,对于此类设备,每帧数据流由1位帧标志位引导在2位数据延迟的数据流接收中,帧标志位出现在1位数据延迟后,数据出现在2位数据延迟后该串口自动地丢弃数据流中的帧标志,图9-9所示为用于丢弃帧标志位的2位数据延迟时序9.4 McBSP的标准操作,在串行传输期间,串口的各个寄存器设置为需要的值后就可以进行收发操作了下面讨论的标准McBSP串口传输操作中,假设串口采用如下设置:(R/X)PHASE=0,指定单相帧;(R/X)FRLEN1=0b,每帧一个数据单元;(R/X)WDLEN1=000b,每个数据单元字长8位;(R/X)FRLEN2和(R/X)WDLEN2字段无效,可为任意值;CLK(R/X)P=0,时钟下降沿接收数据,上升沿发送数据;FS(R/X)P=0,帧同步信号高有效;(R/X)DATDLY=01b,1位数据延迟9.4.1 数据接收,串行接收时序如图9-10所示一旦接收帧同步信号(FSR)有效,其有效状态在一个接收时钟的下降沿被检测,然后DR引脚上的数据经过相应数据延迟后,移位进入到接收移位寄存器(RSR)9.4.2 数据发送,在每个数据单元发送的结束,CLRK时钟上升沿处,如果DXR中新的数据已经准备就绪,DXR中的数据会被复制到XSR。
DXR到XSR数据复制操作完成后,在下一个CLKX下降沿处激活XRDY位,表示可以将新的待发送的数据写入发送数据寄存器DXRCPU或DMA控制器写入数据后,XRDY变为无效数据发送操作时序如图9-11所示9.4.3 最高帧频率,帧频率可以由以下等式计算,并且可以计算帧同步信号之间的周期:减少帧同步信号之间的位时钟数将增加帧频率随着发送帧频率的增加,相邻数据帧之间的空闲时间间隔将减小到0此时帧同步脉冲之间的最小时间就是每帧传输的位数,这就定义了最大帧频率:,,,9.4.3 最高帧频率,图9-12所示说明了最大帧频率的McBSP操作相邻帧传输的数据位是连续的,位与位之间没有空闲间隔如果设置了1位的数据延迟,帧同步脉冲将和前一帧数据的最后1位重叠在一起9.5 µ-律/A-律压扩硬件操作,使用压扩时,发送数据将按照指定的压扩律进行编码,接收的数据解码为补码格式设置(R/X)CR的(R/X)COMPAND位,使能压扩的同时选择所需的格式图9-13所示为压扩流框图,数据在从DXR复制到XSR的过程中被压缩,从RBR到DRR时被扩展9.5 µ-律/A-律压扩硬件操作,被压缩的数据应该是16位的,左对齐的数据,有效值是13位或14位的,这取决于采用的压扩方式。
如图9-14所示为压扩数据的格式16位数据在DXR中的排列方式如图9-15所示9.5 µ-律/A-律压扩硬件操作,图9-16所示为McBSP硬件对片内数据进行压扩的两种实现方法,分别由DLB和non-DLB两条路径表示:non-DLB:当串口的发送/接收部分均被复位时,DRR和DXR通过压扩模块在内部相连DXR中的数据按照XCOMPAND指定的方式进行压缩,按照RCOMPAND指定的方式扩展数据写入DXR 4个CPU时钟后,DRR中出现新的有效数据RRDY和XRDY位不受影响该方法的优点是速度高,缺点是不会产生同步信号送往CPU和DMA/EDMA控制器,对数据流进行控制DLB:McBSP被设置为数字反馈环路(DLB)模式,RCOMPAND和XCOMPAND位使能相应的压扩方式CPU或DMA控制器利用发送/接收中断(XINT/RINT)或同步事件(REVT/XEVR)进行同步这种方式下,压扩操作的时间取决于选择的串行比特率9.6 SPI协议:CLKSTP,当McBSP为主设备时,从设备使能来自主设备发送帧同步脉冲(FSX)以McBSP作为主设备和作为从设备的实例如图9-17和图9-18所示。












