收藏 分享(赏)

dsPIC30F入门用户指南.pdf

上传人:HR专家 文档编号:5230686 上传时间:2019-02-13 格式:PDF 页数:132 大小:2.92MB
下载 相关 举报
dsPIC30F入门用户指南.pdf_第1页
第1页 / 共132页
dsPIC30F入门用户指南.pdf_第2页
第2页 / 共132页
dsPIC30F入门用户指南.pdf_第3页
第3页 / 共132页
dsPIC30F入门用户指南.pdf_第4页
第4页 / 共132页
dsPIC30F入门用户指南.pdf_第5页
第5页 / 共132页
点击查看更多>>
资源描述

1、 2007 Microchip Technology Inc. DS70151A_CN dsPIC30F 数字信号 控制器入门 用户指南DS70151A_CN 第ii 页 2007 Microchip Technology Inc. 提供本文档的中文版本仅为了便于理解。请勿忽视文档中包含 的英文部分,因为其中提供了有关 Microchip 产品性能和使用 情况的有用信息。 Microchip Technology Inc. 及其分公司和相 关公司、各级主管与员工及事务代理机构对译文中可能存在的 任何差错不承担任何责任。建议参考 Microchip Technology Inc. 的英文原版文档

2、。 本出版物中所述的器件应用信息及其他类似内容仅为您提供便 利,它们可能由更新之信息所替代。确保应用符合技术规范, 是您自身应负的责任。Microchip对这些信息不作任何明示或 暗示、书面或口头、法定或其他形式的声明或担保,包括但不 限于针对其使用情况、质量、性能、适销性或特定用途的适用 性的声明或担保。 Microchip 对因这些信息及使用这些信息而 引起的后果不承担任何责任。如果将 Microchip 器件用于生命 维持和/或生命安全应用,一切风险由买方自负。买方同意在 由此引发任何一切伤害、索赔、诉讼或费用时,会维护和保障 Microchip 免于承担法律责任,并加以赔偿。在 Mic

3、rochip 知识 产权保护下,不得暗中或以其他方式转让任何许可证。 商标 Microchip 的名称和徽标组合、 Microchip 徽标、 Accuron、 dsPIC、 KEELOQ、 KEELOQ徽标、microID、 MPLAB、PIC、 PICmicro、 PICSTART、 PRO MATE、 rfPIC 和 SmartShunt 均为 Microchip Technology Inc. 在美国和其他国家或地区的 注册商标。 AmpLab、 FilterLab、 Linear Active Thermistor、 Migratable Memory、 MXDEV、 MXLAB、

4、SEEVAL、 SmartSensor 和 The Embedded Control Solutions Company 均为 Microchip Technology Inc.在美国的注册商标。 Analog-for-the-Digital Age、 Application Maestro、 CodeGuard、 dsPICDEM、 dsPICDEM.net、 dsPICworks、 dsSPEAK、 ECAN、 ECONOMONITOR、 FanSense、 FlexROM、 fuzzyLAB、 In-Circuit Serial Programming、 ICSP、 ICEPIC、 Mi

5、ndi、 MiWi、 MPASM、 MPLAB Certified 徽标、MPLIB、MPLINK、PICkit、PICDEM、PICDEM.net、 PICLAB、 PICtail、 PowerCal、 PowerInfo、 PowerMate、 PowerTool、 REAL ICE、 rfLAB、 Select Mode、 Smart Serial、 SmartTel、 Total Endurance、 UNI/O、 WiperLock 和 ZENA均为 Microchip Technology Inc.在美国和其他国家或地 区的商标。 SQTP 是 Microchip Technolo

6、gy Inc.在美国的服务标记。 在此提及的所有其他商标均为各持有公司所有。 2007, Microchip Technology Inc.版权所有。 请注意以下有关 Microchip器件代码保护功能的要点: Microchip 的产品均达到 Microchip 数据手册中所述的技术指标。 Microchip 确信:在正常使用的情况下, Microchip 系列产品是当今市场上同类产品中最安全的产品之一。 目前,仍存在着恶意、甚至是非法破坏代码保护功能的行为。就我们所知,所有这些行为都不是以 Microchip 数据手册中规定的 操作规范来使用 Microchip 产品的。这样做的人极可能侵

7、犯了知识产权。 Microchip 愿与那些注重代码完整性的客户合作。 Microchip 或任何其他半导体厂商均无法保证其代码的安全性。代码保护并不意味着我们保证产品是“牢不可破”的。 代码保护功能处于持续发展中。 Microchip承诺将不断改进产品的代码保护功能。任何试图破坏 Microchip 代码保护功能的行为均可视 为违反了数字器件千年版权法案(Digital Millennium Copyright Act)。如果这种行为导致他人在未经授权的情况下,能访问您的 软件或其他受版权保护的成果,您有权依据该法案提起诉讼,从而制止这种行为。 Microchip 位于美国亚利桑那州 Cha

8、ndler 和 Tem pe 与位于俄勒冈州 Gresham 的全球总部、设计和晶圆生产厂及位于美国加利福尼亚州和 印度的设计中心均通过了 ISO/TS-16949:2002 认证。公司在 PIC MCU 与 dsPIC DSC、KEELOQ 跳码器件、串行 EEPROM、单片机外 设、非易失性存储器和模拟产品方面的质量体系流程均符合 ISO/TS- 16949:2002。此外, Microchip在开发系统的设计和生产方面的质量体 系也已通过了 ISO 9001:2000 认证。dsPIC30F 数字信号 控制器入门 2007 Microchip Technology Inc. DS7015

9、1A_CN 第iii页 目录 前言 1 第 1 章 dsPIC30F数字信号控制器 1.1 简介 . 7 1.2 架构 . 7 1.3 器件分类 13 1.4 应用 . 14 第 2 章 Microchip开发工具 2.1 简介 . 15 2.2 MPLAB IDE . 15 2.3 语言工具 16 2.4 调试工具 17 2.5 编程工具 20 2.6 开发板 .21 第 3 章 MPLAB集成开发环境 3.1 MPLAB IDE 概述 . 25 3.2 项目和工作区 26 3.3 创建项目 26 3.4 编译代码 30 第 4 章 MPLAB SIM软件模拟器 4.1 MPLAB SIM概

10、述 33 4.2 打开项目 34 4.3 选择软件模拟器 . 34 4.4 复位代码 35 4.5 单步运行代码 35 4.6 运行代码 36 4.7 Debug工具栏和热键 . 36 4.8 断点 . 37 4.9 Watch窗口 38 4.10 软件模拟器设置 . 39 4.11 跑表 . 40 4.12 跟踪缓冲区 41dsPIC30F 数字信号控制器入门 DS70151A_CN 第 iv 页 2007 Microchip Technology Inc. 第 5章 MPLAB ICD 2 在线调试器 5.1 MPLAB ICD 2 概述 .43 5.2 设置 MPLAB ICD 2 .

11、44 5.3 编程 dsPIC器件 46 5.4 复位代码 .46 5.5 单步运行代码 47 5.6 运行代码 .48 5.7 Debug工具栏和热键 . 48 5.8 断点 . 49 5.9 Watch窗口 50 5.10 高级断点 .52 第 6章 MPLAB ICE 4000 在线仿真器 6.1 MPLAB ICE 4000概述 55 6.2 打开项目 .57 6.3 特殊仿真器器件 . 57 6.4 选择 MPLAB ICE 4000 . 58 6.5 MPLAB ICE 4000设置 59 6.6 复位代码 .61 6.7 单步执行代码 61 6.8 运行代码 .62 6.9 De

12、bug工具栏和热键 . 62 6.10 断点 . 63 6.11 Watch窗口 64 6.12 跑表 . 66 6.13 跟踪缓冲区 67 6.14 复杂触发 .68 第 7章 MPLAB ASM30 汇编器 7.1 MPLAB ASM30汇编器概述 71 7.2 常用伪指令 72 7.3 代码示例 .75 第 8章 MPLAB C30 C 编译器 8.1 MPLAB C30 C编译器概述 81 8.2 MPLAB C30 C编译器项目 81 8.3 使用 Project Wizard创建项目 . 82 8.4 设置编译选项 86 8.5 编译项目 .87 8.6 语言功能 .87 8.7

13、代码示例 .88 第 9章 MPLAB LINK30 链接器 9.1 MPLAB LINK30链接器概述 91 9.2 链接描述文件 92目录 2007 Microchip Technology Inc. DS70151A_CN 第 v 页 附录 A dsPICDEM 1.1 通用开发板代码 A.1 Flash LED with dsPIC30F6014.s 99 A.2 Flash LED with dsPIC30F6014.c 102 附录 B dsPICDEM入门演示板代码 B.1 Flash LED with dsPIC30F6012.s 105 B.2 Flash LED with

14、dsPIC30F6012.c 108 附录 C dsPICDEM 28 引脚入门演示板代码 C.1 Flash LED with dsPIC30F2010.s 111 C.2 Flash LED with dsPIC30F2010.c 114 附录 D dsPICDEM 2 开发板代码 D.1 Flash LED with dsPIC30F4011.s 117 D.2 Flash LED with dsPIC30F4011.c 120 索引 .123 全球销售及服务网点 126dsPIC30F 数字信号控制器入门 DS70151A_CN 第 vi页 2007 Microchip Technol

15、ogy Inc. 注:dsPIC30F 数字信号 控制器入门 2007 Microchip Technology Inc. DS70151A_CN第1页 前言 简介 欢迎使用此关于单片机综合解决方案的最佳文档。 Microchip Technology, 8 位单片机 付运量居全球首位的单片机供应商,亦提供 dsPIC 16 位数字信号控制器系列。旨在 满足多种应用的需求,dsPIC30F 器件将单片机的灵活性和控制能力与数字信号控制器 的计算和数据吞吐能力融合在了一起。 dsPIC30F得到了以业界领先的 MPLAB 集成开发环境 (Integrated Development Enviro

16、nment, IDE)为中心的多种开发工具的支持。在本指南中,您将学会如何使 用 MPLAB IDE 及相关的汇编器、编译器、链接器、软件模拟器、调试器以及仿真器 工具。本指南涵盖了所有这些工具,所以即使您还没有相应的硬件,也会发现它十分 有用。动手实验教程可让您在最短的时间内获得最佳的学习体验。这些教程通过 dsPICDEM入门演示板或dsPICDEM 1.1通用开发板来使用MPLAB ICD 2在线调 试器,对器件进行编程和调试。这些教程也同样适用于 dsPICDEM 28引脚入门演 示板和 dsPICDEM 2开发板。 本前言中讨论的内容包括: 关于本指南 推荐读物 Microchip

17、网站 开发系统变更通知客户服务 客户支持 客户须知 所有文档均会过时,本文档也不例外。 Microchip的工具和文档将不断演变以满足客户的需 求,因此实际使用中某些对话框和 /或工具说明可能与本文档所述之内容有所不同。请访问 我们的网站()获取最新文档。 文档均标记有“DS”编号。该编号出现在每页底部的页码之前。 DS编号的命名约定为 “DSXXXXXA”,其中 “XXXXX”为文档编号,“A”为文档版本。 欲了解开发工具的最新信息,请参考 MPLAB IDE在线帮助。从 Help(帮助)菜单选择 Topics(主题),打开现有在线帮助文件列表。dsPIC30F 数字信号控制器入门 DS70

18、151A_CN 第 2 页 2007 Microchip Technology Inc. 关于本指南 本入门指南涵盖了 dsPIC系列器件的架构和开发工具,并提供了许多技巧帮助您选择 适合您设计的正确的 dsPIC器件。 文档编排 本手册的内容编排如下: 第 1 章: dsPIC30F 数字信号控制器本章将帮助您选择适合您设计的正确的 dsPIC30F 器件,或只是帮助您了解更多的关于此数字信号控制器的性能。 第 2 章: Microchip开发工具本章介绍了 MPLAB IDE,并使您熟知相关的汇 编器、编译器、链接器、软件模拟器、调试器和仿真器工具。 第 3 章: MPLAB 集成开发环境

19、Microchip 提供了一个功能强大的 MPLAB IDE 开发环境,该开发环境完全免费!本章使用教程模式,通过创建一个项目并汇编和 链接一个程序来让您熟悉 MPLAB IDE。 第 4 章: MPLAB SIM 软件模拟器MPLAB SIM30允许您在没有 dsPIC30F 硬 件的情况下调试代码。软件模拟器完全集成在 MPLAB IDE中,本章中您将学会如 何使用该软件模拟器。 第 5 章: MPLAB ICD 2 在线调试器MPLAB ICD 2在线调试器允许您灵活地 直接调试自己电路板上的 dsPIC芯片。 MPLAB ICD 2 是一个特例,在本章及本指 南中的其他动手实验教程中您

20、将学习如何使用它。 第 6 章: MPLAB ICE 4000 在线仿真器本章帮助您着手使用 MPLAB ICE 4000 在线仿真器。 MPLAB ICE 4000是调试 dsPIC 器件的最成熟的工具。它在执 行时对指令和数据路径提供全速仿真和可视性。 第 7 章: MPLAB ASM30 汇编器本章重点阐述代码的生成。它描述了代码的 一般格式并给出指令和伪指令的一些例子,这些指令可通过 MPLAB ASM30汇编 器汇编到目标代码中。 第 8 章: MPLAB C30 C 编译器本章从生成 dsPIC30F器件的 “C”代码开始 着手。本教程演示了如何使用 MPLAB C30 C 编译器

21、将应用程序源代码和库合并以 生成目标文件。 第 9 章: MPLAB LINK30 链接器本章对链接描述文件进行逐步分析,以此来 了解 MPLAB LINK30 链接器。 附录 A:dsPICDEM 1.1 通用开发板代码本附录包含 dsPICDEM 1.1 通用开发 板的代码示例。 附录 B: dsPICDEM 入门演示板代码本附录包含 dsPICDEM 入门演示板的代 码示例。 附录 C: dsPICDEM 28 引脚入门演示板代码本附录包含 dsPICDEM 28 引脚 入门演示板的代码示例。 附录 D: dsPICDEM 2 开发板代码本附录包含 dsPICDEM 2 开发板的代码示

22、例。前言 2007 Microchip Technology Inc. DS70151A_CN 第 3页 本指南使用的约定 本文档采用以下文档约定: 文档约定 说明 涵义 示例 Arial 字体: 斜体字 参考书目 MPLAB IDE Users Guide 需强调的文字 .仅有的编译器 . 首字母大写 窗口 Output 窗口 对话框 Settings对话框 菜单选项 选择 Enable Programmer 引用 窗口或对话框中的字段名 “Save project before build” 带右尖括号且带有下划线的斜 体文字 菜单路径 FileSave 粗体字 对话框按钮 单击 OK 选

23、项卡 单击 Power 选项卡 尖括号 括起的文字 键盘上的键 按 , Courier 字体: 常规 Courier 源代码示例 #define START 文件名 autoexec.bat 文件路径 c:mcc18h 关键字 _asm, _endasm, static 命令行选项 -Opa+, -Opa- 位值 0, 1 常数 0xFF, A 斜体 Courier 可变参数 file.o,其中 file可以是任 一有效文件名 方括号 可选参数 mcc18 options file options 花括号和竖线: | 选择互斥参数; “或”选择 errorlevel 0|1 省略号 . 代替重

24、复文字 var_name , var_name. 表示由用户提供的代码 void main (void) . dsPIC30F 数字信号控制器入门 DS70151A_CN 第 4 页 2007 Microchip Technology Inc. 推荐读物 以下 Microchip 文档均已提供,并建议读者作为补充参考资料。 dsPIC30F 系列参考手册 (DS70046E_CN) 请参考本文档以获取 dsPIC30F 器件操作的详细信息。本手册介绍了 dsPIC30F DSC 系列器件的架构和外设模块的工作原理,但并不涉及每个器件工作的具体情况。欲知 某个器件的具体信息,请参见下述相应器件数

25、据手册。 dsPIC30F Data Sheet, Motor Control and Power Conversion Family(DS70082) 有关 dsPIC30F电机控制和电源转换器件的信息,请参考本文档。本数据手册中的参 考信息包括: 器件存储器映射 器件引脚排列和封装细节 器件电气规范 器件上包含的外设列表 dsPIC30F Data Sheet, General Purpose and Sensor Families (DS70083) 有关 dsPIC30F传感器和通用器件的信息,请参考本文档。本数据手册中的参考信息 包括: 器件存储器映射 器件引脚排列和封装细节 器件电

26、气规范 器件上包含的外设列表 dsPIC30F 程序员参考手册 (DS70157B_CN) 本手册是 dsPIC30F 16 位 DSC 系列器件软件开发人员的参考手册。本手册详细介绍 了指令集,并提供了通用信息以帮助用户进行 dsPIC30F DSC系列器件的软件开发。 dsPIC30F 系列概述 , dsPIC高性能 16位数字信号控制器 (DS70043F_CN) 本文档概述了 dsPIC 产品系列的特性和功能。它帮助您确定不同的 16 位 dsPIC数字 信号控制器系列所适合的具体产品应用。有关各个功能的详细信息,请参见 dsPIC30F系列参考手册(DS70046E_CN) 。 MP

27、LAB ASM30、 MPLAB LINK30和实用程序用户指南 (DS51317F_CN) 本文档详细描述了 Microchip Technology 的基于 GNU 技术的 dsPIC器件的语言工具。 所讨论的语言工具包括: MPLAB ASM30汇编器 MPLAB LINK30链接器 MPLAB LIB30 归档器 / 库管理器 其他实用程序 MPLAB C30 C 编译器用户指南 (DS51284F_CN) 本文档的目的是帮助您使用 Microchip 针对 dsPIC器件的 MPLAB C30 C 编译器开发 应用程序。 MPLAB C30 C编译器是一款基于 GNU 的语言工具,它

28、以自由软件基金会 (Free Software Foundation, FSF)的源代码为基础。关于 FSF 的更多详细信息可登 录网站 www.fsf.org查看。 自述文件 (Readme) 关于使用其他工具的最新信息,请阅读与工具相关的 Readme文件,该文件位于 MPLAB IDE 安装目录的 Readme 子目录下。此 Readme 文件包含了本用户指南中可 能没有包括的最新信息和已发行版本。前言 2007 Microchip Technology Inc. DS70151A_CN 第 5页 MICROCHIP 网站 Microchip 网站 ()为客户提供在线支持。客户可通过该网

29、站方便 地获取文件和信息。只要使用常用的因特网浏览器即可访问。网站提供以下信息: 产品支持数据手册和勘误表、应用笔记和样本程序、设计资源、用户指南以及 硬件支持文档、最新的软件版本以及存档软件 一般技术支持常见问题 (FAQ) 、技术支持请求、在线讨论组以及 Microchip 顾问计划成员名单 Microchip 业务产品选型和订购指南、最新 Microchip 新闻稿、研讨会和活动 安排表、 Microchip销售办事处、代理商以及工厂代表列表 开发系统变更通知客户服务 Microchip 的客户通知服务有助于客户了解 Microchip 产品的最新信息。注册客户可在 他们感兴趣的某个产品

30、系列或开发工具发生变更、更新、发布新版本或勘误表时,收 到电子邮件通知。 欲注册,请登录 Microchip网站 ,点击 “变更通知客户 (Customer Change Notification)”服务并按照注册说明完成注册。 开发系统产品的类别如下: 编译器Microchip C编译器及其他语言工具的最新信息,包括 MPLAB C17、 MPLAB C18 和 MPLAB C30 C 编译器、 MPASM和 MPLAB ASM30汇编器、 MPLINK和MPLAB LINK30目标链接器,以及MPLIB和MPLAB LIB30目标库管 理器。 仿真器Microchip在线仿真器的最新信息,

31、包括 MPLAB ICE 2000 和 MPLAB ICE 4000。 在线调试器Microchip在线调试器 MPLAB ICD 2 的最新信息。 MPLAB IDE关于支持开发系统工具的 Windows 集成开发环境 Microchip MPLAB IDE 的最新信息,主要针对 MPLAB IDE、 MPLAB SIM 和 MPLAB SIM30 模拟器、 MPLAB IDE 项目管理器以及一般编辑和调试功能。 编程器Microchip编程器的最新信息,包括 MPLAB PM3、 PRO MATE II 器 件编程器以及 PICSTART Plus开发编程器。dsPIC30F 数字信号控制

32、器入门 DS70151A_CN 第 6 页 2007 Microchip Technology Inc. 客户支持 Microchip 产品的用户可以通过以下渠道获得帮助: 代理商或代表 当地销售办事处 应用工程师 (FAE) 技术支持 开发系统信息热线 客户应联系其代理商、代表或应用工程师 (FAE)寻求支持。当地销售办事处也可为 客户提供帮助。本文档后附有销售办事处的联系方式。 也可通过 http:/ 获得网上技术支持。 2007 Microchip Technology Inc. DS70151A_CN第7页 dsPIC30F 数字信号 控制器入门 第 1章 dsPIC30F 数字信号控

33、制器 1.1 简介 16 位 dsPIC30F数字信号控制器(Digital Signal Controller,DSC)是 Microchip最新 最先进的处理器系列。在本章中,您将了解到此处理器的特性、各种可用的 dsPIC 器 件以及如何为您的应用选择最合适的 dsPIC 器件。 dsPIC30F 是一款高性能的 16 位处理器,它通过单片机最根本的实时控制功能来提供 真正的 DSP 功能。可区分优先级的中断、扩展的内置外设和电源管理功能与功能齐全 的 DSP引擎相结合。两个 40 位累加器、单周期 16x16 MAC、 40 位桶形移位器、同 时取两个操作数的操作和零开销循环控制也是促

34、使它成为功能强大的 DSC 的因素。 如果您无法理解这些术语,不必担心,本章中将更加详细地介绍它们。 1.2 架构 1.2.1 哈佛架构 dsPIC 处理器采用改进的哈佛架构,具有独立的程序和数据存储器总线,如图 1-1 所 示。 图 1-1: 独立的数据和程序总线 哈佛架构允许使用不同大小的数据字 (16位)和指令字 (24 位) 。这种设计提高了 指令集的效率。由于 dsPIC 处理器在执行访问数据 RAM 的当前指令的同时可以从程 序存储器中预取下一条指令,这就加快了处理速度。 24 程序总线 数据总线 处理器内核 16 程序 存储器 数据 存储器dsPIC30F 数字信号控制器入门 D

35、S70151A_CN 第 8 页 2007 Microchip Technology Inc. 1.2.2 程序存储器和程序计数器 程序计数器 (Program Counter, PC)为 24 位宽,可寻址最大 4M 24位用户程序 存储空间。对于每条 24 位指令,程序计数器以 2 为增量递增,这简化了对存储在程序 存储器中的 16位数据常量的寻址操作。程序存储空间包含了复位单元、中断向量表、 用户程序存储空间、数据 EEPROM以及配置存储空间 (见图 1-2 中的 “程序存储器 映射”) 。 处理器从复位单元 0x000000 处开始执行程序。用户可通过一条GOTO 指令 (转移到 代

36、码开始处)对此单元进行编程。复位单元处的GOTO 指令后跟中断向量表。代码的 程序存储空间位于向量表后,起始地址为 0x100。 使用DO 和REPEAT 指令实现最低开销的程序循环结构;这两条指令在任何时间都可被 中断。这些特性使重复 DSP算法非常有效,并保持了处理实时事件的能力。 1.2.3 数据存储器 数据空间为 64 KB,大多数指令将其看作一个线性地址空间。当使用某些 DSP指令, 如我们熟知的 DSP 乘法指令时,该存储空间被分成两块,分别称为 X和 Y 数据空间 (见图 1-2 中的 “数据存储器映射”) 。因此,这些 DSP指令支持双操作数读操作, 即,同一条指令可同时从 X

37、 存储空间和 Y 存储空间中取数据。对于任何给定器件, X 和 Y 数据空间的边界是固定的。当未执行 DSP 指令时,所有存储空间都被看作是一个 X存储空间。 数据存储器的前 2 KB 分配给特殊功能寄存器 (Special Function Registers, SFR)。 SFR 是 dsPIC器件内核和外设功能的控制和状态寄存器。 在 SFR 之后,最大 8 KB 的存储空间被用作数据 RAM。它可作为存储数据的通用存储 器。对于 DSP指令,它被分成 X 和 Y存储空间。 数据空间的前 8 KB (即, SFR 的 2 KB和数据 RAM 的前 6 KB)被称为 Near RAM。 此

38、 RAM 区域可直接通过文件寄存器指令访问。某些指令无法直接访问非 Near 的 RAM,必须使用间接寻址来访问。 数据 RAM 空间的最后 32 KB 未实现,但可被映射到程序空间上,以用于程序空间可 视性 (Program Space Visibility, PSV)。 PSV 允许对程序存储器中的数据表进行读 操作,就好像它们在数据 RAM 中一样。(此特性对于访问 DSP 滤波器系数相当有 用。)dsPIC30F数字信号控制器 2007 Microchip Technology Inc. DS70151A_CN 第 9页 图 1-2: 程序和数据存储器 1.2.4 工作寄存器阵列 ds

39、PIC 器件具有 16 个 16位工作寄存器。最后一个工作寄存器 (W15)始终用作软件 堆栈指针。 W15 不能用于其他目的。其余工作寄存器可用作数据寄存器、数据地址指 针或地址偏移量寄存器。软件堆栈用于存储中断和调用的返回地址,在执行PUSH 和 POP 指令时,会对该堆栈进行操作。 C 编译器将软件堆栈广泛用于存储局部变量。 1.2.5 数据寻址模式 CPU 支持固有 (无操作数)寻址、相对寻址、立即数寻址、存储器直接寻址、寄存器 直接寻址和寄存器间接寻址模式。不必担心,它们并没有听起来那么复杂。每条对数 据存储器进行寻址的指令都可以使用某种可用的寻址模式。每条指令最多支持 6种寻 址模

40、式。工作寄存器则广泛地用作间接寻址模式地址指针。它们可被修改 (如递增) 并用作同一指令中的指针。 000002 000004 000014 00007E 000080 0000FE 000100 017FFE 018000 7FFFFE 800000 8005BE 8005C0 8005FE 800600 F7FFFE F80000 F8000E F80010 FEFFFE FF0000 FFFFFE 7FEFFE 7FF0000配置存储空间 用户存储空间 0x0000 0x07FE 0x0800 X数据 RAM SFR 空间 Y数据 RAM X数据 RAM 未实现 0x2800 0x800

41、0 0xFFFE 0x0001 0x07FF 0x0801 0x2801 0x8001 0xFFFF 0x1FFF Near RAM 提供程序空间可视性 MSB LSB 16 位 高字节 地址 低字节 地址 注 1 注 2 注 3 注 1: 因器件而异最大值 = 0x17FF。 2: 因器件而异始终与 X 数据 RAM末尾 相邻。 3: 因器件而异最大值 = 0x27FF。程序存储器映射 数据存储器映射 RESET指令 保留 振荡器故障陷阱向量地址错误陷阱向量堆栈错误陷阱向量数学错误陷阱向量 保留 保留 保留 中断 0 向量 中断 1 向量 中断 52 向量 中断 53 向量备用向量表 用户闪

42、存程序存储器 数据闪存保留 器件 ID保留配置 寄存器保留 器件 ID保留 (读为0) dsPIC30F 数字信号控制器入门 DS70151A_CN 第 10 页 2007 Microchip Technology Inc. 1.2.6 模寻址和位反转寻址 模寻址允许实现循环缓冲区,这样省去了检查缓冲区边界所需的处理器开销。缓冲区 的指针可设置为到达缓冲区末端后自动返回到缓冲区开始处,反之亦然。此操作可在 X和 Y存储空间中进行,从而极大地减少了 DSP算法的开销。 位反转寻址极大地简化了基 2 FFT 算法对输入或输出数据的重新排序。 X存储空间支 持位反转寻址。 1.2.7 程序空间可视性

43、 可选择将数据存储空间映射的高 32 KB映射到任何 16K 程序字 (32 KB)边界的程序 空间内,该边界是由 8 位程序空间可视性页 (Program Space Visibility Page, PSVPAG)寄存器定义的。 程序空间到数据空间的映射功能使得任何指令都能象访问数据空间一样访问程序空间。 此功能对于查找表,尤其是 DSP 算法中滤波器系数表非常有用。 图 1-3: 程序空间可视性 1.2.8 指令集 dsPIC30F 指令集有两类指令:MCU 指令和 DSP 指令。这两类指令可无缝地集成到该 架构中并从单一执行单元处执行。指令集包括很多寻址模式,指令集的设计旨在优化 C

44、编译器的效率。 除了少数特例外,大多数指令的执行都在一个指令周期内完成。特例是:更改程序流 的指令 (BRA 和CALL 等) 、双字传送指令 (MOV.D)和程序存储器读写 (表)指 令。 对于大多数指令而言,在每个指令周期内, dsPIC30F 都能执行一次数据存储器读操 作、一次工作寄存器数据读操作、一次数据存储器写操作和一次程序存储器 (指令) 读操作。因此,可以支持 3 个操作数的指令,使得 A + B = C类操作能在单周期内完 成。 24 程序总线 数据总线 处理器内核 数据 存储器 16 程序 存储器dsPIC30F数字信号控制器 2007 Microchip Technolo

45、gy Inc. DS70151A_CN 第 11页 1.2.9 DSP引擎 DSP 引擎 (图 1-4)具有一个高速 17位 x 17位定点数据乘法器、一个 40 位 ALU (算术逻辑单元)、两个 40 位饱和累加器和一个 40 位双向桶形移位寄存器。该桶形移 位器能在一个周期内将一个 40 位的值右移最多 15位或左移最多 16 位。 DSP 指令可以无缝地与所有其他指令一起操作,且设计为能获得最佳实时执行性能。 MAC 指令和其他相关指令可以同时从存储器取出两个数据操作数,将两个 W寄存器相 乘。由于对于 DSP 指令,数据存储区被分成 X 和 Y存储空间,因此这种操作是可行 的。 图

46、1-4: DSP引擎补零符号扩展桶形 移位器 40 位累加器 A 40 位累加器 B舍入 X 数据总线到 / 来自 W 阵列加法器 饱和控制取补 32 32 32 16 16 16 16 40 40 40 40 Y数据总线 40 16 40乘法器 / 定标器 17位 进位 / 借位输出 进位 / 借位输入 逻辑 饱 和dsPIC30F 数字信号控制器入门 DS70151A_CN 第 12 页 2007 Microchip Technology Inc. 1.2.10 中断 dsPIC30F 具有一个向量中断机制。每个中断源都有自己的向量,且可被动态分配 7 个 优先级中的一个。中断入口地址和返

47、回延时是固定的,为实时应用提供确定的时序。 中断向量表(Interrupt Vector Table, IVT)位于程序存储器中,且紧跟在复位单元处 的指令之后,如图 1-5 所示。 IVT包含 62个向量,由最多 8 个不可屏蔽 (始终允许) 错误陷阱向量和最多 54 个中断源组成。每个中断向量都包含相关中断服务程序 (Interrupt Service Routine, ISR)的 24 位宽的起始地址。 备用中断向量表 (Alternate Interrupt Vector Table , AIVT)位于程序存储器中的 IVT 之后。如果 ALTIVT位置 1,则所有中断和错误陷阱将使用

48、备用向量而不是默认向量。 备用向量与默认向量的结构相同,并提供了一种无需再编程中断向量就可在应用和测 试、设置或引导加载环境之间切换的方法。 图 1-5: 中断向量表 1.2.11 系统和功耗管理 现代应用通常需要灵活的工作模式,以降低电池供电器件的功耗、降低 EMI和处理故 障。 dsPIC器件具有多种系统和功耗管理功能。例如,它具有若干种带有时钟切换和 振荡器故障检测功能的振荡器模式。具有多种可选择性地关断和唤醒处理器和外设的 节能模式。还具有其他安全功能,例如,低电压检测、欠压复位、看门狗定时器复位 以及若干个错误陷阱。 复位 GOTO 指令 复位 GOTO 地址 保留 振荡器故障陷阱向量 地址错误陷阱向量 堆栈错误陷阱向量 数学错误陷阱向量 保留向量 保留向量 保留向量 中断 0 向量 中断 1 向量 中断 52 向量 中断 53 向量 保留 保留 保留 振荡器故障陷阱向量 堆栈错误陷阱向量 地址错误陷阱向量 数学错误陷阱向量 保留向量 保留向量 保留向量 中断 0 向量 中断 1 向量 中断 52 向量 中断 53 向量 IVT AIVT 优先级下降 0x000000 0x000002 0x000004 0x000014 0x00007E 0x000080 0x000082 0x000084 0x000094

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 实用文档 > 简明教程

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报