您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 能源与动力工程 > tms320f28x dsp基础培训讲义
TMS320F28XDSP基础培训讲义一、功能概述二、存储器三、寻址方式四、指令系统五、CCS使用六、应用实例一、功能概述1、概念2、特性概述3、器件概述4、引脚1、概念数字信号处理(DigitalSignalProcessing)是指利用计算机或专用设备,以数值计算的方式对实时信号进行采集、变换、综合、估计与识别等加工处理,从而达到提取信息和便于应用的目的。而DSP芯片(数字信号处理器(DigitalSignalProcessors)就是这样的一种微处理器。其中TI公司推出的TMS320F28X处理器具有较高的信号处理和控制功能,在数字控制领域拥有广阔的应用前景。TMS320F2810及TMS320F2812是工业界首批32位的控制专用、内含闪存以及高达150MIPS的数字信号处理器,专门为工业自动化、光学网络及自动化控制等应用而设计。2、特性概述采用高性能的静态CMOS技术:主频达150MHz(时钟周期6.67ns);低功耗设计;Flash编程电压为3.3V支持JTAG边界扫描接口。2、特性概述高性能的32位CPU:1.16X16位和32X32位的乘法累加操作;2.16X16位的双乘法累加器;3.哈佛总线结构;4.快速中断响应和处理能力;5.统一寻址模式;6.4MB的程序/数据寻址空间;7.高效的代码转换功能(支持C/C++和汇编);8.与TMS320F24X/LF240X处理器的源代码兼容2、特性概述片内存储器有多达128K×16的FLASH存储器1K×16的OTP型只读存储器L0和L1:两块4K×16的单口随机存储器(SARAM)H0:一块8K×16的单口随机存储器M0和M1:两块1K×16的单口随机存储器根只读存储器(BootROM)(4k×16)软件启动模式数学运算表2、特性概述外部存储器扩展接口(F2812)有多达1MB的寻址空间可编程等待状态数可编程读/写选择时序;三个独立的片选信号时钟与系统控制支持动态的改变锁相环的频率片内振荡器看门狗定时器模块三个外部中断外部中断扩展(PIE)模块可支持45个外部中断2、特性概述128位的密钥保护Flash/掩膜存储器OTP和L0/L1SARAM防止ROM中的程序被盗三个32位的CPU定时器马达控制外围设备两个事件管理器(EVA,EVB)与240兼容的器件串口外围设备串行外围接口(SPI)两个串行通信接口(SCIs),标准的UART增强的Ecan2.0B接口模块多通道缓冲串行接口(McBSP)和串行外围接口模式2、特性概述12位的ADC,16通道2×8通道的输入多路选择器两个采样保持器最快的转换周期:60ns/12.5MSPS可以使用两个事件管理器顺序触发8对模数转换。最多有56个独立的可编程、多用途通用输入/输出(GPIO)引脚高级的仿真特性分析和设置断点的功能实时的硬件调试2、特性概述开发工具包括:ANSIC/C++编译器/汇编程序/连接器支持TMS320C24/240X的指令代码编辑集成环境DSP/BIOSJTAG扫描控制器(TI或第三方的)硬件评估板支持大多数的第三方的数字马达控制低功耗模式和节能模式支持空闲模式,等待模式,挂起模式停止单个外围的时钟封装方式带外部存储器接口179球形触点的MicroStarBGA封装带外部存储器接口176引脚的贴片正方扁平封装没有外部存储器的128引脚的LQFP封装温度的选择:A:-40℃到85℃S:-40℃到125℃(SPRS174F第1页)3、器件概述见1.4器件概述表一:硬件特征见1.5:功能框图封装:带外部存储器接口176引脚的贴片正方扁平封装4、引脚所有的输入均与TTL兼容。输出均为3.3V的CMOS电平。输入不能承受5-V电压。上拉电流/下拉电流为100μA所有引脚的输出缓冲器驱动能力(有输出功能的)典型值是4mAI:输入,O:输出,Z:高阻态PU:引脚有上拉功能,PD:引脚有下拉功能详见:p11引脚功能GPADIR=0,设定响应的GPIO引脚为输入。GPADIR=1,设定响应的GPIO引脚为输出。4、引脚二、存储器1.框图2.对偶地址进行32位存取的排列1、框图C28x具有32位的数据地址和22位的程序地址。总的地址空间可达4G字(1个字=16位)的数据空间和4M字的程序空间。在C28x中所有存储器块都统一映像到程序空间和数据空间,SPRS174NP303.1表示了在程序空间和数据空间地址是如何分配的。片内SARAM:单口随机读/写存储器,在单个机器周期内只能被访问一次。2、对偶地址进行32位存取的排列对于16位和32位的存取,C28x支持特殊的字节存取指令,它能访问地址字的最低位字节(LSByte)或者最高位字节(MSByte)C28xCPU希望存储器的外围或外围设备接口逻辑对任意一个对偶地址的32位读写操作进行排列。如果地址产生逻辑产生了一个奇地址,则CPU必须在之前的偶地址开始进行读或写操作。这种排列不会不影响由地址产生逻辑所产生的地址值。许多从程序空间取指的指令是作为32位读操作来完成,并相应的作了排列。然而,对取来的指令进行排列对于编程者的影响并不明显。当指令存储在程序空间时,它们并不一定要排列为偶地址。指令被约束在CPU内部进行译码。在执行从数据空间进行32位读写的指令时必须注意这种排列。三、C28x的寻址方式1.寻址方式2.直接寻址方式(DP)3.堆栈寻址方式(SP)4.间接寻址方式5.寄存器寻址方式6.数据/程序/IO空间立即寻址方式7.程序空间间接寻址方式8.字节寻址方式9.32位操作的定位1.寻址方式C28xCPU支持四种基本的寻址方式:直接寻址方式DP(数据页指针):在这种寻址方式中,16位的DP寄存器作为固定的页指针,在指令中提供6位或7位的偏移量,这些偏移量与DP寄存器中的值相连接。这种寻址方式对固定寻址的数据结构,例如对外围寄存器和C/C++中的全局或静态变量来说,都是一种有效的方法。堆栈寻址方式SP(栈指针):在这种寻址方式中,16位的SP指针用于访问软件堆栈的信息。C28x的软件堆栈从存储器的低地址变化到高地址,堆栈指针总是指向下一个空位置。在指令中提供6位的偏移量,这些偏移量是从当前栈指针值中抽取出来用于访问堆栈数据的,或者在数据入栈和出栈时,分别用在栈指针操作后增加或操作前减小。1、寻址方式间接寻址方式XAR0到XAR7(辅助寄存器指针):在这种寻址方式中,32位的XARn寄存器作为一般性数据指针。指令可根据一个3位立即数偏移量或另外的16位寄存器的内容,对当前寄存器的内容进行几种操作:操作后增加、操作前/后减小或进行变址。寄存器寻址方式在这种寻址方式中,另一个寄存器可作为访问的源操作数或目的操作数,这就使在C28x结构中寄存器到寄存器的操作成为可能。1、寻址方式另外可用的几种寻址方式有:数据/程序/IO空间立即寻址方式在这种寻址方式中,存储器操作的地址就存在于指令中。程序控间接寻址某些指令可以通过使用间接指针对程序空间中的存储器进行访问。因为C28xCPU的存储器是标准一致的,这就使在一个机器周期中进行两次读操作成为可能。只有少数指令使用上述的寻址方式,典型地,它们都与‘loc16/loc32’语法组合起来使用。2、直接寻址方式(DP)实例:MOVWDP,#VarA;LoadDPpointerwithpagevaluecontainingVarAADDAL,@VarA;AddmemorylocationVarAtoregisterALMOV@VarB,AL;StoreALintomemorylocationVarB;VarBislocatedinthesame64–wordpageasVarAMOVWDP,#VarC;LoadDPpointerwithpagevaluecontainingVarCSUBAL,@VarC;SubtractmemorylocationVarCfromregisterALMOV@VarD,AL;StoreALintomemorylocationVarD;VarCislocatedinthesame64–wordpageasVarD;VarC&DareindifferentpagesthanVarA&B”loc16/loc32”语法说明@6bit32位数据地址(31:22)=032位数据地址(21:6)=DP(15:0)32位数据地址(5:0)=6bit注:6位偏移量与16位的DP寄存器相连。对于当前页指针(DP)寄存器的值,偏移量的值可以允许寻址0到64个字。3、堆栈寻址方式(SP)”loc16/loc32”语法说明*–SP[6bit]32位数据地址(31:16)=0x000032位数据地址(15:0)=SP–6bit注:6位偏移量从16位的当前SP寄存器中减掉。对于当前堆栈指针(SP)寄存器的值,偏移量的值可以允许寻址0到64个字。实例:ADDAL,*–SP[5];Add16-bitcontentsfromstacklocation;–5wordsfromtopofstacktoALregisterMOV*-SP[8],AL;Store16-bitALregistertostacklocation;-8wordsfromtopofstackADDLACC,*–SP[12];Add32-bitcontentsfromstacklocation;–12wordsfromtopofstacktoACCregister.MOVL*-SP[34],ACC;Store32-bitACCregistertostacklocation;–34wordsfromtopofstack3、堆栈寻址方式(SP)”loc16/loc32”语法说明*SP++32位数据地址(31:16)=0x000032位数据地址15:0)=SPif(loc16),SP=SP+1if(loc32),SP=SP+2实例:MOV*SP++,AL;Pushcontentsof16-bitALregisterontotop;ofstackMOVL*SP++,P;Pushcontentsof32-bitPregisterontotop;ofstack3、堆栈寻址方式(SP)”loc16/loc32”语法说明*––SPif(loc16),SP=SP–1if(loc32),SP=SP–232位数据地址(31:16)=0x000032位数据地址(15:0)=SP实例:ADDAL,*––SP;Popcontentsfromtopofstackandaddto16-bit;ALregisterMOVLACC,*––SP;Popcontentsfromtopofstackandstorein;32-bitACCregister注意:这种寻址方式只能访问C28x数据地址低端的64K空间。4、间接寻址方式C28x的间接寻址方式(XAR0-XAR7)”loc16/loc32”语法说明*XARn++ARP=n32位数据地址(31:0)=XARnif(loc16),XARn=XARn+1if(loc32),XARn=XARn+2实例:MOVLXAR2,#Array1;LoadXAR2withstartaddressofArray1MOVLXAR3,#Array2;LoadXAR3withstartaddressofArray2MOV@AR0,#N–1;LoadAR0withloopcountNLoop:MOVLACC,*XAR2++;LoadACCwithlocationpointedtobyXAR2,;post–incrementXAR2MOVL*XAR3++,ACC;StoreACCintolocationpointedtobyXAR3,;post–incrementXAR3BANZLoop,AR0––;LoopuntilAR0==0,post–decrementAR04、间接寻址方式”loc16/loc
本文标题:tms320f28x dsp基础培训讲义
链接地址:https://www.777doc.com/doc-3620388 .html