蛋蛋弹车1-具有功能安全EPS系统设计(工具篇1)
我们在上一节讲到了什么是车规级,那么我们在选定了一款车规级芯片的情况下如何来实现 一个典型性的应用呢?接下来我们以EPS为例子具体说一说一个符合ISO26262的EPS系统如何去设计。这里我们选择NXP的MagniV系列片子(S12ZVM128)以及S32K144作为我们的主控芯片。
MagniV虽然MCU设计过程不符合功能安全的要求,但结合软件的功能安全考虑以及硬件冗余设计完全可以实现一个功能安全等级为ASIL B 的应用, 对于S32K144的整个MCU设计中考虑了功能安全的需要,也可以提供相应的证书支持认证(注意:S32K并没有直接的功能安全等级证书提供,但是提供的证明材料完全可以支撑验证全过程),这两款片子在中低端的EPS应用中占有较广泛的市场,这里既然选定了片子。
前言
根据上一节的介绍,功能安全不仅体现在硬件设计上也体现在软件功能的实现特别是MCU的功能安全这块的性能如何实现,这一块与功能有所交织,但是大部分与功能无关仅与安全相关,硬件和软件的功能安全本节不做具体描述,后面会有相应章节介绍,本节先从实现它的基本功能来考虑。
俗话说工欲善其事,必先利其器。 对于EPS 算法的设计,大多基于mathwork的 simulink来进行算法的验证以及代码的生成。这其中整个根据软件V开发模型来进行
那么对于无论是MagniV还是S32k来说,NXP都提供了toolbox来进行不同阶段的验证。当然MagniV也就是大家熟知的S12Z片子使用codewarrior,S32K1XX使用gcc。这里注意MagniV下载口没有使用openSDA协议那么需要另外官方提供的RAppID(其实就是以UART为通讯接口的bootloader)来进行代码的下载。当然两个平台的MBD代码都会生成elf文件,其他刷写elf的工具都可以使用,也可以转成BIN文件直接灌进片子里。其实有了elf文件就好办了。
这里特别要提到S32K的toolbox每个模块都提供了大量的demo给大家学习。
1 MATLAB 安装
1.1 S12ZVMx
由于S12ZVMX的toolbox’较陈旧(基于MATLAB 2013a)开发,在如表1的MATLAB及相应工具的版本可以较好的支持。 表2列出了S32K144的toolbox需要的相应软件和版本支持。
对于晚于2015b释放的MATLAB版本由于MATLAB中代码生成模块部分变量定义的改变, toolbox 1.3版本不能直接支持。但也有方法解决toolbox不支持的问题,此时可将slsfnagctlr.p(提取码cnpw) 拷贝到处于使用状态的toolbox所对应的Mscripts文件夹中来正常使用toolbox。例如模型中使用到了mcbx_s12zvm中的模块,即需要将此p文件拷贝到mcbx_s12zvm文件下的Mscripts子文件夹中。此种方法已在MATLAB 2018a,2019a上验证均可正常运行。
1.2 S32K1xx
对于基于早于2017b版本的MATLAB进行开发的模型,首先请用文本工具打开simulink模型,更改Simulink版本号version,如下图
Tips
在Matlab安装进程中请注意,上表中所列软件是否一并安装,如果无法确认表1所列部分是否成功安装,打开MATLAB,输入命令ver,如下图查询所有已经安装的软件情况。
若安装过程表一所列必须安装软件未安装,这里提供两种方式解决:
1 如图2所示,打开Matlab->Add-ons->Get More APPs,此时会跳转到MATLAB官网用户名密码登录界面。(请在matlab官网用邮箱注册),登录完成后搜索未安装软件进行安装,如若无法安装请找IT。
2如果第一种方法无法安装相应软件,请重新申请完整权限的License,对软件进行重新安装
2 Toolbox安装
S12ZVMx与S32K144的Toolbox安装过程虽有不同,但基本流程一致主要分为Toolbox安装及license安装。下面将从这两方面进行介绍。
2.1 S12ZVMx Toolbox安装
S12ZVMx Toolbox安装主要分为Toolbox的下载,安装以及license的下载和安装。
1)Toolbox下载-如图4所示为S12ZVMx的toolbox的安装流程,在S12ZVM官网下可以链接到Model-based design 官方网站进行下载。现在最新版本为1.3。
2)Toolbox安装-要使simulink Library 能够成功识别toolbox,需要将toolbox的安装路径设置为MATLAB可识别的环境变量因此在MATLAB下运行一些命令来实现。如下图所示打开MATLAB,将当前文件定位
3)于S12ZVM Toolbox安装文件夹,运行命令mcd_s12z_path。等待片刻提示successful即可,此时打开Simulink Library可以看到S12zvmx Toolbox已经被识别。
3)License申请与导入-虽然Toolbox已然能被识别但由于该Toolbox没有导入对应的license也依然无法正常使用。主要的步骤如下图所示,其中License的申请需要使用硬盘编码。这里有两种方式得到硬盘编码。
① 将matlab 文件夹定位到Toolbox的安装目录,输入mcd_s12zvm_hostid可查询
② MCToolbox->mctbx_9s12zvm->tools->mlt文件夹下打开命令行工具,在命令行输入lmhostid –vsn即可查询。
可以通过下图所示流程生成License,并且将License拷贝到MCToolbox->mctbx_9s12zvm->lic文件夹下。此时便可正常使用Toolbox了。
2.2 S32K144 Toolbox安装
S32K144 Toolbox的安装与S12ZVM有所不同,这是由于Matlab的硬件支持中已经加入了S32K144EVB,因此安装S32K144 Toolbox以及License更加便捷。其安装步骤如下图
注意这里有两个文件需要下载,NXP Support Package S32K1xx version4.1.0及NXP_MBDToolbox_S32K1xx version 4.1.0,其中NXP Support Package S32K1xx version4.1.0为3硬件支持包,包里面包含了安装toolbox及license的整个流程,NXP_MBDToolbox_S32K1xx version 4.1.0是S32K1xx Toolbox,两个包均需下载。首先安装硬件支持包,安装完成后,打开MATLAB中附加功能->管理附加功能中找到安装成功的硬件支持包,打开安装包所在文件夹如图9所示
Note
下载的两个文件为.zip结尾,将其改为.mltbx才能被识别为MATLAB安装包。
运行NXP_Support_Package_S32K1xx.m在界面中双击install MLTBX file as Add-On定位到先前下载的NXP_MBDToolbox_S32K1xx_20190722.mltbx,安装Toolbox,稍等几分钟后会提示安装成功,其实此时并不能确定安装的状态,因此需要verify MBD Toolbox Installation 检查是否安装成功。
此时Toolbox已经安装成功,与S12ZVMx Toolbox一样,如果不安装license也无法运行,查询硬盘编码,下载license的流程也与S12ZVMx情况一致。如下所示。通过Activate NXP MBD Toolbox 定位到下载的license进行Toolbox激活。Verify MBD Toolbox license可以验证License的状态。
Tips:
打开Simulink library后有可能会给出如图所示的警告,这是由于Simulink Library无法加载安装的Toolbox,此时可以通过fix,重新在本地生成Toolbox仓库的方法实现。
到此为止toolbox以及matlab的相关插件已经安装成功,这里没有介绍编译器的安装因为对于MagniV的片子编译器地址指向codewarrior即可。S32K1XX更简单了,除了跟随matlab默认安装的gcc编译器外也可以自行定义gcc版本。我们在下一节会介绍一些坑防止大家中弹。
总结
这一节我们主要介绍了MBD开发所需的工具的安装在,这是我们进行具有功能安全的EPS开发的基础中的基础,下一节我们来看一看有哪些常见的问题,给大家提供一种walk around的解决方案。