首页 理论教育 如何实现多通道缓冲串行口的优化?

如何实现多通道缓冲串行口的优化?

时间:2023-06-20 理论教育 版权反馈
【摘要】:多通道缓冲串行口是一个高速、全双工、多通道缓冲串行接口,可直接与其他TMS320C54x、编码器以及系统中的其他串口器件通信。TMS320C54x的多通道缓冲串行口是在缓冲串行口的基础上发展起来的。在外部通道选择电路的控制下,采用分时方式实现多路缓冲串行通信,与以前的串行口相比,具有很大的灵活性。2.多通道缓冲串行口的控制寄存器TMS320C54x可以通过内部总线访问McBSP的控制寄存器。

如何实现多通道缓冲串行口的优化?

多通道缓冲串行口(McBSP)是一个高速全双工、多通道缓冲串行接口,可直接与其他TMS320C54x、编码器以及系统中的其他串口器件通信。TMS320C54x的多通道缓冲串行口(McBSP)是在缓冲串行口的基础上发展起来的。在外部通道选择电路的控制下,采用分时方式实现多路缓冲串行通信,与以前的串行口相比,具有很大的灵活性。McBSP提供了全双工通信、连续数据流的双缓冲数据寄存器、接收和发送独立的帧和时钟信号,可以直接与T1/E1帧接口。

McBSP的主要特点:

1)串行口的接收、发送时钟既可由外部设备提供,又可由内部时钟提供。

2)帧同步信号和时钟信号的极性可编程。

3)信号的发送和接收既可单独运行,也可结合在一起配合工作。

4)McBSP的串行口可由CPU控制运行,也可以脱离CPU通过直接内存的读取操作来单独运行。

5)具有多通道通信能力,可达128个通道。

6)数据的宽度可在8、12、16、20、24和32位中选择,并可对数据进行A律和μ律压缩和扩展。

1.多通道缓冲串行口(McBSP)结构

McBSP的支持功能有全双工通信;双缓冲发送和三缓冲接收数据存储器;支持连续的数据流传送;能独立的接收、发送帧和时钟信号;可直接与工业标准的编码器、模拟界面芯片(AICs)、其他串行A/D或D/A器件连接并通信;具有外部变速时钟发生器及内部频率可编程时钟发生器;可以直接利用多种串行协议接口通信;多达128路发送和接收通道;数据的字长可选择,包括8、12、16、20、24和32位;可进行μ律或A律的压缩扩展通信;帧同步和时钟信号的极性可编程;可编程内部时钟和帧发生器。

McBSP串行口是由外部通信引脚、接收发送通道、时钟及帧同步信号发生器、多通道选择以及CPU中断信号和DMA同步信号等组成,可分为数据通道和控制通道两部分。数据通道主要完成数据的接收和发送;控制通道可编程完成内部时钟和帧同步信号的产生与控制、多通道的选择、产生中断信号送往CPU和产生同步事件通知DMA控制器等。

McBSP的内部结构如图8-19所示。从图中可以看出,McBSP串口对外引出了硬件连线引脚,它们是串行数据发送引脚DX,串行数据接收引脚DR,发送时钟引脚CLKX,接收时钟引脚CLKR,发送帧同步引脚FSX,接收帧同步引脚FSR,外部提供的采样时钟引脚CLKS。

McBSP通过DX和DR引脚与外部设备进行数据通信,时钟和帧同步等控制信息的传输通过CLKX、CLKR、FSX和FSR引脚来实现。

在McBSP中可以内部连接TMS320C54x中断信号或DMA同步事件等信号。例如,RINT,可用于触发TMS320C54x的发送中断信号;XINT,可用于触发TMS320C54x的接收中断信号;REVT,可用于触发DMA接收同步事件信号;XEVT,可用于触发DMA发送同步事件信号;REVTA,可用于触发DMA接收同步事件信号;XEVTA,可用于触发DMA发送同步事件信号。

2.多通道缓冲串行口(McBSP)的控制寄存器

TMS320C54x可以通过内部总线访问McBSP的控制寄存器。McBSP寄存器列表见表8-8。

978-7-111-35536-6-Chapter08-43.jpg

图8-19 多通道缓冲串行口(McBSP)的内部结构

表8-8 McBSP寄存器列表

978-7-111-35536-6-Chapter08-44.jpg

(续)

978-7-111-35536-6-Chapter08-45.jpg

用于McBSP串口配置的寄存器共有7个,分别为串口控制寄存器SPCR1和SPCR2、引脚控制寄存器PCR、接收控制寄存器RCR1和RCR2,以及发送控制寄存器XCR1和XCR2。3个16位寄存器SPCR1、SPCR2和PCR可进行串口配置。这3个寄存器包含了McBSP的状态信息和当前操作的配置。接收和发送寄存器RCR[1,2]和XCR[1,2]用于配置收发操作的不同参数。

(1)McBSP的控制寄存器SPCR1

SPCR1设置McBSP串口的数字环回模式、接收符号扩展和校验模式、ClockStop模式、DX是否允许、A-bis模式、接收中断模式等,并给出接收同步错误、接收移位寄存器(RSR[1,2])空、接收准备好等状态。此外可以进行接收复位。SPCR1各位的定义如图8-20所示,其各位的功能描述见表8-9。

978-7-111-35536-6-Chapter08-46.jpg

图8-20 SPCR1的位结构定义

表8-9 SPCR1的位功能说明

978-7-111-35536-6-Chapter08-47.jpg

(续)

978-7-111-35536-6-Chapter08-48.jpg

(2)McBSP的控制寄存器SPCR2

SPCR2设置McBSP自由运行模式、SOFT模式、发送中断模式,并给出发送同步错误、发送移位寄存器(XSR[1,2])空、发送准备好等状态。此外可以进行发送复位、采样率发生器复位、帧同步发生电路复位。SPCR2的位结构定义如图8-21所示,其各位的功能描述见表8-10。

978-7-111-35536-6-Chapter08-49.jpg

图8-21 SPCR2的位结构定义

表8-10 SPCR2的位功能说明

978-7-111-35536-6-Chapter08-50.jpg

(续)

978-7-111-35536-6-Chapter08-51.jpg

(3)McBSP的引脚控制寄存器PCR

PCR设置McBSP传输帧同步模式、接收帧同步模式、发送时钟模式、接收时钟模式、发送帧同步信号的极性、接收帧同步信号的极性、发送时钟极性、接收时钟极性,并给出CLKS、DX、DR脚的状态。此外PCR还定义发送和接收部分在复位时相应引脚是否配置为通用I/O。PCR各位的定义如图8-22所示,其各位的功能描述见表8-11。

978-7-111-35536-6-Chapter08-52.jpg

图8-22 PCR的位结构定义

表8-11 PCR的位功能说明

978-7-111-35536-6-Chapter08-53.jpg

(续)

978-7-111-35536-6-Chapter08-54.jpg

(4)McBSP的接收控制寄存器RCR1

RCR1设置McBSP接收时第一相(FIRSTPHASE)的接收帧长度可选择1~128个字,接收字长度可选择8位、12位、16位、20位、24位、32位。RCR1各位的定义如图8-23所示,其各位的功能描述见表8-12。

978-7-111-35536-6-Chapter08-55.jpg

图8-23 RCR1的位结构定义

表8-12 RCR1的位功能说明

978-7-111-35536-6-Chapter08-56.jpg

(5)McBSP的接收控制寄存器RCR2

RCR2设置McBSP接收时是否允许第二相(RPHASE=1)。如果允许,设置McBSP接收时第二相的接收帧长度可选择1~128个字,接收字长度可选择8位、12位、16位、20位、24位、32位。此外,RCR2设置McBSP接收时的接收压缩模式、接收同步帧忽略模式、接收数据延迟。RCR2各位的定义如图8-24所示,其各位的功能描述见表8-13。

978-7-111-35536-6-Chapter08-57.jpg

图8-24 RCR2的位结构定义

表8-13 RCR2的位功能说明

978-7-111-35536-6-Chapter08-58.jpg

(6)McBSP的发送控制寄存器XCR1

XCR1设置McBSP发送时第一相(FIRSTPHASE)的发送帧长度可选择1~128个字,发送字长度可选择8位、12位、16位、20位、24位、32位。XCR1各位的定义如图8-25所示,其各位的功能描述见表8-14。

978-7-111-35536-6-Chapter08-59.jpg

图8-25 XCR1的位结构定义

表8-14 XCR1的位功能说明

978-7-111-35536-6-Chapter08-60.jpg

(7)McBSP的发送控制寄存器XCR2

XCR2设置McBSP发送时是否允许第二相(XPHASE=1)。如果允许,设置McBSP时第二相的发送帧长度可选择1~128个字,发送字长度可选择8位、12位、16位、20位、24位、32位。此外,XCR2设置McBSP发送时的发送压缩模式、发送同步帧忽略模式、发送数据延迟。XCR2各位的定义如图8-26所示,其各位的功能描述见表8-15。

978-7-111-35536-6-Chapter08-61.jpg

图8-26 XCR2的位结构定义

表8-15 XCR2的位功能说明

978-7-111-35536-6-Chapter08-62.jpg

(续)(www.xing528.com)

978-7-111-35536-6-Chapter08-63.jpg

3.McBSP串口的控制操作

(1)McBSP串行口的复位

McBSP串行口的复位有两种方式,分别是系统复位和McBSP复位方式。

1)系统复位,是指通过DSP复位端978-7-111-35536-6-Chapter08-64.jpg复位。当978-7-111-35536-6-Chapter08-65.jpg时,使串口发送器、接收器、采样率发生器复位;RS复位完成后,串口仍然处于复位状态,此时978-7-111-35536-6-Chapter08-66.jpg978-7-111-35536-6-Chapter08-67.jpg978-7-111-35536-6-Chapter08-68.jpg978-7-111-35536-6-Chapter08-69.jpg均为0。

2)McBSP复位方式,是指利用McBSP控制寄存器的控制位复位。通过对控制寄存器中的978-7-111-35536-6-Chapter08-70.jpg978-7-111-35536-6-Chapter08-71.jpg978-7-111-35536-6-Chapter08-72.jpg位清0,可分别对发送器、接收器和采样率发生器进行复位。

表8-16列出了两种复位情况下串口各引脚的状态。

表8-16 McBSP复位状态

978-7-111-35536-6-Chapter08-73.jpg

(续)

978-7-111-35536-6-Chapter08-74.jpg

(2)McBSP串行口的初始化

McBSP复位后,可进行初始化,其步骤如下:

1)对控制寄存器的复位位(接收/发送复位)置0,即使RRST、XRST和GRST位为0。

2)根据串口复位的要求,对McBSP的寄存器进行编程配置。

3)等待2个时钟周期,以保证内部时钟同步。

4)对DXD写信息,设置数据通道。

5)将XRST和RRST置1,使串口处于使能状态。

6)如果需要内部帧同步信号,则设定FRST=1。

7)等待2个时钟周期后,接收器和发送器被激活。

(3)McBSP串口的多通道选择配置

使用单相帧同步设置McBSP,可为发送器、接收器选择独立的多通道工作模式。每一帧代表一个时分复用(TDM)数据流。用(R/X)FRLEN1位设定的每帧字数来表示所选的有效通道数。当采用时分复用数据流时,TMS320C54x仅需要处理少数通道。为了节省存储空间和总线带宽,多通道选择允许对发送和接收的多通道进行单独配置。McBSP的多通道选择配置可以通过设定多通道控制寄存器来进行。下面介绍各组寄存器的功能使用。

1)多通道控制寄存器MCR1

MCR1设置McBSP在多通道工作模式时的接收PART-B的块结构、接收PART-A的块结构、当前可接收块、接收多通道选择。MCR1各位的定义如图8-27所示,其各位的功能描述见表8-17。

978-7-111-35536-6-Chapter08-75.jpg

图8-27 MCR1的位结构定义

表8-17 MCR1的位功能说明

978-7-111-35536-6-Chapter08-76.jpg

(续)

978-7-111-35536-6-Chapter08-77.jpg

2)多通道控制寄存器MCR2

MCR2设置McBSP在多通道工作模式时的发送PART-A块结构、发送PART-B块结构、当前发送块、发送多通道选择。MCR2各位的定义如图8-28所示,其各位的功能描述见表8-18。

978-7-111-35536-6-Chapter08-78.jpg

图8-28 MCR2的位结构定义

表8-18 MCR2的位功能说明

978-7-111-35536-6-Chapter08-79.jpg

(续)

978-7-111-35536-6-Chapter08-80.jpg

3)接收通道使能寄存器RCERx

接收通道使能寄存器RCERx,用于使能32个通道的接收,其中A区和B区各有16个通道,对应的通道使能寄存器分别为RCERA和RCERB。RCERA和RCERB各位的定义分别如图8-29和图8-30所示。RCERA和RCERB各位的功能描述分别见表8-19和表8-20。

978-7-111-35536-6-Chapter08-81.jpg

图8-29 RCERA的位结构定义

978-7-111-35536-6-Chapter08-82.jpg

图8-30 RCERB的位结构定义

表8-19 RCERA的位功能说明

978-7-111-35536-6-Chapter08-83.jpg

表8-20 RCERB的位功能说明

978-7-111-35536-6-Chapter08-84.jpg

4)发送通道使能寄存器XCERx

发送通道使能寄存器XCERx,用于使能32个通道的发送,其中A区和B区各有16个通道,对应的通道使能寄存器分别为XCERA和XCERB。XCERA和XCERB各位的定义分别如图8-31和图8-32所示。XCERA和XCERB各位的功能描述分别见表8-21和表8-22。

978-7-111-35536-6-Chapter08-85.jpg

图8-31 XCERA的位结构定义

978-7-111-35536-6-Chapter08-86.jpg

图8-32 XCERB的位结构定义

表8-21 XCERA的位功能说明

978-7-111-35536-6-Chapter08-87.jpg

表8-22 XCERB的位功能说明

978-7-111-35536-6-Chapter08-88.jpg

4.McBSP的通信应用

在时钟信号和帧同步信号控制下,接收和发送通过DR和DX引脚与外部器件直接通信。如图8-11所示的连接方式,TMS320C54x对McBSP的操作是利用16位控制寄存器,通过片内外设总线进行存取控制。

(1)数据发送过程

1)TMS320C54x通过外设总线,将数据写入数据发送寄存器DXR[1,2]。

2)McBSP串口将DXR[1,2]中的发送数据传送到发送移位寄存器XSR[1,2]中。

3)通过发送移位寄存器XSR[1,2],将数据经DX引脚移出发送。

(2)数据接收过程

1)McBSP串口通过DR引脚,将接收数据移入接收移位数据寄存器RSR[1,2]中。

2)将RSR[1,2]中的接收数据复制到接收缓冲寄存器RBR[1,2]。

3)将RBR[1,2]中的接收数据复制到数据接收寄存器DRR[1,2]。

4)TMS320C54x或DMA控制器从DRR[1,2]中读出数据。

McBSP的工作模式有多种:多通道缓冲模式、SPI模式、A-bis模式、数据回路模式、GPIO模式、省电模式。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈