DSP原理与应用TheTechnology&ApplicationsofDSPs北京交通大学电气工程学院夏明超郝瑞祥万庆祝mchxia@bjtu.edu.cnhaorx@bjtu.edu.cnqzhwan@bjtu.ed.cnDSP原理与应用2020年4月23日2第三章:TMS320F2833XCPU结构和存储器配置第3.1节发展历史第3.2节TMS320F28335CPU结构第3.3节TMS320F28335存储器配置与IO第3.4节TMS320F28335寻址方式习题DSP原理与应用2020年4月23日3第3.1节发展历史DSP原理与应用2020年4月23日4第3.1节发展历史DSP原理与应用2020年4月23日5第三章:TMS320F2833XCPU结构和存储器配置第3.1节发展历史第3.2节TMS320F28335CPU结构第3.3节TMS320F28335存储器配置与IO第3.4节TMS320F28335寻址方式习题DSP原理与应用2020年4月23日6第3.2节TMS320F2833XCPU结构主要参考资料:1.TMS320C28xCPUandInstructionSetReferenceGuide(spru430e)2.2.TMS320F28335,TMS320F28334,TMS320F28332DigitalSignalControllers(DSCs)DataManual(SPRS439B)DSP原理与应用2020年4月23日7第3.2节TMS320F2833XCPU结构DSP原理与应用2020年4月23日8第3.2节TMS320F2833XCPU结构DSP原理与应用2020年4月23日9第3.2节TMS320F2833XCPU结构DSP原理与应用2020年4月23日10第3.2节TMS320F2833XCPU结构DSP原理与应用2020年4月23日11第3.2节TMS320F2833XCPU结构DSP原理与应用2020年4月23日12150MHz,1.9V内核,3.3VIO32位CPU,32位FPU,16*1632*32乘法器6路DMA通道32位外部接口RAM,FLASH,可外扩BootROM88路复用IO128位加密锁18路PWM输出,6个事件捕捉器3个独立32位定时器2路CAN,3路SCI,2路SPI,1路I2C16路12位80nsAD转换器支持C/C++编程,低功耗模式第3.2节TMS320F2833XCPU结构DSP原理与应用2020年4月23日13第3.2节TMS320F2833XCPU结构DSP原理与应用2020年4月23日14第3.2节TMS320F2833XCPU结构DSP原理与应用2020年4月23日15C28X内核:程序和数据控制逻辑实时仿真接口地址寄存器算术逻辑单元算术逻辑单元(ALU)乘法单元及并行处理预取指队列及指令译码单元程序和数据地址生成器中断处理单元DSP原理与应用2020年4月23日16C28X内核内部寄存器:32位中央算数逻辑单元32位累加器ACC:AH,AL32位输出移位器32位乘法输入寄存器XT(T,TL)32位辅助寄存器XAR0~XAR7(AR0~AR7)32位乘积结果寄存器P(PH,PL)16位数据页指针寄存器、中断标志寄存器、中断使能寄存器、堆栈指针SP、状态寄存器ST0、ST1第3.2节TMS320F2833XCPU结构}中央算数逻辑部分DSP原理与应用2020年4月23日1732位中央算数逻辑单元,32位累加器,32位输出移位器中央算数逻辑单元(CALU):+,-,&,|,位测试一个固定输入是累加器另一个来自输入移位器或乘法移位器累加器(ACC):接收CALU的输出,可进行移位(ADD,ADDC)输出移位器:输出移位后的ACC内容,并存到数据内存中第3.2节TMS320F2833XCPU结构DSP原理与应用2020年4月23日18第3.2节TMS320F2833XCPU结构DSP原理与应用2020年4月23日19C28X核的16位乘法单元16位临时寄存器(T)16X16乘法单元32位乘积寄存器乘积移位器:受PM控制左移01右移123456第3.2节TMS320F2833XCPU结构DSP原理与应用2020年4月23日20第3.2节TMS320F2833XCPU结构C28X核的16位乘法单元32位临时寄存器(XT)32X32乘法单元32位乘积寄存器乘积移位器:受PM控制左移01右移123456DSP原理与应用2020年4月23日21移位寄存器:64位,可接受16、32或64位数据输入,左移0~16位,对齐成32位后送给CALU。移位次数:由指令字中的常数:ADDdma,shfit(ADD1,1)由TREG低4位:ADDTdma(ADDT127)移位方式:SXM=0SXM=1第3.2节TMS320F2833XCPU结构DSP原理与应用2020年4月23日22辅助寄存器:XAR0~XAR7(AR0~AR7),ARAUXAR0~XAR7:间接寻址CMPR用于条件分支/调用/返回用作暂存软件计数器ARAU:对XAR内容进行+-实现XAR0内容和当前XAR的比较第3.2节TMS320F2833XCPU结构DSP原理与应用2020年4月23日23状态寄存器:ST0:LST#0,dmaOVC/OVCU:溢出计数PM:乘积结果移位计数V:溢出标志N:负值标志Z:结果为0标志C:进位(借位)标志TC:测试标志(TBIT指令)OVM:溢出模式控制SXM:符号位扩展模式控制第3.2节TMS320F2833XCPU结构DSP原理与应用2020年4月23日24状态寄存器:ST1:LST#1,dmaARP:当前AR选择XF:XF状态M0M1MAP:M0M1内存块映射模式OBJMODE:是否兼容C27代码AMODE:地址模式位,同PAGE0配合IDLESTAT:空闲状态标志EALLOW:仿真器使能位第3.2节TMS320F2833XCPU结构DSP原理与应用2020年4月23日25状态寄存器:ST1:LST#1,dmaLOOP:在循环中SPA:堆栈边界对齐方式VMAP:中断向量表映射模式位0-0~3F,1-3FFFC0~3FFFFFPAGE0:PAGE0寻址模式DBGM:调试使能标志INTM:全局中断屏蔽位第3.2节TMS320F2833XCPU结构DSP原理与应用2020年4月23日26第三章:TMS320F2833XCPU结构和存储器配置第3.1节发展历史第3.2节TMS320F28335CPU结构第3.3节TMS320F28335存储器配置与IO第3.4节TMS320F28335寻址方式习题DSP原理与应用2020年4月23日27第3.3节TMS320F2833X存储器配置与IO低64kDSP原理与应用2020年4月23日28高64k第3.3节TMS320F2833X存储器配置与IODSP原理与应用2020年4月23日29第3.3节TMS320F2833X存储器配置与IO256kFlashDSP原理与应用2020年4月23日30第3.3节TMS320F2833X存储器配置与IOFlashDSP原理与应用2020年4月23日31外接存储空间扩展:XZCS6:0X100000~17FFFF512K*16RAMTMS320F28335XD0~XD15XZCS6XRDXWEA0~A18A0~A18D0~D15CSOEWEA0~A18D0~D15IS61LV51216第3.3节TMS320F2833X存储器配置与IODSP原理与应用2020年4月23日32扩展(外部)读时序第3.3节TMS320F2833X存储器配置与IODSP原理与应用2020年4月23日33扩展(外部)写时序第3.3节TMS320F2833X存储器配置与IODSP原理与应用2020年4月23日34第3.3节TMS320F2833X存储器配置与IOGPIO:3种复用功能方向数据DSP原理与应用2020年4月23日35第3.3节TMS320F2833X存储器配置与IOGPIO有关寄存器:0x00006F80-0x00006FFF复用方向上拉控制品质DSP原理与应用2020年4月23日36第3.3节TMS320F2833X存储器配置与IOGPIO有关寄存器:0x00006F80-0x00006FFF复用:GPxMUXn决定该GPIO管脚具体功能方向:GPxDIR决定作为GPIO时是输入还是输出上拉:内部上拉机制是否有效控制:品质控制是否有效品质:输入信号电平品质:3或6个同步时钟周期不变DSP原理与应用2020年4月23日37第3.3节TMS320F2833X存储器配置与IOGPIO有关寄存器:0x00006F80-0x00006FFF品质:输入信号电平品质:3或6个同步时钟周期不变DSP原理与应用2020年4月23日38第3.3节TMS320F2833X存储器配置与IOGPIO有关寄存器:0x00006F80-0x00006FFFGPxDAT:数据,作为输入时的管脚状态GPxSET:设定,作为输出时的管脚状态GPxCLEAR:清0,作为输出时置0GPxTOGGLE:置1,作为输出时置1DSP原理与应用2020年4月23日39第三章:TMS320F2833XCPU结构和存储器配置第3.1节发展历史第3.2节TMS320F28335CPU结构第3.3节TMS320F28335存储器配置与IO第3.4节TMS320F28335寻址方式习题DSP原理与应用2020年4月23日40第3.4节TMS320F28335寻址方式C程序与汇编程序与机器码的对应:inta[10],b[10];scale(intk){inti;for(i=0;i10;i++){a[i]=b[i]*k;}}_scale:LRLKAR6,_aLRLKAR5,_bLACK9SAMMBRCRLARKAR2,-3+LF1MAR*0+,AR5RPTBL4-1LT*+,AR2MPY*,AR6SPL*+,AR5L4:RET......4749463839617800F701661D197B903FA961864E9661DSP原理与应用2020年4月23日41程序控制:PC复位后PC=0,从程序存储的3FFFC0H开始,然后按照流水取指-指令译码-取操作数-执行顺序执行.根据指令译码结果,决定后续的PC值,即后续的指令取指位置.例如:ADD#4000h,2对应的程序存储段内容:10111111100100100100000000000000第3.4节TMS320F28335寻址方式DSP原理与应用2020年4月23日42寻址模式控制位:AMODEST1.8控制寻址模式AMODE=0,16位寻址模式,与大多数C2000兼容。AMODE=1,32位寻址模式第3.4节TMS320F28335寻址方式DSP原理与应用2020年4月23日43寻址:取操作数、数据或IO内容立即数寻址方式直接寻址方式堆栈寻址方式间接寻址方式寄存器寻址方式第3.4节TMS320F28335寻址方式DSP原理与应用2020年4月23日44立即数寻址方式:通过指令中的立即数直接访问数据/程序/IO空间,方法:*16位立即数例如:MOVloc16,*0100;地址0100h的内容放到loc16中第3.4节TMS320F28335寻址方式DSP原理与应用2020年4月23日45直接寻址方式:利用DP作为数据页面指针,指令中带6或7位偏移量访问该页面内存储单元。例如:MOVWDP,#VarA;ADDAL,@VarA;第3.4节TMS320F28335寻址方式DSP原理与应用2020年4月23日46堆栈寻址方式:使用SP(堆栈指针),指令中带6位偏移量,从堆栈指针处减去此偏移量作为要访问的存储单元地址。例如:ADDAL,*−