- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
dsPIC30F系列
dsPIC30F系列数字信号控制器(DSC)
dsPIC30F系列DSC采用程序存储器和数据存储器完全分离的哈佛体系结构:
1、CPU结构
概述: dsPIC30F的CPU拥有24位指令字。程序计数器PC为24位宽,最低有效位总是0,除一些特殊指令外,在程序的正常执行中总是忽略其最高有效位,因此程序计数器PC可以寻址4M×24位的用户程序存储器空间。
工作寄存器阵列由16个16位的寄存器构成。每个工作寄存器都可以充当数据、地址或地址偏移寄存器。第16个工作寄存器(W15)作为软件堆栈的指针工作,用于中断服务程序和子程序的调用。
dsPIC30F指令集有两类指令:MCU类指令和DSP类指令。这两类指令无缝地集成到架构中并从同一个执行单元执行。指令集包括很多寻址模式。
CPU支持固有(无操作数)寻址、相对寻址、立即数寻址、存储器直接寻址、寄存器直接寻址和寄存器间接寻址模式。每条指令最多支持6种寻址模式。
CPU中包含一个DSP引擎,如图2-2所示,它具备一个高速17位×17位乘法器、一个40位ALU、两个40位饱和累加器和一个40位双向桶形移位寄存器。该桶形移位寄存器在单个周期内至多可将一个40位的值右移15位或左移16位。DSP指令可以无缝地与所有其他指令一起操作,其设计可实现最佳的实时性能。MAC指令和其他相关指令可以同时从存储器中取出两个数据操作数并将两个W寄存器相乘。这要求数据空间对于这些指令拆分为两块,但对所有其他指令保持线性。这是通过为每个地址空间指定某些工作寄存器,以透明和灵活的方式实现的。
CPU不支持多级指令流水线,而是利用单级指令预取机制,它在指令执行的前一个周期存取并解码部分指令,以便使可利用的执行时间达到最长。单周期指令预取机制用来帮助维持吞吐量并提供可预测的执行。除了改变程序流的指令、双字移动(MOV.D)指令和表指令以外,所有指令都在单个周期内执行。使用DO和REPEAT 指令支持无开销的程序循环结构,这两个指令在任何时候都可被中断。
dsPIC30F具有中断向量异常(Exception)机制,带有多达8个不可屏蔽陷阱源和54个中断源。可以为每个中断源分配7个优先级之一。陷阱的优先级是8—15。
编程模型:编程模型如图2-1所示
编程模型由16个16位工作寄存器(W0至W15)、2个40位累加器(AccA和AccB)、状态寄存器(SR)、数据表页寄存器(TBLPAG)、程序空间可视性页寄存器(PSVPAG)、DO和REPEAT寄存器(DOSTART、DOEND、DCOUNT和RCOUNT)以及程序计数器PC组成。工作寄存器可作为数据、地址或偏移量寄存器。编程模型中全部寄存器都是存储器映射的,并且可以由指令直接控制。
在编程模型中出现了影子寄存器的概念,编程模式中的许多寄存器都有相关的影子寄存器。影子寄存器都不能直接访问。有两种类型的影子寄存器:一类被PUSH.S和POP.S指令使用,另一类被DO指令使用,如上图2-1所示。影子寄存器用作暂存寄存器,它能通过发生的一些事件和它的主寄存器互传内容。下面介绍寄存器和它的影子寄存器如何将数据传入和传出。
⑴ PUSH.S和POP.S影子寄存器
在执行函数调用或中断服务程序(Interrupt Service Routine, ISR)时,PUSH.S和POP.S指令可用于快速现场保护/恢复。PUSH.S指令会将下列寄存器的值传输到它们各自的影子寄存器W0~W3、SR(仅N、OV、Z、C和DC位),POP.S指令会将值从影子寄存器恢复到这些寄存器单元。
PUSH.S指令可以改写先前保存在影子寄存器中的内容。由于影子寄存器深度只有一级,所以如果多个软件任务使用影子寄存器,应加以注意。用户必须确保任何使用影子寄存器的任务均不会被同样使用该影子寄存器且具有更高优先级的任务中断。如果允许较高优先级的任务中断较低优先级的任务,则较低优先级任务保存在影子寄存器中的内容将被较高优先级任务改写。
⑵ DO循环影子寄存器
当执行DO指令时,寄存器DOSTART、DOEND和DCOUNT的内容将自动保存在影子寄存器中。DO影子寄存器的深度也是一级,允许两个循环自动嵌套。
软件堆栈:下图为软件堆栈示例图:
dsPIC30F器件包括一个软件堆栈,W15专用于软件堆栈指针SP,用于异常处理、子程序调用和返回。为了防止堆栈存取未对准的情况发生,W150总是为0值。
由图我们可以看到,所有复位均将W15初始化为0x0800。此地址确保在所有dsPIC30F器件中,堆栈指针(SP)将指向有效的RAM,并允许在SP被用户软件初始化前发生的不可屏蔽异常陷阱使用堆栈。 在初始化期间,用户可以将SP重新编程以指向数据空间内的任何单元。堆栈指针总是指向第一个可用的空字并从低地址到高地址填充软件堆栈。堆栈出
您可能关注的文档
最近下载
- 寺庙建筑工程施工合同范本6篇.docx VIP
- 汇川 H5U&Easy系列可编程逻辑控制器指令手册.PDF VIP
- 教育学原理-第十章-教育科学研究-适用于项贤明主编《教育学原理》(马工程).pptx VIP
- 汇川INOVANCE Easy320可编程逻辑控制器用户手册-中文.PDF VIP
- 服务质量提升:服务礼仪在餐饮服务行业的应用及员工培训.pptx VIP
- (2025年高考真题)2025年湖北高考真题化学试题(解析版).docx VIP
- 汇川inovance Easy302可编程逻辑控制器用户手册.PDF VIP
- 汇川inovance Easy系列可编程逻辑控制器用户手册.PDF VIP
- 智能车牌识别系统PPT课件.pptx VIP
- 20200318附加-2019年电赛综合测评方案详细计算过程.pdf VIP
文档评论(0)