第七章C54x片内外设、接口及应用 主机接口课件.ppt

上传人:牧羊曲112 文档编号:1838353 上传时间:2022-12-21 格式:PPT 页数:71 大小:2.85MB
返回 下载 相关 举报
第七章C54x片内外设、接口及应用 主机接口课件.ppt_第1页
第1页 / 共71页
第七章C54x片内外设、接口及应用 主机接口课件.ppt_第2页
第2页 / 共71页
第七章C54x片内外设、接口及应用 主机接口课件.ppt_第3页
第3页 / 共71页
第七章C54x片内外设、接口及应用 主机接口课件.ppt_第4页
第4页 / 共71页
第七章C54x片内外设、接口及应用 主机接口课件.ppt_第5页
第5页 / 共71页
点击查看更多>>
资源描述

《第七章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 .

18、uset “vars”,1 tim_ptr_counter .usect “vars”,1 tcr_ptr_counter .usect “vars”,1 ;变量定义 t_array .usect “vars”,15 tim_array .usect “vars”,15 tcr_array .usect “vars”,15 asg AR7,t_ptr asg AR6,tim_ptr asg AR5,tcr_ptr,http:/,_inittime: ;初始化定时器0,定时长度为T*393,216 ;定时长度=T*(TDDR+1)*(PRD+1),本程序中TDDR=11,PRD=32767, ;

19、主频为f,T=1/f STM #32767,TIM0 STM #32767,PRD0 STM # K_TCR0,TCR0 ST #0,*(t_counter) ST #t_array,*( t_ptr_counter) ST #tim_array,*( tim_ptr_counter) ST #tcr_array,*( tcr_ptr_counter) RET,http:/,;外部中断INT0,在脉冲来时被激活并响应服务子程序,从脉冲 ;响应到响应存在延迟 int0isr:PSHM ST0 PSHM ST1 PSHM t_ptr PSHM tim_ptr PSHM tcr_ptr PSHM A

20、L PSHM AH PSHM AG PSHM BL PSHM BH PSHM BG,http:/,;将当前存储地址加载到地址指针即寄存器中 LD *(t_ptr_counter),A STM A,t_ptr LD *(tim_ptr_counter),A STM A,tim_ptr LD *( tcr_ptr_counter),A STM A,tcr_ptr ;用户手册上建议,为精确计时,读寄存器时,先停止定时器 ORM TSSSET,TCR0 ;停止定时器 LDM TIM0,A ;读TIM0寄存器,需1个CLKOUT周期 LDM TCR0,B ;读TCR0寄存器,需1个CLKOUT周期 AN

21、DM TSSCLR,TCR0 ;打开定时器,运行该指令需1个 ;CLKOUT周期,http:/,;由于读定时器的寄存器,定时器停止计时共3个CLKOUT周期 STL A,*tim_ptr ;读TIM0寄存器,保存 AND #0FH,B ;取TCR0寄存器的低4位,即TDDR STL B,*tcr_ptr ;保存 LD *( t_counter),A STL A,* t_ptr ;读到的时间=脉冲到来的时间+延迟响应时间t1+停止定时器之前运行程序的时间 ADDM #1,*(t_ptr_counter) ADDM #1,*(tim_ptr_counter) ADDM #1,*(tcr_ptr_c

22、ounter),http:/,POPM BG POPM BH POPM BL POPM AG POPM AH POPM A POPM tcr_ptr POPM tim_ptr POPM t_ptr POPM ST1 POPM ST0 RETE Time0isr:ANDM #1,*(t_counter) RETE,http:/,检测输入脉冲频率是通过外部中断请求输入来实现。定时器的定时时间是根据所检测输入信号的周期来设定。 根据设定时间内所检测脉冲的个数,计算被检测输入信号的频率。 第一个负跳变触发定时器工作,每输入一个负跳变计一个数。当达到设定时间时,定时器停止工作。则此时定时器的时间值与所计

23、脉冲数相除,所得的结果就是所测输入信号的周期。,3.脉冲频率监测,http:/,程序清单:,;abc4.asm .mmregs ;定时器0寄存器地址 TIM0 .set 0024H PRD0 .set 0025H TCR0 .set 0026H TSSSET .set 010H TSSCLR .set 0ffefH ;K_TCR0:设置定时器控制寄存器的内容 K_TCR0_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 K_TCR0_

24、TSS .set 0b ;TSS=0 K_TCR0_TDDR .set 1111b ;TDDR=15,http:/,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 .usect “vars”,1 tim_ptr_counter .usect “vars”,1 tcr_ptr_counter .usect “vars”,1 t_array .usect “vars”,20 tim_array

25、 .usect “vars”,20 tcr_array .usect “vars”,20 .asg AR7,t_ptr .asg AR6,tim_ptr .asg AR5,tcr_ptr t0_time .usect “vars”,1 t0_end .usect “vars”,1,http:/,intex_sub: ;外部脉冲中断子程序 PSHM TRN PSHM T PSHM ST0 PSHM ST1 ADD tim_ptr_counter,#1 ;脉冲计数器加1 POPM ST1 POPM ST0 POPM T POPM TRN RETE,http:/,Int0_sub: ;定时器中断子程

26、序 PSHM TRN PSHM T PSHM ST0 PSHM ST1 LD t0_end,#1 POPM ST1 POPM ST0 POPM T POPM TRN RETE,http:/,谢谢观看,2022/12/21,7.3 串行口,2022/12/21,1.1 串行口概述,C54x DSP提供各种类型的同步串口,可与双向串口器件 在全双工方式下实现高效的串行通信。 串口信号可与许多符合工业标准的串行设备兼容,可以 直接连接。 串口可在多处理器系统中用于各处理器之间数据通信。 当串口复位时,可通过DSP关闭或打开串口时钟,允许 串口运行在低功耗模式下。,2022/12/21,SP-标准同步

27、串口。高速、全双工串口,可与编码器、A/D转换器 等串行设备直接通信。,1.2 串行口分类,BSP-缓冲同步串口。增强型全双工和双缓冲同步串口,工作在 CLKOUT频率。在SP基础上增加一个自动缓冲单元 (ABU), 允许串口直接读写内存,实现与CPU的并行操作。,C54x DSP的串口随器件而异,以下4种比较具代表性:,TDM-时分多路同步串口。增强的同步串口,允许数据分时多路转 换,可配置为同步串行口SP方式和TDM方式,广泛应用于多 处理器。,McBSP-多通道带缓冲同步串口。高速、双向、通道数多、数据格式 范围宽等特点。可与其它C54x器件、编程器或串口器件通信。 McBSP以标准串口

28、为基础,并进行了很多功能扩展。,2022/12/21,1.3 串行口配置,表1 TMS320C54x芯片串行口的配置,2022/12/21,2.1 标准同步串行口SP,高速、全双工串口,可与编码器、A/D转换器等串行设备直接通信。 当C54X有一个以上同步串口时,这些串口相同,但各自独立。 各串口工作在1/4机器周期。 同步串口的发送器和接收器均为双向缓冲,并可由外部可屏蔽中断信号独立控制。数据可划分为字节或字的形式。,2022/12/21,2.1.1 SP-结构,2022/12/21,发送过程: 发送数据装入DXR; 当上一个数据发送完后,DXR的数据自动装入XSR; 在发送帧同步信号FSX

29、和发送时钟CLKX作用下,将XSR 的数据通过引脚DX发送输出。接收过程: 在接收帧同步信号FSR和接收时钟CLKR作用下,接收数 据通过DR引脚移至RSR中; 当RSR满时,将数据装入DRR中。,2.1.2 SP-工作工程,2022/12/21,例1:完成两个C54x串行通信的连接。,2.1.3 SP-连接,2022/12/21,例2:完成C54x与音频处理器TLC320AC01串行通信的连接。,2.1.3 SP-连接,2022/12/21,2.1.4 SP-初始化,为使C54X能与串口正确通信,C54X必须作初始化工作:,2022/12/21,2.2 缓冲串行口BSP,BSP的硬件部分基于

30、标准串口,由全双工、双缓冲串口和自动缓冲单元(ABU)组成。工作在CLKOUT频率。 ABU是一个附加逻辑电路,利用专用总线控制串口直接对C54的2K字内存读写,不需要CPU干预,可以节省时间,实现串口与CPU的并行操作。 2K字RAM缓冲区长度和起始地址可编程,并可以向CPU产生一个缓冲满/空中断。,2022/12/21,2.3 多通道缓冲串行口McBSP,McBSP的硬件部分基于缓冲串口,在外部通道选择电路的控制下,采用分时方式实现多路缓冲串行通信。,VC5402有两个McBSP串口,除完成传统的同步串行通信功能外,还可以实现多种通信接口,完成信号压扩,与DMA共同使用时可以实现自动缓冲等

31、。 McBSP带有帧同步信号发生器,由硬件对CPU时钟分频,产生帧同步和位同步信号。,2022/12/21,McBSP的硬件部分基于标准串口,功能包括: 全双工通信; 双缓冲数据发送和三缓冲数据接收寄存器,支持连续的数据流; 发送和接收有独立的时钟和帧同步信号; 可以直接与符合工业标准的编码器、AICs(模拟接口芯片)及串行A/D,D/A 器件连接; 支持多种串行协议接口通信; 128路发送和接收通道; 传输数据字长可选,包括8、12、16、20、24、32位字长; A律和律硬件压扩; 8位数据传输时,MSB、LSB先发送可选; 帧同步和时钟信号的极性可编程; 内部时钟和帧同步信号高度可编程。

32、,2022/12/21,2.3.1 McBSP-结构,图1 McBSP结构框图,控制通路,数据通路,2022/12/21,2.3.1 McBSP-结构(续),图1 McBSP结构框图,多通道选择,收发通道,内部信号产生逻辑,外部引脚,时钟、帧同步与控制逻辑,2022/12/21,2.3.2.1 McBSP-数据通信,图1 McBSP结构框图,CPU或DMAC能够读取数据接收寄存器DRR中的内容并向数据发送寄存器DXR中写入数据。,数据发送:DXR中的内容通过发送移位寄存器XSR移位输出到DX引脚。,数据接收: DR引脚上接收的数据总是先移位进入接收移位寄存器RSR,然后被复制到接收缓冲寄存器R

33、BR,最后复制DRR中。,这个过程允许同时进行片内数据搬移和片外数据通信。,2022/12/21,2.3.2.2 McBSP-控制通路,图1 McBSP结构框图,控制通路负责内部时钟产生、帧同步信号产生、信号控制和多通道选择。,两个中断和四个同步事件信号控制模块可分别向CPU发送中断信号和向DMAC发送同步事件通知。,2022/12/21,串口控制寄存器包括McBSP的状态信息和当前操作的配置 McBSP有3个16位的串行口控制寄存器 串口接收控制寄存器SPCR1 串口发送控制寄存器SPCR2 引脚控制寄存器PCR PCR也能用于将McBSP的引脚配置为通用I/O,2.3.3 McBSP-接收

34、发送配置寄存器,接收和发送寄存器用于配置收发操作的各种参数 接收控制寄存器RCR1、PCR2 发送控制寄存器XCR1、XCR2,2022/12/21,例1:完成C54x与A/D转换器MAX1247串行通信的连接。,2.3.4 McBSP-连接,2022/12/21,例2:C54x与8通道10位并行A/D转换器TLV1578串行通信的连接。,2.3.4 McBSP-连接,2022/12/21,例3:C54x与12位4通道高性能、低功耗、高速A/D转换器TLV2544串行通信的连接。,2.3.4 McBSP-连接,2022/12/21,2.3.4 McBSP-连接,例4:C54x与12位并行D/A转换器TLV5619串行通信的连接。,2022/12/21,2.3.4 McBSP-连接,例5:C54x与12位并行D/A转换器TLV5616串行通信的连接。,2022/12/21,2.3.4 McBSP-连接,例5:C54x与12位并行D/A转换器TLV5616串行通信的连接。,2022/12/21,例6:VC5402与16位模拟接口器件TLV320AIC10串行通信连接。,2.3.4 McBSP-连接,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号