1 需要知道的MBDT资源
基于模型的设计(Model-Based Design,MBD)的实战系列从MBDT开始。
MBDT(Model-Based Design Tools)是由恩智浦(NXP)发布的硬件支持包,覆盖了NXP旗下的多款芯片。MBDT可以免费下载和使用,并且提供了很多样例工程,可以覆盖MIL、SIL、PIL和HIL等各种测试。
MBDT支持的芯片系列 - From NXP
MBDT的资源可以分为三个部分:MBDT软件、MBDT硬件和开发工具。
- MBDT软件
一般来说,这种软件的相关资源均可以在官方网站中找到(下载官方文档需要注册账号),但初次接触的时候,还是难免会无从下手
MBDT官方论坛可以提一些问题,一般会有专业工程师解答(软件问题会回答的比较多,硬件问题可能得不到回复)。MBDT论坛首页的右边可以找到很多有用的文章或课程,例如“MBDT Beginner's Guide”、“PMSM Control Workshop”等板块。多看看这些文章肯定能获益匪浅。
- MBDT硬件
硬件是需要单独购买的,S32K144 EVB是比较适合练习和评估的。如果想要做一些电机控制的相关应用,可以购买MCSPTE1AK144开发套件,包括开发板、驱动板和一个BLDC电机。官方的很多例程都是基于这两套平台创建的。
MBDT硬件 - From NXP
上述的开发板,通过板载的openSDA调试器,不需要额外的下载器,仅使用micro-USB数据线就可以实现代码的下载和Debug,以及和电脑的通信(使用的是UART方式)。
这两套硬件在官网和某宝均可购买,不过官网发货可能会慢很多。
同样,在产品页的主页中就能找到很多有用的文档。
- 开发工具
除了MBDT的软件和硬件,还有两个可能比较常用到的开发工具:
**① S32 Design Studio For ARM v2.2 **
该软件是NXP专门的集成开发环境(IDE),编写和查看代码会方便很多。
**② FreeMASTER tool 3.1 **
利用FreeMASTER,可以很方便地查看运行程序中变量的变化,生成曲线图,也可以向MCU发送控制指令,具有友好的UI界面。
FreeMASTER界面 - From NXP
关于版本选择,建议下载S32DS v2.2和FreeMASTER v3.1,同时 建议把所有NXP软件的安装路径就放在默认的目录上 (所有NXP软件都默认安装在“C:NXP”中),免得由于路径产生一些奇怪的问题。
为了便于读者上手,我会把从官网上下载到的必要的文档和软件整理好,上传到网盘中。 在对话框中回复关键词“MBDT”可以收到资源信息 。
2 基于MBDT搭建MBD开发环境
首先,做好前期的准备,比如说安装好MATLAB/Simulink,注册好NXP账号等。
假设你使用的是我的网盘中的资源,现在软件都准备好了,可以按照以下顺序搭建MBD开发环境:
1. 安装S32 Design Studio For ARM v2.2
S32DS的安装较为简单,具体的安装过程可以参照S32DS_ARM_Installation_Guide.pdf,里面有较为详细的安装步骤。
S32DS For ARM v2.2安装 - From autoMBD
2. 安装FreeMASTER 3.1
FreeMASTER同样比较简单,安装过程可以参照FreeMASTER for Embedded Applications.pdf的“Chapter 3 Installation”部分,里面同样有较为详细的安装步骤。
FreeMASTER 3.1的安装 - From autoMBD
3. 在MATLAB中安装MBDT
安装MBDT相对来说要麻烦一些,它需要绑定用户磁盘,因此我录制了一段简单的视频。由于一些条件不具备,因此并没有语音解说。不过跟着视频的步骤,再参考一下安装文档,安装应该不会遇到太大问题,如果依然遇到问题可以给我发私信。
,时长04:01
[ ]
Model-Based Design Tools过程(无声音) - From autoMBD
我使用的是MATLAB 2020b,测试下来是可以正常使用MBDT的。详细的安装步骤可以在MBDT Quick Start Guide中找到。
Tips:指引手册提到的license是.lic格式,但官网生成的是.dat格式,起作用的是.dat格式的license。如果是比较老的版本,可能起作用的的.lic格式的license。
Model-Based Design Tools安装 - From autoMBD
此外,关于硬件的相关资料,例如电路图、快速上手手册和参考软件,我也整理好放在下图这个位置,这些文件使用的频率是比较高的。
MBDT硬件的相关资料 - From autoMBD
3 MBDT初上手
基于MBDT的开发环境搭建好了后,就可以实际体验一下MBD的自动代码生成。下面给出一个简单的示例:
**1. **将S32K144通过micro-USB连接到电脑上,并检查是否连接正常。正常情况下,在我的电脑中会出现 EVB-S32K144的移动盘 ,同时查看设备管理器,会新增一个 OpenSDA端口 (请记住这两个连接的信息,后面会使用到):
出现EVB-S32K144的移动盘 - From autoMBD
设备管理器中有OpenSDA端口 - From autoMBD
出现以上两点表示连接成功。
**2. **在Simulink库中找到ADC_Potentiometer,双击打开,另存到一个合适的位置(免得修改了原模型),关闭原模型,打开另存的模型:
在Simulink库中找到ADC_Potentiometer - From autoMBD
另存到合适的位置 - From autoMBD
打开另存的模型 - From autoMBD
**3. **双击 “ MBD_S32K14x_Config_Information ”模块,可以查看一些基本配置信息。在“ Target Connection ”中,修改OpenSDA配置信息,OpenSDA Driver Name记得要刷新,选择正确的盘号(即第1个步骤中的移动盘号),点击“应用”后关闭:
修改OpenSDA配置信息 - From autoMBD
**4. **在Apps中找到Embedded Coder,双击打开,然后进入“C CODE”页面,点击“Build”即可开始生成代码:
利用Embedded Coder生成代码 - From autoMBD
代码生成的过程中会弹出代码生成报告,代码生成成功的标志是Diagnostic Viewer窗口中出现Build Summary:
代码生成报告 - From autoMBD
Diagnostic Viewer窗口 - From autoMBD
同时在MATLAB所在的工作空间内,会生成一个以“_ mbd_rtw ”结尾的文件夹,所有生成的代码均在这个文件夹内:
查看生成的代码 - From autoMBD
生成的代码是已经下载到了S32K144 EVB中,并且下载后就直接运行,此时****应该可以看到EVB上蓝色的LED灯在不断的闪烁 。