欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    TMS320C54XDSP片内外设.ppt

    • 资源ID:6522009       资源大小:503.50KB        全文页数:42页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    TMS320C54XDSP片内外设.ppt

    1,DSP技术与应用,学时:32(含8学时实验),2,第7章 TMS320C54XDSP片内外设,3,本 章 内 容,1、特殊功能寄存器,2、时钟发生器,3、硬件定时器,5、编程等待状态发生器,4、中断系统,6、HPI/McBSP/通用I/O口,4,1特殊功能寄存器 C54x拥有众多的特殊功能寄存器,这些特殊功能寄存器非常重要,被用于对片内各功能模块进行管理、控制及状态监视。对于DSP的使用者来说,掌握了这些寄存器的用法,也就基本掌握了DSP的应用要点。VC5402DSP中众多的特殊功能寄存器分CPU映射寄存器和外设映射寄存器两大类,分布在一个特定的RAM区(00H-7FH),即数据存储区的第0页内,又称作存储器映像寄存器MMR。,片上外设,所有的C54x的CPU结构及功能完全相同,但片上外设的配置可能不同。完整的片上外设配置包括特殊功能寄存器、串行口、并行口、通用I/O口、定时器、时钟发生器、软件可编程等待状态发生器、中断系统等等。,5,6,7,外设 映 射 寄 存 器,8,9,l 辅助寄存器(AR0-AR7)8个16位的辅助寄存器(AR0-AR7)能被算术逻辑单元ALU访问,也能被辅助寄存器算术单元ARAU修改,其主要功能是产生16位的数据空间地址,也能用来作为通用寄存器和计数器。l 循环缓冲寄存器(BK)循环缓冲寄存器(BK)被用来通过ARAU在循环寻址中确定数据循环区的大小。l 块循环寄存器(BRC、RSA、REA)块循环寄存器(BRC)在块循环时确定一段代码所需循环的次数;块循环头地址寄存器(RSA)中存放循环程序块的开始地址;块循环尾地址寄存器(REA)中存放循环程序块的结束地址。,常用特殊功能寄存器,片上外设,10,l 堆栈指针寄存器(SP)堆栈指针是个l6位的专用寄存器,被用来存放栈顶地址,指示出堆栈顶部在数据存储空间的位置。C54x的堆栈是向下生成的,SP总是指向压入堆栈的最后一个数据。系统复位后,SP初始化为0H,使得堆栈由0000H处开始。中断、调用、返回、PUSH、POP等指令都要进行堆栈处理。l 暂存器(TREG)TREG被用来为乘法指令、乘法/累加指令存放一个乘数,或为带移位操作的指令(如ADD,LD,SUB)存放一个动态的移位计数值,也可为BITT指令存放一个动态位地址。EXP指令把计算出的数值存入TREG,而NORM指令则根据TREG中的值对累加器进行归一化处理。l中断寄存器(IMR,IFR)中断屏蔽寄存器IMR在需要的时候独立屏蔽特定的中断;中断标志寄存器IFR则用来指明各个中断的当前状态。,片上外设,常用特殊功能寄存器,11,2时钟发生器 时钟发生器为DSP提供时钟信号,由一个内部振荡器和一个锁相环电路组成,可通过晶振或外部的时钟驱动。时钟发生器工作时需要的参考时钟输入可有两种选择方式:(1)由内部晶体振荡器产生。在DSP引脚X1和X2/CLKIN之间接一枚晶体,使能内部晶体振荡电路。(2)由外部参考时钟源产生。外部时钟直接从X2/CLKIN引脚输入X1引脚悬空。,片上外设,12,VC5402DSP内部高稳定性能的锁相环(PLL)电路能够锁定时钟振荡频率,并有信号提纯和频率放大作用,故可以选择一个频率比CPUCLK低的高稳定时钟源,降低对频率的要求。PLL的倍频大小与时钟模式寄存器的软件配置以及DSP管脚的硬件连接有关,即有软件/硬件两种配置方法:,片上外设,13,(1)软件配置PLL PLL的软件配置是指通过设置C54xDSP时钟模式寄存器CLKMD的各状态位来选择配置PLL的倍频/分频系数,不仅能通过其时钟定标器配置各种乘法器系数,还可以直接开通或关断PLL。CLKMD属存储器映像寄存器,位于数据存储区的第0页上,地址为0058H。15-12 11 10-3 2 1 0例:STM#9007H,CLKMD,片上外设,PLL乘数,PLL除数,PLL计数器,PLL通/断位,PLL方式选择,PLL状态位,14,15,PLL倍频/分频系数配置方法,(CPU时钟频率)CLKOUTCLKIN(实际倍频分频系数),片上外设,16,(2)硬件配置PLL PLL的硬件配置是指通过连接设置C54xDSP三个引脚CLKMD1、CLKMD2、CLKMD3的电平状态来选择配置PLL的倍频大小。需要指出的是:DSP复位时首先根据这3个引脚状态硬件配置PLL。,芯片复位时,首先采样CLKMD1、CLKMD2和CLKMD3的管脚电平这三个管脚的状态同时决定了时钟模式寄存器CLKMD的初始值;芯片复位后,则可以通过编程修改CLKMD的内容,重新设置时钟方式以获得所需的PLL倍频/分频系数。VC5402DSP复位时的CLKMD初始值如下表所示。,17,VC5402DSP复位时的时钟方式,18,3硬件定时器 C5402内含2个带预定标器的16位定时器(最多扩展至20位),可通过编程设置特定的状态位实现停止、重启、复位或禁止等操作。定时/计数器在每一个时钟周期中减1,减至零则产生一个定时中断TINT。,片上外设,三个定时器寄存器TIM PRDTCR控制定时器操作,启动位,加载位,19,3个与定时器相关的寄存器用来控制定时器操作,它们都是存储器映像寄存器,位于数据存储区的第0页上。,片上外设,20,TCR寄存器所包含的各状态位主要用来设置硬件定时器的各控制位。15-12 11 10 9-6 5 4 3-0,片上外设,21,正常情况下硬件定时器工作过程:当CLKOUT时钟信号沿到来时,触发4位预定标器PSC减1,直至PSC为0,然重装PSC参数(最大为1111B),同时TIM减1;当TIM为0时,用PRD值重装TIM,同时CPU发出TINT中断,并在TOUT引脚输出一个脉冲信号,脉冲宽度与CLKOUT一致,循环往复直至系统或定时器复位。可见,定时器发生中断(TINT)的频率为:即定时中断周期为:系统复位时,TIM和PRD都被置为最大值FFFFH,TCR被置为0000H,即定时器停止状态位TSS和予定标分频系数TDDR均被置0,定时器启动,并将TDDR值加载到PSC中,将PRD值加载到TIM中。,例:STM#0100H,PRDSTM#0C20H,TCRSTM#0008H,IMR RSBXINTM,片上外设,22,4中断系统 C54xDSP支持软件中断和硬件中断。软件中断由程序指令(INTR、TRAP、RESET)触发;硬件中断包括外部硬件中断和内部硬件中断两部分,分别由外部中断信号(如INT0INT3)和片内外设中断信号(包括定时器中断、串行口中断、HPI口中断等)引发 C54xDSP的硬件中断请求按CPU的控制级别分为不可屏蔽与可屏蔽两大类,可通过编程控制可屏蔽中断的禁止与使能。C54xx最多可提供24-30个软、硬件(可/不可屏蔽)中断源分为11-17个中断优先级。VC5402DSP的中断源、中断地址、中断优先级及其功能详见下表说明.,片上外设,23,VC5402DSP中断源的中断向量 及硬件中断优先权,24,25,C54xDSP中断矢量表的中断向量地址由PMST寄存器中9位中断向量地址指针IPTR和左移2位后的中断向量序号(偏移地址)组成。例如;INT0的中断向量序号为16(10H),左移2位后变成1000000D40H,当IPTR=0001H时,由此形成的中断向量地址为0000 0000 1100 0000H,即00C0H,如下图所示。,中断向量地址构成,26,*.sect.vectors“;中断矢量表程序段RST B startnopnopNMIrete;非屏蔽中断nopnopnopSINT17.space 4*14*16;各软件中断INT0call fft;外中断0中断retenop.space 4*2*16TINT0B timer;定时器0中断nopnopSINT6.space 4*8*16;软件中断*,C54xDSP的每个中断向量占用4个16位指令字地址,可放置4条指令(跳转到中断服务程序入口地址),共计约128字(1页)形成中断矢量表,中断矢量表可根据中断向量地址指针IPTR(或cmd文件)重新定位。,27,MEMORYPAGE 0:VECS:origin=0 x0800,length=0 x80PROG:origin=0 x2000,length=0 x1000PAGE 1:DATA:origin=0 x0500,length=0 x0500STACK:origin=0 x3000,length=0 x1000SECTIONS.vectors:VECS PAGE 0.text:PROG PAGE 0.data:DATA PAGE 1.stack:STACK PAGE 1.bss:DATA PAGE 1,28,.text*;中断矢量表程序段_c_int00 b start nop nopNMI rete;非屏蔽中断 nop nop nopSINT17.space 4*17*16;各软件中断TINT:B timer;定时器0中断向量 nop nop.space 4*8*16;其他未使用中断,29,中断屏蔽寄存器IMR与中断标志寄存器IFR都是存储映像寄存器,位于数据存储区的第0页上,地址分别为0000H和0001H。IMR用于屏蔽内部与外部的可屏蔽硬件中断,将IMR的相应位置1,则使能开放该中断;IFR的作用是当某个中断触发时,IFR的相应位置1,直到中断处理完毕为止。当IMR中同时有多个中断被使能时,CPU按中断优先级响应中断请求.,15-14 13 12 11 10 9 8 7,6 5 4 3 2 1 0,片上外设,中断控制寄存器IMR/IFR,30,中断寄存器IMR/IFR各字段说明,31,TMSC5402DSP的硬件复位,复位时:IPTR所有位被置1,即IPTR=1FFH PC1111 1111 1000 00000FF80H MP/MC位状态与MP/MC引脚相同 产生中断响应信号IACK 产生同步复位信号,初始化片内外设 初始化下列状态位 INTM=1 IFR=0 ARP=0 ASM=0 AVIS=0 BRAF=0 DP=0 CMPT=0 OVLY=0 DROM=0 C=1 C16=0 CPL=0 FRCT=0 HM=0 SXM=1 OVA=0 OVB=0 OVM=0 XF=1 TC=1 CLKOFF=0 使得:ST0=1800h ST1=2900h,一般有两种硬件复位方式:上电复位与工作中的按键复位。,硬件复位后,程序计数器PC指向0FF80H,若MP/MC=0,则从片内ROM的0FF80H处开始执行程序若MP/MC=1,则从片外ROM的0FF80H处开始执行程序。由于硬件复位中断地址固定不变,欲改变中断入口地址,则需重新加载IPTR,这样中断向量就能被重新映射到其它入口地址。例如:复位后,执行STM#00A8H,PMST,即用0001H加载IPTR,则中断向量就被转移到从0080H开始到00FFH结束的存储空间了。,复位是一种非屏蔽外部中断,可以在上电时或其它任何时候对DSP进行复位操作,为保证DSP可靠复位,RS引脚上必须保持至少5个主频(CLKOUT)时钟周期的低电平。,98,32,*定时中断实验*.titletimeout.global _c_int00.mmregs.sect.vectorsrst:B_c_int00NOPNOP.space18*4*16tint0:Btimeout;发生tint0中断时,PC=?NOPNOP.space8*4*16,33,.text _c_int00LD#020h,DP;置数据页指针STM#3000h,SPSSBXINTMRSBXSXMSTM#00a8h,PMST;改变中断向量映射到0 x0080STM#1007h,CLKMDSTM#19999,PRDSTM#0E39h,TCRSTM#0FFFFh,IFRSTM#0008h,IMRRSBX INTMLDMTCR,AAND#0FFEFH,ASTLMA,TCRloopB looptimeout CALL MAX RETE.end,34,MEMORYPAGE 0:VECS:origin=0 x0080,length=0 x80PROG:origin=0 x2000,length=0 x1000PAGE 1:DATA:origin=0 x1000,length=0 x1000STACK:origin=0 x3000,length=0 x1000SECTIONS.vectors:VECS PAGE 0.text:PROG PAGE 0.data:DATA PAGE 1.stack:STACK PAGE 1.bss:DATA PAGE 1,35,定时器设计举例:4ms方波信号发生器,设计分析:4ms周期方波高低电平持续时间分别为2ms,可由片上计数/定时器产生,采用定时器0中断(TINT0)方式,每中断一次,XF输出电平取反一次,则在XF端得到一个周期为4ms的方波。设计步骤:(1)定时器初值计算 定时周期T=CPU时钟周期*(PRD+1)*(TDDR+1)-最大为1048576个CPU时钟周期 此处因为输出脉冲周期为4ms,所以定时中断周期应为2ms。设CPU时钟频率为40MHz(25ns),由上式可知最大定时时间为25ms,取 TDDR=9,则:PRD=2ms/(25ns*(9+1)-1=7999=1F3Fh(2)定时器初始化设置 关闭定时器。TCR中的TSS1。加载PRD/设置TCR。启动定时器,TSS=0,TRB1。(3)定时器中断配置 IFR的定时中断位TINT01,清除末处理完的定时中断。IMR的定时屏蔽位TINT01,开放定时器0中断。ST1的中断屏蔽控制位INTM清0,开放所有可屏蔽中断。,STM#0008H,IFR;STM#0008H,IMR;RSBX INTM;,STM#0010h,TCR0;STM#1F3Fh,PRD0;STM#0E69H,TCR0;,36,定时器/计数器编程举例,例8-1 设时钟频率为16.384MHz,在TMS320C5402的XF端输出一个周期 为2s的方波,方波的周期由片上定时器0确定,采用中断方法实现。1定时器0初值计算与初始化设置(1)本例中最大定时时间约为64ms,不能直接满足定时1s的要求,可以在中断程序中设置一个计数器,若定时1ms,则计数值应为1000。(2)设置定时周期寄存器PRD(地址0025H):设TDDR=9,计算得PRD=1639=667H(3)设置定时控制寄存器TCR(地址0026H):STM#669H,TCR0,2VC5402主时钟CLKOUT频率设置 CLKOUT与外部晶体振荡器频率(在本系统中外部晶体振荡器的频率为16.384MHz)之间的关系由C5402的三个引脚CLKMD1、CLKMD2和CLKMD3的电平值决定,为使主时钟频率为16.384MHz,应使CLKMD1=1、CLKMD2=0、CLKMD3=1,即PLL1。,3定时器0中断初始化设置(1)IMR中的定时屏蔽位TINT0置1,开放定时器0中断:STM#8,IMR;(2)ST1中的中断标志位INTM位清零,开放全部中断:RSBX INTM;,37,.mmregs.def _c_int00STACK.usect STACK,100ht0_cout.usect vars,1;计数器(1000)t0_flag.usect“vars”,1;当前XF输出电平标志;t0_flag=1,则XF=1;t0_flag=0,则XF=0TVAL.set 1639;16401061ns=1ms;因中断程序中计数器初值;t0_cout=1000,所以定时时间:1ms1000=1sTIM0.set0024H;定时器0寄存器地址PRD0.set0025HTCR0.set0026H.dataTIMES.int TVAL;定时器时间常数,汇编源程序:,38,.text*;中断矢量表程序段_c_int00 b start nop nopNMI rete;非屏蔽中断 nop nop nopSINT17.space 4*17*16;各软件中断TINT:B timer;定时器0中断向量 nop nop.space 4*8*16;其他未使用中断,汇编源程序:,39,start:LD#0,DP STM#STACK+100h,SP STM#07FFFh,SWWSR STM#1020h,PMST ST#1000,*(t0_cout);计数器设置为 1000(1s)SSBX INTM;关全部中断 LD#TIMES,A READA TIM0;初始化 TIM,PRD READA PRD0 STM#669h,TCR0;初始化TCR0 STM#8,IMR;初始化 IMR,使能timer0中断 RSBX INTM;开放全部中断WAIT:B WAIT*,汇编源程序:,40,;定时器0中断服务子程序timer:ADDM#-1,*(t0_cout);计数器减1 CMPM*(t0_cout),#0;判断是否为0 BC next,NTC;不是0,退出中断 ST#1000,*(t0_cout);为0,设置计数器,;并将XF取反 BITF t0_flag,#1 BC xf_out,NTC SSBX XF;t0_flag=1则XF=1 ST#0,t0_flag B nextxf_out:RSBX XF;t0_flag=0则XF=0 ST#1,t0_flagnext:RSBX INTM RETE.end,41,链接命令文件 times.cmd:MEMORYPAGE 0:RAM1:origin=1000h,length=500h PAGE 1:SPRAM1:origin=0080h,length=20h SPRAM2:origin=0100h,length=200h SECTIONS.text:RAM1 PAGE 0.data:RAM1 PAGE 0 vars:SPRAM1 PAGE 1 STACK:SPRAM2 PAGE 1,42,5软件可编程等待状态发生器 软件可编程等待状态发生器可以把外部总线周期扩展到7个机器周期,从速度上与较慢的片外存储器和I/O设备相匹配、适应。等待控制无需外部硬件,只需编程设置软件等待状态寄存器SWWSR和软件等待状态控制寄存器SWCR即可。SWWSR是一个16位的存储器映像寄存器,位于数据存储区的第0页上,地址为0028H。SWWSR将片外的程序和数据空间各划分为2个32K字的块,I/O空间有一个64K字的块。每一块在SWWSR中都有个3位的字段,可以通过编程分别设置这5块的软等待状态周期数,最多可扩展到7个等待周期。15 14-12 11-9 8-6 5-3 2-0,片上外设,例:STM#003FH,SWWSR,

    注意事项

    本文(TMS320C54XDSP片内外设.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开