当前位置:文档之家› dsp片内外设

dsp片内外设


第六章:片内外设 ——可编程定时器 初始化定时器:
(1) 将TCR中的TSS位置1,停止定时器。
(2。
(4) 重新启动定时器。TSS位为0,TRB位为l, 以重载定时器周期值, 使能定时器。
使能定时器中断(假定INTM=1): (1) 将IFR中的TINT位置1,清除尚未处理完(挂起)的定时器中断。 (2) 将IMR中的TINT位置l,使能定时器中断。 (3) 可以将ST1中的INTM位清0,使能全局中断。
控制扩展寄存器(BSPCE)控制,其各位的定义如表6-5所示。
第六章:片内外设 ——串行口 缓冲工作模式的操作过程
其功能主要由自动缓冲单元ABU来完成
• 自动缓冲单元(ABU)可独立于CPU自动完成控制串行口与固定 缓冲内存区中的数据交换。它包括
地址发送寄存器(AXR)
块长度发送寄存器(BKX) 地址接收寄存器(ARR) 块长度接收寄存器(BKR) 串行口控制寄存器(BSPCE) • 当发送或接收缓冲区的一半或全部满或空时,ABU才产生CPU 的中断,避免了CPU直接介入每一次传输带来的资源消耗。
• ABU利用独立于CPU的专用总线,让串行口直接读/写C54x内 部存储器。这样可以使串行口处理事务的开销最省,并能达到 较快的数据率。 • BSP有两种工作方式:非缓冲方式和自动缓冲方式。
• ABU具有自身的循环寻址寄存器组,每个都与地址产生单元 相关。发送和接收缓冲存储器位于一个指定的C54x DSP内部存 储器的2K字块中。该块可作为通用的存储器,但却是唯一的自 动缓冲能使用的存储块。
第六章:片内外设 ——可编程定时器 CounterSet .set 100 PERIOD .set 49999 .asg AR1,Counter ;定义计数次数 ;定义计数周期 ;AR1做计数指针,重 新命名以便识别 STM #CounterSet,Counter ;设计数器初值 STM #0000000000010000B,TCR ;停止计数器 STM #PERIOD,TIM ;给TIM设定初值49999 STM #PERIOD,PRD ;PRD与TIM一样 STM #0000011001101001B,TCR;开始定时器 STM #0008H,IMR ;开TIME0的中断 RSBX INTM ;开总中断 NOP B End
(3) 有复位功能。
(4) 可以选择调试断点时定时器的工作方式。
第六章:片内外设 ——可编程定时器 6.2.2 定时器的控制寄存器TCR PSC (9~6位): 定时器预定标计数器。当PSC中的数值减到0后, TIM减1 , TDDR中的数加载到PSC; TRB(5位): 定时器重新加载控制位。复位片内定时器。当TRB置 位时,TIM重新装载PRD的值,PSC重新装载TDDR中的值。 TSS(4位):定时器停止位,TSS=0 定时器开始工作,TSS=1 定
第六章:片内外设
第6章
DSP片内外设
•可编程定时器 •串行口 •主机接口 •通用I/O •软件等待状态发生器 •分区转换逻辑
第六章:片内外设
——概述
6.1
DSP片内外设概述
含义: DSP的片内外设是集成在芯片内部的外部设备。
访问:CPU核对片内外设的访问是通过对相应的控制寄
存器的访问来完成的。 优点: (1) 片内外设访问速度快。 (2) 可以简化电路板的设计。如将A/D转换、D/A转换、 定时器集成在片内。 (3) 提供一些必须的特殊功能。如JTAG口、等待状态发 生器等。
End:
第六章:片内外设 ——可编程定时器 中断服务程序:TINT0_ISR TINT0_ISR: PSHM ST0 ;保护ST0,因要改变TC BANZ Next,*Counter;计数器不为0,计数器减
1,退出中断
STM #CounterSet,Counter ; BITF *AR2,#1 ;计数器为0, 根据当前XF的状态,
;分别到setXF或ResetXF
setXF:
ResetXF:
BC ResetXF,TC SSBX XF ST #1,*AR2 B Next RSBX XF ST #0, *AR2
;置XF为高
;置XF为低
第六章:片内外设 ——可编程定时器 Next: POPM RETE end ST0
第六章:片内外设 ——串行口
(7) 可以以查询和中断两种方式工作。
第六章:片内外设 ——串行口 2.串行口控制寄存器(SPC) • 串行口的操作是由串行口控制寄存器(SPC)决定的。
• SPC寄存器的控制位及功能如表6-4所示。
• 要复位和重新配置串行口,需要对SPC寄存器写两次。 第一次,对SPC寄存器的RRST和XRST位写0,其余位写入所 希望的配置。 第二次,对SPC寄存器的RRST和XRST位写1,其余位是所希 望的配置,再一道重新写一次。
TIM重载用。 TCR定时器控制寄存器:TCR包含定时器的控制和状态位,控制 定时器的工作过程。
第六章:片内外设 ——可编程定时器
主定时器模块(由PRD和TIM组成) 预定标器模块(由TCR的TDDR和PSC位组成)。
第六章:片内外设 ——可编程定时器
主要特点:
(1)定时器是一个减计数器。
(2)由16位计数器和4位预分频计数器组成。16 位计数器的触发脉冲由预分频计数器提供,预 分频计数器由CPU工作时钟决定。
时器停止
TDDR(3~0位): 当PSC减为0时,TDDR中的值被装载到PSC中
第六章:片内外设 ——可编程定时器 6.2.3 定时器的操作过程 •PSC由CPU提供时钟,每个CPU时钟信号将使PSC减1 。 •TDDR的内容重新加载到PSC。 •TIM由预定标器PSC提供时钟,每个来自预定标块的输出时钟使 TIM减l。 PRD中的内容重新加载到TIM。 定时器的中断周期 = TC LK (TT D D R 1) (T P R D 1)
第六章:片内外设 ——串行口 2. 缓冲串行口的控制寄存器(6个)

• • • • •
数据接收寄存器(BDRR)
数据发送寄存器(BDXR) 控制寄存器(BSPC): 控制扩展寄存器(BSPCE) 数据接收移位寄存器(BRSR) 数据发送移位寄存器(BXSR)
缓冲串行口在标准串行口的基础上新增了许多功能,这些特殊功能受
第六章:片内外设 ——串行口 3.操作过程:
发送数据时,数写到DXR→XSR → DX引脚输出。在发送期间,
DXR中的数据复制到XSR后,串行口控制寄存器(SPC)中的发送
准备好(XRDY)位由0变为1,随后产生一个串行口发送中断(XINT) 信号,通知CPU可以对DXR重新加载。
接收数据时,来自DR引脚的数据→ RSR → DRR,CPU从
第六章:片内外设 ——串行口 6.3.1 标准同步串行口(SP)
1.结构:
• 2个存储器映像寄存器用于传送数据 接收数据寄存器(DRR) 发送数据寄存器(DXR) • 一个串口控制寄存器(SPC)
• 每个串行口的发送和接收部分都有独立的时钟、帧同步脉冲以
及串行移位寄存器。 接收移位寄存器(RSR)、 发送移位寄存器(XSR)
第六章:片内外设 ——串行口 2) 串口中断服务程序
(1) 保存当前工作状态到堆栈中。
(2) 读DRR或写DXR或同时操作,从DRR读出的数据写入存储器 中,将要发送的数据从存储器中取出写入DXR。 (3) 恢复现场。 (4) 用RETE从中断子程序返回。
第六章:片内外设 ——串行口 6.3.2 带缓冲的串行接口(BSP) 结构和特点: • 缓冲串行口在标准同步串行口的基础上增加了一个自动缓冲 单元(ABU),并以CLKOUT频率计时。
第六章:片内外设 ——可编程定时器
【例6.1】 利用定时器Timer0在XF引脚产生周期为1s
的方波。
分析:设f=100MHz,
定时最大值是:1 0 (n s) 2 4 2 1 6
=10(ms),
要输出1s的方波,1和0分别为500ms.
可定时5ms,再在中断程序中加个100计数器,
定时器周期=10ns×(1+9)×(1+49999)=5ms。
DRR中读出数据。当RSR的数据复制到DRR后,SPC中的接收数 据准备好(RRDY)位由0变为l,随后产生一个串行口接收中断
(RINT)信号,通知CPU可以从DRR中读取数据。
串行口是双缓冲的,发送和接收都是自动完成,用户只需检测 RRDY或XRDY位来判断可否继续发送或接收数据。
第六章:片内外设 ——串行口
串行口传送数据的一种连接
第六章:片内外设 ——串行口 4.实例: (操作以中断的方式完成)
1) 串口的初始化
(1) 复位,并将0x0038写入SPC,初始化串口。 (2) 将0x00C0h写入IMR,清除任何挂起的串行接口中断。 (3) 将0x00C0h和IMR求或逻辑运算,使能串行接口中断。 (4) 清除ST1的INTM位,使能全局中断。 (5) 将0x00F8h写入SPC,启动串行接口。 (6) 将第一个数据写入DXR。
第六章:片内外设
——概述
片内外设:串行接口、定时器、通用I/O引脚和标准主机接口
(HPI8)。
增强型外设:多通道缓冲串口(McBSP)、主机接口(8位增强HPI- 8、16位增强HPI-16)、直接存储器访问(DMA)控制器。 控制寄存器:被映射到数据存储空间的第0页(地址20h~5Fh)。表 6-1。 •所有的C54x DSP的CPU结构及功能完全相同,但是片内的外设 配置多少不同。本章将以C5402 DSP为主介绍 .
第六章:片内外设 ——串行口
综上所述,自动缓冲过程可归纳为:
① ABU完成对缓冲存储器的存取。
② 工作过程中地址寄存器自动增加,直至缓冲区的底 部。到底部后,地址寄存器内容恢复到缓冲存储器区顶 部。 ③ 如果数据到了缓冲区的一半或底部,就会产生中断, 并更新BSPEC中的XH/RH,以表明那一部分数据已经 被发送或接收。 ④ 如果选择禁止自动缓冲功能,当数据过半或到达缓 冲区底部时,ABU会自动停止缓冲功能。
相关主题