1 dsPIC30F 系列数字信号控制器(DSC) dsPIC30F 系列DSC 采用程序存储器和数据存储器完全分离的哈佛体系结构: 2 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位双向 3 桶形移位寄存器。该桶形移位寄存器在单个周期内至多可将一个40位的值右移15位或左移16位。DSP指令可以无缝地与所有其他指令一起操作,其设计可实现最佳的实时性能。MAC指令和其他相关指令可以同时从存储器中取出两个数据操作数并将两个W 寄存器相乘。这要求数据空间对于这些指令拆分为两块,但对所有其他指令保持线性。这是通过为每个地址空间指定某些工作寄存器,以透明和灵活的方式实现的。 4 CPU不支持多级指令流水线,而是利用单级指令预取机制,它在指令执行的前一个周期存取并解码部分指令,以便使可利用的执行时间达到最长。单周期指令预取机制用来帮助维持吞吐量并提供可预测的执行。除了改变程序流的指令、双字移动(MOV.D)指令和表指令以外,所有指令都在单个周期内执行。使用DO和REPEAT 指令支持无开销的程序循环结构,这两个指令在任何时候都可被中断。 dsPIC30F具有中断向量异常(Ex ception)机制,带有多达8个不 5 可屏蔽陷阱源和5 4 个中断源。可以为每个中断源分配7 个优先级之一。陷阱的优先级是8 —1 5 。 编程模型:编程模型如图2 -1 所示 6 编程模型由16个16位工作寄存器(W0至W15)、2个40位累加器(AccA和AccB)、状态寄存器(SR)、数据表页寄存器(TBLPAG)、程序空间可视性页寄存器(PSVPAG)、DO和REPEAT寄存器(DOSTART、DOEND、DCOUNT和RCOUNT)以及程序计数器PC...