第7.2节 多通道缓冲串行口(McBSP)_第1页
第7.2节 多通道缓冲串行口(McBSP)_第2页
第7.2节 多通道缓冲串行口(McBSP)_第3页
第7.2节 多通道缓冲串行口(McBSP)_第4页
第7.2节 多通道缓冲串行口(McBSP)_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

DSP原理及应用——跟我动手学TMS320F2833x电气信息类专业课程DSP原理及应用多通道缓冲串行口(McBSP)第7.2节

多通道缓冲串行口(McBSP)McBSP:与其它设备直接进行连接的串行接口发送:MFSXMCLKXMDX接收:MFSRMCLKRMDR多通道缓冲串行口(McBSP)McBSP:与其它设备直接进行连接的串行接口通过数据发送引脚(DX)发送数据,通过接收引脚(RX)接收数据.时钟和帧同步信号通过引脚CLKX(发送时钟)、CLKR(接收时钟)、FSX(发送帧同步)、FSR(接收帧同步)进行传输。CPU和DMA可以通过内部的外设总线访问McBSP的16位宽寄存器。CPU或DMA控制器将要传送的数据写入到数据发送寄存器(DXR1,DXR2)。写入到DXRx的数据将通过发送移位寄存器(XSR1,XSR2)从DX引脚移出。引脚DR上接收到的数据移入到接收移位寄存器(RSR1,RSR2),并复制到接收缓冲寄存器(RBR1,RBR2),RBRx的内容然后被复制到可以被CPU或DMA控制器访问的数据接收寄存器(DRR1,DRR2)。当串行字的长度为8位、12位、16位时,则不需要用到DRR2、RBR2、RSR2、DXR2、XSR2寄存器;当串行数据长度大于16位时,则需要用到这些寄存器存放数据的高有效位多通道缓冲串行口(McBSP)McBSP特性:全双工通信方式.双缓冲发送数据和三缓冲接收数据,允许连续数据流操作。具有向CPU传送中断请求和向DMA控制器传送DMA事件的功能。128个发送和接收通道。多通道选择模式可以允许或禁止每一通道的传输。与工业标准的CODEC、模拟接口器件(AIC)及串行行接口ADC和DAC的直接连接。数据长度选择范围宽:可以是8、12、16、20、24、32位。与SPI设备的直接连接。支持外部的时钟信号和帧同步信号。内有可编程的采样率发生器,用以发生和控制内部时钟信号及帧同步信号。多通道缓冲串行口(McBSP)McBSP接收操作:接收数据的物理路径接收数据时序多通道缓冲串行口(McBSP)McBSP接收步骤:①McBSP等待接收帧同步脉冲FSR。②FSR到达后,根据RDATDLY位的设置,插入相应数据延迟时间。③McBSP开始从DR引脚接收数据,并移入到接收移位寄存器。若串行字长度小于等于16位,则只用到RSR1;若串行字长度大于16位,则RSR1、RSR2都需要用到,并且RSR2存放了数据的高有效位。④当接收到一个完整串行字后,若RBR1没有被之前的数据填满,McBSP将RSRx中的数据拷贝到RBRx中。若串行字长度小于等于16位,则只用到RBR1;若串行字长度大于16位,则RBR1、RBR2都需要用到,并且RBR2存放数据的高有效位。⑤若DRR1没有被之前的数据填满,McBSP将RBRx中的内容拷贝到DRRx中。当DRR1接收到新的数据后,SPCR1中的RRDY将被置位,这表明CPU或DMA控制器可以读取接收到的数据。若串行字长度小于等于16位,则只用到DRR1;若串行字长度大于16位,则DRR1、DRR2都需要用到,并且DRR2存放数据的高有效位。⑥CPU或DMA控制器从DRR寄存器中读取数据。当DRR1内容被读取后,RRDY位自动清除,即可进行下一个RBR到DRR的复制。注意:如果两个DRR寄存器都被使用(串行字长度大于16位),CPU或DMA控制器必须先读取DRR2再读取DRR1。当DRR1被读取后,即可进行下一个RBR到DRR的复制,如果此时DRR2没有读取,那么DRR2中的数据就会丢失。多通道缓冲串行口(McBSP)McBSP发送操作:发送数据的物理路径发送数据时序多通道缓冲串行口(McBSP)McBSP发送操作步骤:①CPU或DMA控制器将要发送的数据写入到DXR,SPCR2中的的发送就绪位(XRDY)被清除。若串行字长度小于等于16位,则只用到DXR1;若串行字长度大于16位,则DXR1、DXR2都要用到,DXR2存放数据的高有效位,且须先装载DXR2的数据然后再装载DXR1的数据。②当新的数据装载到DXR1后,McBSP将DXRx内容拷贝至XSRx,并且发送就绪位XRDY被置位,表明发送器准备好从CPU或DMA控制器接收下一个新数据。若串行字长度小于等于16位,则只用到XSR1;若串行字长度大于16位,则XSR1、XSR2都需要用到,并且XSR2存放数据的高有效位。③McBSP等待发送帧同步脉冲FSX。④当帧同步脉冲到达后,McBSP根据XCR2寄存器XDATDLY位的设置,插入相应的数据延迟时间。⑤McBSP将数据从XSRs中移出至DX引脚。多通道缓冲串行口(McBSP)McBSP数据压缩扩展:2833x支持硬件上的数据压缩扩展功能,使得数据能够以μ-律或A-律格式进行压缩扩展。μ-律和A-律分别允许13位和14位的动态范围。超出该范围的数据都将被置为最大正数或最小负数,所以为了使数据的压缩扩展达到最好的效果,通过McBSP传输的数据至少应是16位宽。μ-律和A-律都将数据编码成8位字长,且压缩扩展后的数据总是8位长度。因此,相应的字长位(RWDLEN1,RWDLEN2,XWDLEN1,XWDLEN2)必须配置为0,表明串行数据流长度为8位。当使用压缩扩展功能时,即使帧中数据字的长度小于8,压扩时仍将数据做为8位处理。多通道缓冲串行口(McBSP)先传最低有效位一般而言,McBSP都是先发送或接收数据的最高有效位(MSB)。若将XCR2寄存器中的XCOMPAND位设置成01b,那么这8位数据的发送顺序将被颠倒(先发送LSB)。如果将RCR2寄存器中的RCOMPAND位设置成01b,数据的接收顺序也将颠倒(先接收LSB)。该操作需要将传送数据的字长位设置成0(表明传送的串行字长度为8位)。如果每一帧数据长度不足8位,McBSP会将其当作8位数据处理,且首先传送LSB。。多通道缓冲串行口(McBSP)时钟和串行字数据一位一位地从DR引脚移入到RSRx中或从XSRx移出至DX引脚。每一位数据的传送时间由时钟信号的上升沿或下降沿来控制。接收时钟信号(CLKR)控制每位数据从DR引脚到RSRx的传送;发送时钟信号(CLKX)控制每位数据从XSRx到DX引脚的传输。CLKR和CLKX信号可以由McBSP外部引脚提供,也可以由McBSP内部提供且极性可以配置。注意:McBSP的时钟信号频率不能高于LSPCLK/2。多通道缓冲串行口(McBSP)帧和帧同步用户可以定义每一帧中有多少个串行字。。同一帧中的所有字以连续的数据流形式传送,但各帧之间的数据传输允许暂停。使用帧同步信号确定何时接收或发送一帧数据,出现帧同步脉冲信号时,McBSP就开始接收/发送一帧数据。FSR和FSX信号可以由外部引脚提供,也可由McBSP内部提供。帧同步信号从无效到有效的转变时,就代表新的一组数据帧传输,因此帧同步信号的高电平脉宽可以是任意个时钟周期。只有当帧同步信号变为无效,然后再次有效时,才发生下一个帧同步为使检测帧同步更加方便,可将中断触发源设置成帧同步脉冲事件,即将RINTM(对于接收中断)和XINTM(对于发送)位配置成10b。一个或多个串行字结合成一组传输,这个组被称为帧。多通道缓冲串行口(McBSP)帧相位McBSP允许用户配置每帧数据有一个或两个相位每个相位发送字的个数以及每个字的长度都可以独立的配置。例如:用户可以配置一帧数据包含两个相位,第一个相位传输2个16位串行字,第二个相位传输10个8位串行字多通道缓冲串行口(McBSP)中断和DMA事件内部信号描述RINT接收中断McBSP根据SPCR1寄存器RINTM位设置的条件向CPU传送接收中断请求。XINT发送中断McBSP根据SPCR2寄存器XINTM位设置的条件向CPU传送发送中断请求。REVT接收同步事件当数据接收寄存器DRRx接收到数据时,可向DMA发送REVT信号。XEVT发送同步事件当数据发送寄存器DXRx已准备好接收下一数据进行发送时,可向DMA发送XEVT信号。多通道缓冲串行口(McBSP)采样率发生器可编程的采样率发生器SRG,用来产生内部数据时钟CLKG和内部帧同步信号FSG。CLKG可用作DR引脚或DX引脚移位时的时钟信号。FSG可用来启动DR或DX引脚上的数据帧传送。多通道缓冲串行口(McBSP)采样率发生器SCLKMECLKSM时钟源00保留01LSPCLK10MCLKR引脚信号11MCLKX引脚信号输入时钟源极性配置影响LSPCLK总是正极性CPU时钟的上升沿产生CLKG和FSGMCLKR引脚信号CLKRP=0MCLKR引脚信号的下降沿产生CLKG和FSGCLKRP=1MCLKR引脚信号的上升沿产生CLKG和FSGMCLKX引脚信号CLKXP=0MCLKX引脚信号的上升沿产生CLKG和FSGCLKXP=1MCLKX引脚信号的下降沿产生CLKG和FSG采样率发生器时钟源选择采样率发生器输入时钟极性选择多通道缓冲串行口(McBSP)McBSP异常/错误状态接收器超载(RFULL=1)RFULL=1表明接收器发生超载错误。下列情况都发生时RFULL将被置位:在上次RBR到DRR的复制完成后(RRDY=1),DRR1没有被读取过;RBR1为满且没有发生RBR到DRR的拷贝;RSR1为满且没有发生RSR到RBR的拷贝。下列事件发生时将会清除RFULL位且允许读取后面传输的数据:CPU或DMA控制器读取DRR1;复位接收器(RRST=0)或者TMS320F2833x器件复位;多通道缓冲串行口(McBSP)McBSP异常/错误状态2.意外的接收帧同步脉冲(RSYNCERR=1)RFIG=0并且发生意外接收帧同步脉冲:若在当前数据帧接收完全之前,又来一帧同步信号并启动新的一帧数据接收,该帧同步信号被称为意外的帧同步脉冲;该同步脉冲会停止当前数据帧的接收并开始下一帧数据的接收接收器会将接收帧同步错误标志RSYNCERR置位,并可向CPU发送中断请求(配置SPCR1寄存器的RINTM为11b)若RFIG=1,则接收帧同步信号被忽略,不影响数据接收多通道缓冲串行口(McBSP)McBSP异常/错误状态3.发送器数据覆盖当DXRx中的数据还未拷贝到XSRx中时,CPU或DMA控制器又向DXRx中写入数据,DXRx之前的数据将被覆盖。为避免数据覆盖现象,CPU在向DXRx中写入新数据之前,需查询并等待SPCR2寄存器中的XRDY位为1;当DXR1中的数据拷贝到XSR1中时,XRDY位会置位;当新的数据写入到DXR1中时,XRDY会清除;若用户配置SPCR2寄存器中的XINTM位为00b,则在每次XRDY置位时,可向CPU产生XINT中断,因而用户可在XINT中断程序中向DXRx写入新数据而避免数据覆盖现象。多通道缓冲串行口(McBSP)McBSP异常/错误状态

多通道缓冲串行口(McBSP)McBSP异常/错误状态5.意外的发送帧同步脉冲(XSYNCERR=1)XFIG=0并且发生意外发送帧同步脉冲:在当前帧的所有数据位还未发送完毕的情况下,又出现启动下一帧传送的帧同步脉冲;这一脉冲将终止当前数据的发送并发起下一帧数据的发送,且XSYNCERR将被置位;通过配置SPCR2寄存器XINTM=11b,可向CPU发送中断。若XFIG=1,发送帧同步脉冲将被忽略,不影响发送。多通道缓冲串行口(McBSP)多通道选择模式McBSP通道是指一个串行字所有数据位移入或移出占用的时间段。最多支持128个用于接收的通道和128个用于发送的通道;在接收器和发送器中,128个通道被分成8块,每块包含16个相邻的通道;发送和接收的分区数量是相互独立的。McBSP可以选择通道进行发送或接收,每个通道分区都有各自的通道使能寄存器,寄存器的每一位控制着是否允许传输该分区某一通道上的数据流。多通道缓冲串行口(McBSP)时钟停止模式完成SPI操作McBSP的时钟停止模式可以提供与SPI兼容的协议。时钟停止模式下,发送器和接收器在内部同步,McBSP可以作为SPI的主设备或从设备;发送时钟CLKX相当于SPI协议中的串行时钟SCK;发送帧同步信号FSX则被作为从使能信号SS使用。接收时钟CLKR和接收帧同步信号FSR在内部分别与CLKX和FSX连接,未使用。多通道缓冲串行口(McBSP)时钟停止模式完成SPI操作控制位描述CLKSTP(SPCR1寄存器)使用该位使能时钟停止模式,并选择两种时序中的一种。CLKXP(PCR寄存器)该位决定CLKX信号的极性。CLKRP(PCR寄存器)该位决定CLKR信号的极性。CLKXM(PCR寄存器)该位决定了CLKX作为输入信号(McBSP作为从设备)还是作为输出信号(McBSP作为主设备)。XPHASE(XCR2寄存器)发送必须使用单相位帧(XPHASE=0)。RPHASE(RCR2寄存器)接收必须使用单相位帧(RPHASE=0)。XFRLEN1(XCR1寄存器)发送帧的长度必须是1个串行字(XFRLEN1=0)。RFRLEN1(RCR1寄存器)接收帧的长度必须是1个串行字(RFRLEN1=0)。XWDLEN1(XCR1寄存器)该位决定发送串行字的长度。在时钟停止模式下,XWDLEN1必须与RWDLEN1的值相同,因为McBSP的发送和接收电路与同一个时钟同步。RWDLEN1(RCR1寄存器)该位决定接收串行字的长度。在时钟停止模式下,RWDLEN1必须与XWDLEN1的值相同。时钟停止模式需配置的控制位多通道缓冲串行口(McBSP)时钟停止模式完成SPI操作时钟停止模式配置位时钟模式CLKSTP=00或01bCLKXP=0或1,CLKRP=0或1时钟停止模式被禁止。时钟为非SPI时钟。CLKSTP=10bCLKXP=0,CLKRP=0无延时的低无效模式。McBSP在CLKX的上升沿发送数据,在CLKR的下降沿接收数据。CLKSTP=11bCLKXP=0,CLKRP=1有延时的低无效模式。McBSP在CLKX上升沿的前半个周期发送数据,在CLKR的上升沿接收数据。CLKSTP=10bCLKXP=1,CLKRP=0无延时的高无效模式。McBSP在CLKX的下降沿发送数据,在CLKR的上升沿接收数据。CLKSTP=11bCLKXP=1,CLKRP=1有延时的高无效模式。McBSP在CLKX下降沿的前半个周期发送数据,在CLKR下降沿接收数据。1.数据接收寄存器(DRR[1,2])McBSP寄存器若串行字的长度小于等于16位,则仅仅用到DRR1;若串行字长度大于16位,则DRR1、DRR2都将用到,且DRR2存放数据高位。DRR2:接收数据的高位部分(对于20、24、32位数据)DRR1:接收数据(对于8、12、16位数据)或接收数据的低位部分(对于20、24、32位数据)2.数据发送寄存器(DXR[1,2])若串行字的长度小于等于16位,则仅仅用到DXR1;若串行字的长度大于16位,则DXR1、DXR2都将用到,且DXR2存放数据高位。。DXR2:发送数据的高位部分(对于20、24、32位数据)DXR1:发送数据(对于8、12、16位数据)或发送数据的低位部分(对于20、24、32位数据)3.串口控制寄存器(SPCR[1,2])McBSP寄存器McBSP模式配置:数字回送、符号扩展和对齐、时钟停止、中断模式、仿真悬挂模式;DX引脚延迟使能器接收和发送操作的状态复位McBSP端口操作DLBRJUSTCLKSTPReservedDXENAReservedRINTMRSYNCERRRFULLRRDYRRSTReservedFREESOFTFRSTGRSTXINTMXSYNCERRXEMPTYXRDYXRST4.接收控制寄存器(RCR[1,2])McBSP寄存器设置每个接收数据帧有1个或2个相位(RPHASE);设置相位1和相位2(根据需要)的参数:串行字的长度(RWDLEN1和RWDLEN2)和串行字的个数(RFRLEN1和RFRLEN2);选择接收数据的压缩扩展模式(RCOMPAND);使能或禁止接收帧同步信号忽略功能(RFIG);选择接收数据延迟(RDATDLY)。ReservedRFRLEN1RWDLEN1ReservedRPHASERFRLEN2RWDLEN2RCOMPANDRFIGRDATDLY5.发送控制寄存器(XCR[1,2])McBSP寄存器设置每个发送数据帧有1个或2个相位(XPHASE);设置相位1和相位2(根据需要)的参数:串行字的长度(XWDLEN1和XWDLEN2)和串行字的个数(XFRLEN1和XFRLEN2);根据需要选择发送数据的压缩扩展模式(XCOMPAND);使能或禁止发送帧同步信号忽略功能(XFIG);选择发送数据延迟(XDATDLY)。ReservedXFRLEN1XWDLEN1ReservedXPHASEXFRLEN2XWDLEN2XCOMPANDXFIGXDATDLY6.采样率发生器寄存器(SRGR[1,2])McBSP寄存器设置采样率

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论