嵌入式线控驾驶系统开发过程中设计和测试考虑

发布者:落霞与孤鹜最新更新时间:2014-08-29 来源: eefocus关键字:线控驾驶系统  嵌入式 手机看文章 扫描二维码
随时随地手机看文章


图1:查看一个软件过程的普通方法是借助于V形图。

       由于有了基于模型的设计,使得开发大量的汽车嵌入式系统时,可以由模型自动生成最终编译的软件。不过,这项工作需要一个软件工程框架的支持。本文使用线控驾驶系统(steer-by-wire system)作为实例,给出了设计汽车嵌入式系统的过程、方法和测试工具的一个框架。 

       近来,有报道称包括Denso、Motorola和Toyota在内的不同行业的多家公司都在产品代码方面取得了成功。这项技术正日益成为软件下一波演进发展中的一个重要组成部分。虽然总体而言,它对软件工程化过程的影响已为业界所了解,但却并没有十分清楚地确立起来。对于早前类似演进发展(包括从机器代码发展到汇编代码,再发展到源代码)的参与者而言,这一点尤为明显。
 
       随着抽象与自动化程度的日益提高,新的过程、方法和工具接踵而来。瀑布式过程已让位于螺旋式方法和迭代方法。实时方法已经出现并正在取代静态流程设计。新的工具也出现了,如包含有调试器、优化编译器和自动测试工具的IDE(集成开发环境)。 

       不过,由于难以使用、缺乏了解或是工具支持不足的原因,并非每一种好的思想都能开花结果。有迹象表明,这些方法和工具对于主流产品应用并非总是实用。例如,用验证来确保软件正确性的正规方法是使用一种全世界只有极少数专家才真正懂得的语言编写的。此外,1980年代的实时用例工具可以辅助设计,但并未提供一条产生最终代码的简便途径。


图2:用控制系统方框图来表示反馈控制。

       在早期应用阶段,产品代码生成的效果相当不错,这主要是由于其实用性。不过,其进一步的发展还需要依靠集成过程、方法和工具的支持。一种新的过程只有在具备了所需支持方法和工具的条件下才会成功。如果这些条件有所欠缺,那么对一个公司成熟的嵌入式系统进行重新设计的努力就不会是可行和实用的。 

       本文给出了主要面向产品代码生成的这样一个框架:

* 基于模型的设计
* 建模、仿真、快速原型、产品代码生成、模型测试和覆盖、在环测试
* 开发工具、验证与生效(V&V)工具、集成工具

       模型的设计过程


图3:创建一个系统模型来表示所需的行为特性。

       通过提供一个共同的图形规范和分析环境,基于模型的设计可以支持控制/DSP系统工程师和软件开发人员的需要。在这个过程中,模型被创建并用来规定系统数据、接口、反馈控制逻辑、离散/状态逻辑和实时行为。 

       基于模型的设计被应用在几乎每个需要嵌入式控制系统的行业之中。而在大型汽车电子控制单元(ECU)等嵌入式应用的开发过程中,其应用更为广泛。DSP和通信应用也采用这种方法,但它们更强调建模和原型,而不是产品代码生成。 

       为了满足这些不同的应用,基于模型的设计过程必须解决线控驾驶系统等安全关键系统的需求。它还必须产生最终的、可执行的代码,而且必须特别紧凑、快速和能够追踪。这是由于在大批量生产的ECU中,必须使用低成本的定点微控制器部件和DSP。 

       基于模型的设计适合任何过程框架环境,包括那些在IEEE软件工程化标准中描述过的过程框架。 

       IEEE Std. 730适用于任何通用软件项目。为了很好地理解它的过程框架,有必要回顾一下它对“关键性”项目文档所列出的需求。 

       IEEE Std. 730需求包括:


图4:线控驾驶系统。

* 软件需求规范(SRS)
* 软件设计描述(SDD)
* 软件验证与生效计划(SVVP)
* 软件验证与生效报告(SVVR)
* 用户文档
* 软件配置管理计划(SCMP)
* 包括软件项目管理计划(SPMP)在内的其他文档

       查看一个软件过程的普通方法是借助于图1所示的V形图。这个图对应着大部分工程化过程,不过在开发生命周期中,这个过程是迭代性的,有许多反复的步骤。图中的软件过程包括以下几个组成部分:


图4B:对线控驾驶系统的建模与仿真。

* 开发 (需求、设计、编码和集成) 
* 验证和生效(V&V)
* 集成 (软件配置管理、需求可追踪性和文档)

       基于模型的设计非常注重过程迭代、早期测试和开发过程中的重用,这使得它既独特而又功能强大。这一过程的内在实用性体现在V形图的底部,产品代码生成是来自设计的一种自动过渡。 

       在基于模型的设计中,方框图或状态图模型可以用作系统和软件需求、软件设计,或者在稍作假设变换之后,用作源代码。这个过程的另外一个独特之处是,它在最终编译之前要进行广泛的验证和生效操作。早期验证和生效的好处很明显:它将大大减少在最终系统集成和测试期间发现的bug数目,返工次数也会更少。 

       开发方法与工具 

       在软件工程化过程中,采用了基于模型的设计方法。


图5:故障模式效应分析用来确保线控驾驶的救生操作。

       开发方法包括:1. 行为建模;2. 详细软件设计;3. 分布式结构设计;4. 产品代码生成;5. 嵌入式目标集成。验证与生效方法包括:1. 仿真与分析;2. 快速原型;3. 模型测试与覆盖;4. 代码追踪与检查;5. 硬件在环(HIL,Hardware-In-the-Loop)测试。集成方法包括:1. 源控制接口;2. 需求管理接口;3. 报告生成。

       下面给出了对各种开发方法的简洁描述,并提供有例子和工具支持信息。注意这里给出的所有工具都是商业上可以获得的。其后的部分讨论了开发行为,并包含有关键的验证与生效方法。最后,本文将通过集成组件来进行总结。

1. 行为建模 

       模型用来为单个子系统(如线控驾驶)的各个方面规定需求和设计。 

       一个典型的系统包括:

* 输入(如方向盘传感器)
* 控制器或DSP模型
* 设备模型(直流马达、齿条和小齿轮、车轮)
* 输出(方向的改变)

       在图2和图3中,通过使用控制系统方框图来表示反馈控制、使用状态图来表示离散事件和条件逻辑,以及使用DSP模块来表示滤波器,可以创建一个系统模型来表示所需的行为特性。

2. 仿真与分析


图6:图3中电源管理设计的测试覆盖。

       然后,通过使用基于时间或基于事件的仿真以及频域分析等方法,可以执行和分析模型,以确保其满足需求。例如,一个线控驾驶系统必须对传感器故障进行响应,并“将高频响应衰减到3db以下,同时指令传输速率不能低于1.5Mbps”。 

       图4A和B*中对线控驾驶系统的建模与仿真,可以确定这些需求是相互冲突的还是有效的。仿真是一个核心验证行为,它确保可以实现一个系统来满足这些需求。

3. 快速原型 

       要在产品的芯片上实现一个可以工作的解决方案,设备模型还不够精确,处理能力也不满足要求,因此建模本身并不能提供完整的解决方案。 

       快速原型对于克服这些缺陷非常有用,因为它用物理设备来代替设备模型。在线控驾驶的例子中,设备有可能是一辆汽车,这时就使用一辆实际的汽车。不过,因为系统并未建立起来,一个实时或嵌入式平台将负责运行控制器软件并与设备进行交互作用。 
[page]
       有两种形式的快速原型:功能性快速原型和目标性快速原型。功能性原型使用一台功能强大的实时计算机,如多处理器浮点PowerPC或DSP系统,目的在于确定系统对物理汽车的控制是否如对模型汽车的控制一样好。如果真的是这样,则设备模型的不精确性就显得无关紧要,并且控制策略也得到了验证。


图7:代码回放。

       目标性快速原型在相同或相似的产品MCU或DSP,而不是高端PowerPC内核或其他专用高端快速原型硬件中执行软件。目的是将代码下载到实际产品目标之中,以便用物理设备进行快速测试。如果执行良好,则控制器不仅看似有效,而且可以在产品中加以实现。 

       软件设计行为包括定点数据规范、实时任务、数据输入、内建测试和诊断。通过基于模型的设计,用于算法规范和验证的同一模型被软件工程师加以改进和约束,作为产品代码生成过程的一部分。

4. 模型测试 

       与将模型部署到硬件上去编译和集成相比,在桌面计算机上测试模型具有更大的优势。基于源代码的测试已经存在许多年了,但是最近的方法允许进行模型测试和结构覆盖。使用的场景假定是开发人员对控制器施加满负荷压力,以便用仿真和覆盖来验证其设计完备性。另一种测试类型是故障模式效应分析(Failure Mode Effect Analysis),用来确保故障情况下线控驾驶的救生操作,参见图5*。 

       设计完备性不佳的例子是数值溢出和死码(dead code)。使用最小或最大数值的模型压力测试可以确保不发生溢出情况。使用仿真很容易进行这种测试,但死码就没有这么容易检测出来了,因为检测需要结构覆盖。死码与失效代码不同,其区别在于后者是开发人员已知,并且出于某种原因而使其失效的。实际情况中的死码意味着在确定规范期间遗漏了什么。


图8:器件驱动模块库。

       模型覆盖用来评估一个测试件的累积结果,以确定哪些功能模块未被执行,或者哪些状态未被到达。源代码语言(如C和C++)中建立了某些类型的覆盖,但现在模型也可以进行覆盖了。这项工作要求C语言所不需要(或不可能有)的新理论和新工具,因为这些语言没有功能模块或状态这样的构造。 

       修改条件/决策覆盖(MC/DC)被FAA(美国联邦航空管理局)认为是满足安全关键系统所必需的最严格的覆盖水平。现在,这种覆盖在一种基于模型的设计框架和许多需要线控设计的场合中已经得到了实现。

5. 分布式结构设计 

       现代嵌入式系统包含一些分布式ECU,它们相互间通过一个象FlexRay这样的容错通信系统进行实时通信。宝马(BMW)最新的DSC(动态稳定性控制)包含ABS作为其15个子功能之一。通过从DECOMSYS向单个子系统增加主机、任务和信号等网络部件,嵌入式功能可以连接和映射到一个ECU结构之上。此外,它方便了OSEKtime/OS等时间触发操作系统的任务激活时间行为的仿真。集群、主机、任务和连接是在MATLAB/Simulink环境下进行设计和仿真的。最后,整个设计与DECOMSYS::DESIGNER产品实现了无缝集成,可以与FlexRay xCDEF设计数据仓库进行互动。 

       Vector公司和Cadence公司提供的分布式网络设计解决方案(分别为DaVinci和SysDesign)集成了Simulink/Stateflow的Real-Time Workshop/Real-Time Workshop Embedded Coder,由子系统产生代码,并将它们映射到结构上进行验证。

       产品代码生成 

       模型经过验证并且生效之后,就该产生代码了。使用编译器时,这个过程是简单的。这里存在着各种不同的优化设置和用户配置选项。关键之处在于保持代码的高效、精确并与原有的代码或其他工具进行集成。另一个要点是保持代码相对框图的可追踪性,以便进行检查和验证。

1. 代码追踪和检查 

       图7显示了一个自动链接的HTML报告。当开发人员选择代码中的求和模块时,它将把该模块在框图中进行高亮显示。

2. 嵌入式目标集成

图6*中的应用使用了速率转换模块。不过,它与商用RTOS之间也存在着直接的联系,包括VxWorks 和各种OSEK产品。如图7*所示,还需要集成设备驱动程序。

3. 硬件在环测试 

       控制器建立起来之后,就可以在环路中使用实时设备模型来执行一系列开环和闭环测试了。有一种测试仅涉及处理器,称作“处理器在环”测试。另一种测试使用实际建立的ECU硬件,叫做“硬件在环”测试。在这两种测试中,都使用设备模型来对物理控制器进行测试。通过这一系列测试(或许与需求验证中所用的是同种测试),控制器必须看来对于消费者是可以接受的。

4. 集成组件 

       在开发过程中,大部分软件标准都要求需求追踪能力,这或许源于其他需求工具。此外,还需要软件配置管理(SCM)来对开发过程中的各种工件(artifact)进行存储、版本维护和查找。由报告生成工具产生的文档将确保管理者、消费者和供应商能够看到模型。SCM的接口如图8*所示。 

       本文小结 

       当整个软件工程化过程行为得到支持时,将会推动软件的进步。但是,仅仅进行局部的、支离破碎的改进是不足够。本文介绍了基于模型的设计和产品代码生成的一个完整的软件工程化框架,并且还给出了具体的方法和工具,意在表明它并非仅仅是一种理论,而是既实用又有效。 

       文中的每个主题都包含了单独写作一篇文章或一本书的足够内容。想要了解更多信息请与作者联系。(*详见www.eetchina.com) 

       参考文献

[1]www.mathworks.com

[2] www.ieee.org

[3] B. Aldrich, "Using model coverage analysis to improve the controls development process," AIAA 2002

[4] "Software considerations in airborne systems and equipment certification," RTCA/DO-178B, RTCA Inc., Dec. 1992

[5] Dr. Michael von der Beeck, ARTIST Industrial Seminar, Paris, 23.4.2002 http://www.artistembedded.org/PastEvents/Kickoffs/BMW.pdf

[6] www.decomsys.com

[ 7] Paul Yih, Jihan Ryu, J. Christian Gerdes, Modification of Vehicle Handling Characteristics via Steer-by-Wire, Dept. of Mechanical Engineering, Stanford University

关键字:线控驾驶系统  嵌入式 引用地址:嵌入式线控驾驶系统开发过程中设计和测试考虑

上一篇:基于LIN总线的汽车雨刮控制系统设计
下一篇:基于GPS定位的嵌入式汽车监控器设计

推荐阅读最新更新时间:2024-03-16 13:40

东芝高官:闪存芯供不应求 只能完成70%订单
9月27日消息,据东芝半导体部门的CEO兼总裁Shozo Saito称,东芝无法满足对其NAND闪存芯片的需求,订单已经排到了12月份。 据国外媒体报道称,Saito证实了相关报道,即东芝只能满足客户订单需求的70%。但是,东芝对NAND闪存芯片平均售价的前景并不乐观。本周,Saito在接受采访时说,有利的一面是需求相当强劲。他说,我们计划大幅度提高产量,满足迅速增长的需求。 大多数的NAND闪存需求来自嵌入设备市场——其中包括MP3播放机、优盘等产品,闪存卡只占需求很少的一部分。Saito说,东芝专注于嵌入式设备市场。 总体而言,在经历一段疲软后,NAND闪存的需求再次强劲。从去年末到今年初,NAND闪存芯片的价格不断下滑,
[焦点新闻]
51系列中嵌入式单片机的优缺点分析
51系列是应用最广泛的单片机,由于产品硬件结构合理,指令系统规范,加之生产历史“悠久”,有先入为主的优势。世界有许多著名的芯片公司都购买了51芯片的核心专利技术,并在其基础上进行性能上的扩充,使得芯片得到进一步的完善,形成了一个庞大的体系,直到现在仍在不断翻新,把单片机世界炒得沸沸扬扬。 51系列的另一个优点是乘法和除法指令,这给编程也带来了便利。八位除以八位的除法指令,商为八位,精度嫌不够,用得不多。而八位乘八位的乘法指令,其积为十六位,精度还是能满足要求的,用的较多。作乘法时,只需一条指令即可。很多的八位单片机都不具备乘法功能,作乘法时还得编上一段子程序调用,十分不便。 51系列的I/O脚的设置和使用非常简单,但高电平
[单片机]
全新嵌入式英特尔凌动处理器系统芯片应用论坛在京召开
今天,“开放接口 无限应用——全新嵌入式英特尔® 凌 动™处理器系统芯片应用论坛”在北京召开,多家国内知名嵌入式厂商参加了本次论坛,并向来宾展示了其基于最新嵌入式英特尔®凌动™ E600系列系统芯片(SoC)设计的面向车载信息系统、数字安全监控、工业自动化等行业的解决方案。此外,多家板卡设计厂商及合作伙伴芯片厂商也展示了其充分利用该款SoC开放接口特性设计的产品。  这款原代号为“Tunnel Creek”的SoC于今年9月在美国发布,该产品在芯片中集成了多种功能,且拥有开放式互联特性,能够更轻松地与各种输入/输出(I/O)设备配合使用。该系统芯片具备极高的灵活性,可以帮助用户更轻松地创建独特的设计特性,非常适合用
[嵌入式]
基于嵌入式Linux的智能手机系统设计
  随着手持通信设备市场的快速发展,手机的功能逐渐增多。现在手机已经不只是用于语音通信的手持设备,而成为集成了短信、彩信、上网以及移动办公等附加功能的嵌入式通信平台。集成了这些功能的手机被称为智能手机。近年,嵌入式处理器的运行速度和功能都有了很大的提高,使得许多以前只能在PC上实现的应用,现在都可以在手持设备上实现。目前,市面上的智能手机主要采用Microsoft公司的ocket PC、Palm OS等商用操作系统,但这些操作系统开放的程序不够高,限制了许多第三方应用软件的移植。为使智能手机能够为第三方应用软件提供一个更为开放的嵌入式平台,笔者对智能手机系统做了比较深入的研究,提出一种以Linux作为嵌入式操作系统、Motorol
[嵌入式]
以ARM7为核心的嵌入式工控网络设计
0 引言 本文详细介绍了嵌入式系统各个步骤的实现方法及其功能,给出了嵌入式系统的硬件平台,研究基于ARM的μClinux的移植,并介绍了一种嵌入式工控网络系统的具体设计过程。 1 硬件平台的设计 硬件平台的搭建是嵌入式开发平台设计的首要任务,本文采用比较流行的体系结构,并选择S3C44BOX作为嵌入式处理器,然后围绕S3C4 4BOX进行外围器件的选型,设计了系统的硬件总体结构框图,然后以单元电路为基础,介绍了原理图设计的详细过程。 1.1 系统硬件选型 嵌入式系统的核心部件是嵌入式处理器,系统硬件选型首先是选择嵌入式处理器,然后围绕该嵌入式处理器选择各种外围芯片,以实现各种扩展功能。本系统选择三星公司基于ARM7T
[单片机]
以ARM7为核心的<font color='red'>嵌入式</font>工控网络设计
全集成开发平台 面向嵌入式MCU设计【爱特梅尔】
爱特梅尔公司(Atmel® Corporation)宣布, 针对快速增长、拥有超过10万用户的8位和32位AVR®嵌入式微控制器(MCU)设计社群,推出易于使用的新型全集成开发平台。新推出的Atmel AVR Studio 5是广受欢迎的爱特梅尔集成开发环境(IDE)的增强版本,支持所有8位和32位AVR MCU,能够显著提高开发人员的效率,并可使客户的应用程序在爱特梅尔8位和32位AVR MCU之间实现无缝移植。 AVR Studio® 5能够简化源代码的编辑和调试,具备辅助代码编写功能的编辑器、用于快速创建新项目的向导工具, AVR Software Framework源代码库、GNU C/C++编译器、功能强
[单片机]
全集成开发平台 面向<font color='red'>嵌入式</font>MCU设计【爱特梅尔】
基于STM32嵌入式系统的智能控制网络终端设计
  智能网络终端是实现智能化管理的嵌入式终端设备。通常具有安全门禁系统和自动化控制的基本功能。本文重点介绍基于 STM32 的智能嵌入式终端的网络控制功能的设计和实现。    1智能网络通信实现方案   将 嵌入式系统 与Internet连接起来实现远距离信息获取和控制功能的本质是 嵌入式系统 本身能够实现TCP/IP网络通信协议。该协议的解决方案总体上可分为两大类。第一类是直接在嵌入式设备上实现TCP/IP,使之直接连上Internet。这实质上是由MCU及内部固化TCP/IP协议的芯片组成应用系统的核心,MCU可以直接拨号上网,这种方法的硬件电路相对简单,也不需要中间环节的支持。但是由于使用了TCP/IP协议芯片,因此需要大
[单片机]
基于STM32<font color='red'>嵌入式</font><font color='red'>系统</font>的智能控制网络终端设计
英贝德科技谈ARM嵌入式主板之路
短短几年,中国嵌入式产业发展迅猛,ARM嵌入式的异军突起,让嵌入式应用的领域更加日益广阔,同时ARM嵌入式正在成为带动IT产业新增长点,其主要应用在两个不同的领域,一个就是消费类电子行业,该行业发展非常迅猛,另外一个,就是中国的工业控制领域。在中国工业控制领域,与国民生产、通讯、医疗、航天、交通相关的嵌入式应用持续快速增长,同时随着智能设备终端应用市场的快速发展,ARM嵌入式产品不断深入人们的日常生活,并推动终端产品的智能水平不断提升。工业和日常智能化终端对嵌入式系统提供的持续需求,使得嵌入式系统产业在前所未有的机遇下快速地发展。 在市场对嵌入式产品的需求连续增长的同时,对嵌入式系统的技术要求也逐步攀升,低成本、高稳
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved