多通道缓冲串口 DSP 多通道缓冲串口 第八章 多通道缓冲串口(McBSP) DSP 多通道缓冲串口 第八章 多通道缓冲串口(McBSP)8.1 信号接口 8.2 掌握寄存器 8.3 时钟和帧同步信号8.4 标准模式传输操作 8.7 SPI接口 DSP 多通道缓冲串口 8.1 信号接口McBSP是多通道缓冲串口(Multi-channel Buffered Serial Port)引脚CLKR CLKX CLKS DR DX FSR 输入输出状态I/O/Z I/O/Z I I O/Z I/O/Z 说明接收时钟 发送时钟 外部时钟 接收串行数据 发送串行数据 接收帧同步 FSX I/O/Z 发送帧同步 RSR---数据接收移位寄存器 RBR---数据接收缓冲寄存器 DRR---数据接收寄存器 DXR---数据发送寄存器 XSR---数据发送移位寄存器 DSP 多通道缓冲串口 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的设置 DSP 多通道缓冲串口 McBSP 术语 位(Bit):位是串行数据流中的最小组成部分每个位的开头和结束都是用 一个串行时钟的边沿作为标志 字(Word):字是一组位,它组成了在DSP和外部器件之间传输的数据 单元(Slot):一个单元包括组成字的那些位有时为了将字填充到对于DSP 和外部器件接口来说合适的位数,单元也包括那些用来填充字的附加位 帧(Frame):一帧可以包括一个或多个单元,这由详细协议确定 DSP 多通道缓冲串口 8.2 掌握寄存器缩写 McBSP寄存器名 RSRRBR DRR XSR DXR SPCR RCR XCR 接收移位寄存器接收缓冲寄存器 数据接收寄存器 发送移位寄存器 数据发送寄存器 串口掌握寄存器 接收掌握寄存器 发送掌握寄存器 SRGRPCR MCR RCER XCER 采样率发生器寄存器管脚掌握寄存器 多通道掌握寄存器 接收通道使能寄存器 发送通道使能寄存器 DSP 多通道缓冲串口 8.2 掌握寄存器 串口掌握寄存器(SPCR) DSP 多通道缓冲串口 8.2 掌握寄存器 接收掌握寄存器(RCR) 发送掌握寄存器(XCR) DSP 多通道缓冲串口 8.2 掌握寄存器 采样率发生器寄存器(SRGR) 管脚掌握寄存器(PCR) DSP 多通道缓冲串口 8.3 时钟和帧同步信号时钟CLKR/CLKX是接收/发送串行数据流的同步时钟,帧同步信号FSR和FSX则定义了一 批数据传输的开头。
McBSP的数据时钟以及帧同步信号可以设置的参数包括: FSR、FSX、CLKX和CLKR的极性 选择单相帧 或二相帧 定义每相中数据单元的个数 定义每相中1个数据单元的位数 帧同步信号是否触发开头新的串行数据流 帧同步信号与第1个数据位之间的延迟,可以是0位、1位或2位延迟 接收数据的左右调整,进行符号扩展或是填充0 DSP 多通道缓冲串口 1. 采样率发生器 CLKG频率 = 输入时钟的频率/(CLKGDV+1) FPER和FWID位分别掌握帧脉冲的周期和脉冲宽度 DSP 多通道缓冲串口 2. 帧同步和时钟信号的有效规律/边沿 可以通过PCR寄存器的FS(R/X)M位设置帧同步脉 冲由内部采样率发生器输出或是由外部输入; 通过PCR中的CLK(R/X)M位选择收发时钟信号是 外部输入还是输出 DSP 多通道缓冲串口 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 (R/X)WDLEN(1/2) 000 001 010 011 数据单元的字长(位) 8 12 16 20 100101 其他 2432 保留 双相帧(Dual-Phase Frame)的例子 DSP 多通道缓冲串口 3. 帧同步信号4个8位数据单元的单相帧传输例子: (R/X)PHASE=0,表示单相帧 (R/X)FRLEN1=0000011b,表示每帧4个 数据单元 (R/X)WDLEN1=000b,表示数据字长8位 1个32位数据单元的单相帧传输例子: (R/X)PHASE=0,表示单相帧 (R/X)FRLEN1=0b,表示每帧中含1个数 据单元 (R/X)WDLEN1=101b,表示数据单元字 长32 位 DSP 多通道缓冲串口 4. 数据延迟收/发掌握寄存器中的RDATDLY位和XDATDLY位可分别设 置接收和发送的数据延迟,延迟范围可以是0~2个传输时钟 周期,一般是在其后的第1个时钟周期启动该帧的数据传输 DSP 多通道缓冲串口 8.4 标准模式传输操作下面的争论中,假设串口的设置为: (R/X) (R/X) (R/X) (R/X) PHASE=0,单相帧 FRLEN1=0b,每帧一个数据单元 WDLEN1=000b,数据单元字长8位 FRLEN2和(R/X) WDLEN2字段无效,可以设为任意值 CLK(R/X)P=0,时钟下降沿处接收数据,上升沿处发送数 FS(R/X)P=0,帧同步信号高有效 (R/X)DATDLY=01b,1位数据延迟 DSP 多通道缓冲串口 数据的接收(FSR)有效后,DR管脚上的数据在经过肯定的数据延迟后依次移 位进入(RSR)。
若RBR为空,则在每个数据单元接收的末尾, CLRK时钟上升沿处,RSR中的内容会被复制到RBR中这一个 复制操作会在下一个时钟下降沿处触发状态位RRDY置1,标志 接收数据寄存器(DRR)已预备好,CPU或DMA掌握器可以读取 数据当数据被读走后,RRDY自动变无效 DSP 多通道缓冲串口 数据的发送(FSX)有效后,(XSR)中的数据经过肯定的数据延迟,开头依次 移位输出到DX管脚上在每个数据单元发送的末尾,CLRK时 钟上升沿处,假如DXR中已经预备好新的数据,DXR中的新数 据会自动复制到XSR中DXR-XSR复制操作会在下一个 CLKX 下降沿处激活XRDY位,表示可以向发送数据寄存器(DXR)写入 新的数据CPU或DMA掌握器写入数据后,XRDY变为无效 DSP 多通道缓冲串口 帧信号的最高频率 帧频率=传输时钟频率/帧同步信号之间的传输时钟周期数 最大帧频率=传输时钟频率/每帧数据的位数 DSP 多通道缓冲串口 忽视帧同步的传输 (R/X) FIG=0时数 据单元B被多余的帧 同步信号中断的例子 (R/X) FIG=1时 McSBP忽视多余的 帧同步信号的操作 DSP 多通道缓冲串口 忽视帧同步的传输利用(R/X) FIG位设置,进行数据打包(Data Packing) 7Word版本。