串行通信接口DSP设计Word文件下载.docx

上传人:b****5 文档编号:17371402 上传时间:2022-12-01 格式:DOCX 页数:66 大小:276.70KB
下载 相关 举报
串行通信接口DSP设计Word文件下载.docx_第1页
第1页 / 共66页
串行通信接口DSP设计Word文件下载.docx_第2页
第2页 / 共66页
串行通信接口DSP设计Word文件下载.docx_第3页
第3页 / 共66页
串行通信接口DSP设计Word文件下载.docx_第4页
第4页 / 共66页
串行通信接口DSP设计Word文件下载.docx_第5页
第5页 / 共66页
点击查看更多>>
下载资源
资源描述

串行通信接口DSP设计Word文件下载.docx

《串行通信接口DSP设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《串行通信接口DSP设计Word文件下载.docx(66页珍藏版)》请在冰豆网上搜索。

串行通信接口DSP设计Word文件下载.docx

22

DXR20

McBSP0数据发送寄存器2

23

DXR10

McBSP0数据发送寄存器1

24

TIM

定时器0寄存器

25

PRD

定时器0周期计数器

26

TCR

定时器0控制寄存器

27

保留

28

SWWSR

软件等待状态寄存器

29

BSCR

块切换控制寄存器

2A

2B

SWCR

软件等待状态控制寄存器

2C

HPIC

HPI控制寄存器

2D~2F

30

TIM1

定时器1寄存器

31

PRD1

定时器1周期计数器

32

TCR1

定时器1控制寄存器

33~37

38

SPSA0

McBSP0串口子块地址寄存器

39

SPSD0

McBSP0串口子块数据寄存器

3A~3B

3C

GPIOCR

通用I/O引脚控制寄存器

3D

GPIOSR

通用I/O引脚状态寄存器

3E~3F

40

DRR21

McBSP1数据接收寄存器2

41

DRR11

McBSP1数据接收寄存器1

42

DXR21

McBSP1数据发送寄存器2

43

DXR11

McBSP1数据发送寄存器1

44~47

48

SPSA1

McBSP1串口子地址寄存器

49

SPSD1

McBSP1串口子数据寄存器

4A~53

54

DMPREC

DMA通道容许与优先控制寄存器

55

DMSA

DMA子块地址寄存器

56

DMSDI

带子块地址递增的DMA数据寄存器

57

DMSDN

DMA子地址寄存器

58

CLKMD

时钟模式寄存器

59~5F

1.2可编程定时器

C5402有两个片内定时器,主要用来产生周期性的中断。

它们的动态范围由16位计数器和4位预定标计数器来确定。

计数频率来自于CPU的时钟频率。

每个定时器都具有软件可编程的3个控制寄存器。

1.2.1定时器的结构及特点

C5402内部有定时器0和定时器1两个定时器。

这两个定时器的结构都是一样的,每个定时器有3个控制寄存器,它们是:

●TIM定时器寄存器,是减1计数器,可加载周期寄存器PRD的值,并随计数减少;

●PRD定时器周期寄存器,PRD中存放定时器的周期计数值,提供TIM重载用;

●TCR定时器控制寄存器,TCR包含定时器的控制和状态位,控制定时器的工作过程

这3个寄存器都是存储器映象寄存器,其所在的地址如表6.1所示。

图1.1所示为定时器的逻辑框图,它由两个基本的功能块组成,即主定时器模块(由PRD和TIM组成)和预定标器模块(由TCR的TDDR和PSC位组成)。

图1.1定时器的逻辑框图

定时器是一个片内向下(递减)计数器。

预定标器PSC由CPU提供时钟,TIM由PSC减为0后产生的信号为时钟。

每次当计数器TIM减少到0时,会产生一个定时器中断(TINT),计数器同时重载周期值。

DSP定时器有以下的主要特点:

(1)由16位计数器和4位预分频计数器组成。

16位计数器的触发脉冲由预分频计数器提供,预分频计数器由CPU工作时钟决定。

(2)定时器是一个减计数器。

(3)有复位功能。

(4)可以选择调试断点时定时器的工作方式

1.2.2定时器的控制寄存器

DSP核通过访问或控制TIM、PRD和TCR这3个寄存器来控制定时器的工作。

其中TCR控制定时器的工作过程,其各位的意义描述如表1.2所示

表1.2TCR定时器控制寄存器

复位值

功能

15~12

Reserved

11

10

Soft

Free

Soft和Free位一起决定在调试中遇到断点时的定时器工作状态。

FreeSoft定时器状态

00定时器立即停止工作

01当计数器减到0时停止工作

1x定时器继续运行

9~6

PSC

定时器预定标计数器。

当PSC中的数值减到0后,TDDR中的数加载到PSC,TIM减1

5

TRB

定时器重新加载控制位。

复位片内定时器。

当TRB置位时,TIM重新装载PRD的值,PSC重新装载TDDR中的值。

TRB总是读为0。

4

TSS

定时器停止位,TSS=0,定时器开始工作,TSS=1定时器停止。

3~0

TDDR

0000

当PSC减为0时,TDDR中的值被装载到PSC中。

1.2.3定时器的操作过程

1.定时器的工作过程

主定时器模块由PRD和TIM组成。

在正常工作情况下,当TIM减计数到0后,PRD中的内容自动地加载到TIM。

当系统复位(SRESET输入信号有效)或者定时器单独复位(TRB有效)时,PRD中的内容重新加载到TIM。

TIM由预定标器PSC提供时钟,每个来自预定标块的输出时钟使TIM减l。

主计数器块的输出为定时器中断(TINT)信号,该信号被送到CPU和定时器输出TOUT引脚。

预定标模块由预定标计数器(PSC)和定时器分频系数(TDDR)组成。

PSC和TDDR都是定时器控制寄存器(TCR)的位。

在正常工作情况下,当PSC减计数到0时,TDDR的内容加载到PSC。

当系统复位或者定时器单独复位时,TDDR的内容重新加载到PSC。

PSC由CPU提供时钟,每个CPU时钟信号将使PSC减1。

通过读TCR,可以读取PSC,但是它不能直接被写。

通过TSS位的控制可以关闭定时器的时钟输入,停止定时器的运行。

当不需要定时器时,停止定时器的操作以降低DSP功耗。

2.定时时间的计算

每次当定时器计数器减少到0时,会产生一个定时器中断(TINT),定时器中断(TINT)周期可由如下公式计算:

定时器的中断周期

通过读TIM,可以读取定时器的当前值;

读TCR可以读取PSC。

由于读这两个寄存器需要两条指令,就有可能在两次读之间因为计数器减而发生读数变化。

因此,如果需要精确的定时测量,就应当在读这两个值前先停止定时器。

3.定时器的初始化

初始化定时器可采用如下步骤:

(1)将TCR中的TSS位置1,停止定时器;

(2)加载PRD;

(3)重新加载TCR以初始化TDDR;

(4)重新启动定时器。

通过设置TSS位为0,并设置TRB位为l以重载定时器周期值,使能定时器。

使能定时器中断的操作步骤如下(假定INTM=1):

(1)将IFR中的TINT位置1,清除尚未处理完(挂起)的定时器中断。

(2)将IMR中的TINT位置l,使能定时器中断。

(3)可以将STl中的INTM位清0,使能全局中断。

复位时,TIM和PRD被设置为最大值FFFFh,定时器的分频系数(TCR的TDDR位)清0,并且启动定时器。

注意复位后定时器是工作的,如果不用可以在初始化中停止其运行。

1.3串行口

一般TI公司的DSP都有串行口,C54x系列DSP集成在芯片内部的串口分为4种:

标准同步串口(SP)、带缓冲的串行接口(BSP)、时分复用(TDM)串行口和多通道带缓冲串行接口(McBSP)。

其中McBSP属于增强型片内外设。

芯片不同串口配置也不尽相同,表1.3列出了C54x系列DSP的片内接口数量和种类。

串行接口一般通过中断来实现与核心CPU的同步。

串行接口可以用来与串行外部器件相连,如编码解码器、串行A/D或D/A以及其它串行设备。

表1.3C54x系列DSP片内串口数量和形式

芯片

标准串行接口

(BSP)

带缓冲串行接

口(BSP)

时分复用(TDM)

串行接口

多通道缓冲串口

(McBSP)

C541

2

C542

1

C543

C546

C548

C549

C5402

C5410

3

C5420

6

1.3.1标准同步串行口SP

标准同步串行口是一种高速、全双工同步串行口,用于提供与编码器、A/D转换器等串行设备之间的通信。

标准同步串行口发送器和接收器是双向缓冲的,并可单独屏蔽外部中断信号。

它有2个存储器映像寄存器用于传送数据,即发送数据寄存器(DXR)和接收数据寄存器(DRR),另外还有一个串口控制寄存器SPC。

每个串行口的发送和接收部分都有独立的时钟、帧同步脉冲以及串行移位寄存器。

1.标准同步串行口的结构和特点

串行口由16位数据接收寄存器(DRR)、数据发送寄存器(DXR)、接收移位寄存器(RSR)、发送移位寄存器(XSR)以及控制电路所组成。

标准串行口的组成框图如图1.2所示。

图1-2标准串行口的组成框图

串口共涉及到6个引脚,与接受数据有关的是:

接收时钟信号CLKR、串行数据接收DR、接收帧同步信号FSR。

与发送数据有关的是:

发送时钟信号CLKX、串行数据发送DX、发送帧同步信号FSX。

标准同步串口有以下一些特点:

(1)发送与接收的帧同步和时钟同步信号完全独立。

(2)发送和接收部分可独立复位。

(3)串口的工作时钟可来源于片外或片内。

(4)独立的发送和接收数据线。

(5)具有数据返回方式,便于测试。

(6)在程序调试时,工作方式可选。

(7)可以以查询和中断两种方式工作

2.串行口控制寄存器

C54x串行口的操作是由串行口控制寄存器(SPC)决定的。

SPC寄存器的控制位及功能如表1.4所示:

表1.4串口控制寄存器SPC

15

14

FreeSoft串行口时钟的状态

00立即停止串行口时钟,结束传送数据。

01接收数据不受影响。

若正在发送数据,则等到当前字发送完成后停止发送数据。

1x不管Soft位为何值,一旦出现断点,时钟继续运行,数据照常移位。

13

RSRFULL

接收移位寄存器满。

当RSRFULL=1,表示RSR满,暂停接收数据。

如果DRR中的数据被读取,RSRFULL为0

12

XSREMPTY

发送移位寄存器空。

为0时,说明DXR没有被加载,而XSR中的数据已移空。

为1时,暂停发送数据,并停止驱动DX。

XRDY

发送准备好位,XRDY位由0变到l,表示DXR中的内容已经复制到XSR,可以向DXR加载新的数据字,并产生一次发送中断XINT

RRDY

接收准备好位,RRDY位由0变到l,表示RSR中的内容已经复制到DRR中,可以从DRR中取数了,并产生一次接收中断RINT。

9

IN1

X

输入CLKX当前状态

8

IN0

输入CLKR当前状态

7

RRST

接收复位控制位

XRST

发送复位控制位

TXM

发送方式位,用于设定帧同步脉冲FSX的来源。

当TXM=1时,将FSX设置成输出。

每次发送数据的开头由片内产生一个帧同步脉冲。

当TXM=0时,将FSX设置成输入。

由外部提供帧同步脉冲。

发送时,发送器处于空转状态直到FSX引脚上提供帧同步脉冲。

MCM

时钟方式位,用于设定CLKX的时钟源。

当MCM=O时,CLKX配置成输入,采用外部时钟。

当MCM=1时,CLKX配置成输出,采用内部时钟。

片内时钟频率是CLKOUT频率的1/4。

FSM

帧同步方式(FSM)位。

这一位规定串行口工作时,在初始帧同步脉冲之后是否还要求帧同步脉冲。

当FSM=0时,在初始帧同步脉冲之后不需要帧同步脉冲。

当FSM=1时,串行口工作在字符组方式。

每发送/接收一个字都要求一个帧同步脉冲FSX/FSR。

FO

数据格式位,用它规定串行口发送/接收数据的字长。

当FO=0时,发送和接收的数据都是16位字。

当FO=1时,数据按8位字节传送,首先传送MSB,然后是LSB。

DLB

数字返回方式(DLB)位。

用于单个C54x测试串行口的代码。

当DLB=1时,片内通过一个多路开关,将输出端的DR和FSR分别与输入端的DX和FSX相连。

当工作在数字返回方式时,若MCM=1(选择片内串行口时钟CLKS为输出),CLKR由CLKX驱动;

若MCM=0(CLKX从外部输入),CLKR由外部CIKX信号驱动。

如果DLB=0,则串行口工作在正常方式,此时DR、FSR和CLKR都从外部输入。

RES

注意:

要想复位和重新配置串行口,需要对SPC寄存器写两次。

第一次,对SPC寄存器的RRST和XRST位写0,其余位写入所希望的配置。

第二次,对SPC寄存器的RRST和XRST位写1,其余位是所希望的配置,再一道重新写一次。

3.标准同步串口的操作过程

图1.3给出了串行口传送数据的一种连接方法。

在发送数据时,先将要发送的数写到DXR。

若XSR是空的(上一字已串行传送到DX引脚),则自动将DXR中的数据复制到XSR。

在FSX和CLKX的作用下,将XSR中的数据移到DX引脚输出。

当DXR中的数据复制到XSR后,就可以将另一个数据写到DXR。

在发送期间,DXR中的数据复制到XSR后,串行口控制寄存器(SPC)中的发送准备好(XRDY)位由0变为1,随后产生一个串行口发送中断(XINT)信号,通知CPU可以对DXR重新加载。

接收数据时,来自DR引脚的数据在FSR和CLKR的作用下,移位至RSR,然后复制到DRR,CPU从DRR中读出数据。

当RSR的数据复制到DRR后,SPC中的接收数据准备好(RRDY)位由0变为l,随后产生一个串行口接收中断(RINT)信号,通知CPU可以从DRR中读取数据。

由此可见,串行口是双缓冲的,发送和接收都是自动完成,用户只需检测RRDY或XRDY位来判断可否继续发送或接收数据。

当然,也可利用中断来完成。

图1.3串行口传送数据的一种连接

4.标准串口操作

下面以实例说明标准串口操作的步骤,操作以中断的方式完成。

串口的初始化:

●复位,并将0x0038写入SPC,初始化串口

●将0x00C0h写入IMR,清除任何挂起的串行接口中断。

●将0x00C0h和IMR求或逻辑运算,使能串行接口中断。

●清除ST1的INTM位,使能全局中断。

●将0x00F8h写入SPC,启动串行接口。

●将第一个数据写入DXR

串口中断服务程序:

●保存当前工作状态到堆栈中。

●读DRR或写DXR或同时操作,从DRR读出的数据写入存储器中,将要发送的数据从存储器中取出写入DXR。

●恢复现场

●用RETE从中断子程序返回。

1.3.2带缓冲的串行接口(BSP)

缓冲串行口在标准同步串行口的基础上增加了一个自动缓冲单元(ABU),并以CLKOUT频率计时。

它是全双工和双缓冲的,以提供灵活的数据串长度,如可使用8、10、12、16位连续通信流数据包,为发送和接收数据提供帧同步脉冲及一个可编程频率的串行时钟。

自动缓冲单元支持高速传送并能降低服务中断的开销。

1.缓冲串口的结构和特点

缓冲串行口(BSP)是一种增强型串行口。

ABU利用独立于CPU的专用总线,让串行口直接读/写C54x内部存储器。

这样可以使串行口处理事务的开销最省,并能达到较快的数据率。

BSP有两种工作方式:

非缓冲方式和自动缓冲方式。

当工作在非缓冲方式(即标准方式)时,BSP传送数据与标准串行口一样,都是在软件控制下经中断进行的;

当工作在自动缓冲方式时,串行口直接与C54x内部存储器进行16位数据传送。

ABU具有自身的循环寻址寄存器组,每个都与地址产生单元相关。

发送和接收缓冲存储器位于一个指定的C54xDSP内部存储器的2K字块中。

该块可作为通用的存储器,但却是惟一的自动缓冲能使用的存储块。

使用自动缓冲,字传输直接发生在串行接口部分和C54xDSP内部存储器之间。

在自动缓冲寻址时,使用ABU可以编程缓冲区的长度和起始地址,可以产生缓冲满中断,并可以在运行中停止缓冲功能。

2.缓冲串行口的控制寄存器

缓冲串行口共有6个寄存器:

数据接收寄存器BDRR、数据发送寄存器BDXR、控制寄存器BSPC、控制扩展寄存器BSPCE、数据接收移位寄存器BRSR、数据发送移位寄存器BXSR。

在标准模式时,BSP利用自身专用的数据发送寄存器、数据接收寄存器、串行口控制寄存器(BDXR、BDRR、BSPC)进行数据通信,也利用附加的控制扩展寄存器BSPCE处理它的增强功能和控制ABU。

BSP发送和接收移位寄存器(BXSR、BRSR)不能用软件直接存取,但具有双向缓冲能力。

如果没有使用串行口功能,BDXR、BDRR寄存器可以用作通用寄存器,此时BFSR设置为无效,以保证初始化可能的接收操作。

缓冲串行口在标准串行口的基础上新增了许多功能,如可编程串行口时钟、选择时钟和帧同步信号的正负极性,除了有串行口提供的8、16位数据转换外,还增加了10、12位字转换,允许设置忽略同步信号或不忽略。

这些特殊功能受控制扩展寄存器BSPCE控制,其各位的定义如表1.5。

表1.5控制扩展寄存器BSPCE

HALTR

自动缓冲接收停止位。

HALTR=0,当缓冲区接收到一半数据时,继续操作。

HALTR=1当缓冲区接收到一半数据时,自动缓冲停止。

此时BRE清零,串行口继续标准模式工作。

RH

指明接收缓冲区的哪一半已经填满,RH=0表示前半部分缓冲区被填满,当前接受的数据正存入后半部分缓冲区。

RH=1表示后半部分缓冲区被填满,当前接受的数据正存入前半部分缓冲区。

BRE

自动接收使能控制。

BRE=0自动接收禁止,串行口工作于标准模式。

BRE=1自动接收允许。

HALTX

自动发送禁止。

HALTX=0,当一半缓冲区发送完成后,自动缓冲继续工作。

HALTX=1,当一半缓冲区发送完成后,自动缓冲停止。

此时BRE清零,串行口继续工作于标准模式。

XH

发送缓冲禁止位。

XH=0缓冲区前半部分发送完成,当前发送数据取自缓冲区的后半部分。

XH=1缓冲区后半部分发送完成,当前发送数据取自缓冲区的前半部分。

BXE

自动发送使能位。

BXE=0禁止自动发送功能。

BXE=1允许自动发送功能。

PCM

脉冲编码模块模式。

PCM=0清除脉冲编码模式,PCM=1设置脉冲编码模式。

FIG

帧同步信号忽略。

在连续发送模式且具有外部帧同步信号,以及连续接收模式下有效。

FIG=0在第一个帧脉冲之后的帧同步脉冲重新启动时发送。

FIG=l忽略帧同步信号。

FE

扩展格式设置位

CLKP

时钟极性设置位。

用来设定接收和发送数据采样时间特性。

CLKP=0在BCLKR的下降沿接收采样数据,发送器在BCLRX的上升沿发送信号。

CLKP=l接收器在BCLKR的上升沿采样数据,发送在BCLKX下降沿发送数据。

FSP

帧同步极性设置位。

用来设定帧同步脉冲触发电平的高低。

FSP=0帧同步脉冲高电平激活。

FSP=1帧同步脉冲低电平激活。

0~4

CLKDV

内部发送时钟分频因数。

当BSPC的MCM=1,CLKX由片上的时钟源驱动,其频率为CLKOUT/(CLKDV+1),CLKDV的取值范围是0~31。

当CLKDV为奇数或0时,CLKX的占空比为50%;

当CLKDV为偶数时,其占空比依赖于CLKP;

CLKP=0时,占空比为(P+1)/P,CLKP=1时,占空比为P/(P+1)。

PCM位设置串行口工作于编码模式,只影响发送器。

BDXR到BXSR转换不受该位影响。

在PCM模式下,只有它的最高位(15)为0,BDXR才被发送,为1时,BDXR不发送。

BDXR发送期间BDX处于高阻态。

FIG位可以将16位传输格式以外的各种传输字长压缩打包,可用于外部帧同步信号的连续发送和接收。

初始化之后,当FIG=0时,如果帧同步信号发生,发送重新开始。

当FIG=l时,帧同步信号被忽略。

例如,设置FIG=1,可在每8、10、12位产生帧同步信号的情况下实现连续16位的有效传输。

如果不用FIG,每一个低于16位的数据转换必须用16位格式,包括存储格式。

利用FIG可以节省缓冲内存。

FE位与BSPC中的FO位一起设定传输字的长度,如表1.6所示。

表1.6BSPC中的FO位与BSPCE中的FE位对字长的控制

字长度

16

3.缓冲串行口的操作过程

缓冲串行口有两种工作模式:

一是标准工作模式,二是缓冲工作模式。

(1)标准工作模式下的缓冲串口的操作

这种工作模式与标准串行口的工作模式基本相同,表1.7列出了缓冲串口在标准工作模式下与SP的区别。

表1.7标准串行口与缓冲串行口在标准模式下的区别

控制寄存器SPC

标准串行口SP

缓冲串行口BSP

RSRFULL=l

要求RSR满,且FSR出现,RSRFULL置位。

连续模式下,只需BSR满

只需RSR满,RSRFULL置位

溢出时RSR数据保护

溢出时BRSR内容丢失

溢出后连续模式下接收重新开始

只要DRR被读,接收重新开始

只有BDRR被读且BFSR到来,接收才重新开始

DRR中进行8、l0、12

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1