TMS320x2833x Multichannel Buffered Serial Port McBSP Reference Guide 第七章 翻译译文.docx
《TMS320x2833x Multichannel Buffered Serial Port McBSP Reference Guide 第七章 翻译译文.docx》由会员分享,可在线阅读,更多相关《TMS320x2833x Multichannel Buffered Serial Port McBSP Reference Guide 第七章 翻译译文.docx(23页珍藏版)》请在冰点文库上搜索。
TMS320x2833xMultichannelBufferedSerialPortMcBSPReferenceGuide第七章翻译译文
第7章接收器配置
配置McBSP接收器,请执行以下步骤:
1将McBSP/接收器复位(见7.2节)。
2对McBSP寄存器进行操作,使其处在接受所需的状态(参见7.1节)。
3使接收器摆脱复位状态(见7.2节)。
(翻译不明)
7.1对McBSP寄存器进行编程,使其处在接受所需的状态
下面是当你配置的McBSP接收器时一个重要的任务列表。
每个任务对应一个或多个的McBSP寄存器位字段。
•全局操作:
将接收引脚设置为McBSP的引脚。
1.启用/禁用数字回环模式。
2.启用/停用时钟停止模式。
3.启用/禁用接收多频道选择模式。
•数据操作
1.选择1或2阶段为接收帧。
2.设置接收字长度(S)。
3.设置接收帧的长度。
4.启用/禁用接收帧同步忽略功能。
5.设置接收压扩模式。
6.设置接收数据的延迟。
7.设置接收符号扩展和理由模式。
8.设置接收中断模式。
•帧同步操作
1.设置接收帧同步模式。
2.设置接收帧同步极性。
3.设置采样率发生器(SRG的)帧同步周期和脉冲宽度。
•时钟操作
1.设置接收时钟模式。
2.设置接收时钟极性。
3.设置SRG时钟分频的参数。
4.设置SRG的时钟同步模式。
5.设置SRG的时钟模式(选择输入时钟)。
7.2复位和启用接收器
接收器的配置过程的第一步是要使接收器复位,最后一步是使接收器处于使能状态(使它摆脱复位状态)。
表7-1描述了这两个步骤中所使用的位。
7.2.1复位的注意事项
串行端口可以通过下面的两步进行初始化:
1.DSP复位(XRS信号驱动为低电平)会使接收器,发射器,采样率发生器复位。
当设备复位信号被取消(XRS信号发布),GRST=FRST=RRST=XRST=0整个串行端口保持在复位状态。
(翻译的我都不明白)
2.直接使用串口控制寄存器RRST和XRST位使串口发射器和接收器复位。
直接使用在SPCR2的GRST位使采样率发生器复位。
由于器件复位或接收器/发射器直接复位而使串口复位时,McBSP引脚的状态如表7-2。
对于McBSP的复位条件和效果的更多细节,请参见9.2节(重置和初始化McBSP)。
7.3设置接收引脚操作McBSP的引脚
为了实现McBSP功能而配置引脚时,你应该适当的配置GPxMUXn寄存器,除了这些,12位和13的PCR寄存器必须设置为0。
这些位被定义为保留。
7.4启用/禁用数字环回模式
DLB位决定数字回环模式是否是开启的。
DLB如表7-3中所述。
7.4.1数字环回模式
在数字回环模式中,接收信号通过相应的传输信号多路复用内部连接。
如表7-4所示。
这种模式允许一个单一的DSP器件对串行端口代码进行测试;McBSP接收它传输的数据。
Table7-4.ReceiveSignalsConnectedtoTransmitSignalsinDigitalLoopbackMode
7.5启用/禁用的时钟停止模式
CLKSTP位确定时钟停止模式的开启。
CLKSTP如表7-5中所述。
Table7-5.RegisterBitsUsedtoEnable/DisabletheClockStopMode
7.5.1时钟停止模式
时钟停止模式支持的SPI主从协议。
如果你不打算使用SPI协议的,可以清除CLKSTP位,禁用时钟停止模式。
在时钟停止模式下,时钟在每个数据传输结束时停止。
在每个数据传输开始时,时钟立即启动(CLKSTP=10B)或有半周期延迟(CLKSTP=11B)。
CLKXP位决定时钟信号(在MCLKX引脚上)的开始边界是上升还是下降。
CLKRP位决定的是在时钟信号(连接在MCLKR引脚)的上升沿还是下降沿对接收的数据进行采样。
表7-6总结了CLKSTP,CLKXP,CLKRP对串口操作的影响。
在时钟停
模式下,接收时钟与发送时钟内在相连,接收帧同步信号与发送帧同步信号内在相连。
Table7-6.EffectsofCLKSTP,CLKXP,andCLKRPontheClockScheme
7.6启用/禁用接收多频道选择模式
RMCM位决定是否开启接收多声道选择模式。
RMCM表7-7描述。
有关详细信息,请参见5.6节,接收多声道选择模式。
Table7-7.RegisterBitUsedtoEnable/DisabletheReceiveMultichannel
7.7选择一个或两个相位为接收帧
RPHASE位(见表7-8)决定是否接收数据帧有一个或两个阶段。
Table7-8.RegisterBitUsedtoChooseOneorTwoPhasesfortheReceiveFrame
7.8设置接收字长度(S)
RWDLEN1和RWDLEN2位字段(见表7-9)确定在接受的数据帧中,阶段1和阶段2中的串行数据各有多少字节。
Table7-9.RegisterBitsUsedtoSettheReceiveWordLength(s)
7.8.1字长度位
每帧可以有一个或两个相位,取决于RPHASE位值。
如果选择单相帧,RWDLEN1选定每个帧中接收的串行数据的长度。
如果双相位帧被选中,RWDLEN1决定在帧的第1相位的串行字长度,RWDLEN2决定帧的第2相位的串行字的字长。
7.9设置接收帧长度
RWDLEN1和RWDLEN2位字段(见表7-9)确定在接受的数据帧中,相位
1和相位2中的串行数据各有多少字节。
7.9.1选定帧的长度
接收帧的长度是在接收帧中串行字的数量。
每帧可以有一个或两个相位,取决于RPHASE位值。
如果选中(RPHASE=0)单相帧,帧的长度等于第1阶段的长度。
如果双相位帧被选中(RPHASE=1),帧的长度是第1阶段的长度加上第2阶段的长度。
7位的RFRLEN允许每个相位128字。
如何计算帧长度,请参阅表7-11。
这个长度分别对应于字的数目,时隙,每帧同步脉冲的渠道。
用[wminus1]操作RFRLEN域,其中W表示每阶段的字数。
例如,如果你想在第一阶段有一个128字的阶段,装入RFRLEN1127。
7.10启用/禁用接收帧同步屏蔽功能
RFIG位(见表7-12)控制接收帧同步忽略功能。
7.10.1意外的帧同步脉冲和帧同步忽略功能
如果一个帧同步脉冲在当前帧没有传递完全时启动另一个的帧的传递,则此帧同步脉冲被视为一个意外的帧同步脉冲。
当RFIG=1,忽略了这个意想不到的帧同步脉冲,接收仍然继续。
当RFIG=0,一个意想不到的FSR的脉冲导致McBSP丢弃RSR[1,2]中的内容,有利于在新传入的数据。
因此,如果发生RFIG=0并且发生一个意想不到的帧同步脉冲,串口:
1.中止当前的数据传输
2.设置在SPCR11RSYNCERR
3.开始一个新的数据字传输
关于帧同步错误条件的更多细节,请参见第4.3节,意外的接收帧同步脉冲。
7.10.2RFIG的影响的例子
图7-1显示了一个例子,在这个例子中,当(R/X)FIG=0时,B字的传递被一个意外的帧同步脉冲打断,这样,B的接收失败(B丢失)。
在经过适当的传输延时后一个新的数据被接受。
这种情况是接收的同步误差,设置RSYNCERR位。
Figure7-1.UnexpectedFrame-SynchronizationPulseWith(R/X)FIG=0
当一个意外的帧同步信号被忽略时(当(R/X)FIG=1)对比图一,图二显示了McBsp的操作。
在这里,字B的传输不会受到突发的脉冲的影响。
Figure7-2.UnexpectedFrame-SynchronizationPulseWith(R/X)FIG=1
7.11设置接收压扩模式
RCOMPAND位(见表7-13)决定是否压扩或者其他的数据传输选项
来为McBSP的接收工作所选择。
Table7-13.RegisterBitsUsedtoSettheReceiveCompandingMode(continued)
7.11.1压扩
压扩(压缩与扩展)硬件允许使用μ律或A-律格式进行压缩与扩展数据。
在美国和日本采用的压扩标准是μ律。
在欧洲采用的压扩标准被称为A-law。
μ律和A律的PCM记录的规格是CCITTG.711建议的一部分。
A律和μ律允许相应13位和14位的动态范围。
此范围之外的任何值都设置为最积极,最负价值。
因此,对于压扩,要想很好的工作,通过CPU或DMA控制器输入或者输出到McBSP的数据必须至少要16位宽。
μ律和A律两种格式数据被编码成8位码字。
被压扩的数据始终是8位宽,适当的字长位(RWDLEN1,RWDLEN2,XWDLEN1,XWDLEN2),因此必须被设置为0,表示一个8位宽的串行数据流。
如果压扩可用,而且任何一个帧相位都没有8位字长,则继续压扩,并假设字长为8位。
图7-3说明了压扩进程。
当发射机选择压扩时,压缩过程发生在从DXR1到XSR1复制数据的过程中。
根据指定的压扩标准(A律或μ律),发送数据被编码。
当接收机选择压扩时,扩建过程发生在从RBR1到DRR1复制数据的过程中。
将接收到的数据以二进制补码格式进行解码。
Figure7-3.CompandingProcessesforReceptionandforTransmission
7.11.2扩展数据的格式
对于接收,在RBR1中8位的压缩数据被扩展到在DRR1中的左对齐的16位数据。
当压扩被使用时,SPCR1中的RJUST位就被忽略。
7.11.3压扩内部数据
如果McBSP没有被使用(串口发送和接收部分被复位),压扩硬件可以压扩内部数据。
压扩内部数据的能力,参见2.2.2节,。
7.11.4接收低位优先的选择权
通常情况下,McBSP是以最高位(MSB)优先发送或者接收所有数据。
然而,某些8位数据协议(不使用压扩的数据)需要低位(LSB)先被转移。
如果设置RCR2中的RCOMPAND=01B,8位字的顺序在接收期间会被反转。
类似于压扩,只有在适当的字长位设置为0时才能启用此功能,表明8位字被串行传输。
如果一帧的任何一个相位都没有8位的字长长度,则McBSP假设字长为8位,LSB优先顺序完成。
7.12设置接收数据延迟
7.12.1数据延迟
一帧的开始被定义,是在第一个时钟周期,即是为帧同步变为高电平的时候。
如果需要的话,随着帧传输的开始,实际数据的接收或传输的开始可以被延迟。
这种延迟被称为数据延迟。
RDATDLY指定接收数据延迟。
可编程数据延迟的范围是零到两个位时钟(RDATDLY=00B-10B),表7-14和图7-4所示。
在这个图中,数据的传输是一个8-bit的值,该值被列在labelB7,B6,B5中等等。
通常情况下,1位延迟会被选中,因为数据通常伴随1个周期的高帧同步脉冲。
7.12.20bit的数据延迟
通常情况下,伴随着内部串行时钟CLK(R/X)的某个边沿,帧同步脉冲被检测到或者被采样。
因此,在下一个周期或更更迟(取决于数据的延迟值),数据可以被接收或发送。
然而,在0位数据延迟的情况下,在同一个串行时钟周期下,数据必须做好接收或者发送的准备。
对于接收,这个问题解决了,因为接收数据在MCLKR的第一个上升沿取样,且在MCLKR中一个高有效的内部FSR被检测到。
然而,数据传输必须在内部CLKX的上升沿开始,而且内部CLKX可以产生帧同步。
因此,第一个数据位被认为是目前在XSR1中的,因此在DX。
发送器,然后异步检测帧同步信号(FSX)变为高有效,并立即开始驱动在DX引脚要发送的第一个bit。
Figure7-4.RangeofProgrammableDataDelay
7.12.32-BitDataDelay
一个两bit数据延迟时间允许串口连接不同类型的T1帧设备,该设备上,数据流被一个帧bit所处理。
在这样两位(在1-bit延迟之后,帧bit出现,在2-bit延迟之后数据出现)延迟的数据流接收过程中,串口基本上从数据流中丢弃帧位,如图所示7-5。
在这个数字中,传输的数据是一个8bit的值,数据被标记在B7,B6,B5等等。
Figure7-5.2-BitDataDelayUsedtoSkipaFramingBit
7.13SettheReceiveSign-ExtensionandJustificationMode
RJUST位(见表7-15)确定是否McBSP接收到的数据为符号扩展,和它是如何被证明的。
.
7.13.1Sign-ExtensionandtheJustification
在SPCR1中的RJUST位来选择在RBR[1,2]中的数据在DRR[1,2]中是否为左对齐或者右对齐,和在DRR[1,2]中的没有被使用的bits是否被0或者被signbits所填充。
表7-16和表7-17显示各种RJUST值的影响。
第一个表显示一个12位接收数据值ABCh的影响的例子。
第二个表中显示了一个20位接收数据值ABCDEh的影响的例子。
Table7-17.Example:
UseofRJUSTFieldWith20-BitDataValueABCDEh
7.14设置接收中断模式
RINTM位(见表7-18)确定哪个事件产生一个到CPU的接收中断请求。
接收中断(RINT)通知CPU的串行端口状态的变化。
存在四个选项配置此中断。
选项被在SPCR1的接收中断bits—RINTM所设定
7.15SettheReceiveFrame-SynchronizationMode
在table7-19所描述的bits决定对于接收帧同步的资源,而且决定FSRpin的功能。
7.15.1ReceiveFrame-SynchronizationModes
表7-20显示了您可以如何来选择各种提供接收帧同步信号的来源和FSR引脚上的影响。
在FSR引脚信号的极性由FSRP位所决定。
在数字环回模式下(DLB=1),发送帧同步信号被用做接收帧同步信号。
此外,在时钟停止模式下,内部的接收时钟信号(MCLKR)和内部接收帧同步信号(FSR)从内部连接到他们的相应发送部分,CLKX和FSX。
Table7-19.RegisterBitsUsedtoSettheReceiveFrameSynchronizationMode
Table7-20.SelectSourcestoProvidetheReceiveFrame-SynchronizationSignalandtheEffectontheFSRPin(continued)
7.16设置帧同步脉冲极性
FSRP-bit决定帧同步脉冲在FSR引脚上是否是高有效或者低有效,见table7-21.
Table7-21.RegisterBitUsedtoSetReceiveFrame-SynchronizationPolarity
7.16.1帧同步脉冲,时钟信号,还有他们的极性
接收帧同步脉冲可有采样率发生器在内部产生(见3.2节),或由外部源驱动。
帧同步源可以通过编程模式位(在PCR中的FSRM)来选择。
FSR也会被SRGR2中的GSYNC位所影响。
有关,FSRM和GSYNC影响的信息,请参阅第7.15节,设置接收帧同步模式。
同样,通过编程(动词)模式位(CLKRM在PCR),接收时钟可以被选择为输入或者输出,(见7.17节,设置接收时钟模式)
当FSR和FSX为输入端时(FSXM=FSRM=0,外部帧同步脉冲),McBSP分别在时钟下降沿,内部MCLKR的下降沿,和内部CLKX的下降沿(?
?
)来检测他们。
数据到达DR引脚时同样用内部MCLKR的下降沿取样。
这些内部时钟信号要么来自于经过CLK(R/X)针的外部资源,或由内部的采样率生成器时钟(CLKG)驱动送往McBSP。
当FSR和FSX为输出时,假使他们是有采样率生成器驱动,那么他们在内部时钟的上升沿生成(过渡到他们的活动状态)。
类似的,DR引脚的数据也是在内部CLKX的上升沿输出。
引脚控制寄存器(PCR)上的FSRP,FSXP,CLKRP,和CLKXP分别配置FSR,FSRP,FSXP,CLKRP,和CLKXP信号的极性。
所有从内部到串行端口的帧同步信号(内部FSR,内部FSX)都高有效。
如果串行端口被配置为外部帧同步(FSR/FSX被输入到McBSP),并且FSRP=FSXP=1,外部低活度的帧同步信号再被送往接收器(内部FSR)和发射器(内部FSX)之前反向。
类似的,如果内部同步信号(FSR/FSX为输出引脚并且GSYNC=0)被选中,并且如果极性位FS(R/X)P=1,在送往FS(R/X)针之前,内部高有效的帧同步信号也会反向。
在传输方面,传输时钟极性位CLKXP使边沿用于移位和时钟输出传输数据。
数据往往在内部CLKX的上升沿被传输。
如果CLKXP=1,并且外部时钟被选中(CLKXM=0,并且CLKX是输入)CLKX上的外部下降沿触发输入时钟在被送往发射器前转换为外部上升沿触发时钟。
如果CLKXP=1,并且被选择的内部时钟((CLKRM=1且CLKX是输出引脚),内部(上升沿触发)时钟,内部CLKX,在MCLKR引脚上输出之前,都被反转。
同样的,接收器可以稳定地采样数据(数据是通过发送器,在时钟的上升沿锁存),接收时钟极性bit,CLKRP,设置被用来采样接收数据的边沿。
接收数据总是在内部MCLKR的下降沿采样,因此,如果CLKRP=1而且外部时钟被选定(CLKRM=0,MCLKR为输入引脚),在MCLKR上的外部上升沿触发输入时钟在被发送到接收器之前被翻转到下降沿触发时钟,如果CLKRP=1而且内部时钟被选定(CLKRM=1)内部下降沿出发时钟在通过MCLKR引脚被发送出去之前,被反转到上升沿触发时钟。
MCLKRP=CLKXP的系统中,同一个时钟(内部和外部)被用来锁定接收器和发射器。
接收方使用相反的边缘as发送器来确保有效的data-setup和data-hold。
图片7-6展示了,通过使用同样时钟下降沿的McBSP接收器,被外部串行设备在上升沿锁定的数据是怎样被取样得。
7.16.2帧同步周期和帧同步脉冲宽度
采样率发生器可以产生一个时钟信号,CLKG,和一个帧同步信号,FSG。
如果采样率发生器提供接受或转换帧同步信号,你必须对FPER和FWID的位字段进行编程。
在FSG上,从一个帧同步脉冲的开始到下一个脉冲开始的这段时间是CLKG周期(FPER+1)。
12位FPER可以容纳1-4096个周期的帧同步时间,他每帧允许高达4096个数据位。
当GSYNC=1,FPER是一个不重要的值。
FSG是每个脉冲都有CLKG一个周期的宽度(FWID+1)。
8位FWID允许的脉冲宽度为1-256个CLKG周期。
建议FWID被设定的值小于设定的字长。
FPER和FWID中的值被加载到不同的倒数计数器,12位FPER计数器从设定值(最大4095)到0倒数生成的时钟周期。
8位FWID计数器从设定值(最大255)到0倒数生成的时钟周期。
表7-22列出了FPER和FWID的设置。
图7-7是一个16个CLKG周期的帧同步时间(FPER=15or00001111b)和一个活跃宽度为2个CLKG周期的帧同步脉冲(FWID=1)。
当采样率发生器重置,FSG在其不活动的状态。
然后,当GRST=1并且FSGM=1时,帧同步脉冲就生成了。
帧的宽度值(FWID+1)在每个CLKG周期中倒数,知道其值为0。
与此同时,帧的时间值(FPER+1)也在倒数。
当这个值达到0时,FSG开始升高,表明一个新的帧。
7.17设定接收时钟模式
表7-23设置接收时钟模式的位的设置。
7.17.1为接收时钟选择一个源并为MCLKR引脚选择一个数据方向
表7-24显示了您可以选择各种来源提供接收时钟信号和影响MCLKR销。
MCLKR销上信号的极性由CLKRP位决定。
在数字回路模式(DLB=),传输时钟信号作为接收时钟信号。
而在时钟停止模式,内部时钟接收信号(MCLKR)和内部接收帧同步信号(FSR)是在内部连接到他们的传输通行上的,CLKX和FSX。
7.18设置接收时钟极性
7.18.1帧同步脉冲,时钟信号和他们的极性
接收帧同步脉冲可由采样率生成器在内部生成(见3.2),或者由一个外部源驱动。
帧同步源由编程模式位FSRM所选定,。
在SRGR2中FSR也受GSYNC的影响。
关于FSRM和GSYNC的影响,见章节7.15,设定接收帧同步模式。
类似的,接收时钟可以被PCR里的编程模式位CLKRM选定为输入或者输出(见章节7.17设置接收时钟模式)。
当FSR和FSX输入时(FSXM=FSRM=0,外部帧同步脉冲),McBSP分别用内部下降沿时钟,内部MCLKR和内部CLKX检测他们。
到达DR销的接收数据也是由内部MCLKR在下降沿取的样。
这些内部时钟信号要么源自通过CLK(R/X)销的外部源,要么有内部采样率生成器驱动输送到McBSP。
当FSR和FSX输出时,假使他们有采样率生成器驱动,他们在内部时钟CLK(R/X)的上升沿生成(过渡到他们的活动状态)。
类似的,DX销的数据在内部CLKX.的上升沿输出。
引脚控制寄存器(PCR)里的FSRP,FSXP,CLKRP,和CLKXP分别配置FSRP,FSXP,CLKRP,和CLKXP信号的极性。
所有串行端口内部的帧同步信号(内部FSR,内部FSX)处于高度活跃状态。
如果串行端口被配置为外部帧同步,(FSR/FSX被输入到McBSP),并且FSRP=FSXP=1,外部低地活跃度的帧同步信号再被送往接收器(内部FSR)和发射器(内部FSX)之前反向。
类似的,如果内部帧同步信号(FSR/FSX是输出引脚,并且GSYNC=0)被选中,如果极性位FS(R/X)P=1,内部高活跃度的帧同步信号在被送往FS(R/X)销之前就会反向。
在传输方面,传输极性位CLKXP被用来设置转换和锁定传输数据的边沿。
数据往往在内部CLKX的上升沿转换。
如果CLKXP=1,并且外部时钟被选定(CLKXM=0,并且CLKX作为输出),CLKX的外部下降沿触发输入时钟在被送往发射器之前转换为外部上升沿出发时钟。
如果CLKXP=1,并且内部时钟被选定(CLKXM=1,并且CLKX是输出销),内部时钟(上升沿触发),内部CLKX在在