多通道缓冲串口
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
11
10 11
0
1 1
CLKSTP=10b时的SPI传输
CLKSTP=11b时的SPI传输
CLKSTP=10,CLKXP=0
CLKSTP=10,CLKXP=1
CLKSTP=11,CLKXP=0
CLKSTP=11,CLKXP=1
CLKGDV=250,时钟周期=40ns*250=10us,(CPU/2)=25MHz
第八章 多通道缓冲串口(McBSP)
第八章 多通道缓冲串口(McBSP)
8.1 信号接口 8.2 控制寄存器
8.3 时钟和帧同步信号
8.4 标准模式传输操作 8.7 SPI接口
8.1 信号接口
McBSP是多通道缓冲串口(Multi-channel Buffered Serial Port)
引脚
CLKR CLKX CLKS DR DX FSR
(R/X)WDLEN(1/2) 000 001 010 011
数据单元的字长(位) 8 12 16 20
100
101 其他
24
32 保留
双相帧(Dual-Phase Frame)的例子
3. 帧同步信号
4个8位数据单元的单相帧传输例子:
(R/X)PHASE=0,表示单相帧 (R/X)FRLEN1=0000011b,表示每帧4个
CLKRM=1
FSRM=1 没有 没有
CLKRP
FSRP N/A N/A
CLKRM=0
FSRM=0 总是有 总是有
CLKRP
FSRP DR_STAT CLKS_STAT
8.3 时钟和帧同步信号
时钟CLKR/CLKX是接收/发送串行数据流的同步时钟,帧同步信号FSR和FSX则定义了一 批数据传输的开始。McBSP的数据时钟以及帧同步信号可以设置的参数包括:
FSR、FSX、CLKX和CLKR的极性 选择单相帧或二相帧 定义每相中数据单元的个数 定义每相中1个数据单元的位数 帧同步信号是否触发开始新的串行数据流 帧同步信号与第1个数据位之间的延迟,可以是0位、1位或2位延迟 接收数据的左右调整,进行符号扩展或是填充0
SPI 接口时钟工作模式
CLKSTP (SPCR) 0x 10 CLKXP (PCR) x 0 时钟工作模式 禁止时钟停止模式,使能为非SPI模式 传输无效期间时钟为低,没有延迟。McBSP在CLKX上升沿发送数据,在CLKX的下 降沿接收数据 传输无效期间时钟为低,有延迟。McBSP在CLKX上升沿前半个周期发送数据,在 CLKX的上升沿接收数据 传输无效期间时钟为高,没有延迟。McBSP在CLKX下降沿发送数据,在CLKX的上 升沿接收数据 传输无效期间时钟为高,有延迟。McBSP在CLKX下降沿前半个周期发送数据,在 CLKX的下降沿接收数据
帧(Frame):一帧可以包括一个或多个单元,这由具体协议确定
8.2 控制寄存器
缩写 McBSP寄存器名
RSR
RBR DRR XSR DXR SPCR RCR XCR
接收移位寄存器
接收缓冲寄存器 数据接收寄存器 发送移位寄存器 数据发送寄存器 串口控制寄存器 接收控制寄存器 发送控制寄存器
SRGR
数据单元
(R/X)WDLEN1=000b,表示数据字长8位
1个32位数据单元的单相帧传输例子:
(R/X)PHASE=0,表示单相帧 (R/X)FRLEN1=0b,表示每帧中含1个数
据单元
(R/X)WDLEN1=101b,表示数据单元字
长32 位
4. 数据延迟
收/发控制寄存器中的RDATDLY位和XDATDLY位可分别设 置接收和发送的数据延迟,延Baidu Nhomakorabea范围可以是0~2个传输时钟 周期,一般是在其后的第1个时钟周期启动该帧的数据传输
1. 采样率发生器
CLKG频率 = 输入时钟的频率/(CLKGDV+1) FPER和FWID位分别控制帧脉冲的周期和脉冲宽度
2. 帧同步和时钟信号的有效逻辑/边沿
可以通过PCR寄存器的FS(R/X)M位设置帧同步脉
冲由内部采样率发生器输出或是由外部输入;
通过PCR中的CLK(R/X)M位选择收发时钟信号是
McBSP作为SPI主控端(Master)
由于McBSP产生CLKX和FSX信号输出,因此需设置 CLKXM= FSXM = 1。此外,还需要设置SRGR寄存器中的 FSMG=0,即每次进行DXR到XSR的拷贝操作时要产生FSX 信号
McBSP作为SPI从属端(Slave)
当McBSP作为SPI从设备时,由外部主设备产生接口时钟和 从设备使能信号。McBSP的CLKX管脚和FSX管脚配置为输 入管脚(CLKXM=FSXM=0)。输入串口的CLKX和FSX同时 也作为McBSP接收端的CLKR信号和FSR信号。在进行数据 传输之前,外部主设备必须先置FSX信号有效(低电平)
帧信号的最高频率
帧频率=传输时钟频率/帧同步信号之间的传输时钟周期数 最大帧频率=传输时钟频率/每帧数据的位数
忽略帧同步的传输
(R/X) FIG=0时数 据单元B被多余的帧 同步信号中断的例子
(R/X) FIG=1时 McSBP忽略多余的 帧同步信号的操作
忽略帧同步的传输
利用(R/X) FIG位设置,进行数据打包(Data Packing)
数据的发送
(FSX)有效后,(XSR)中的数据经过一定的数据延迟,开始依次 移位输出到DX管脚上。在每个数据单元发送的末尾,CLRK时 钟上升沿处,如果DXR中已经准备好新的数据,DXR中的新数 据会自动复制到XSR中。DXR-XSR复制操作会在下一个CLKX 下降沿处激活XRDY位,表示可以向发送数据寄存器(DXR)写入 新的数据。CPU或DMA控制器写入数据后,XRDY变为无效。
输出 输入
选择输出条件 输出值来源 CLKXM=1 FSXM=1 总是有 CLKXP FSXP DX_STAT
选择输入条件 CLKXM=0 FSXM=0 没有
可读的输入值 CLKXP FSXP N/A
CLKR
FSR DR CLKS
RRST=0,RIOEN=1
RRST=0,RIOEN=1 RRST=0,RIOEN=1 RRST=XRST=0 RIOEN=XIOEN=1
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位数据延迟
多通道传输接口
1帧串行数据流也可看成是1组时分复用的数据传输通道,“数 据单元”就等同于“数据通道” (a) XMCM=00b,多通道操作被禁止。发送的4个数据单元都经 过了“写入DXR”,和“DXR-XSR拷贝”阶段,最后出现在DX 管脚上
多通道传输接口
(b) XMCM=01b,使能多通道工作模式。首先禁止并屏蔽所 有数据单元的发送输出。XPABLK选择A组子帧中的0号子帧, 然后由XCER使能该子帧中的第1、3号数据通道进行发送。只 有被选择并使能的通道,其对应数据(E1,E3)才会进行DXRXSR拷贝,并出现在DX管脚上
输入输出状态
I/O/Z I/O/Z I I O/Z I/O/Z
说明
接收时钟 发送时钟 外部时钟 接收串行数据 发送串行数据 接收帧同步
FSX
I/O/Z
发送帧同步
RSR---数据接收移位寄存器 RBR---数据接收缓冲寄存器 DRR---数据接收寄存器 DXR---数据发送寄存器 XSR---数据发送移位寄存器
多通道传输接口
(c) XMCM=10b,使能多通道工作模式。所有的通道都被使能 发送数据,因此可以看到E0~E3都完成了“写入 DXR”“DXR-XSR拷贝”操作,但是只有XPABLK和XCER 位选择的通道的数据(E1和E3)才会真正出现在DX管脚上,其 余通道数据的输出均被屏蔽
多通道传输接口
数据的接收
(FSR)有效后,DR管脚上的数据在经过一定的数据延迟后依次移 位进入(RSR)。若RBR为空,则在每个数据单元接收的末尾, CLRK时钟上升沿处,RSR中的内容会被复制到RBR中。这一个 复制操作会在下一个时钟下降沿处触发状态位RRDY置1,标志 接收数据寄存器(DRR)已准备好,CPU或DMA控制器可以读取 数据。当数据被读走后,RRDY自动变无效。
PCR MCR RCER XCER
采样率发生器寄存器
管脚控制寄存器 多通道控制寄存器 接收通道使能寄存器 发送通道使能寄存器
8.2 控制寄存器
串口控制寄存器(SPCR)
8.2 控制寄存器
接收控制寄存器(RCR)
发送控制寄存器(XCR)
8.2 控制寄存器
采样率发生器寄存器(SRGR)
管脚控制寄存器(PCR)
(d) XMCM=11b,使能多通道工作模式。首先禁止并屏蔽所有 数据单元的发送输出,进入对称收发模式。对称收发模式是指 设备的收发操作在同一个子帧位置执行。此时由RPABLK统一 选择发送和接收需要的子帧,XPABLK字段的设置值不再有效
8.7 SPI 接口
串行协议接口(Series Protocol Interface)定义了主/从两种模 式,包括4根信号线 串行数据输入(MISO,主设备输入或从设备输出) 串行数据输出(MOSI,主设备输出或从设备输入) 移位时钟(SCK) 从设备使能(SS) SPI接口的最大特点是由主设备时钟信号的出现与否界定主/从 设备间的通信 McBSP的数据同步时钟具有停止控制选项,因此可以与SPI协 议兼容
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的设置
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模式
引脚 CLKX FSX DX 多用途的I/O使能条件 XRST=0,XIOEN=1 XRST=0,XIOEN=1 XRST=0,XIOEN=1
外部输入还是输出。
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
McBSP 术语
位(Bit):位是串行数据流中的最小组成部分。每个位的开始和结束都是用
一个串行时钟的边沿作为标志。
字(Word):字是一组位,它组成了在DSP和外部器件之间传输的数据。 单元(Slot):一个单元包括组成字的那些位。有时为了将字填充到对于DSP
和外部器件接口来说合适的位数,单元也包括那些用来填充字的附加位。