CN102207860A - 一种嵌入式软件开发方法 - Google Patents

一种嵌入式软件开发方法 Download PDF

Info

Publication number
CN102207860A
CN102207860A CN2010101412246A CN201010141224A CN102207860A CN 102207860 A CN102207860 A CN 102207860A CN 2010101412246 A CN2010101412246 A CN 2010101412246A CN 201010141224 A CN201010141224 A CN 201010141224A CN 102207860 A CN102207860 A CN 102207860A
Authority
CN
China
Prior art keywords
embedded software
controlled device
realistic model
developing method
software
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN2010101412246A
Other languages
English (en)
Inventor
王世友
吕丹丹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
BYD Co Ltd
Original Assignee
BYD Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by BYD Co Ltd filed Critical BYD Co Ltd
Priority to CN2010101412246A priority Critical patent/CN102207860A/zh
Publication of CN102207860A publication Critical patent/CN102207860A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

一种嵌入式软件开发方法,所述嵌入式软件开发方法包括以下步骤:设置一控制对象和一被控对象,控制对象可控制被控对象进行动作;在软件设计平台中根据被控对象搭建仿真模型;根据控制对象的当前动作状态信号控制仿真模型运行、输出可执行代码并反馈到被控对象以控制被控对象动作;根据被控对象的动作状态与实际预设的动作状态实时修改仿真模型自身的算法直到被控对象的动作状态与实际预设的动作状态一致。通过以上技术方案可以实现对所开发的软件进行实时纠错和维护,使所开发的软件更加精确;同时通过结合实物的方式进行嵌入式软件开发,有效缩短了其开发周期,并且有效节省了开发时间。

Description

一种嵌入式软件开发方法
技术领域
本发明涉及一种嵌入式软件开发方法,尤其设置一种半实物闭环控制的嵌入式软件开发方法。
背景技术
随着嵌入式系统复杂性的提高,嵌入式软件的开发与维护已经成为一项非常重要的工作,这就对软件开发人员提出了更高的要求,在嵌入式软件开发过程中,项目人员应该在软件设计中运用现代的软件工程思想和先进的软件开发方法。同时,对于实时、嵌入式应用软件的开发还应做到在软件设计中支持实时、快速的软件开发和维护。
同时传统的设计流程图既不能准确地表达嵌入式软件的结构,也不能有效地分析嵌入式软件的结构,也不能有效地分析嵌入式系统的逻辑行为。传统的嵌入式软件开发方法是基于LABVIEW或者MATLAB或者SIMULINK的涉及平台,在平台上建立一个仿真模型,然后通过模拟信号来控制仿真模型进行相应的操作,并在此操作过程中将仿真模型生成可执行的代码,并结合单片机底层的驱动程序将两部分程序嵌套在一起,并通过上位机软件或仿真器烧写到单片机中,但是在此软件测试过程中,项目人员一旦发现程序错误或者应用此软件对实物的控制过程与实物的实际运行过程不相符,就需要返回单片机中在成百上千行源代码中查找原因,既延缓了开发进度,又增加了开发成本,无法建立有效的软件文档,这些问题导致软件的后期维护困难。而且在开发平台上通过模拟信号来模拟实物的实际运行过程中与实物实际的运行过程中是存在一定的悬殊差距的,实物的实际运行可能要考虑部件与部件之间的摩擦等情况,而模拟信号只是单一的模拟,中间并不存在其他信号的干扰,所以通过模拟信号所开发的软件在应用到真正的实物控制时,可能就会存在一定的误差。
发明内容
本发明的目的旨在解决现有技术中嵌入式软件开发周期长,维护困难,误差大的问题,提供一种维护方便,开发周期短,有效减小软件开发过程中的误差的嵌入式软件开发方法。
一种嵌入式软件开发方法,所述嵌入式软件开发方法包括以下步骤:
步骤一,设置一控制对象和一被控对象,控制对象可控制被控对象进行动作;
步骤二,在软件设计平台中根据被控对象搭建仿真模型;
步骤三,根据控制对象的当前动作状态信号控制仿真模型运行、输出可执行代码并反馈到被控对象以控制被控对象动作;
步骤四,根据被控对象的动作状态与实际预设的动作状态实时修改仿真模型自身的算法直到被控对象的动作状态与实际预设的动作状态一致。
优选地,在所述步骤三中,还包括以下步骤:
步骤S01,采集控制对象的当前状态信号;
步骤S02,将所述当前状态信号作为输入量输入给所述仿真模型;
步骤S03,仿真模型根据当前状态信号并按照自身算法进行动作仿真并生成可执行代码;
步骤S04,将可执行代码烧录到单片机中;
步骤S05,通过单片机控制被控制对象进行动作。
以上技术方案中,通过软件设计平台与实物相结合的方式,在软件设计平台上根据被控对象搭建仿真模型后,将被控对象的实际控制信号作为输入量来控制模型的运行,并将模型生成的可执行代码反馈到被控对象中,且通过比较被控对象的动作状态与实际预设的动作状态实时修改仿真模型自身的算法达到对所开发的软件进行实时纠错和维护,使所开发的软件更加精确;同时通过结合实物的方式进行嵌入式软件开发,有效缩短了其开发周期,并且有效节省了开发时间。
附图说明
图1是本发明一种实施例的半实物仿真闭环控制模型结构示意图;
图2是本发明一种实施例的工作流程图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本发明的一种嵌入式软件开发方法,首先设置一控制对象和一被控对象,控制对象可控制被控对象进行动作,在进行嵌入式软件开发前,需要在相应的软件开发平台中根据被控对象建立仿真模型,然后将此软件平台与控制对象相连,并通过此平台采集控制对象的动作,即采集控制对象的当前状态,将所述采集到的控制对象的当前状态信号作为输入量输入到仿真模型中,仿真模型接收到此状态信号后就会根据此状态信号进行相应的运行动作生成可执行的代码;然后通过将此代码烧录到单片机中并反馈到被控对象上以控制被控对象进行动作。期间,通过被控对象的动作状态与实际预设的动作状态实时修改仿真模型自身的算法直到被控对象的动作状态与实际预设的动作状态一致。
将被控对象的动作与实际预设的动作进行实时比较,如果被控对象的动作与实际预设的动作不一致,那么对仿真模型自身的算法进行实时修改直到被控对象的动作状态与实际预设的动作状态一致,通过这种方式所开发出来的软件具有高精度的优点。而传统的嵌入式软件设计方法是通过在设计平台中建立模拟信号,通过模拟信号控制模型运行并输出代码,然后将代码烧录到单片机中,完成相应软件的开发。然后再将开发的软件单片机应用的实物中去试验,如果发现所开发的软件与实物的实际控制过程存在出入就再返回来再去寻找误差并消除误差,整个开发过程用时比较长,严重浪费了科研人员的时间。
图1所示为本发明的一种实施例,本实施例中软件设计平台优选为基于MATLAB和LABVIEW的开发平台;也可以选用其他软件设计平台,其基本的设计思路是一样的。
首先,在所述设计平台中根据被控对象建立仿真模型;所述仿真模型需要基于控制对象的当前状态信号作为其自身的输入信号,并通过仿真模型自身的算法进行相应的动作运算并执行相应的运行。
所述仿真模型的算法可以根据其自身的标定参数做相应修改,只要能够改变其仿真模型的标定参数,其模型内部相应的算法就会发生变化;而对仿真模型相应参数的修改方式有很多种,这里优选采用通过上位机标定软件对仿真模型的标定参数进行修改。
所述设计平台可通过具有采集信号功能的采集卡对控制对象的当前状态信号进行采集,为了节约成本,这里优选采用LABVIEW采集软件对控制对象的当前状态信号进行采集,并将采集到的状态信号输入到设计平台中的仿真模型中。为了提高软件设计平台的信息处理速度及扩大其内部存储量,优选地,将LABVIEW采集到的控制对象的当前状态信号输入到MATLAB工作空间内。MATLAB工作空间作为该软件设计平台的储存空间,将存储所采集的控制对象的当前状态信号,并将该当前状态信号作为仿真模型的输入量发送给所述仿真控制模型。
仿真模型整个运行过程可以通过平台中的RTW实时生成工具生成可执行代码,然后将所生成的代码烧录到单片机中并通过此单片机控制被控对象的动作。期间,通过比较被控对象的动作状态与实际预设的动作状态实时反复修改仿真模型自身的算法直到被控对象的动作状态与实际预设的动作状态一致。
为了能够使方案具有通用性,本实施例中,作为一种优选的技术方案,可将仿真控制模型生成的可执行代码结合单片机的底层驱动程序相结合烧录到单片机中,在实际应用中,针对不同厂家,不同型号的单片机,只要修改底层驱动程序的驱动代码,就可以顺利移植到任何一款单片机上,在一定程度上解决了代码跨平台移植的问题。
结合图2所示,详细描述一下本发明一种实施例嵌入式软件设计流程。
第一步,在软件设计平台中根据被控对象搭建仿真模型;
第二步,采集控制对象的当前状态信号;这里优选采用LABVIEW采集软件采集控制对象的当前状态信号。
第三步,将所述当前状态信号作为输入量输入给所述仿真模型。优选地,所述LABVIEW采集软件采集的控制对象的当前状态信号首先发送到MATLAB工作空间进行存储,然后在MATLAB工作空间中调取此状态信号作为输入量输入给所述仿真模型。
第四步,仿真模型根据当前状态信号并按照自身算法进行动作仿真并生成可执行代码。生成代码的方式可以为手工生成代码,也可以为自动生成代码,此处优选采用自动生成代码,即通过RTW实时生成工具生成可执行代码。而且通过自动生成代码的方式可以有效避免手工生成代码中出现的认为错误,有效提高嵌入式软件的开发精度。
第五步,将所生成的可执行代码烧录到单片机中。这里作为一种优选的方案,可将所生成的代码与所述单片机的底层驱动程序相结合并烧录到所述单片机中。
第六步,通过单片机控制被控对象进行动作,并比较被控对象的动作状态与被控对象实际预设的动作状态。
当被控对象的动作状态与实际预设的动作状态一致时,完成软件开发进入结束状态;
当被控对象的动作状态与实际预设的动作状态不一致时,修改仿真模型自身的算法直到被控对象的动作状态与实际预设的动作状态一致。这里优选采用通过上位机标定软件对仿真模型的标定参数进行修改从而实现对仿真模型的算法的修改。
设计举例:
为了便于理解,这里以汽车天窗的程序开发为例,做进一步的说明:
这里的被控对象为天窗,控制对象为天窗按键板,天窗按键板可以控制天窗的打开和关闭。当碰触按键板上相应的打开键时,天窗就会根据此控制信号进行打开的动作,每碰触一下,天窗就会运行1步;当天窗完全打开时,即使继续碰触按键板的打开键,此时天窗也不会再进行运行。这里,假设汽车上所用天窗完全打时需要运行的步数平均为2000步
首先在基于MATLAB和LABVIEW的软件开发平台中建立天窗的仿真模型;
系统通电后,按下按键板上的打开键,LABVIEW上位机采集软件采集按键板的状态信号;比如,按下按键板上的打开键时,LABVIEW上位机采集软件采集到的信号为高电平信号;按下按键板上的关闭键时,LABVIEW上位机采集软件采集到的信号为低电平信号。
将采集到的按键板的状态信号(打开信号)传输到MATLAB工作空间中,MATLAB工作空间将所述状态信号作为一个输入参数输入到仿真模型中;
仿真模型根据其输入的状态信号进行并按照自身的算法进行运行;如仿真模型中的算法是一个控制其模型运行2000步的算法,那么当仿真模型接收到一个打开信号时,仿真模型会根据此算法模拟运行2000步;
通过RTW实时生成工具自动生成可以执行的代码,并将此代码结合单片机的底层驱动程序一起烧录到单片机中;
将所生成的控制代码反馈到汽车天窗中并控制天窗的运行。
单片机将会控制天窗运行2000步,但此时如果天窗并为完全打开,即天窗的运行状态与实际预设的运行状态并未一致,那么通过上位机标定软件对仿真模型中的标定参数值进行修改以修改仿真模型中的算法,如可以将仿真模型中的运行2000步的算法修改为一个运行2010步的算法,然后将再次生成的代码反馈到天窗中控制天窗的运行,直到天窗能够完全打开,即直到天窗的运行状态与实际预设的运行状态一致。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种嵌入式软件开发方法,其特征在于,所述嵌入式软件开发方法包括以下步骤:
步骤一,设置一控制对象和一被控对象,控制对象可控制被控对象进行动作;
步骤二,在软件设计平台中根据被控对象搭建仿真模型;
步骤三,根据控制对象的当前动作状态信号控制仿真模型运行、输出可执行代码并反馈到被控对象以控制被控对象动作;
步骤四,根据被控对象的动作状态与实际预设的动作状态实时修改仿真模型自身的算法直到被控对象的动作状态与实际预设的动作状态一致。
2.根据权利要求1所述的嵌入式软件开发方法,在所述步骤三中,还包括以下步骤:
步骤S01,采集控制对象的当前状态信号;
步骤S02,将所述当前状态信号作为输入量输入给所述仿真模型;
步骤S03,仿真模型根据当前状态信号并按照其自身算法进行动作仿真并生成可执行代码;
步骤S04,将可执行代码烧录到单片机中;
步骤S05,通过单片机控制被控制对象进行动作。
3.根据权利要求1所述的嵌入式软件开发方法,其特征在于,所述软件开发平台为基于MATLAB和LABVIEW的开发平台。
4.根据权利要求3所述的嵌入式软件开发方法,其特征在于,所述采集的控制对象的当前状态信号存储在所述MATLAB的工作空间内。
5.根据权利要求4所述的嵌入式软件开发方法,其特征在于,通过所述LABVIEW中编写的上位机采集软件采集控制对象的当前状态信号,并将此信号存储到所述MATLAB的工作空间内。
6.根据权利要求1所述的嵌入式软件开发方法,其特征在于,通过上位机标定软件实时修改模型中的标定参数以改变模型自身的算法。
7.根据权利要求2所述的嵌入式软件开发方法,其特征在于,所述仿真模型通过RTW实时生成工具生成可执行代码。
8.根据权利要求2所述的嵌入式软件开发方法,其特征在于,在所述步骤S04中,将所述可执行代码与所述单片机的底层驱动程序相结合并烧录到所述单片机中。
CN2010101412246A 2010-03-31 2010-03-31 一种嵌入式软件开发方法 Pending CN102207860A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2010101412246A CN102207860A (zh) 2010-03-31 2010-03-31 一种嵌入式软件开发方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2010101412246A CN102207860A (zh) 2010-03-31 2010-03-31 一种嵌入式软件开发方法

Publications (1)

Publication Number Publication Date
CN102207860A true CN102207860A (zh) 2011-10-05

Family

ID=44696709

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010101412246A Pending CN102207860A (zh) 2010-03-31 2010-03-31 一种嵌入式软件开发方法

Country Status (1)

Country Link
CN (1) CN102207860A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102777277A (zh) * 2012-08-30 2012-11-14 江西直方数控动力有限公司 基于matlab算法输出的电控柴油机油量控制开发系统和方法
CN107102564A (zh) * 2017-03-31 2017-08-29 合肥民众亿兴软件开发有限公司 一种软件开发方法
CN112799965A (zh) * 2021-03-22 2021-05-14 南京远思智能科技有限公司 自动化装备软件的虚拟调试系统及其调试方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1494014A (zh) * 2002-10-29 2004-05-05 上海理工大学 虚拟计算机过程控制及通信实验系统
CN1283490C (zh) * 2004-11-29 2006-11-08 武汉理工大学 基于虚拟和数字技术的组合汽车仪表和车载多功能信息平台
US20090198430A1 (en) * 2008-01-08 2009-08-06 Honda Motor Co., Ltd. Control apparatus and method and control unit

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1494014A (zh) * 2002-10-29 2004-05-05 上海理工大学 虚拟计算机过程控制及通信实验系统
CN1283490C (zh) * 2004-11-29 2006-11-08 武汉理工大学 基于虚拟和数字技术的组合汽车仪表和车载多功能信息平台
US20090198430A1 (en) * 2008-01-08 2009-08-06 Honda Motor Co., Ltd. Control apparatus and method and control unit

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
余昌盛: "基于PCI总线数据采集与运动控制系统研究", 《中国优秀硕士论文全文数据库 信息科技辑》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102777277A (zh) * 2012-08-30 2012-11-14 江西直方数控动力有限公司 基于matlab算法输出的电控柴油机油量控制开发系统和方法
CN107102564A (zh) * 2017-03-31 2017-08-29 合肥民众亿兴软件开发有限公司 一种软件开发方法
CN112799965A (zh) * 2021-03-22 2021-05-14 南京远思智能科技有限公司 自动化装备软件的虚拟调试系统及其调试方法
CN112799965B (zh) * 2021-03-22 2021-07-20 南京远思智能科技有限公司 自动化装备软件的虚拟调试系统及其调试方法

Similar Documents

Publication Publication Date Title
Gabor et al. A simulation-based architecture for smart cyber-physical systems
CN104573193B (zh) 一种航天器gnc系统快速设计方法
CN106737676B (zh) 一种基于脚本可二次开发的工业机器人编程系统
Walker et al. The ITER plasma control system simulation platform
EP1784694A4 (en) SYSTEM AND METHOD FOR RAPID PROTOTYPING AND IMPLEMENTATION OF A DISTRIBUTED SCALABLE TASK CONTROL ARCHITECTURE
CN102999322A (zh) 一种工业控制器软件界面设计方法
KR101862221B1 (ko) 항공기 비행제어법칙 시뮬레이션 방법 및 장치
CN102955460A (zh) 一种数控系统主站对io端子从站的控制系统
CN102012673A (zh) 复杂反应型系统控制器设计方法
CN101221424A (zh) 基于领域建模的数控系统代码自动生成方法
CN102722601B (zh) 数控系统的模型转换形式化语义集成框架的实现方法
CN113312245A (zh) 一种可集成的波形管理终端及管理方法
CN102207860A (zh) 一种嵌入式软件开发方法
CN115755646A (zh) 一种运载火箭姿态控制系统仿真方法及其系统
Moallemi et al. Modeling and simulation-driven development of embedded real-time systems
Heiner et al. Worst Case Analysis of Concurrent Systems with Duration Interval Petri Nets
CN104731695A (zh) 一种支持表格驱动底层输入的单元测试系统和方法
CN103049602A (zh) 基于模型驱动工程的将aadl组件转换到接口自动机模型方法
CN112148271B (zh) 一种装配工艺代码自动生成与注入的方法
Parizek et al. Assume-guarantee verification of software components in sofa 2 framework
Niyonkuru et al. A kernel for embedded systems development and simulation using the boost library
Melcher et al. Controller synthesis for the “production cell” case study
CN102203728A (zh) 在硬件系统上动态构建行为模型的系统和方法
CN101308648B (zh) 自动化测试显示装置的方法及其系统
Fortino et al. A toolset in Java2 for modelling, prototyping and implementing communicating real-time state machines

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20111005