第九讲McBSPBIT/TI1第九讲多功能缓冲串口McBSP第九讲McBSPBIT/TI2内容简介•串口特点•数据的收发操作•多通道操作•硬件的u-/A-律压扩•SPI接口第九讲McBSPBIT/TI3概述—特点•收/发独立、全双工、双缓冲数据通信,允许连续的数据流•可以和与标准的编/解码器、AICs接口•支持多种协议下的接口传输–T1/E1、MVIP、ST-BUS、IOM-2、AC97、IIS、SPI•支持多通道操作(128)•内置u-律和A-律压扩硬件•内部传输时钟和帧同步信号可编程程度高•数据字长可以是8-/12-/16-/20-/24-/32-bit第九讲McBSPBIT/TI4概述—框图数据通道和控制通道第九讲McBSPBIT/TI5概述—信号•收/发–时钟–帧同步–数据•外部时钟第九讲McBSPBIT/TI6概述—寄存器bye地址(HEX)McBSP0McBSP1McBSP2[注]缩写McBSP寄存器名---RBR接收缓冲寄存器---RSR接收移位寄存器---XSR发送移位寄存器018C00000190000001A40000DRR接收数据寄存器018C00040190000401A40004DXR发送数据寄存器018C00080190000801A40008SPCR串口控制寄存器018C000C0190000C01A4000CRCR接收控制寄存器018C00100190001001A40010XCR发送控制寄存器018C00140190001401A40014SRGR采样率发生器寄存器018C00180190001801A40018MCR多通道控制寄存器018C001C0190001C01A4001CRCER接收通道使能寄存器018C00200190002001A40020XCER发送通道使能寄存器018C00240190002401A40024PCR管脚控制寄存器第九讲McBSPBIT/TI7传输—缓冲收发RSRDRRRBRDXRExpandCompressXSR外设总设DXDR•McBSP的接收操作采取三级缓冲方式•发送操作采取两级缓冲方式第九讲McBSPBIT/TI8传输—初始化•决定与串口交换数据的方式–CPU–DMA•串口的初始化–串口复位–设置寄存器•串口控制寄存器(SPCR)/管脚控制寄存器(PCR)/接收控制寄存器(RCR)/采样率发生器寄存器(SRGR)•时钟和帧信号的来源/频率/极性/信号参数、每帧的数据个数、数据字长、管脚工作模式、中断、同步事件•启动–使收/发通道退出复位态,等候帧同步信号–使帧信号主控端退出复位态第九讲McBSPBIT/TI9传输—接收•帧同步信号FSR激活数据的接收操作•SPCR寄存器中的RRDY位标示接受状态•RRDY=1表示数据接收寄存器(DRR)已准备好•当数据被读走后,RRDY变成无效=0第九讲McBSPBIT/TI10传输—发送•帧同步信号FSX激活数据移位输出•SPCR寄存器中的XRDY位标示发送状态•XRDY=1表示数据发送寄存器(DXR)已空•当数据被写入DXR后,XRDY变成无效=0第九讲McBSPBIT/TI11传输—设置项•同步时钟的来源/产生方法/周期•帧信号的格式(周期,脉宽)•信号的极性•帧信号与数据的出现关系•每帧传输的数据的结构(phase)•每帧的数据个数•数据字长典型传输时序第九讲McBSPBIT/TI12传输—时钟与帧信号•由SRGR进行复杂的控制•目的:更多的支持第九讲McBSPBIT/TI13•每帧包含两个相(Phase)•phase1中包含两个12-bit的数据单元•phase2中包含三个8-bit的数据单元•一帧中的整个数据流是连续的,数据单元以及相之间没有传输的间隔。传输—例子1第九讲McBSPBIT/TI14传输—例子2•每帧包含两个相(Phase)•phase1中包含1个8-bit的数据单元•phase2中包含1个16-bit的数据单元•phase2的起始位置可以定义•FWID位决定了phase1的持续时间•FPER域决定了两相总共的帧周期•在phase1和phase2之间存在空闲时间(deadtime)第九讲McBSPBIT/TI15传输—例子3•忽略帧位数据•数据延迟•范围:0~2个周期•给用户提供了更大的灵活性第九讲McBSPBIT/TI16传输—例子44个8-bit数据(R/X)PHASE=0(R/X)FRLEN1=3h(R/X)WDLEN1=0改为1个32-bit数据(R/X)PHASE=0(R/X)FRLEN1=0(R/X)WDLEN1=5h第九讲McBSPBIT/TI17数据压扩压/扩硬件框图DXR中的数据•在(R/X)CR中使能压扩硬件•数据从DXR拷贝至XSR的过程中进行压缩•从RBR拷至DRR时被扩展•压扩数据总是8位•扩展数据LAW16内部左对齐扩展数据格式第九讲McBSPBIT/TI18多通道—概述•多通道是C6000串口一个非常强的功能•单相位(single-phase)模式下支持多通道操作•多通道–一帧数据传输——一组时分复用数据流–每帧的数据单元个数代表了传输通道的个数–一帧最多可以有128个通道(7-bitFRLEN1)–发送和接收可以独立地选择其中某一个或某一些通道中传输数据单元–一次可以选择32个通道被使能发送或接收第九讲McBSPBIT/TI19多通道------控制•控制寄存器–多通道控制寄存器(MCR)–发送通道使能寄存器(XCER)–接收通道使能寄存器(RCER)•选择收/发通道–由MCR和(R/X)CER共同决定通道的选择–使能子帧–选择子帧中的数据通道第九讲McBSPBIT/TI20多通道—子帧与通道•128个数据通道分为8个子帧•8个子帧归为两组A/B(乒乓控制)•数据通道的选择:使能使能子帧+选择子帧中的单元第九讲McBSPBIT/TI21多通道—选择•通道的禁止–接收•该数据不会执行RBR-DRR拷贝•该数据不会产生RRDY–发送•DX高阻•不会执行DXR-XSR拷贝•通道的使能–被使能的通道数据正常的收发操作•发送的屏蔽–DX保持高阻,即便通道被使能第九讲McBSPBIT/TI22多通道—选择使能所有的数据单元,没有屏蔽•都会执行DXR-XSR•都被输出第九讲McBSPBIT/TI23多通道—选择禁止/屏蔽所有单元,选择0号子帧中的通道1和3发送•被选择者执行DXR-XSR•选择者被输出第九讲McBSPBIT/TI24多通道—选择使能/屏蔽所有单元,选择0号子帧中的通道1和3•所有通道都执行DXR-XSR•只有选择的发送通道被输出第九讲McBSPBIT/TI25多通道—选择禁止/屏蔽所有单元,选择了0子帧的通道1/3(收)和通道3(发)•选择的发送通道被输出•屏蔽不影响接收第九讲McBSPBIT/TI26多通道—例子TDM总线上的多个McBSP•DSP1作为主控•三者分时占有串行总线进行传输•dummychannel用来避免切换时总线竞争第九讲McBSPBIT/TI27SPI—概念•SPI的定义——SeriesProtocolInterface•SPI的信号——4线串行接口•SPI的模式——主模式/从模式•SPI的特点——由主设备时钟信号的出现与否来界定主/从设备间的通信•C6000对SPI的支持表现在CLKSTP控制–数据时钟的停止控制第九讲McBSPBIT/TI28SPI—接口McBSP作主控:提供时钟和设备使能McBSP为从模式:接收时钟和设备使能第九讲McBSPBIT/TI29SPI—控制CLKSTP=10b时的SPI传输McBSP可设置参数:•时钟无效期间的电平•收发数据的边沿•有无延迟第九讲McBSPBIT/TI30接口实例—AIC第九讲McBSPBIT/TI31例子实例—VBAP第九讲McBSPBIT/TI32例子实例—VBAP寄存器设置第九讲McBSPBIT/TI33例子实例—SPIROMMcBSP控制寄存器设置@200MHzCPUclock第九讲McBSPBIT/TI34总结•串口传输过程•灵活的时钟设置•支持多种协议•丰富的内置辅助硬件•多通道选择传输•接口实例