资源描述
第八章 多通道缓冲串口(McBSP),第八章 多通道缓冲串口(McBSP),第八章 多通道缓冲串口(McBSP),8,.1 信号接口,8,.2,控制寄存器,8.3 时钟和帧同步信号,8,.4 标准模式传输操作,8,.7 SPI接口,第八章 多通道缓冲串口(McBSP)8.1 信号接口,8.1 信号接口,McBSP,是,多通道缓冲串口(Multi-channel Buffered Serial Port),RSR-数据接收移位寄存器,RBR-数据接收缓冲寄存器,DRR-数据接收寄存器,DXR-数据发送寄存器,XSR-数据发送移位寄存器,8.1 信号接口McBSP是多通道缓冲串口(Multi-ch,8.1 信号接口,CPU或EDMA控制器向数据发送寄存器(DXR)写入待发送的数据,从数据接收寄存器(DRR)读取接收到的数据。,McBSP的接收操作采取3级缓存方式,数据到达DR管脚后移位进入RSR。一旦整个数据单元(8位、12位、16位、20位、24位或32位)接收完毕,若RBR寄存器为空,则RSR将数据复制到RBR中。如果DRR中旧的数据已经被CPU或EDMA控制器读走,则RBR进一步将新的数据复制到DRR中。,发送操作采取2级缓存方式,发送数据首先由CPU或EDMA控制器写入DXR。如果XSR寄存器为空,则DXR中的值被复制到XSR准备移位输出;否则,DXR会等待XSR中旧数据的最后1位被移位输出到DX管脚后,才将数据复制到XSR中。,这种多级缓冲结构使片内的数据读写和外部的数据通信可以同时进行。,EDMA事件的触发,PaRAM的设置,8.1 信号接口CPU或EDMA控制器向数据发送寄存器(DX,McBSP 术语,位(Bit):位是串行数据流中的最小组成部分。每个位的开始和结束都是用一个串行时钟的边沿作为标志。,字(Word):字是一组位,它组成了在DSP和外部器件之间传输的数据。,单元(Slot):一个单元包括组成字的那些位。有时为了将字填充到对于DSP和外部器件接口来说合适的位数,单元也包括那些用来填充字的附加位。,帧(,Frame,):一帧可以包括一个或多个单元,这由具体协议确定,McBSP 术语 位(Bit):位是串行数据流中的最小组成部,8.2 控制寄存器,8.2 控制寄存器,串口控制寄存器(SPCR),8.2 控制寄存器,串口控制寄存器(SPCR)8.2 控制寄存器,8.2 控制寄存器,接收控制寄存器(RCR),发送控制寄存器(XCR),8.2 控制寄存器接收控制寄存器(RCR)发送控制寄存器(X,8.2 控制寄存器,采样率发生器寄存器(SRGR),管脚控制寄存器(PCR),8.2 控制寄存器采样率发生器寄存器(SRGR)管脚控制寄存,8.3 时钟和帧同步信号,时钟CLKR/CLKX是接收发送串行数据流的同步时钟,帧同步信号FSR和FSX则定义了一批数据传输的开始。McBSP的数据时钟以及帧同步信号可以设置的参数包括:,FSR、FSX、CLKX和CLKR的极性,选择单相帧或二相帧,定义每相中数据单元的个数,定义每相中个数据单元的位数,帧同步信号是否触发开始新的串行数据流,帧同步信号与第个数据位之间的延迟,可以是0位、1位或2位延迟,接收数据的左右调整,进行符号扩展或是填充0,8.3 时钟和帧同步信号时钟CLKR/CLKX是接收发送串,1.采样率发生器,CLKG频率=输入时钟的频率(CLKGDV+1),FPER和FWID位分别控制帧脉冲的周期和脉冲宽度,1.采样率发生器CLKG频率=输入时钟的频率(CLK,2.帧同步和时钟信号的有效逻辑/边沿,可以通过PCR寄存器的FS(R/X)M位设置帧同步脉冲由内部采样率发生器输出或是由外部输入;,通过PCR中的CLK(R/X)M位选择收发时钟信号是外部输入还是输出。,2.帧同步和时钟信号的有效逻辑/边沿可以通过PCR寄存器,3.帧同步信号,帧同步有效表示1帧串行数据传输的开始,帧可以包括2个相位,相位中的数据单元个数定义为,(R/X)FRLEN(1/2)+1,数据单元的位数如表所示,例子中参数设置为,(R/X)FRLEN1=0000001b,(R/X)FRLEN2=0000010b,(R/X)WDLEN1=001b,(R/X)WDLEN2=000b,双相帧(Dual-Phase Frame)的例子,3.帧同步信号帧同步有效表示1帧串行数据传输的开始 双相帧,3.帧同步信号,4个8位数据单元的单相帧传输例子:,(R/X)PHASE=0,表示单相帧,(R/X)FRLEN1=0000011b,表示每帧4个数据单元,(R/X)WDLEN1=000b,表示数据字长8位,1个32位数据单元的单相帧传输例子:,(R/X)PHASE0,表示单相帧,(R/X)FRLEN10b,表示每帧中含1个数据单元,(R/X)WDLEN1=101b,表示数据单元字长32 位,3.帧同步信号4个8位数据单元的单相帧传输例子:,4.数据延迟,收/发控制寄存器中的RDATDLY位和XDATDLY位可分别设置接收和发送的数据延迟,延迟范围可以是02个传输时钟周期,一般是在其后的第1个时钟周期启动该帧的数据传输,4.数据延迟收/发控制寄存器中的RDATDLY位和XDAT,8.4 标准模式传输操作,下面的讨论中,假设串口的设置为:,(R/X)PHASE0,单相帧,(R/X)FRLEN10b,每帧一个数据单元,(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位数据延迟,8.4 标准模式传输操作下面的讨论中,假设串口的设置为:,数据的接收,(FSR)有效后,,DR,管脚上的数据在经过一定的数据延迟后依次移位进入(RSR)。若RBR为空,则在每个数据单元接收的末尾,CLRK时钟上升沿处,RSR中的内容会被复制到RBR中。这一个复制操作会在下一个时钟下降沿处触发状态位RRDY置1,标志接收数据寄存器(DRR)已准备好,CPU或DMA控制器可以读取数据。当数据被读走后,RRDY自动变无效。,数据的接收(FSR)有效后,DR管脚上的数据在经过一定的数据,数据的发送,(FSX)有效后,(XSR)中的数据经过一定的数据延迟,开始依次移位输出到,DX,管脚上。在每个数据单元发送的末尾,CLRK时钟上升沿处,如果DXR中已经准备好新的数据,DXR中的新数据会自动复制到XSR中。DXR-XSR复制操作会在下一个CLKX下降沿处激活XRDY位,表示可以向发送数据寄存器(DXR)写入新的数据。CPU或DMA控制器写入数据后,XRDY变为无效。,数据的发送(FSX)有效后,(XSR)中的数据经过一定的数据,帧信号的最高频率,帧频率=传输时钟频率帧同步信号之间的传输时钟周期数,最大帧频率=传输时钟频率每帧数据的位数,帧信号的最高频率帧频率=传输时钟频率帧同步信号之间的传输时,忽略帧同步的传输,(R/X)FIG=0时数据单元B被多余的帧同步信号中断的例子,(R/X)FIG=1时McSBP忽略多余的帧同步信号的操作,忽略帧同步的传输(R/X)FIG=0时数据单元B被多余的帧,忽略帧同步的传输,利用(R/X)FIG位设置,进行数据打包(Data Packing),忽略帧同步的传输利用(R/X)FIG位设置,进行数据打包(,多通道传输接口,1帧串行数据流也可看成是1组时分复用的数据传输通道,“,数据单元,”就等同于“,数据通道,”,(a)XMCM=00b,多通道操作被禁止。发送的4个数据单元都经过了“写入DXR”,和“DXR-XSR拷贝”阶段,最后出现在DX管脚上,多通道传输接口1帧串行数据流也可看成是1组时分复用的数据传输,多通道传输接口,(b)XMCM=01b,使能多通道工作模式。首先禁止并屏蔽所有数据单元的发送输出。XPABLK选择A组子帧中的0号子帧,然后由XCER使能该子帧中的第1、3号数据通道进行发送。只有被选择并使能的通道,其对应数据(E1,E3)才会进行DXR-XSR拷贝,并出现在DX管脚上,多通道传输接口(b)XMCM=01b,使能多通道工作模式,多通道传输接口,(c)XMCM=10b,使能多通道工作模式。所有的通道都被使能发送数据,因此可以看到E0E3都完成了“写入DXR”“DXR-XSR拷贝”操作,但是只有XPABLK和XCER位选择的通道的数据(E1和E3)才会真正出现在DX管脚上,其余通道数据的输出均被屏蔽,多通道传输接口(c)XMCM=10b,使能多通道工作模式,多通道传输接口,(d)XMCM=11b,使能多通道工作模式。首先禁止并屏蔽所有数据单元的发送输出,进入对称收发模式。对称收发模式是指设备的收发操作在同一个子帧位置执行。此时由RPABLK统一选择发送和接收需要的子帧,XPABLK字段的设置值不再有效,多通道传输接口(d)XMCM=11b,使能多通道工作模式,8.7 SPI 接口,串行协议接口(Series Protocol Interface)定义了主/从两种模式,包括4根信号线,串行数据输入(MISO,主设备输入或从设备输出),串行数据输出(MOSI,主设备输出或从设备输入),移位时钟(SCK),从设备使能(SS),SPI接口的最大特点是由主设备时钟信号的出现与否界定主/从设备间的通信,McBSP的数据同步时钟具有停止控制选项,因此可以与SPI协议兼容,8.7 SPI 接口串行协议接口(Series Protoc,SPI 接口时钟工作模式,CLKSTP=10b时的SPI传输,CLKSTP=11b时的SPI传输,SPI 接口时钟工作模式 CLKSTP=10b时的SPI传输,CLKSTP=10,CLKXP=0,CLKSTP=10,CLKXP=0,CLKSTP=10,CLKXP=1,CLKSTP=10,CLKXP=1,CLKSTP=11,CLKXP=0,CLKSTP=11,CLKXP=0,CLKSTP=11,CLKXP=1,CLKSTP=11,CLKXP=1,CLKGDV=250,时钟周期=40ns*250=10us,(CPU/2)=25MHz,CLKGDV=250,时钟周期=40ns*250=10us,,McBSP作为SPI主控端(Master),由于McBSP产生CLKX和FSX信号输出,因此需设置CLKXM=FSXM=1。此外,还需要设置SRGR寄存器中的FSMG=0,即每次进行DXR到XSR的拷贝操作时要产生FSX信号,McBSP作为SPI主控端(Master)由于McBSP产生,McBSP作为SPI从属端(Slave),当McBSP作为SPI从设备时,由外部主设备产生接口时钟和从设备使能信号。McBSP的CLKX管脚和FSX管脚配置为输入管脚(CLKXM=FSXM0)。输入串口的CLKX和FSX同时也作为McBSP接收端的CLKR信号和FSR信号。在进行数据传输之前,外部主设备必须先置FSX信号有效(低电平),McBSP作为SPI从属端(Slave)当McBSP作为S,McBSP 作为通用I/O口,在下列2种情况下,串口的管脚(CLKX、FSX、DX、CLKR、FSR、DR以及CLKS)可以用做通用I/O:,SPCR寄存器中(R/X)RST=0,接收端或发送端处于复位状态,PCR寄存器中(R/X)IOEN=1,串口设置为通用I/O模式,McBSP 作为通用I/O口 在下列2种情况下,串口的管脚(,
展开阅读全文