第九章多同道缓冲串口_第1页
第九章多同道缓冲串口_第2页
第九章多同道缓冲串口_第3页
第九章多同道缓冲串口_第4页
第九章多同道缓冲串口_第5页
已阅读5页,还剩78页未读 继续免费阅读

下载本文档

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

文档简介

一、概述1、DSP增强型外设多通道缓冲串口McBSP主机接口HPI直接存储器访问DMA2、McBSP的基本特点McBSP设计是基于TMS320C2X、C20X、C5X、C54X的标准串口上扩展的,McBSP提供:全速双工通信双缓存发送和三缓存接收数据寄存器,以支持连续传送收和发使用独立的帧和比特时钟与串行ADC/DAC的无缝接口外部变速时钟发生器,内部可编程时钟发生器McBSP的基本特点直接多种工业格式接口多通道收发,通道数达128字宽可选:8,12,16,20,24,and32bitsU-LawandA-Law压缩与扩展8位传输时可选先传:LSBorMSB帧信号与时钟信号极性可编程McBSP的基本特点TMS320C54xDSPReferenceSetVolume5:EnhancedPeripherals23、McBSP的结构图4、McBSP的工作流程McBSP与外设进行数据传输是通过(DX)脚来发送,(RX)脚来接收,通信的时钟与帧信号是由CLKX,CLKR,FSX,andFSR脚来控制。DSP的CPU或DMA从数据接收寄存器(DRR[1,2])读取接收数据,发送时向数据发送寄存器(DXR[1,2])写数据。2是否使用看传输数据位数。McBSP的工作流程数据写入(DXR[1,2])后通过传输移位寄存器(XSR[1,2])移位输出到DX上,同样,从DR上接收的数据移位存储到接收移位寄存器(RSR[1,2])并拷贝到接收缓存寄存器(RBR[1,2]),然后,再由(RBR[1,2])拷贝到DRR[1,2],DRR[1,2]就可以由CPU或DMA来读出。多级寄存器允许在通信时内部和外部数据同时传输。C54XX对McBSP的控制由16位的控制寄存器实现。7、McBSP的中断和DMA事件二、McBSP的基本配置1、寄存器概况寄存器类型通用控制寄存器SPSA,SPCR1,SPCR2,PCR;接收和发送通道寄存器RCR1,RCR2,XCR1,XCR2;时钟控制寄存器SRGR1,SRGR2;多通道控制寄存器(略);McBSP的的控制寄存器的地址和名称TMS320C54xDSPReferenceSetVolume5:EnhancedPeripherals2-5McBSP的的控制寄存器的地址和名称TMS320C54xDSPReferenceSetVolume5:EnhancedPeripherals2-52、串口子地址寄存器(SPSA)同一个串口,其不同寄存器具有相同的地址,但具有不同的子地址。串口的子地址寄存器SPSA用于控制用户访问的具体控制寄存器,即用户在访问某个寄存器之前,要先设置子地址寄存器SPSA比如,访问McBSP0的PCR寄存器,首先设置SPSA=0x000E,然后访问数据空间0x00392、串口控制寄存器1的详细说明(SPCR1)

SPCR1设置McBSP串口的数字环回模式、接收符号扩展和校验模式、ClockStop模式、DX是否允许、A-bis模式、接收中断模式等,并给出接收同步错误、接收移位寄存器(RSR[1,2])空、接收准备好等状态。此外可以进行接收复位。3、串口控制寄存器2的详细说明(SPCR2)

SPCR2设置McBSP自由运行模式、SOFT模式、发送中断模式,并给出发送同步错误、发送移位寄存器(XSR[1,2])空、发送准备好等状态。此外可以进行发送复位、采样率发生器复位、帧同步发生电路复位。4、引脚控制寄存器的详细说明(PCR)

PCR设置McBSP传输帧同步模式、接收帧同步模式、发送时钟模式、接收时钟模式、发送帧同步信号的极性、接收帧同步信号的极性、发送时钟极性、接收时钟极性,并给出CLKS、DX、DR脚的状态。此外PCR还定义发送和接收部分在复位时相应引脚是否配置为通用I/O。5、接收控制寄存器1(RCR1)说明

RCR1设置McBSP接收时第一相(FIRSTPHASE)的接收帧长度(从1个字到128个字、接收字长度(8、12、16、20、24、32bits)。6、接收控制寄存器2(RCR2)说明RCR2设置McBSP接收时是否允许第二相(RPHASE=1)。如果允许,设置McBSP接收时第二相的接收帧长度(从1个字到128个字、接收字长度(8、12、16、20、24、32bits)。此外,RCR2设置McBSP接收时的接收压缩模式、接收同步帧忽略模式、接收数据延迟。7、发送控制寄存器1(XCR1)说明

XCR1设置McBSP发送时第一相(FIRSTPHASE)的发送帧长度(从1个字到128个字、发送字长度(8、12、16、20、24、32bits)。8、发送控制寄存器2(XCR2)说明

XCR2设置McBSP发送时是否允许第二相(XPHASE=1)。如果允许,设置McBSP时第二相的发送帧长度(从1个字到128个字、发送字长度(8、12、16、20、24、32bits)。此外,XCR2设置McBSP发送时的发送压缩模式、发送同步帧忽略模式、发送数据延迟。9、时钟和帧同步来源TMS320C54xDSPReferenceSetVolume5:EnhancedPeripherals

57我们把用于控制发送和接收的时钟称为内部时钟或者工作时钟,这个时钟来源有两个,一个是外部管脚,一个是内部采样率发生器。各种其他模块用于控制选择外部时钟或者采样率生成器时钟作为工作时钟,以及这些时钟的有效极性。10、采样率发生器控制寄存器(SRGR1)

采样率发生器寄存器1(SRGR1)设置帧正脉冲宽度(必须小于WDLEN指出的字的长度)和数据位时钟分频(CLKG与输入CLK频率之比,约定值为1)。11、采样率发生器控制寄存器(SRGR2)

采样率发生器寄存器2(SRGR2)设置采样率发生器时钟同步模式、CLKS的极性、采样率发生器输入时钟选择、帧周期分频。三、帧和时钟产生1、系统框图TMS320C54xDSPReferenceSetVolume5:EnhancedPeripherals57串口工作需要帧同步和比特时钟信号,这两个信号的来源可以是外部管脚输入,也可以是内部采样率生成器产生,对于后者,此时外部管脚可能是一个时钟输出管脚2、内部时钟时序真正用于发生和接收的帧同步和比特时钟我们叫做internalCLKR,internalFSR,internalCLKX,internalFSX对于内部时钟同数据关系满足如图要求1)比特时钟上升沿对齐帧同步,下降沿采样帧同步2)帧同步高电平有效,长度无所谓3)比特时钟上升沿对齐数据,下降沿采样数据3、工作帧同步和比特时钟来源对于发送通道,可以是外部管脚,也可以是内部采样率生成器对于接收通道,可以是外部管脚,也可以是内部采样率生成器,工作在DLB模式时,则来源于发送通道工作帧同步和工作时钟4、采样率生成器采样率发生器采样率发生器由两级分频电路产生数据移位时钟(CLKG)和帧信号(FSG)。如果选择内部采样率发生器,这两个McBSP片内信号CLKG和FSG被用作收发工作时钟(CLKR/X)和工作帧时钟(FSR/X)。采样率发生器的输入时钟可以是CPU时钟或外部时钟(CLKS),受(SRGR2)的CLKSM位控制。采样率发生器采样率发生器的三级分频分别是:数据位时钟分频(CLKGDV)

帧周期分频(FPER)

帧脉冲宽度分频(FWID)采样率发生器的工作模式由采样率发生器控制寄存器SRGR1和SRGR2控制。5、帧和时钟极性操作帧和时钟极性操作用于控制接收和发送的帧同步和时钟有内部的概念,就是真实的工作帧同步和时钟。数据在工作时钟的上升沿产生,下降延采样。工作帧同步是高电平有效,其上升沿同工作比特时钟上升沿对齐。工作帧同步和时钟来源可以是外部管脚FSR/X和CLKX/R得到,也可以是采样率生成器得到。帧和时钟极性操作外部引脚产生工作帧同步和时钟可能会有极性问题。这时,通过CLK(R/X)P,PFS(R/X)P来调整,使之满足工作帧同步和时钟的极性要求。采样率生成器产生的输出工作帧同步和时钟肯定是满足极性要求的,即:数据在工作时钟的上升沿产生,下降沿采样,工作帧同步是高电平有效。帧和时钟极性操作使用管脚CLKS作为采样率生成器的时钟输入而不是CPU时钟时,存在极性和同步问题,通过CLKSP选择是在CLKS上升沿还是下降沿产生CLKG和FSG。当GSYNC=1,FSG由外部管脚FSR触发,FPER没有作用,而且CLKG要重新与FSG同步,即FSG上升沿时保持高电平帧和时钟极性操作

TMS320C54xDSPReferenceSetVolume5:EnhancedPeripheralsPage2-63,646、数据时钟生成数据时钟生成CLK(R/X)M=0,外部管脚CLK(R/X)作为工作数据时钟,通过CLK(R/X)P控制极性;CLK(R/X)M=1,内部采样率生成器产生工作数据时钟。采样率生成器的输入时钟可以是CPU时钟,也可以是CLKS管脚,由CLKSM控制。当是后者,CLKSP控制器极性;内部采样率生成器产生工作数据时钟,通过CLKGDV分频采样率生成器输入时钟得到。7、帧同步信号生成帧同步信号生成FS(R/X)M=0,帧同步由外部输入管脚产生,可以通过FS(R/X)P控制极性;FS(R/X)M=1,帧同步由内部产生。对于接收帧同步,内部产生只能是采样率生成器,但对于发送帧同步,内部产生除了采样率生成器,还可以是DXR[1,2]-TO-XSR[1,2]产生。发送帧同步信号生成课本Page330表6.4-14帧同步信号生成如果是由采样率生成器产生发送和接收帧同步,首先考虑采样率生成器的输入时钟是CPU还是CLKS管脚。这个同数据时钟是一致的,由FS(R/X)M=1和CLKSM决定。当由采样率生成器产生帧同步,FPER和FWID控制帧同步的周期和有效宽度(高电平宽度),大小为设定值加1。FWID不能大于WDLEN.帧同步信号生成例子:FPER=15,FWID=18、DLB下时钟数据从XSR1直接进入RSR1,而且不通过外部DX和DR管脚通过寄存器SPCR1中的DLB比特控制DLB与时钟DLB时,在DSP内部,DR,FSR,CLKR同DX,FSX,CLKX是短接在一起的。发送数据时钟决定接收数据时钟,而发送数据时钟控制方法如前页所述。发送数据时钟确定后,接收数据时钟选择情况如课本Page329表6.4-12TMS320C54xDSPReferenceSetVolume5:EnhancedPeripheralsPage2-65DLB与帧同步首先我们确定发送帧同步,确定方法如前所述。然后由发送帧同步确定接收帧同步。

课本Page329表6.4-13

TMS320C54xDSPReferenceSetVolume5:EnhancedPeripheralsPage2-679、时钟和帧同步例子TMS320C54xDSPReferenceSetVolume5:EnhancedPeripheralsPage2-69-7110、采样率发生器复位设备复位或置/GRST为零可以复位采样率发生器。设备复位使采样率发生器复位时,CLKG等于CPU-CLK/2,而FSG为无效低电平。当/RS放开(延迟)/GRST放开后,CLKG按SRGR1编程产生;如果,/FRST也放开,则经过FPER个CLKG,FSG为有效高电平。置/GRST为零复位采样率发生器,CLKG和FSG都将是无效低电平。10、采样率生成器复位过程1)Duringdevicereset,GRST=0.Otherwise,duringnormaloperation,thesamplerategeneratorcanberesetwithGRST=0inSPCR2,providedCLKGand/orFSGisnotusedbyanyportionoftheMcBSP.IfGRST=0duetodevicereset,CLKGisdrivenbythedivide-by-2CPUclock,andFSGisdriveninactive-low.IfGRST=0asprogrammedbytheuser,CLKGandFSGaredriveninactive-low.Ifnecessary,set(R/X)RST=0.采样率生成器复位过程2)ProgramSRGR[1,2]asrequired.Ifnecessary,othercontrolregisterscanbewrittenwithdesiredvalues,providedtherespectiveportion(R/X)isinreset.3)WaittwoCLKSRGclocks.Thisensurespropersynchronizationinternally.4)SetGRST=1toenablethesamplerategenerator.5)WaittwoCLKGbit-clocks.采样率生成器复位过程6)Pullthereceiverand/ortransmitteroutofreset([R/X]RST=1),ifrequired.7)OnthenextrisingedgeofCLKSRG,CLKGtransitionsto1andstartsclockingwithafrequencyequalto(CPUclock/(1+CLKGDV),ifCLKSM=1,orCLKSclock/(1+CLKGDV)ifCLKSM=0).采样率生成器复位过程8)Aftertherequireddataacquisitionsetupisdone(DXR[1/2]isloadedwithdata),FRSTcanbewrittenwith1ifinternallygeneratedframe-syncpulseisrequired.FSGisgeneratedwithanactive-highedgeaftertheprogrammednumberofeightCLKGclockshaveelapsed.四、工作模式控制McBSP系统工作模式的寄存器包括SPCR1,SPCR2,PCR控制接收和发送数据具体工作模式的寄存器是RCR1,RCR2,XCR1,XCR2多同道工作模式涉及寄存器MCR1,MCR2,RCERA,RCERB,XCERA,XCERB1、McBSP接收准备好状态

串口复位时RRDY清为0,当RBR[1,2]内容拷贝到DRR[1,2]时,RRDY有效,该数据可以被CPU或DMA读,一旦CPU或DMA读走数据RRDY又清为0。如果SPCR1中的RINTM=00,RRDY将驱动McBSP的接收中断(RINT)给CPU。

TMS320C54xDSPReferenceSetVolume5:EnhancedPeripheralsPage2-392、McBSP发送准备好状态

XRDY=1说明DXR[1,2]的数据已拷贝到XSR[1,2]中,DXR[1,2]可以装入新的数据。串口复位放开时(/XRST从0到1),XRDY从0变到1已说明DXR[1,2]可以装入新数据,一旦有新数据装入,XRDY就清为0。如果SPCR2中XINTM=00,XRDY还直接驱动发送中断(XINT)给CPU。

TMS320C54xDSPReferenceSetVolume5:EnhancedPeripheralsPage2-393、McBSP串口产生的中断(R/X)INTM=00:每传送一个字,(R/X)RDY响应一次,就产生响应串口中断一次。(R/X)INTM=01:在多通道模式中,一个帧内出现16通道的块(PARTITION)边界就产生中断。此时CPU可以检测是哪个PARTITION。(R/X)INTM=10:检测到帧同步脉冲就产生(R/X)INT。(R/X)INTM=11:当出现帧同步错误时产生中断。4、帧和时钟配置内容FSR,FSX,CLKX,CLKR的极性单相还是多相帧结构对每一相,设置字数(每帧该相有多少字)对每一相,设置字宽(字的比特位数)设置相对帧脉冲,第一位传输数据的延迟为0、1、2位(CLKG)帧和时钟配置内容设置连续帧同步工作模式,还是除第一个帧脉冲后忽略帧同步脉冲工作模式对串口接收,设置左或右效验和符号扩展或0填充模式如果采用内部采样率发生器产生帧脉冲信号,设置帧信号脉宽、周期、CLKG时钟分频、信号极性等5、帧格式操作我们可以定义一个帧是几相。可以定义每相有多少个字,每个字有多少个比特。帧格式操作帧格式操作6、系统错误ReceiveOverrun(RFULL=1).UnexpectedReceiveFrameSynchronization(RSYNCERR=1).TransmitDataOverwrite.TransmitEmpty(XEMPTY=0).UnexpectedTransmitFrameSynchronization(XSYNCERR=1).ReceiveOverrun(RFULL=1)该错误需要同时满足以下三个条件1)DRR[1,2]hasnotbeenreadsincethelastRBR[1,2]-to-DRR[1,2]transfer(RRDY=1).2)RBR[1,2]isfullandanRBR[1,2]-to-DRR[1,2]copyhasnotoccurred.3)RSR[1,2]isfullandanRSR[1,2]-to-RBR[1,2]transferhasnotoccurred.TMS320C54xDSPReferenceSetVolume5:EnhancedPeripheralsPage2-45UnexpectedReceiveFrameSynchronization:RSYNCERRAnunexpectedframe-syncpulseisdefinedasasyncpulsewhichoccursRDATDYbit-clocksearlierthanthelasttransmittedbitofthepreviousframe.TMS320C54xDSPReferenceSetVolume5:EnhancedPeripheralsPage2-48TransmitwithDataOverwriteDXR[1,2]中的数据还未转移进XSR[1,1]时,又向DXR[1,2]中写入数据,则原来DXR[1,2]中的数据被覆盖,从而产生错误该错误没有相应标志位来表示TMS320C54xDSPReferenceSetVolume5:EnhancedPeripheralsPage2-48TransmitEmpty:XEMPTY以下两个条件都可以使XEMPTY=01)Duringtransmission.DXR[1,2]hasnotbeenloadedsincethelastDXR[1,2]-to-XSR[1,2]copy,andallbitsofthedatawordinXSR[1,2]havebeenshiftedoutonDX.2)Thetransmitterisreset(XRST=0,ordeviceisreset)andthenrestarted.TMS320C54xDSPReferenceSetVolume5:EnhancedPeripheralsPage2-49UnexpectedTransmitFrameSynchronization:XSYNCERRAnunexpectedtransmitframe-syncpulseisdefinedasasyncpulsewhichoccursXDATDLYbit-clocksearlierthanthelasttransmitbitofthepreviousframe.TMS320C54xDSPReferenceSetVolume5:EnhancedPeripheralsPage2-527、数据延时定义从帧同步信号有效到第一个数据产生的时延,通常取1。TMS320C54xDSPReferenceSetVolume5:EnhancedPeripheralsPage2-348、DX脚延时使能本来是CLKX上升沿数据开始,但DX延时使能条件下,数据可以有一定延时后才开始。在一般模式下,只有第一个BIT可以有延时,在A-bis模式下,则是每个比特都可以TMS320C54xDSPReferenceSetVolume5:EnhancedPeripheralsPage2-379、帧同步忽略第一个作用是使我们传输数据时,自动形成数据包(连续)的传输模式;第二个作用是克服错误的帧同步;

TMS320C54xDSPReferenceSetVolume5:EnhancedPeripheralsPage2-41-4310、修正和扩展对于位于RBR[1,2]中的数据,在传到DRR[1,2]中的时候,是否进行一定的修正和扩展。我们据两个例子,一个是12比特接收数据0XABC,一个是20比特接收数据0XABCDE。TMS320C54xDSPReferenceSetVolume5:EnhancedPeripheralsPage2-5211、A-law/u-law数据压缩与扩展压扩的算法在通信原理中讲过,A律对应13比特动态范围,u律对应14比特动态范围;压扩是8-16bit的转换,用于PCM,16bit通过13bit或者14bit转换而来,即左修正,低位0填充;通过(R/X)COMPAND控制;(R/X)WDLEN[1,2]要为00h,RJUST无用。12、DLB模式环回模式等效于DR,DX短路,发送通道和接收通道的帧同步短路,比特时钟也短路。接收通道时钟和帧同步由发送通道提供,而发送通道时钟和帧同步来源通过各种寄存器控制。13、I\O工作方式满足两个条件工作在I\O口模式1)管脚在复位状态2)I\O使能比特设为有效而具体每个管脚是输入还是输出,其高低电平如何读写如下表TMS320C54xDSPReferenceSetVolume5:EnhancedPeripheralsPage2-9714、FREE和SOFTTMS320C54xDSPReferenceSetVolume5:EnhancedPeripheralsPage2-9515、复位方式1)设备复位(/RS=0):即整个串口复位,此时,/RRST和/XRST为零,DR、CLKR/X、FSR/X为输入信号,DX为输出信号,输出高阻。同时/GRST也为零,CLKG=CPU时钟/2,不产生FSG信号。/RS放开后,/RRST、/XRST、/

温馨提示

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

评论

0/150

提交评论