第七章C54x片内外设、接口及应用 主机接口课件.ppt
《第七章C54x片内外设、接口及应用 主机接口课件.ppt》由会员分享,可在线阅读,更多相关《第七章C54x片内外设、接口及应用 主机接口课件.ppt(71页珍藏版)》请在三一办公上搜索。
1、http:/,主机接口 定时器 串行口 中断系统,第7章 TMS320C54x 片内外设、接口及应用,http:/,1.概 述,为满足数据处理的需要,C54x器件除提供功能强大的 CPU、改进的哈佛结构的总线、片内大容量的高速存储 器和大范围的寻址,还提供了丰富的片内外围电路。,http:/,通用I/O引脚(BIO和XF) 定时器 时钟发生器 主机接口HPI 软件可编程的等待状态发生器 可编程的分区转换逻辑 直接存储器访问DMA控制器 串行口-标准同步串口、带缓冲的串口BSP、多通道缓冲串口 McBSP和时分复用串口TDM,不同型号的C54x芯片具有不同的外设数量和配置:,http:/,2.片
2、内外设的存储器映射寄存器,片内外设的控制与操作是通过存取存储器映射的控制和 数据寄存器实现; 这些寄存器可用来与外设交换数据,CPU通过访问这些 寄存器来操作和控制外设; 置位或清零控制寄存器中的相应位可以使能、禁止、初 始化或动态配置外设; 片内外设的寄存器映射到数据存储空间的第0页20H5FH 地址中。,P43,http:/,表1 VC5402的部分片内外设映射寄存器,http:/,7.1 主机接口,http:/,主机接口HPI是C54x芯片具有的一种8位或16位的并行接口部件,1. 概述,主机和DSP可独立地对HPI接口操作; 主机和DSP握手可通过中断方式来完成; 主机可通过HPI直接
3、访问CPU的存储空间,包括存储器映像 寄存器; 主机还可通过HPI接口装载DSP应用程序、接收DSP运行结果 或诊断DSP运行状态,为DSP芯片的接口开发提供了一种极为 方便的途径。,特点:,主要用于DSP与其他主设备或主处理器(主机-主控者)进行通信,http:/,图2 HPI接口框图,2. 结构,1000H-17FFH DARAM,http:/,(1) 共用访问模式(SAM) 主机和C54x都能访问HPI存储器。如果C54x与主机的周期发生冲突,主机具有访问优先权,C54x需等待一个周期。,3. HPI的工作方式,(2) 仅主机访问模式(HOM) 只有主机可以访问HPI存储器,C54x则处
4、于复位状态或内外所有时钟都停止工作的空闲状态。 此方式下,HPI支持更快的主机访问速度,与C54x的时钟速度无关。,HPI具有两种工作方式:,http:/,图3 HPI与主机设备之间的连接框图,4. HPI的基本功能,http:/,表3 HPI用于主机和C54x DSP之间通信的寄存器,5. HPI的寄存器,http:/,6. HPI-8与HPI的区别,HPI-8是8位增强HPI接口 是用于连接C54x芯片与主机设备或主机处理器的并行接口 主机与C54x芯片通过C54x的片内RAM交换数据。 C5402、C5410带有HPI-8,C5420为HPI-16。,表2 标准HPI与HPI-8的区别,
5、http:/,7.2 定时器,http:/,C54xDSP的定时器是一个带有4位预分频器的16位定时电路(减法计数器),可获得较大范围的定时器频率。 定时器计数器每来一个时钟周期自动减1,当计数器减至0时 产生一个定时中断。 通过编程设置特定的状态,可使定时器停止、恢复运行、复 位或禁止。 VC5402有两个片内定时器。,一、定时器概述,http:/,C54x的定时器是一个可软件编程的计数器,主要包括3个存储器映射 寄存器:1. 定时器设定寄存器TIM -16位减法计数器,映射到数据存储空间的0024H单元。复位或定时器中断(TINT)时,TIM内装入PRD寄存器的值(定时时间),并进行自动减
6、1操作。2. 定时器周期寄存器PRD -16位的存储器映像寄存器,位于数据存储空间的0025H单元,用来存放定时时间常数。复位或TINT中断时,将定时时间装入TIM。3. 定时器控制寄存器TCR -16位的存储器映像寄存器,位于数据存储空间的0026H单元,用来存储定时器的控制位和状态位,包括定时器分频系数TDDR、预标定计数器PSC、控制位TRB、TSS等。,二、定时器寄存器,http:/,表2 TCR各位的意义描述,三、定时器控制寄存器,http:/,图7.2.1 C54xDSP定时器结构图,C54xDSP的定时器由主定时器模块(PRD和 TIM)、预置模块(TCR中的 TDDR和PSC等
7、)及相应控制电路组成。,三、定时器工作过程,http:/,定时器由CPU提供时钟,受定时设定寄存器TIM 、周期寄存器 PRD和控制寄存器TCR控制。,http:/,工作原理:当CLKOUT信号时钟沿到来时触发减1计数器PSC, 直到PSC为0,然后用TDDR重新装入PSC;同时用分频时钟对TIM 作减1计数,直到TIM为0。,http:/,TIM减为0时,CPU发出定时器中断信号TINT,同时在TOUT管脚 输出一个脉冲,脉宽与主时钟一致,可为外围电路提供时钟; 同时PSC和TIM重新装入预设值,重复下去至系统或定时器复位。,http:/,当系统复位或定时器单独复位时,TIM和PRD被置成最
8、大值FFFFH, TDDR清0,TSS清0启动定时器。并将TDDR的内容重新加载到PSC, PRD的值重新加载到TIM。,http:/,定时器的基准工作脉冲由CLKOUT提供,每来一个脉冲预定标计数器PSC减1,当PSC减至0时,下一个脉冲到来,PSC产生借位。 借位信号分别控制定时计数器TIM减1和或门2的输出,重新将TDDR的内容加载预定标计数器PSC,从而完成定时工作的一个基本周期。,定时器的定时时间为: 定时周期 = CLKOUT(TDDR+1)(PRD+1),四、定时器初始化,http:/,使用定时器前,首先应设好定时器的工作方式和计数值,并设置好中断,即对其初始化。具体步骤如下:
9、(1) TSS=1,停止定时器; (2) 加载PRD值; (3) 重新设置TCR的值,包括初始化TDDR、TRB位置1 (TIM为0后,加载定时器时间常数)和TSS位清0(启动定时器)。,http:/,如果要使用定时器中断TINT(ST1的中断模式INTM=1的情况下),要做如下设置 : (1) 设置中断标志寄存器(IFR)中的TINT=1,清除定时器中断; (2) 设置中断屏蔽寄存器(IMR)中的TINT=1,激活定时器中断; (3) 设置STI中的INTM=0,激活全部中断。,五、定时器中断,当定时器计数器减少到0时,会产生一个定时器中断TINT,其频率为:,式中,tc为CPU时钟周期(即
10、CLKOUT的周期),http:/,复位时,TIM和PRD被设置为最大值(0FFFFH),TCR中的TDDR置0,定时器可以通过启动定时控制寄存器(TCR)完成以下操作: 设定定时器的工作方式; 设定预定标计数器中的当前数值; 启动或停止定时器; 重新装载定时器; 设置定时器的分频值。,四、定时器初始化,http:/,【例1】定时器自动装载定时。,TSS=0:启动定时器;TRB=1:自动装载;TDDR=Ah:分频系数10 soft=1,free=0:计数器减至0时,停止工作;TCR=0AAAH。 定时周期:0101H;关闭定时器中断:IFR=0008H; 开放定时器中断:IMR=0008H。,
11、STM #0000H,SWWSR STM #0010H,TCR STM #0101H,PRD STM #0AAAH,TCR STM #0080H,IFR STM #0080H,IMR RSBX INTM,;不插等待时间 ;TSS=0关闭定时器 ;加载周期寄存器(PRD) ;装入定时器控制字,启动定时器 ;消除尚未处理完的定时器中断 ;开放定时器中断 ;开放中断,http:/,例如:用TMS320VC5402实现方波发生器。假设时钟频率为4MHz,在XF端输出占空比为50%的方波,方波的周期由片上定时器确定,采用中断方法实现。,7.2.2 定时器/计数器的应用,1.方波发生器,(1)定时器初始化
12、, 关闭定时器,TCR中的TSS=1; 加载PRD。设定定时中断周期,每中断一次,输出端电平取反一次; 启动定时器,初始化TDDR,TSS=0,TRB=1。,http:/,(2)中断初始化, 中断允许寄存器IFR中的定时中断位TINT=1,清除未处理完的定时中断; 中断屏蔽寄存器IMR中的定时屏蔽位TINT=1,开放定时中断; 状态控制寄存器ST1中的中断标志位INTM=0,开放全部中断。,http:/,(3)方波发生器程序清单,周期为8ms的方波发生器,定时中断周期为4ms,每中断一次,输出端电平取一次反。,程序清单:,;abc1.asm ;定时器0寄存器地址 TIM0 set 0024H
13、PRD0 set 0025H TCR0 set 0026H ;K_TCR0:设置定时器控制寄存器的内容 K_TCR0_SOFT .set 0b ;Soft=0 K_TCR0_FREE .set 0b ;Free=0 K_TCR0_PSC .set 1001b ;PSC=9H K_TCR0_TRB .set 1b ;TRB=1 K_TCR0_TSS .set 0b ;TSS=0 K_TCR0_TDDR .set 1001b ;TDDR=9 K_TCR0 .set K_TCR0_SOFT| K_TCR0_FREE| K_TCR0_PSC| K_TCR0_TRB| K_TCR0_TSS| K_TCR
14、0_TDDR,http:/,;初始化定时器0 ;根据定时长度计算公式:Tt=T* (TDDR+1) * (PRD+1) ;给定TDDR=9,PRD=1599,CLKOUT主频f=4MHz,T=250ns ;Tt=250*(9+1)*(1599+1)=4,000,000(ns)=4(ms) STM #1599,TIM0 STM #1599,PRD0 STM #K_TCR0,TCR0 ;启动定时器0中断 RET ;定时器0的中断服务子程序:通过引脚XF给出周期为8ms的占空比 ;为50%的方波波形 t0_flag .usect “vars”,1 ;当前XF输出电平标志位 ;若t0_flag=1,则
15、XF=1 ;若t0_flag=0,则XF=0,程序清单:,http:/,time0_rev: PSHM TRN PSHM T PSHM ST0 PSHM ST1 BITF t0_flag,#1 BC xf_out,NTC SSBX XF ST #0,t0_flag B next xf_out: RSBX XF ST #1,t0_flag next: POPM ST1 POPM ST0 POPM T POPM TRN RETE,http:/,对于周期信号的周期检测,可在信号的每个周期内发出一个脉冲,然后通过程序计算两个脉冲之间的时间来确定信号的周期。 当脉冲来临时,触发外部中断INT0。外部中断
16、INT0用来记录脉冲,定时器0用来记录时间。,2.周期信号的周期检测,http:/,2.周期信号的周期检测,为了增加计时长度,可在程序中设置一级计数器。 定时器0的寄存器用来记录低位时间,程序中的计数器用来记录高位时间,在外部中断服务程序中读取时间。 在定时器0中断服务程序中对计数器加1,实现低位时间的进位。,http:/,程序清单:,;abc3.asm ;定时器0寄存器地址 TIM0 .set 0024H PRD0 .set 0025H TCR0 .set 0026H TSSSET .set 010H TSSCLR .set 0ffefH ;K_TCR0:设置定时器控制寄存器的内容 K_TC
17、R0_SOFT .set 0b ;Soft=0 K_TCR0_FREE .set 0b ;Free=0 K_TCR0_PSC .set 1111b ;PSC=15 K_TCR0_TRB .set 1b ;TRB=1,http:/,K_TCR0_TSS .set 0b ;TSS=0 K_TCR0_TDDR .set 1111b ;TDDR=15 K_TCR0 .set K_TCR0_SOFT| K_TCR0_FREE| K_TCR0_PSC| K_TCR0_TRB| K_TCR0_TSS| K_TCR0_TDDR t_counter .usect “vars”,1 t_ptr_counter .
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第七章C54x片内外设、接口及应用 主机接口课件 第七 C54x 内外 接口 应用 主机 课件

链接地址:https://www.31ppt.com/p-1838353.html