1、2022-5-121(MBD)2022-5-122Model Based Design,基于模型设计是一种流程,较之传统软件开发流程而言,使开发者能够更快捷、以更少的成本花费进行开发。适用范围包括信号处理,控制系统,通信行业。表述系统的模型是整个开发流程的中心,贯穿需求,设计,实施与测试。模型本身就是一个可执行的规格书,开发者修改优化模型就是对设计的修缮,无需到实施之后通过测试再进行系统验证,可以通过仿真在早期设计时期就及时进行正确性验证,并且在实施阶段,特别是对于嵌入式软件,代码由模型生成。MBD简介2022-5-123 MBD的实际应用4传统的软件开发流程5基于模型的设计2022-5-12
2、6MATLAB与CCS配置1.在matlab 中键入xmake ,弹出“gmake”对话框图1 gmake设置前提假设CCS5安装路径如下:CCS Installation: D:TIccsv5 CCSV5安装路径Code geeneration Tools: D:TIccsv5toolscompilerc2000 ,编译器的路径如果其它路径,则需要在下边的应用中相应的路径中更改路径。2022-5-127MATLAB与CCS配置将display operational configuration only的勾选去掉,然后在configuration的下拉中选择ticcs_c2000_ccsv5
3、,如果没有,则点击右上角的New,然后分别在Make Utiliy、Complier、Linker、Archiver、Prebuild、Postbuild、Execute填入一下内容2022-5-128MATLAB与CCS配置Complier :Complier: D:/ti/ccsv5/tools/compiler/c2000_6.2.0/bin/cl2000Arguments :-ID:/ti/ccsv5/tools/compiler/c2000_6.2.0/include -fr|MW_XMK_DERIVED_PATH_REF|Make Utiliy:Make Utility : D:P
4、ROGRA1MATLABR2013abinwin32gmake (这个路径是Matlab的编译路径)Arguments : -f |MW_XMK_GENERATED_R| |MW_XMK_ACTIV_BUILD_ACTION_REF|2022-5-129MATLAB与CCS配置LinkerLinker: D:/ti/ccsv5/tools/compiler/c2000_6.2.0/bin/cl2000Arguments : -o |MW_XMK_GENERATED_TARGET_REF|Archiver Archievr: D:/ti/ccsv5/tools/compiler/c2000_6.
5、2.0/bin/ar2000Arguments: -r |MW_XMK_GENERATED_TARGET_REF|2022-5-1210Execute 执行编译Execute Tool: D:ticcsv5ccs_basescriptingbindss.batArguments :D:PROGRA1MATLABR2013atoolboxidelinkextensionsticcsccsdemosrunProgram.js D:tiXDS100v2.ccxml |MW_XMK_GENERATED_TARGET_REFE|MATLAB与CCS配置2022-5-1211图2 TLC文件选择MATLA
6、B与CCS配置2022-5-1212在target hardware resources中IDE/Tool Chain ,选择Texas Instruments Code Composer Studio v5 (makefile generation only).注意:首先备份配置,因为这会覆盖已有的配置。然后设置board为C2000,processor为 F28335 图3 configuration parameters/Code generation设置MATLAB与CCS配置2022-5-1213检查是否配置成功,在workspace键入checkEnvSetup(ccsv5,F28
7、335, setup),这时如果没有配置成功,系统会自动弹出如下图对话框,提示选择安装路径等,此过程和xmake的设置相似,只不过此处是设置系统环境变量,这样才能让软件通过系统变量找到相关软件的路径,如果配置成功显示如下图,checkEnvSetup(ccsv5,f28335, check),检查配置checkEnvSetup(ccsv5,f28335, setup),设置环境变量图4 环境变量检查以及设置MATLAB与CCS配置2022-5-1214checkEnvSetup(ccsv5,F28335 eZdsp, setup)1. Checking CCSv5 (Code Composer
8、 Studio) version Required version: 5.0 or later Required for : Code Generation Your Version : 5.5.0 # Setting environment variable TI_DIR to D:ticcsv52. Checking CGT (Texas Instruments C2000 Code Generation Tools) version Required version: 5.2.1 to 6.0.2 Required for : Code generation Your Version :
9、 6.2.0 # Setting environment variable C2000_CGT_INSTALLDIR to D:ticcsv5toolscompilerc2000_6.2.0 The version found for CGT differs from the one used for our software validation. Use it at your own risk.3. Checking DSP/BIOS (Real Time Operating System) version Required version: 5.33.05 to 5.41.11.38 R
10、equired for : Code generation Your Version : 5.42.01.09 # Setting environment variable CCSV5_DSPBIOS_INSTALLDIR to D:tibios_5_42_01_09 The version found for DSP/BIOS differs from the one used for our software validation. Use it at your own risk.4. Checking XDC Tools (eXpress DSP Components) version
11、Required version: 3.16.02.32 or later Required for : Code generation Your Version : 3.24.05.485. Checking Flash Tools (TMS320C28335 Flash APIs) version Required version: 2.10 Required for : Flash Programming Your Version : 2.10 # Setting environment variable FLASH_28335_API_INSTALLDIR to D:titidcsc2
12、8Flash28_APIFlash28335_API_V210MATLAB与CCS配置2022-5-1215MBD流程1.模型搭建2.软件在换测试(SIL): ert .tlc嵌入式C代码,3.硬件在环测试(PIL):idenlink_ert .tlc4.DSP代码自动生成2022-5-1216应用于嵌入式开发的模型往往需要选择固定步长的解算器,而不选用变步长的解算器这是因为微控制器的时钟信号是以固定频率的周期工作,虽然可以实现倍频和分频,往往在一个应用的过程中每个基础时钟信号是保持不变的。Solver options Type: Fixed-stepSolver:discreteFixed-
13、stepSolver设置2022-5-1217文档自动生成设置2022-5-1218 TI C2000系列DSP模块2022-5-1219 ADC模块2022-5-1220 ePWM模块2022-5-1221 GPIO模块2022-5-1222Memory Copy模块2022-5-1223DSP代码自动生成视频演示24使用使用Profiler ReportProfiler Report来了解模型每个环节的时间消耗和调用次数。来了解模型每个环节的时间消耗和调用次数。报告中会提示模型执行时间,调用函数清单和每个函数调用的详细效率分析信息报告中会提示模型执行时间,调用函数清单和每个函数调用的详细效
14、率分析信息使用注意:使用注意:1.1.如果算法模型使用如果算法模型使用Model ReferrenceModel Referrence引用,那么需要使该模型在引用,那么需要使该模型在NormalNormal模式模式2.2.在进行在进行ProfilerProfiler时并不分析时并不分析Model ReferrenceModel Referrence内部,需要单独分析内部,需要单独分析模型效率分析模型效率分析MBDMBD进阶进阶25Copyright 2014 FUJITSU LIMITED未经过任何优化的代码可读性不强未经过任何优化的代码可读性不强1.1.为模型增加信号名为模型增加信号名2.2
15、.通过信号线属性配置存储数据类型通过信号线属性配置存储数据类型3.3.关联数据对象与模型信号关联数据对象与模型信号(gcs)(gcs)命令可自动关联命令可自动关联代代码码自自动动生成生成 提高可提高可读读性性1.1.将模型转换为子系统将模型转换为子系统2.2.在在Block ParameterBlock Parameter中配置为原子子系统中配置为原子子系统3.Code Generation3.Code Generation页面定义函数名与文件名页面定义函数名与文件名代代码码自自动动生成生成 结结构化构化26Copyright 2014 FUJITSU LIMITED2022-5-1227为什
16、么要基于模型设计?MathWorks公司CEOJack Little基于模型的设计至少可以给我们带来四个方面的好处:1. 图形化设计图形化设计明确、清晰、唯一,便于交流、便于维护。2. 早期验证早期验证软件开发过程中,bug的引入难以避免,能否尽快发现bug对整个开发过程至关重要。3. 代码的自动生成(最容易关注的优势代码的自动生成(最容易关注的优势 )a.代码都不用写了。“码农”从此跟我无关,原本需要一个月时间写完的代码,现在可能只要一个上午或者两个小时就可以搞定。b.代码质量高。MBD生成的代码在各种效率上(RAM、ROM、执行时间等)不比大学毕业后工作了5年的工程师差。4. 文档自动化文
17、档自动化对于文档,我说两点: a.工程师大多不愿意写文档;b.开发过程中文档又是不可缺少的。(引自MATLAB中文论坛:)2022-5-1228 主要参考资料1、基于模型设计是肯定可以解决任何问题的(能够解决的),如果这种方法都不能搞定,传统方法那更是望尘莫及了2、入门比较痛苦,要坚持!3.凤凰网的军事节目报道,F22摔的那三驾都是由于飞行员不按操作规程驾驶造成的,即软件故障造成的!-这就是运行时错误。 为什么F35没有发生同样的问题呢,F22是用传统软件,硬件开发方式,那时还没有基于模型设计这种技术,而F35是用基于模型设计做的,没有发生过软件的问题!这个例子可以很好的说明,基于模型设计生成的代码,是多么的可靠!网址:1.基于模型的设计及其嵌入式实现.第2版 / 刘杰编著2.基于模型的设计:MSP430/F28027/F28335 DSP篇 / 刘杰, 周宇博著3. MATLAB中文论坛“基于模型设计:Model-Based Design”板块作者简介:刘杰, 毕业于浙江大学信息与电子工程学院通信工程,获工学博士学位,从事嵌入式系统软硬件开发与研究工作超过20年。2022-5-1229下一步工作计划1.调试DSP2812代码自动生成。2022-5-1230谢谢!恳请批评和指正。此课件下载可自行编辑修改,供参考!感谢您的支持,我们努力做得更好!