基于模型的设计核心是系统模型。MathWorks公司的Simulink产品系列使设计人员可以在一个图形化的交互环境中应用基于模型的设计,在该环境中,设计人员还可以利用直观的模块图,对系统模型和子系统设计进行可视化处理。在统一的可视化的开发测试平台上,从设计概念到实现一气呵成,减少了不必要的劳动,大大缩短项目的开发周期,减少资金投入,提高代码的稳健性、一致性,满足DO-17B航空电子规范的工作流程,使基于模型的设计能够为那些对安全性、可靠性要求极其严格甚至近乎苛刻的设计提供绝好的方案。和基于文本的模型相比,这种图形化的环境可以使你更容易理解设计和子系统之间的交互。Mathworks公司的Real-Time Workshop Embedded Coder可以将Simuli nk/ Stateflow中的算法模型自动转化为嵌入式C代码,大大降低了嵌入式系统的开发门槛。开发人员可以在Simulink/Stateflow中建立系统模型,构思解决方案,然后使用RTW自动生成优化的、可移植的、自定义的产品级C代码,并根据特定的目标硬件配置自动生成嵌入式系统实时应用程序。
2.2 Matlab中C代码生成
Matlab中C代码生成主要有两种方式。
(1)基于Embedded Matlab
支持从概念到实现的编程理念,用户可以从现存或自编的M-code中直接生成高效、可读的嵌入式C代码,使编程效率大为提高。
(2)用户通过Simulink和有限状态Stateflow
Simulink是动态和嵌入式等系统的建模与仿真工具,也是基于模型设计的基础。Simulink自带了1000多个用户模块,可实现与有限状态机的无缝链接,扩展对复杂系统的建模能力。基本上它可以快速地创建基于嵌入式器件的应用模型,完成精确的系统模型描述,可以针对任何能够用数学来描述的系统进行建模,例如动力学系统、控制制导系统、通信系统、船舶及汽车等。Simulink还提供了丰富的功能块以及不同的专业模块集合,利用Sireulink几乎可以做到不书写一行代码完成整个动态系统的建模工作。Stateflow状态机基于有限状态机的理论使用自然的、便于理解的形式,使复杂的逻辑关系清晰简单。一些传统方法很难实现的算法利用其建模非常容易,特别适用于对复杂的事件驱动系统进行建模和仿真。用户只通过简单直观的鼠标操作,就可以轻而易举地构造出复杂的系统,生成可靠的C代码。利用RTW-EC等工具为用户算法自动生成嵌入式代码。这是一种高效、实用的方法,目前国内外各大公司在进行新产品开发时已广泛采用。它的核心思想是让工程师把精力集中于算法的研究上,把枯燥、困难的代码编写工作留给计算机去自动完成,这样可以大大缩短产品的开发周期,同时避免了人为引入的错误,降低了风险。
2.3 嵌入式代码的快速生成
以8051处理器为例,利用Matlab Plug-in BLOCkset与Stateflow无缝链接,利用RTW-EC工具自动生成C代码,并完成代码测试检验工作。开发环境:Matlab+Proteus。
首先构建stateflow模型并生成代码。以简单的流水灯为例,使用Stateflow构建模型Stateflow-model如图1所示。
模型连接Lightflow model如图2所示。
模型连接好后,调整模型配置选项卡参数。处理器选择8051系列,ERT.TLC生成代码选C,生成SIL,生成代码报告打勾,其他默认。
保存模型,单击幽按钮,Matlab将自动生成模型代码。
上一页 [1] [2] [3] 下一页