DSP芯片概述课件_第1页
DSP芯片概述课件_第2页
DSP芯片概述课件_第3页
DSP芯片概述课件_第4页
DSP芯片概述课件_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Freescale(Motorola)

16位DSP原理及开发技术

2.DSP芯片概述

第一部分

Freescale(Motorola)16位DSP

DSP56800介绍模拟滤波器原理图模拟滤波器优点:响应速度快缺点:精度低、放大器的线性及可处理信号的动态范围有很多限制、温度漂移大、系统调试不方便等。DSP芯片硬件和软件的结合|------------------------DSP芯片-------------------------------|用DSP实现FIR滤波器的特点:软件与硬件的结合,有大量数学运算,稳定可靠………DSP与CPU一普通CPU与DSP结构上的区别普通CPU:

采用冯.诺曼结构(程序与数据统一编址,不区分存储器的程序空间和数据空间)。

DSP:采用哈佛结构(程序与数据空间分开编址)即多总线结构。

DSP56800内核的内部总线有7条:PABPDBXAB1XAB2XDB2CGDBPGDB改进的哈佛结构:程序和数据空间相互传数据。DSP与CPU(续)(1)单并行处理例:ADDX0,AY0,X:(R1)+N

(2)双重并行处理例:MACRX0,Y0,AX:(R0)+N,YX:(R3)-,X0;二、由于多总线结构,DSP可实现指令的并行处理DSP与CPU(续)

四运算方面

乘加运算循环运算CPU要调用相应每一次检查是否乘、加函数循环n次DSP在一或二个时钟有重复n次指令周期内完成乘加REPn运算,用硬件逻辑有循环n次指令完成Doloopn如MAC指令DSP与CPU(续)五CPU与DSP存储器CPU:片内存储器和片外可扩展存储器RAM、ROM(Flash)DSP:程序Flash、程序RAM、数据Flash、数据RAM、B00tFlash等等。

DSP的存储器比单片机要复杂得多!DSP与CPU(续)六CPU与DSP56800的中断DSP56800的中断比CPU要复杂得多:(1)DSP56800的中断源可达64个;(2)DSP56800的中断优先级达7级;(3)DSP56800与中断有关的寄存器多,达到14个。DSP56800内核结构DSP56800的算数逻辑单元(ALU)组成:内部寄存器

乘/加器MAC

极值限制器DSP56800的算数逻辑单元

3个16位的数据输入寄存器X0、Y0和Y1,其中Y0与Y1可作为1个32位寄存器Y

2个32位的累加寄存器A和B,A=A1+A0,再加上A2成为36位

B=B1+B0,再加上B2成为36位A、B寄存器是当作36位还是当作32位来用,由用户在程序中设定,即对程序控制器中的运行模式寄存器OMR中的CC位编程内部寄存器DSP56800的地址产生单元(AGU)地址指针寄存器偏移量寄存器地址域寄存器堆栈指针寄存器组成:DSP56800的地址产生单元寄存器通用地址寄存器R0-R3:等效为C语言中的指针类型的寄存器变量,用于访问存储器。地址偏移量寄存器N:常包含用于更新地址的偏移量,可为CGDB所读/写,可作为地址运算单元的输入。地址域寄存器M01:用于定义一个循环缓冲区。只有R0和R1可以与M01合作完成循环存储域的运算,R3是在存储器的并行处理时,用做读/写片内存储器的寄存器。堆栈指针SP:所有push和pop指令中都必须用到的寄存器,复位后要首先对SP初始化用R0寄存器间接寻址一例$1000数据存储器XXXX$1000R0(无影响)N(无影响)M01$1000R0(无影响)N(无影响)M01150150150150150150150例:MOVEA1,X:(R0)$1000数据存储器1234150执行后执行前012345678A2A015031163235A1A012345678A2A015031163235A1A流水线效应消除流水线效应的方法有两种—在两条指令间插入一条NOP指令,或者重排近处的指令,使流水线效应的条件不再成立。

一个AGU流水线效应的例子move#$4,r0moveX:(r0),b;用的是r0以前的值,不是"4"movex0,y0

方法1-在两条指令间插入一条NOP指令move#$4,r0nop;插入NOP指令moveX:(r0),b;使用r0的新值,"4"movex0,y0方法2-重排指令,使条件不再成立move#$4,r0movex0,y0;moveX:(r0),b;使用r0的新值,"4"例设计一个FIR滤波器算式:c(0)*x(n-0)y(n)=c(1)*x(n-1)c(99)*x(n-99)++...+扩展的等式:应怎样计算这个等式?-为100个系数(c(i))开辟100个存储单元===>数据存储器.为100个数据样本(x(i))开辟100个存储单元===>数据存储器-乘法指令-加法指令-传输指令X:000C(0)C(1)C(2)C(99)X:099X:128X:227X(n-0)X(n-1)X(n-2)X(n-99)MPYADDMOVE clr a ;清除累加器 move #0,r3 ;为系数设置指针 move #128,r0 ;为数据设置指针move X:(r0)+,y0 X:(r3)+,x0do#100,label macx0,y0,a X:(r0)+,y0 X:(r3)+,x0label这段代码有什么问题,会导致汇编错误?设计一个FIR滤波器DSP56800的程序控制单元(PCU)主要功能:指令读取指令译码硬件循环控制中断处理存储器的操作和使用DSP56800的程序控制单元(PCU)

PC:程序计数器,提供读取程序存储空间的地址

SR:状态寄存,包括一个8位的模式寄存器MR和一个8位的条件码寄存器CCR。

OMR:运行模式寄存器

HWS:硬件堆栈寄存器

LC:循环次数寄存器

LA:循环地址寄存器组成:三循环地址寄存器LA、循环次数寄存器LC、硬件堆栈寄存器HWS

作用:他们用于循环语句的控制。DSP56800指令集中有两种循环控制指令:REP和DO指令。

REP指令实例:REP#5;ASLA;将ASLA指令重复执行5次立即数5是被锁存在循环次数寄存器LC中。REP指令只能重复紧接着的一条指令,不能实现多条指令的循环。三循环地址寄存器LA、循环次数寄存器LC、硬件堆栈寄存器HWS(续)DO指令实例:DO指令:DO#8,END;开始循环语句MOVEX:(R0),A;REP#3;REP嵌套在DOLOOP中ASLAMOVEA,X:(R0)+;循环指令的最后一条指令END……….;下一条指令

REP指令可以嵌套在DO指令中。DSP56800的可寻址空间程序空间大小为64K字,0-$7F为中断向量区,$80-$FFFF为程序存储器区。数据空间大小为64K字,$FFC0-$FFFF为外设的I/O短寻址空间,$0-$FFBF为数据存储器区。启动Flash(BootFlash)DSP56800系列各种型号芯片还有2K字的启动

Flash(BootFlash),可用于上电复位系统初始化和启动。DSP启动有多种方式:片内Flash启动;片外Flash启动;从I/O口下载一段程序到片内程序RAM中启动;BootFlash启动。DSP56800系列DSP56800内核的内部总线程序空间地址总线PAB:用于读取程序程序空间数据总线PDB:用于读/写数据空间的数据数据地址总线XAB1:用于读/写数据空间的存储器数据地址总线XAB2:只与片内存储器相连,对外部存储器不起作用内部全局数据总线CGDB:用于读/写内部寄存器外设全局数据总线PGDB:用于以I/O短寻址方式读/写外设外部数据总线XDB2DSP56800内核的内部总线DSP56800的工作模式

运行模式寄存器OMR中的MB、MA位一同连到DSP外部引脚XBOOT上:

XBOOT=0,单片方式。不需要外部扩展

ROM(Flash)和RAMXBOOT=1,扩展方式。需要外部扩展

ROM(Flash)和RAM,外部扩展的RAM对程序的调试有利。56800系列DSP应用领域DSP56F801~DSP56F807具有多种外围电路,适合于移动控制、智能设备、电源控制、汽车控制等。DSP56F824多用于电池供电的低

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论