基于Simulink模块的dsPIC单片机开发1021final精品资料.doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《基于Simulink模块的dsPIC单片机开发1021final精品资料.doc》由会员分享,可在线阅读,更多相关《基于Simulink模块的dsPIC单片机开发1021final精品资料.doc(84页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第7章 基于Simulink模块的dsPIC单片机开发前面几章讲述了模型代码加手工代码的方式,开发单片机的新技术,不过这种方法也存在重复编写器件配置代码的问题。为了加快项目的开发速度和避免不必要的重复劳动,Microchip公司针对dsPIC30和dsPIC33 DSC等器件,提供了一套接口兼容的配置和运行时外设模块集-MATLAB Plug-in blockset。它可以使MATLAB/SIMULINK/Stateflow与MATLAB Plug-in blockset/MPLAB IDE无缝连接,利用Real-time Workshop Embedded Coder代码生成工具,自动生成应
2、用的实时嵌入式C代码。可极大的提高工作效率和降低开发成本,同时也可降低了运用dsPIC3x DSC器件开发工程师的门槛。下面对MATLAB Plug-in blockset作一简单介绍:模块集的主要特性: 模块适用于dsPIC3x系列的所有外设 可通过“cCall”模块方便地集成经过验证C代码 从MATLAB环境中构建环境配置版本2.0的新增功能: 支持dsPIC30F系列器件 电机控制算法库 缺陷修正和改进 演示版免费评估版 与MPLAB的MATLAB插件更好地集成在一起 与从R2007a到R2009b的所有MATLAB版本兼容,不过也支持R2010a、R2010b版(作者安装的版本是R20
3、10b)。模块适用于dsPIC3x系列的所有外设本章的主要内容:l MPLAB开发工具简介l dsPIC外围驱动模块介绍及应用l 无对应驱动模块时的应用7.1 MPLAB嵌入式开发环境及工具MPLAB IDE是microchip公司开发的基于Windows 操作系统的集成开发环境,适用于PICmicro MCU 系列和dsPIC数字信号控制器的开发。同时,MPLAB IDE还将其他microchip工具集和第三方软件集成到一个图形用户界面之中。其主要功能有:l 使用内置的编辑器创建和编辑源代码。l 汇编、编译和链接源代码。l 通过使用内置的软件模拟器观察程序流程,或者使用在线仿真器或在线调试器
4、以实时方式观察程序流程来调试可执行逻辑。l 用软件模拟器或仿真器进行时序测量。l 查看Watch 窗口中的变量。MATLAB/Simulink device blocksets向Simulink模型库中添加了dsPIC模块。这些模块既可以单独使用,也能和Simulink模块混合建模,并通过Real-time Workshop Embedded Coder自动生成嵌入式实时C代码,再经MPLAB IDE实现嵌入式应用的基于模型设计的开发。MPLAB C30 Compiler是针对16位dsPIC芯片dsPIC30 和 dsPIC33设计的高度优化的编译器,通过MPLAB C30 Compiler
5、或其他第三方编译器可以用C语言实现dsPIC开发。7.1.1 软件的下载和安装用户在浏览器地址栏中输入网址:图7.1.1 MPLAB下载网页在网页下方点击链接MPLAB IDE v8.56 Full Release Zipped Installation和MATLAB Device Blocks for dsPIC DSCs即可下载MPLAB IDE 和MATLAB/Simulinkdevice blocksets。用户如果使用过MPLAB的较早版本,或将V8.53版本安装在非默认路径下,请首先将其卸载,不然在后续使用过程中,系统有可能无法定位到需要的文件。单击windows开始菜单,选择控制
6、面板卸载程序,在列表中选中MPLAB Tools V8.53,单击卸载,将其完全移除。如图7.1.2所示:图7.1.2 卸载早期版本的MPLAB1 安装MPLAB IDE打开MPLAB IDE安程序,按照安装向导的提示进行安装,在Setup Type对话框中尽量选择Complete,如图7.1.3 所示。图7.1.3 MPLAB安装界面如果选择了Custom,则在Select Features对话框中应选中MPLAB IDE Tools的MATLAB选项,以便能够使用MATLAB Plug-in,如图7.1.4所示。图7.1.4 MPLAB安装界面在Choose Destination Loc
7、ation对话框中选用默认路径,不要做任何修改。其他对话框不用做修改,点击“下一步”即可,如图7.1.5所示。图7.1.5 MPLAB安装界面2 安装C30 Compiler打开C30 Compiler安装程序,按照安装向导的提示进行安装,在Setup Type对话框中选择Complete,如图7.1.6所示。图7.1.6 C30编译器安装界面在Choose Destination Location对话框中选用默认路径,不要做任何修改,如图7,1,7所示。图7.1.7 C30编译器安装界面下面安装程序会询问是否同意修改环境变量和注册表以便MPLAB IDE能够识别到C30 Compiler,点
8、击“是”,允许其修改。其他对话框不用做修改,点击“下一步”即可,如图7.1.8,7.1.9所示。图7.1.8 C30编译器安装界面图7.1.9 C30编译器安装界面3 安装MATLAB-Blocksets此处下载的MATLAB Blockset是V2.10版,如果读者机器中安装了其他版本的MATLAB Blockset,有可能和V2.10版间会产生一些冲突,这里仅就V2.10版的MATLAB Blockset进行讨论。 打开MATLAB Blocksets安程序,按照安装向导的提示进行安装,在Choose Destination Location对话框中选用默认路径,不要做任何修改。如图7.1
9、.10所示:图7.1.10 MATLAB-Blocksets安装界面由于这是较早期的MATLAB Blocksets,其支持的最高版本MATLAB是R2009b,但对R2010b版也仍然兼容,此处选择R2009b。其他对话框不用做修改,点击“下一步”即可。如图7.1.11所示:图7.1.11 MATLAB-Blocksets安装界面安装完MATLAB Blockset后,dsPIC模块并没有立即添加到Simulink模块库当中,用户还需要在MATLAB环境中进行添加。打开MATLAB,并将当前目录(current folder)设置为Microchip root:MPLAB IDEToolsM
10、ATLABdsPIC_Matlab,在当前目录下的文件列表中可以发现一个Install_dsPIC_Matlab.p文件。如图7.1.12所示:图7.1.12定位到安装目录在左侧的文件列表中右键单击该文件并在弹出菜单中选择“Run”,如图7.1.13所示。图7.1.13运行Install_dsPIC_Matlab.p文件命令行中会出现如下信息:- INSTALLING Target for Microchip(TM) dsPIC 2.10 - Target for Microchip(TM) dsPIC 2.10 is Installed and ready to use.这时再打开Simul
11、ink模块库浏览器,就可以看到安装的模块了。如图7.1.14所示:图7.1.14 dsPIC模块库7.1.2 利用MPLAB及Proteus进行虚拟硬件调试MPLAB IDE集成了大量的调试工具,既包括MPLAB ICD等仿真器,也能使用Proteus软件进行虚拟硬件调试。打开MPLAB IDE,选择菜单栏的DebuggerSelect ToolProteus VSM即可在MPLAB IDE中打开Proteus界面。如图7.1.15,7.1.16所示:图7.1.15 选择Proteus VSM调试工具图7.1.16 调试界面1 绘制原理图作者目前使用的Proteus7.7版本,仅支持dsPIC
12、33系列中的一部分芯片,不过Labcenter公司即将推出的Proteus8.0版本将会支持更多dsPIC33芯片,开拓虚拟硬件测试范围。本例利用dsPIC33FJ12GP201芯片搭建一个能够点亮发光二极管的最简系统,演示如何在MPLAB IDE中使用Proteus VSM进行虚拟硬件调试。参考第5.1节的内容,不难搭建出如图7.1.17所示的原理图。图中仅包含驱动电路工作所必须的电源,晶振和复位电路。图7.1.17 Proteus原理图Proteus中,该元件封装将13,17,18管脚隐藏了,因此未显示出VDD,VSS。双击dsPIC33FJ12GP201芯片,打开其属性对话框。如图7.1
13、.18所示:图7.1.18 芯片属性设置页面点击对话框右侧的Hidden Pins即可查看隐藏管脚的连接情况。由下图可知,隐藏管脚已经与VDD,VSS相连。如图7.1.19所示:图7.1.19 隐藏管脚页面2 建立MPLAB工程打开MPLAB IDE,选择菜单栏上的ProjectProject Wizard,在弹出的工程向导提示下,可以快速新建一个MPLAB工程。如图7.1.20所示:图7.1.20 选择工程向导在工程向导的Step one对话框中指定芯片dsPIC33FJ12GP201,如图7.1.21所示。图7.1.21 指定芯片在工程向导的Step two对话框中,在Active Too
14、lsuit下拉菜单中选择之前安装过的MPLAB C30 Toolsuit。然后需要在Location中为Toolsuit的每一个组件指定路径,不然MPLAB IDE无法定位到这些组件。如图7.1.22所示:图7.1.22 选择工具在工程向导的Step Three对话框中,确定工程的名称和保存路径,如图7.1.23所示。图7.1.23 确定名称及路径在工程向导的Step Three对话框中,可以直接将已存在的文件添加到工程中,如果没有需要添加的文件,直接点击下一步即可。如图7.1.24所示:图7.1.24 向工程添加文件工程建立后会同时生成工作空间,保存到同一目录下即可,如图7.1.25所示。图
15、7.1.25 保存工作空间编写闪烁灯程序。点击工具栏按钮,在编辑窗口中编写如下程序:#include#define uint unsigned intvoid delay(uint a) /延时程序Uintx,y;for(x=a;x0;x-)for(y=100;y0;y-);void main()TRISBbits.TRISB0=0; /设置RB0口为输出while(1)PORTBbits.RB0=1; /点亮LEDdelay(1000);PORTBbits.RB0=0; /熄灭LEDdelay(1000);点击工具栏按钮保存文件为.c格式。在弹出对话框中勾选Add File To Proje
16、ct并保存,直接将文件添加到工程的Source File中,然后向Header File目录中添加芯片头文件p33FJ12GP201.h。如图7.1.26所示:图7.1.26 MPLAB工程为了提高dsPIC芯片的灵活性和可靠性,Microchip公司为其设计了一些特殊功能,如看门狗、代码保护、JTAG边界扫描接口、在线串行编程和在线仿真。为了控制芯片和使用这些特殊功能,需要用户对其配置位进行适当调整。在菜单栏中选择ConfigureConfiguration Bits,打开配置位对话框,如图7.1.27所示。图7.1.27 配置位在配置位对话框中取消Configuration Bits se
17、t in code复选框,然后用户就可以在此处修改配置位了。如果用户对配置位比较熟悉,则应选中Configuration Bits set in code,并直接在代码中使用_Config()进行修改。本例并未使用到芯片的特殊功能,使用默认设置即可。关于配置位的介绍可参考芯片的数据手册。如图7.1.28所示:图7.1.28 配置位设置页面点击工具栏按钮编译程序,输出如下信息,如图7.1.29所示:图7.1.29 编译MPLAB工程3 调试选择MPLAB IDE菜单栏的DebuggerSelect ToolProteus VSM,在MPLAB IDE中打开Proteus界面。在Proteus界面
18、中点击按钮打开之前绘制的原理图。如图7.1.30所示:图7.1.30 使用Proteus VSM调试工具点击工具栏右侧的按钮,或选择菜单栏的DebuggerStart Simulation开始仿真。这时调试工具栏处于激活状态。点击按钮,进入全速运行状态,可以看到二极管不停的闪烁。如图7.1.31所示:图7.1.31 LED灯闪烁除此之外,MPLAB还提供了其他观察芯片内部数据变化的工具,例如在菜单中选择viewSpecial Function Registers,可以实时观察芯片的特殊功能寄存器的值,发生变化的寄存器以红色标出,如图7.1.32所示。图7.1.32 特殊功能寄存器若选中view
19、Disassenbly Listing,可以看到程序的反汇编指令,并以箭头标注下一步执行指令的位置,如图7.1.33所示。图7.1.33 反汇编指令列表7.1.3 dsPIC外围驱动模块简介MATLAB/Simulink device blocksets与dsPIC芯片的外围驱动模块一一对应,用户可以通过这些模块创建模型,直接由概念生成可执行的代码。Embedded Target for the Microchip dsPIC DSC集成了MATLAB/Simulink和MPLAB IDE工具,通过RTW生成的C代码与MPLAB IDE达到Simulink模型的基于C的嵌入式实时实现。模块简介
20、ADC Config模数转换配置模块。该模块可设置模拟量的输入端口,输出数字量的格式,转换结果寄存器,AD控制寄存器等,驱动芯片的AD设备正常工作。Write Port Output写入输出端口模块。该模块可指定将数据写入到哪一个端口,即能按位指定,也能按字节指定端口。dsPIC33FXX MaindsPIC33FXX芯片配置模块。每个基于dsPIC芯片的模型都需要使用该模块。它和芯片的配置位相对应,例如设置晶振,计时器等。Port Config端口配置模块。该模块指定端口的输入输出状态,技能按位指定,也能按字节指定。在MATLAB/Simulink device blocksets的安装目录
21、下有更加详细的帮助文件。如果用户安装MPLAB IDE和MATLAB/Simulink device blocksets时选择了默认目录,则可在C:Program FilesMicrochipMPLAB IDEToolsMATLABdsPIC_Matlabdochelp目录下找到每一个模块的html格式的帮助文件例如打开文件dsPIC ADC Read.html,则出现如图7.1.34所示的帮助信息。图7.1.34 ADC Read模块帮助信息7.2 dsPIC外围驱动模块应用7.2.1 数模转换实验ADCREAD模型实现了控制dsPIC33FJ12GP202的片内ADC,将模拟电压输入转换为
22、数字量输出的功能。本模型用到了dsPIC Configuration模块库中的dsPIC33fXX Main、ADC Config和Port Config;dsPIC Run Time Library模块库中的ADC Read和Write Port Output模块。建立如图7.2.1所示的模型,并将其命名为adc.mdl。图7.2.1 ADC模型1 模块设置双击ADC Read模块,打开设置页面。选择片内1号ADC,由buffer0读出数据,输出数据类型为uint16,如图7.2.2所示。图7.2.2 ADC Read模块设置双击Write Output Port模块,打开设置页面。选择B端
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于Simulink模块的dsPIC单片机开发1021final 精品资料 基于 Simulink 模块 dsPIC 单片机 开发 1021 final 精品 资料
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内