版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
dsPIC30F---结构1dsPIC30F结构dsPIC30F器件的每个都可划分为以下三个局部:1.CPU内核2.系统集成3.外设CPU内核CPU内核是器件运行所必需的根本局部。包括:1.CPU2.数据存储器3.程序存储器4.DSP引擎5.中断2系统集成降低系统本钱提高系统可靠性提高设计灵活性dsPIC30F系统集成功能主要包括:1.振荡器2.复位4.看门狗定时器和低功耗模式5.闪存和EEPROM编程6.器件配置3.低电压检测3外设dsPIC30F具备许多允许器件与外界交换信息的外设。包括:1.I/O端口2.定时器3.输入捕捉模块4.输出比较模块5.正交编码器接口〔QEI〕6.10位AD转换器7.12位AD转换器8.UART模块9.SPITM模块10.I2CTM模块11.数据转换器接口〔DCI〕模块12.CAN模块1.3.4存储器技术45
一、CPU内核
1、概述CPU内核CPU内核采用16位〔数据〕改进的哈佛架构,并带有增强型指令集包含对DSP的有力支持。CPU拥有24位指令字,指令字带有长度可变的操作码字段。程序计数器〔PC〕为24位宽,可以寻址高达4M×24位的用户程序存储器空间。单周期指令预取机制用来帮助维持吞吐量并提供可预测的执行。除了改变程序流的指令、双字移动〔MOV.D〕指令和表指令以外,所有指令都在单个周期内执行。使用DO和REPEAT指令支持无开销的程序循环结构,这两个指令在任何时候都可被中断。67
2、编程模型由16个16位工作存放器〔W0至W15〕、2个40位累加器〔ACCA和ACCB〕、状态存放器〔SR〕、数据表页存放器〔TBLPAG〕、程序空间可视性页存放器〔PSVPAG〕、DO和REPEAT存放器DOSTART、DOEND、DCOUNT和RCOUNT〕以及程序计数器〔PC〕组成。工作存放器可作为数据、地址或偏移量存放器。所有存放器都是存储器映射的。W0用作进行文件存放器寻址的W存放器。影子存放器影子存放器用作临时保持存放器,事件发生时可在影子存放器和主存放器之间传递内容。所有影子存放器均不能直接访问。89PUSH.S和POP.S用于执行函数调用或中断效劳程序,W0、W1、W2、W3和SR〔仅限DC、N、OV、Z和C位〕是与之对应的影子存放器,可进行内容传递。DO指令循环开始时,DOSTART、DOEND和DCOUNT存放器的内容压入影子存放器,在循环结束时其内容从各自的影子存放器中弹出。对工作存放器进行字节操作时,只影响目标存放器的低字节〔LeastSignificantByte,LSB〕。10状态存放器内核有一个16位状态存放器〔SR〕,其最低有效字节称为SR低字节〔SRLowByte,SRL〕,其最高有效字节称为SR高字节〔SRHighByte,SRH〕。SRL包含所有的DSPALU运算状态标志位〔包括Z位〕,以及CPU中断优先级状态位IPL<2:0>和REPEAT有效状态位RA。在异常处理期间,SRL与PC的MSB连接起来形成一个完整的字值,然后将该字值压入堆栈。SR存放器的高字节包含DSP加法器/减法器状态位、DO循环有效位〔DA〕和半进位〔DC〕状态位。程序计数器程序计数器为23位宽,bit0始终清零;因此,PC能够寻址最多4M指令字。113、软件堆栈指针/帧指针软件堆栈指针W15是专用的软件堆栈指针〔StackPointer,SP〕,异常处理、子程序调用与返回时会自动修改W15。W15可被任何指令所引用,引用方式与引用所有其他W存放器相同。为了防止出现不对齐的堆栈访问,W15<0>始终清零。复位时W15初始化为0x0800。在初始化过程中,用户可以重新设定SP,使它指向数据空间内的任何存储单元。堆栈指针总是指向第一个可用的空字并从低地址到高地址填充软件堆栈。堆栈出栈〔读〕时,堆栈指针先减;堆栈进栈〔写〕时,堆栈指针后加,软件堆栈帧指针W14软件堆栈帧指针,因为通过使用LNK〔link,连接〕和ULNKunlink,不连接〕指令可以把它用作堆栈帧指针。当不用作帧指针时,W14可被指令当作普通的工作存放器使用。12134、CPU存放器描述SR:CPU状态存放器dsPIC30F的CPU有一个16位状态存放器〔SR〕,它的低字节称为低状态存放器SRL,的高字节称为SRH。SRL包含了所有的MCUALU操作状态标志,加上CPU中断优先级状态位IPL<2:0>和REPEAT循环有效状态位RA〔SR<4>〕。SRH包含DSP加法器/减法器状态位、DO循环有效位DA〔SR<9>〕和辅助进位标志位DC〔SR<8>〕。141516CORCON:内核控制存放器CORCON存放器包含控制DSP乘法器和DO循环硬件操作的位。还包含IPL3状态位,它与IPL<2:0>〔SR<7:5>〕相连形成CPU中断优先级。1718TBLPAG:表页存放器TBLPAG存放器用于在读表和写表操作过程中保存程序存储器地址的高8位。表指令用于传输程序存储空间和数据存储空间之间的数据。PSVPAG:程序空间可视性页存放器程序空间可视性允许用户将程序存储空间的32KB区域映射到数据地址空间的高32KB。此特性允许通过在数据存储器上操作的dsPIC30F指令对常数数据进行透明访问。PSVPAG存放器选择映射到数据地址空间的程序存储空间的32KB区域。MODCON:模控制存放器MODCON存放器用于使能并配置模寻址〔循环缓冲〕。19XMODSRT,XMODEND:X模起始和结束地址存放器XMODSRT和XMODEND存放器保持X数据存储地址空间中执行模〔循环〕缓冲的起始和结束地址。YMODSRT,YMODEND:Y模起始和结束地址存放器YMODSRT和YMODEND存放器保持Y数据存储地址空间中执行模〔循环〕缓冲的起始和结束地址。XBREV:X模位反转存放器XBREV存放器用于设置位反转寻址的缓冲区大小。DISICNT:禁止中断计数存放器DISI指令使用DISICNT存放器将优先级为1-6的中断在指定的几个周期内禁止。205、算术逻辑单元〔ALU〕dsPIC30FALU为16位宽,能进行加、减、单位移位和逻辑运算。除非特别指明,算术运算一般是以2进制补码形式进行的。根据不同的操作,ALU可能会影响SR存放器中的进位标志位〔C〕、全零标志位〔Z〕、负标志位〔N〕、溢出标志位〔OV〕和辅助进位标志位〔DC〕的值。在减法操作中,C和DC位分别作为借位和辅助借位位。根据所使用的指令模式,ALU可以执行8位或16位操作。根据指令的寻址模式,ALU操作的数据可以来自W存放器阵列或数据存储器,输出数据可以被写入W存放器阵列或数据存储单元。dsPIC30F有两条指令有助于混合8位和16位ALU操作。符号扩展〔SE〕指令获取W存放器或数据存储器的一个字节值并创立存储在W存放器中的符号扩展字值。零扩展〔ZE〕指令清零W存放器或数据存储器中字值的8MSb并将结果放在目标W存放器中。216、除法支持16/16位有符号小数除法运算,以及32/16位、16/16位有符号和无符号整数除法运算,除法形式均为单指令迭代除法。支持以下指令和数据长度: 1.DIVF——16/16有符号小数除法 2.DIV.sd——32/16有符号除法 3.DIV.ud——32/16无符号除法 4.DIV.s——16/16有符号除法 5.DIV.u——16/16无符号除法除法指令必须在一个REPEAT循环内执行。任何其他执行方式〔例如,一系列不连续的除法指令〕,将不会正常运行,因为指令流取决于RCOUNT。除法指令不会自动设置RCOUNT值,于是RCOUNT必须显式地、正确地在REPEAT指令中指定,所以,完整的除法操作需要19个周期。227、DSP引擎DSP引擎由一个高速17位x17位乘法器、一个桶形移位存放器和一个40位加法器/减法器〔两个目标累加器、舍入逻辑和饱和逻辑〕组成。dsPIC30F器件采用单周期指令流,可以执行DSP指令或MCU指令。许多硬件资源可以被DSP和MCU指令共用。DSP引擎还能够执行固有的不需要其他数据的累加器操作。这些指令是ADD、SUB和NEG。DSP引擎的功能如下: 1.小数或整数DSP乘法〔IF〕。 2.有符号或无符号DSP乘法〔US〕。 3.常规或收敛舍入〔RND〕。 4.ACCA自动饱和使能/禁止〔SATA〕。 5.ACCB自动饱和使能/禁止〔SATB〕。 6.对于写数据存储器,自动饱和使能/禁止〔SATDW〕。 7.累加器饱和模式选择〔ACCSAT〕。2324乘法器17x17位乘法器可以进行有符号或无符号的运算,其输出经过定标器进行换算后可支持1.31小数〔Q31〕或32位整数结果。无符号操作数经过零扩展后,送入乘法器输入值的第17位。有符号操作数经过符号扩展,送入乘法器输入值的第17位。17x17位乘法器/定标器的输出是33位值,它将被符号扩展为40位。整型数据的固有表示形式为有符号的二进制补码值,其中MSb定义为符号位。当乘法器配置为小数乘法时,数据表示为二进制补码小数,其中MSb定义为符号位,小数点暗含在符号位之后〔QX格式〕。暗含小数点的N位二进制补码小数的范围为-1.0到〔1-21-N〕。对于16位小数,Q15数据范围为-1.0〔0x8000〕到0.999969482〔0x7FFF〕,包括0在内,其精度为3.01518x10-5。在小数模式下,16x16乘法运算将产生1.31乘积,其精度为4.65661x10-10。MUL指令可以使用字节或字长度的操作数。字节操作数将产生16位结果,而字操作数将产生32位结果,结果存放在W存放器阵列的指定存放器中25数据累加器和加法器/减法器数据累加器包含一个40位加法器/减法器,它带有自动符号扩展逻辑。它可以选择两个累加器〔A或B〕之一作为其累加前的源累加器和累加后的目标累加器。对于ADD和LAC指令,可选择通过桶形移位器在累加之前将要累加或装入的数据进行换算。加法器/减法器是一个40位加法器,一侧输入可以选择为零,而另一侧输入可以是原数据或求补后的数据。对于加法,进位/借位输入为高电平有效,另一侧输入是原数据〔没有求补的〕;对于减法,进位/借位输入为低电平有效,另一侧输入是求补后的数据。加法器/减法器产生溢出状态位SA/SB和OA/OB,这些状态位被锁存在状态存放器中并在其中得到反映。从bit39溢出:这是灾难性溢出,会破坏累加器的符号位。溢出到警戒位〔bit32到bit39〕:这是可恢复的溢出。每当警戒位彼此不完全一致时,就将把这个状态位置1。如果选取饱和模块将控制累加器的数据饱和。饱和模块使用加法器的结果、上述的溢出状态位、SATA/B〔CORCON<7:6>〕和ACCSAT〔CORCON<4>〕模式控制位,来确定何时饱和、到达何值为饱和。26累加器“回写〞MAC类指令〔MPY、MPY.N、ED和EDAC除外〕可以选择将累加器高位字〔bit16到bit31〕的舍入形式写入数据存储空间,前提是当前指令不对该累加器进行操作。通过X总线寻址组合的X和Y地址空间,执行回写操作。支持以下寻址模式:1.W13,存放器直接寻址:非操作目标的累加器的舍入内容以1.15小数形式写入W13。2.[W13]+=2,执行后递增的存放器间接寻址:非操作目标的累加器的舍入内容以1.15小数形式写入W13指向的地址。然后W13递增2〔对于字写入〕。27舍入逻辑舍入逻辑是一个组合模块,在累加器写〔存储〕过程中执行常规的〔有偏〕或收敛的〔无偏〕舍入功能。舍入模式由CORCON存放器中RND位的状态决定。它会产生一个16位的1.15数据值,该值被送到数据空间写饱和逻辑。如果指令不指明舍入,就会存储一个截取的1.15数据值,简单地丢弃低位字。常规舍入取累加器的bit15,对它进行零扩展并将扩展后的值加到ACCxH字〔累加器的bit16到bit31〕。如果ACCxL字〔累加器的bit0到bit15〕在0x8000和0xFFFF之间〔包括0x8000〕,那么ACCxH递增1。如果ACCxL在0x0000和0x7FFF之间,那么ACCxH不变。28数据空间写饱和除了加法器/减法器饱和,对数据空间进行写操作也会饱和,但不会影响源累加器的内容。数据空间写饱和逻辑块接受来自舍入逻辑块的一个16位的1.15小数值作为输入,还接受来自源〔累加器〕和16位舍入加法器的溢出状态。这些经过组合用来选择适当的1.15小数值作为输出,写入数据存储空间中。如果CORCON存放器中的SATDW位置1,将检测〔经过舍入或截取后的〕数据是否溢出,并进行相应的调整。如果输入数据大于0x007FFF,那么写入存储器中的数据被强制为最大的正1.15值,0x7FFF。如果输入数据小于0xFF8000,那么写入存储器中的数据被强制为最大的负1.15值,0x8000。源累加器的MSb〔bit39〕用来决定被检测的操作数的符号。如果CORCON存放器中的SATDW位没有置1,那么输入数据都将通过,在任何情况下都不会被修改。29桶形移位存放器桶形移位存放器在单个周期内可将数据算术或逻辑右移或左移最多16位。源操作数可以是两个DSP累加器中的任何一个或X总线〔支持存放器或存储器中数据的多位移位〕。移位存放器需要一个有符号二进制值,用来确定移位操作的幅度〔位数〕和方向。正值将操作数右移。负值那么将操作数左移。值为0那么不改变操作数。桶形移位存放器为40位宽,它为DSP移位操作提供了40位的结果,而为MCU移位操作提供16位的结果。来自X总线的数据在桶形移位存放器中的存放方式是:右移那么数据存放在bit16到bit31,左移那么存放在bit0到bit15。308、指令流类型3132333435指令集指令集有两类指令:MCU类指令和DSP类指令。这两类指令无缝地集成到架构中并从同一个执行单元执行。指令集包括很多寻址模式,指令的设置可使C编译器的效率到达最优。单级指令预取机制内核不支持多级指令流水线。使用了单级指令预取机制,在指令执行的前一个周期取指令并局部译码指令。除了一些特例外,大局部指令都在单个周期内执行。36数据空间数据空间为64KB〔32K字〕,被分成两块,称为X和Y数据存储区。每个存储块有各自独立的地址发生单元AGU。大多数指令只通过X存储空间AGU进行操作,这样对外界而言数据空间就是单独而统一的。乘-累加〔Multiply-Accumulate,MAC〕类双源操作数DSP指令,通过X和Y的AGU进行操作,这将数据地址空间分成两个局部。X和Y数据空间边界视具体器件而定,用户不能改变它们。每个数据字由2个字节组成,大多数指令按字或字节对数据进行寻。37存储在程序存储器中的数据有两种访问方法数据存储空间的高32KB可以映射到程序空间的下半局部〔用户空间〕,映射的边界可以是任何16K程序字边界,边界由8位
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 生产力透视与提升
- 2024消防工程改造与升级合同
- 梦想砌成家园
- 金融业务全景解析
- 2024深圳小微企业社保补贴申报流程优化与合同条款3篇
- 基础设施建设战略合作协议书(2篇)
- 大型展会推广合同(2篇)
- 2024年高铁站房建设土木工程承包合同范本3篇
- 2024房屋租赁合同
- 4 不做“小马虎”第二课时(说课稿 )2023-2024学年统编版道德与法治一年级下册 第一单元 我的好习惯
- 货物供应、运输、包装说明方案
- (完整版)英语高频词汇800词
- 严重精神障碍患者发病报告卡
- 《基础马来语》课程标准(高职)
- 2021年国标热镀锌钢管规格、尺寸理论重量表
- 乌鲁木齐基准地价修正体系
- DB32-T 3177-2017草莓-蕹菜水旱轮作设施栽培技术规程 -(高清现行)
- GB∕T 3216-2016 回转动力泵 水力性能验收试验 1级、2级和3级
- 七年级数学资料培优汇总精华
- IEC61850研讨交流之四-服务影射
- 材料力学压杆稳定
评论
0/150
提交评论