串行通信接口DSP设计Word文件下载.docx
- 文档编号:17371402
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:66
- 大小:276.70KB
串行通信接口DSP设计Word文件下载.docx
《串行通信接口DSP设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《串行通信接口DSP设计Word文件下载.docx(66页珍藏版)》请在冰豆网上搜索。
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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 串行 通信 接口 DSP 设计