在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 11212|回复: 13

觉得值得期待的新书————基于模型的设计及其嵌入式实现

[复制链接]
发表于 2010-10-12 10:29:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 eecsseudl 于 2013-4-29 10:01 编辑

本书由北航2010年9月出版,书中的MATLAB内容很多都是新内容,是一本真正
基于MARLAB R2009b、部分内容R2010A版,Embedded MATLAB、cell  M-Lint
在matlab环境上matlab central好多新功能,等等、等等值得期待!
内容简介
    本书以基于模型的设计为主线,讲述了M代码和Embedded MATLAB代码的快速编写与调试、浮点Simulink/Stateflow模型的建立、调试与验证以及用户驱动模块的创建;详细介绍了基于模型设计的全过程,主要包括:需求的验证与跟踪、模型的系统测试与设计验证、浮点到定点模型的转换、模型嵌入式C代码的自动生成以及软件/处理器/硬件在环测试。整个过程满足DO-178B航空电子规范,可显著提高工作效率、降低开发成本,并且增加了代码的安全性与鲁棒性,避免了产品开发的潜在市场风险。
    本书可作为汽车电子、航天军工、通信与电子信息、电力等领域的工程师从事嵌入式系统开发的技术手册,也可作为高校电子类专业嵌入式系统开发与基于模型设计的教材,另外也是一本MATLAB高级建模与模型验证的参考书。


                               
登录/注册后可看大图
前言
    在目前的市场上,想找到一款不包含嵌入式控制器件的电子、机电产品已经很难了,含有嵌入式系统的产品已深入到了我们工作、生活的方方面面。同时,人们对于产品的安全性、实时性、可操作性、特定功能等要求也越来越高,这也就大大增加了嵌入式系统的复杂性和开发难度。为了在日趋激烈的市场竞争中占据有利地位、开发出高质量的产品,采用传统的项目开发方法已很难满足这些需求。
    传统项目开发的方法一般分为4个步骤:
① 需求分析与技术规范阶段。
    一般用纸质文档或电子Word文档写成,系统工程师团队以此进行概念和算法研究,评估技术规范的可行性。对于厚厚的技术文档,每个系统工程师对需求和技术规范的理解难免存在偏差。NASA的研究报告指出:“在需求分析阶段产生的错误占整个开发错误的50%以上”,这给后期的项目开发带来了诸多隐患。
② 设计阶段。
    硬件开发工程师团队根据系统工程师的评估报告,设计制作原型样机(如汽车、航空航天器、电路板等),项目的前期投入巨大、开发周期长,并且不能保证所制作的原型样机一定能满足技术规范要求的技术指标。
③ 实现阶段。
    软件开发工程师团队根据需求与技术规范,在原型样机上,手工编写C代码或汇编代码,实现技术规范所要求的技术指标。这一阶段需要精通软件的编程人员花费大量时间来编制程序、查错、调试、验证,明显增加了工作量,延长了研制周期。此外,手工编制的代码良莠不齐,降低了软件运行的可靠度,增加了代码错误的可能性,给新产品上市带来风险。
④ 测试与验证阶段。
    原型样机制造完成后,才能对产品进行测试与验证,只要上述任何一个过程出现偏差都会导致产品开发的失败,这也是传统项目开发最大的弊病。因此,传统的项目开发方法难免重复多次才能成功,开发风险巨大。为了解决这些问题,工程师必须找到一种更快速度、更有效率的开发产品的方法,基于模型的设计就是解决该问题的一种选择。它始于20世纪90年代初的汽车制造和航空航天工业,这些行业需要使用大量的微处理器单元,因此工程师们最先发现了采用建模与仿真的方法来开发嵌入式系统的巨大优势;到了90年代中期,控制算法仿真技术的发展催生了自动代码生成技术。模型仿真和自动代码生成技术在这些行业得到的成功应用,使人们清楚地认识到它在嵌入式系统开发中的经济和高效。基于模型的设计为工程师们提供了一种通用的开发与测试平台,使具有不同工程背景的工程师之间建立起更好的联系,使开发具有高集成度的复杂系统成为可能。目前国际上流行的基于模型设计的软件主要有SCADE和MATLAB,它们都成功地应用于大型项目的开发上,例如,欧洲的空客380、美国的GM混合动力车、诺-马公司的联合攻击机等项目。MATLAB已经成为一种近乎完美的高度集成化的开放式开发平台,在科学计算与建模方面处于不可替代的领先地位,加之其拥有国内众多的用户,因此,本书也选用MATLAB软件为例来讲述基于模型设计的方法。Mathworks公司的Simulink / Stateflow / Embedded MATLAB等工具使得工程师可以在一个可视化的交互开发测试平台上进行基于模型的设计,工程师还可以利用直观的模块图对系统模型和子系统设计进行可视化处理。基于模型的设计对应传统项目开发的方法同样分为4个步骤:
① 可执行、可跟踪的技术规范。
    在基于模型的设计方法中,系统工程师首先要建立一个系统模型,即通过数学模型来精确、无歧义地描述用户的需求,创建一个可执行、可跟踪的技术规范。工程师可以通过这个系统模型,动态地确认系统性能。
    相对于用传统的纸质或电子Word文档来描述的需求与技术规范,这种方法具有明显的优势,它使得开发团队中的每个成员都能够无歧义地理解并运行该模型,从而可以更加专注于开发主要模型的各个部分,不会因理解的不同而造成需求的丢失、冗余或冲突。
② 生成定点模型。
    系统模型与需求之间可建立双向链接,在整个开发过程中,软件工程师可以对模型进行需求追踪和测试,将产品的缺点暴露在产品开发的初期。根据具体的嵌入式器件和实现条件,对系统模型进行细化与功能重分区;此后重新进行系统测试、设计测试和模型助手测试,验证是否满足需求与技术规范,判断是否还存在缺失的需求,验证是否符合特殊的行业标准(如DO-178B、IEC-61508、MAAB等);之后再对模型做定点转换,形成简捷、高效的定点模型。
③ 嵌入式代码的自动生成。
    Mathworks公司的Real-Time Workshop Embedded Coder可以将Simulink / Stateflow中的模型自动转换为嵌入式C代码,大大降低嵌入式系统的开发门槛。开发人员可以在Simulink / Stateflow、Embedded MATLAB中建立系统模型、构思解决方案,然后使用RTW-EC自动生成优化的、可移植的、自定义的产品级C代码,并根据特定的目标配置自动生成嵌入式系统实时应用程序。这样就缩短了开发周期,同时避免了人为引入的错误。
④ 连续的测试和验证。
    基于模型的设计在整个设计过程中都在不断地进行测试和验证,工程师利用测试用例追踪系统级模型和需求,检测设计变更导致的系统输出变化,并快速追踪到变更的来源;通过测试用例还能够了解系统模型的功能覆盖度。
    对于嵌入式系统,还需测试其实时性,工程师可以使用硬件在环测试检测嵌入式代码的实时性。通过测试,可以收集实时数据,修改代码参数。硬件在环检测能确保在开发早期就完成嵌入式软件的测试,这样在系统整合时,嵌入式软件测试就可以比传统方法检测得更彻底、更全面,从而可以及早地发现问题,大大降低解决问题的成本。本书分为3个部分,第1~4章为第1部分,主要介绍了Simulink/Stateflow模型的建立、调试与验证,是基于模型设计的基础。第1章主要包括:MATLAB部分新功能、基于cell的M-code快速编写、M-Lint实时代码验证器的使用、基于R2010a的Embedded MATLAB编程规范等;
    第2章主要包括:Simulink建模与调试、创建模型测试用例、模型的验证与覆盖度分析、基于采样与基于帧的信号分析等;
    第3章主要包括:Stateflow建模与调试、简单的应用实例等;
    第4章主要包括:编写S-function(C MEX S-function和level-2 M S-funcion)、生成S-Function Builder用户模块、编写Embedded MATLAB模块、利用代码继承工具集成现存C代码到Simulink模型的方法、编写TLC文件等。第5章为第2部分,介绍了CCS 3.3集成开发环境的使用,讨论了嵌入式代码的快速生成、MATLAB与CCS的交互式开发、传统滤波器设计与基于模型设计的比较等。第6章为第3部分,包括:传统项目开发方法与基于模型设计的比较;DO-178B航空电子规范的简介,符合DO-178B规范的基于模型设计工作流程;需求与模型间的双向跟踪,模型的系统测试与验证,模型的设计测试,模型覆盖度分析;浮点模型到定点模型的转换;代码的自动生成;生成代码的验证;模型与生成代码的双向跟踪;代码的实时性分析;综合硬件测试等。本书从策划到完成经历了两年半的时间,得到了两家公司的资助,书中使用的实验设备大多由它们提供,在此表示感谢。撰写过程中,作者阅读了超过数万页的外文资料和技术文档,做了大量的验证实验,有些例子是作者开发实例的总结,可以直接用于生产实践。书中很多内容由作者及其团队独立完成,不少内容比较新颖,也是首次在国内的公开出版物中出现。由于基于模型的设计涉及知识太多,无法在短短的几百多页图书中得到充分论述,加之时间紧且作者的水平有限,书中的错误或遗漏在所难免,敬请读者批评指正。欢迎读者参加对基于模型的设计技术的讨论,有兴趣的朋友可以发送邮件到:


                               
登录/注册后可看大图
目录
第1章  MATLAB基础
  1.1  MATLAB开发环境新功能
    1.1.1  函数浏览器
    1.1.2  函数提示
    1.1.3  目录浏览器
    1.1.4  文件交换服务
  1.2  M文件
    1.2.1  M文件结构
    1.2.2  清理程序
    1.2.3  创建M文件
    1.2.4  M脚本文件
    1.2.5  M函数
    1.2.6  匿名函数
  1.3  加快M文件的编写——M-Lint
    1.3.1  什么是M-Lint
    1.3.2  M-Lint使用方法
    1.3.3  M-Lint实时代码检查
  1.4  加快M文件的调试——cell
    1.4.1  什么是cell
    1.4.2  cell的定义与删除
    1.4.3  使用cell调试模式
    1.4.4  应  用
  1.5  数据存取
    1.5.1  生成MAT文件
    1.5.2  加载MAT文件
    1.5.3  读取音视频文件
  1.6  代码效率分析
  1.7  Embedded MATLAB
    1.7.1  Embedded MATLAB的主要功能特点
    1.7.2  Embedded MATLAB的编程规范
    1.7.3  Embedded MATLAB的常用命令
    1.7.4  C编译器的设置
    1.7.5  应用实例
第2章  Simulink建模与验证
  2.1  Simulink基本操作
    2.1.1  启动Simulink
    2.1.2  Simulink模块库简介
    2.1.3  模块操作
  2.2  信号采样误差
    2.2.1  信号源
    2.2.2  MATLAB工作空间
    2.2.3  用户自定义函数
    2.2.4  非线性系统
    2.2.5  离散模块
    2.2.6  采样误差
    2.2.7  建立子系统
    2.2.8  封装子系统
    2.2.9  数据类型匹配
    2.2.10  模型信息
    2.2.11  模型元件化
    2.2.12  自定义模块库
  2.3  音频信号处理
    2.3.1  仿真环境
    2.3.2  基于采样的模型
    2.3.3  帧结构
    2.3.4  基于帧结构的模型
    2.3.5  信号缓冲器
    2.3.6  低通滤波
2.4  视频监控
    2.4.1  原  理
    2.4.2  SAD子系统
    2.4.3  阈值比较
    2.4.4  视频记录子系统
    2.4.5  源视频帧计数及显示
    2.4.6  数据读取与显示
    2.5.7  实验结果
  2.5  模型调试
    2.5.1  图形调试模式
    2.5.2  命令行调试模式
    2.5.3  调试过程
    2.5.4  断点设置
    2.5.5  显示仿真及模型信息
  2.6  模型检查与验证
    2.6.1  使用Model Advisor检查模型
    2.6.2  建立测试用例
    2.6.3  模型覆盖度分析
    2.6.4  模型效率分析
第3章  Stateflow原理与建模
  3.1  Stateflow概述
    3.1.1  状  态
    3.1.2  迁  移
    3.1.3  事  件
    3.1.4  数据对象
    3.1.5  条件与动作
    3.1.6  连接节点
  3.2  流程图
    3.2.1  手动建立流程图
    3.2.2  快速建立流程图
    3.2.3  车速控制
  3.3  状态图的层次
    3.3.1  历史节点
    3.3.2  迁移的层次性
    3.3.3  内部迁移
  3.4  并行机制
    3.4.1  广  播
    3.4.2  隐含事件
    3.4.3  时间逻辑事件
  3.5  其他的图形对象
    3.5.1  真值表
    3.5.2  图形盒
    3.5.3  图形函数
  3.6  Embedded MATLAB函数
    3.6.1  建立调用Embedded MATLAB函数的Simulink模型
    3.6.2  编写Embedded MATLAB函数
    3.6.3  调  试
  3.7  Simulink函数
    3.7.1  Simulink函数的使用
    3.7.2  使用Simulink函数需遵循的规则
  3.8  集成自定义代码
  3.9  Stateflow建模实例
    3.9.1  嵌入Simulink
    3.9.2  模拟各种操作模式的状态
    3.9.3  状态行为与变量
    3.9.4  状态间的迁移
    3.9.5  如何触发图表
    3.9.6  仿  真
    3.9.7  调  试
第4章  用户驱动模块的创建
  4.1  什么是S-Function
    4.1.1  S-Function的工作机制
    4.1.2  S-Function的几个重要概念
    4.1.3  编写C MEX S-Function
    4.1.4  Simulink引擎与C S-Function的相互作用
    4.1.5  TLC文件
    4.1.6  LEVEL-2 M文件S-Function介绍
    4.1.7  调用仿真模型外部的C代码和生成代码
  4.2  S-Function Builder
    4.2.1  S-Function名及参数名选项卡
    4.2.2  初始化选项卡
    4.2.3  数据属性面板
    4.2.4  库文件选项卡
    4.2.5  输出代码选项卡
    4.2.6  连续状态求导
    4.2.7  离散状态更新
    4.2.8  编译信息
    4.2.9  应  用
  4.3  Embedded MATLAB函数模块
    4.3.1  Embedded MATLAB函数模块的生成方法
    4.3.2  集成用户自定义的C代码
  4.4  实  例
    4.4.1  IIR滤波器
    4.4.2  图像的相似度
    4.4.3  S-Function的参数设置与封装
    4.4.4  读取数据文件
第5章  嵌入式代码的快速生成
  5.1  CCS介绍
    5.1.1  反汇编窗口
    5.1.2  链接命令文件
    5.1.3  探针的设置
    5.1.4  CCS的使用
  5.2  利用RTW-EC生成DSP目标代码
    5.2.1  RTW自动生成代码的过程
    5.2.2  TI DSP原装板的实时代码生成
    5.2.3  代码验证
    5.2.4  代码实时运行剖析
    5.2.5  堆栈分析
    5.2.6  TI C6416 DSK目标板的应用实例
    5.2.7  用户自定义目标板的应用
    5.2.8  其他目标板的应用
  5.3  MATLAB与CCS的交互式开发
    5.3.1  选定目标板
    5.3.2  创建ticcs对象
    5.3.3  加载程序
    5.3.4  配置RTDX通道
    5.3.5  对RTDX链接对象进行操作
    5.3.6  关闭链接并清除RTDX通道
  5.4  应用实例
    5.4.1  视频数据格式的转换(基于2009a版本)
    5.4.2  数字滤波器的传统设计方法与基于模型设计的比较
第6章  基于模型的设计
  6.1  传统方法与基于模型设计过程的对比
  6.2  DO-178B标准简介
    6.2.1  什么是DO-178B标准
    6.2.2  DO-178B标准验证要求
    6.2.3  DO-178B软件生命周期
  6.3  基于模型设计的工作流程
    6.3.1  建立需求文档
    6.3.2  建立可执行的技术规范
    6.3.3  浮点模型
    6.3.4  需求与模型间的双向跟踪
    6.3.5  模型助手检查
    6.3.6  模型验证
    6.3.7  定点模型
    6.3.8  软件在环测试
    6.3.9  处理器在环测试
    6.3.10  代码与模型间的双向跟踪
    6.3.11  代码优化
    6.3.12  代码有效性检查
    6.3.13  代码效率剖析
    6.3.14  内存用量检查
    6.3.15  硬件在环测试
    6.3.16  生成产品级代码
  6.4  需求分析及跟踪
    6.4.1  根据需求建立系统模型
    6.4.2  建立需求与模块间的关联
    6.4.3  一致性检查
  6.5  模型检查及验证
    6.5.1  Model Advisor检查
    6.5.2  System Test
    6.5.3  Design Verifier
  6.6  浮点转定点模型
  6.7  软件在环测试
  6.8  处理器在环测试
  6.9  代码跟踪
  6.10  硬件模型
    6.10.1  建立硬件模型
    6.10.2  模块设置
  6.11  代码优化及代码生成
    6.11.1  子系统原子化
    6.11.2  优化模块库
    6.11.3  指定芯片
    6.11.4  代码检查
    6.11.5  IDE环境下的代码优化
    6.11.6  工程选项及代码生成
  6.12  代码有效性检查
  6.13  硬件测试
    6.13.1  建立PC端模型
    6.13.2  模块参数设置
    6.13.3  硬件测试步骤
    6.13.4  代码效率剖析
    6.13.5  内存使用分析
  6.14  边缘检测
    6.14.1  边缘检测原理
    6.14.2  基于模型设计的算法实现
附录  Embedded MATLAB支持的各函数
参考文献








发表于 2010-10-12 20:42:25 | 显示全部楼层
谢谢楼主的信息
发表于 2010-10-12 21:16:49 | 显示全部楼层
Thanks !!!!!!!!!!!!!!
发表于 2010-10-17 00:23:58 | 显示全部楼层
Thanks!
发表于 2013-7-4 01:23:24 | 显示全部楼层
3q3q
cool
wow
okok
发表于 2013-8-17 00:53:20 | 显示全部楼层
3q3q
wow
thanks
okok
发表于 2013-8-20 16:31:46 | 显示全部楼层
cool............
发表于 2013-9-24 21:21:19 | 显示全部楼层
谁有啊,分享一下!!
发表于 2013-9-29 20:55:27 | 显示全部楼层
思路比较新颖,学习一下
发表于 2013-11-14 09:34:43 | 显示全部楼层
学习学习学习!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-25 14:28 , Processed in 0.023404 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表