嵌入式技能是核算机开展的趋势之一,被广泛运用于工业和军事范畴。SCADE(高安全性的运用程序开发环境)为嵌入式软件供给了一套依据模型的开发办法。从嵌入式软件的特色下手,对依据模型的嵌入式体系软件开发技能进行了深化剖析,并给出了一个依据SCADE的开发实例。
1导言
跟着嵌入式运用技能的开展,嵌入式体系被广泛运用于人们日子的各个方面。很多功用强大而价格便宜的通用嵌入式硬件随之呈现在市场上。而怎么可以在通用硬件渠道上,高效的开宣布满意安全性与可靠性需求的专用嵌入式软件成为了约束嵌入式技能运用的瓶颈。在核算机范畴,怎么为软件的工业化大出产发明必要的技能条件和规划办法一直是软件工程研讨的首要问题。无论是软件工程范畴呈现过的核算机辅佐软件工程的热潮,仍是,依据面向对象技能和组件技能的“安装重用”软件思路,都有一些根本性的问题没有得到处理,因而大规模的“安装”软件出产还处在一个抱负阶段。
跟着研讨的深化,用模型化。组件化的办法界说并开发软件及其体系的思维引起了人们的爱好,也供给了一种新的软件工业化大出产的或许性。在这方面,嵌入式软件因为其自身的特殊性走在了通用软件(PC机用软件)的前面。
2 SCADE软件开发环境简介
SCADE(Safety-CriTIcal ApplicaTIon Develop-ment Environment)高安全性的运用程序开发环境,是法国Esterel Technologies公司研发的一个用于开发到达欧洲航空业DO一178B规范的嵌入式软件的完好东西包。它针对嵌入式软件的特色,运用了正确构建(Correct by ConstrucTIon)的概念,提出了一种依据模型的图形化开发办法,覆盖了从需求剖析到代码完结的整个软件开发流程。
SCADE开发环境供给的一系列开发东西,完结了直观的图形化需求建模功用,依据模型的仿真验证和软件测验功用,以及依据模型的规范C代码和开发文档的主动生成功用。其谨慎的建模理论和经过高安全性验证的代码生成器KCG,保证了软件需求和代码产品的高度同步。
SCADE开发环境的呈现,使软件规划作业可以会集在需求建模的层面,为依据模型的软件开发办法供给了载体。
3依据SCADE的嵌入式软件开发理论根底
依据嵌入式体系的特色,SCADE提出了反响式体系。确认性。同步假定。并发性四个要害概念,从嵌入式体系的本质特征动身,极大的简化了体系规划的考虑,为依据模型的开发办法供给了理论根底。
3.1反响式体系
反响式(ReacTIve system)体系是指在运转进程中,不断的和外部环境交流信息,以外部环境的输入信息为主导,进行特定的核算和输出的嵌人式体系。
反响式体系的作业办法是一个“输入一核算一输出”的接连循环进程。反响式体系一般还兼具实时性和周期性,广泛运用于工业范畴的嵌入式体系大都归于这种体系。反响式体系的作业办法如图1所示。
反响式体系的概念,把嵌入式体系简化为一个能不断接纳输入,并核算输出的黑盒,为嵌人式体系的需求建模供给了根本模型。
3.2确认性
一个体系,假如运用相同的一组输入序列,在相同的时刻调度下,其反响状况相同,一直发生相同的一组输出,那么它便是确认的。确认性进步了体系的安全性,是大多数嵌入式软件的重要需求,在航空航天等高科技范畴,这也是一个必要条件。‘确认性的要求降低了体系规划的杂乱度,简化了体系建模和仿真验证的考虑。SCADE开发环境供给的各种机制保证了体系确实认性,开发者不能引进不确认性。
3.3同步假定
同步假定(synchrony hypothesis)是假定反响式体系的处理速度无限快,即体系在一个可以忽略不计的瞬间呼应输入,并发生输出。这样,任何两次呼应之间都不会堆叠,每一次输出都会鄙人一次输人前完结。
相关于通用软件的规划,时刻是嵌入式体系规划有必要考虑的一个要素,而嵌入式软件的运转时刻又是与硬件环境休戚相关的。为了简化体系规划,SCADE提出了同步假定概念,把物理时刻从体系规划中剥离出来。一方面保证了体系的实时性,另一方面也表现了规划的渠道无关性。
一起,为了考虑体系的运算时刻问题,SCADE经过根本指令步长将实践的物理时刻离散成指令周期时刻,然后发生了逻辑时刻。这样,就可以运用逻辑时刻来替代物理时刻,给出运算时刻的参考值。
3.4并发性
并发性概念以为体系一切输入都是并发的,体系运算模块依照数据活动履行,并且依据同步假定,一切模块的运转都是在可以忽略不计的时刻内完结的。其间,没有输入输出联系的模块都是并发履行的,有输入输出联系的模块是依照输入输出联系次序履行的。
并发性概念进一步简化了体系规划的杂乱度,也为体系仿真供给了一种简化的“运转”办法。
4依据SCADE的嵌入式软件开发要害技能
4.1建模机制
依据模型的开发流程,其根底便是模型描绘问题,也便是寻觅一种适宜的办法来描绘体系。
依据嵌入式软件的特色,可以把其区分为接口和功用模块两部分,功用模块部分由接连操控部分与状况逻辑部分组成,其输人输出端分别为传感器和履行器。嵌入式软件的一般结构如图2所示。
针对这种区分,SCADE供给了两套图形化的建模机制:数据流图和有限状况机。对应嵌入式软件结构的区分,数据流图模型可以用来表明接连操控部分,首要包括传感器采样。信号处理。杂乱的数学逻辑核算。完结各种算法等功用;有限状况机模型可以用来表明状况逻辑部分,首要包括各种体系状况的搬迁和作业办法的改变等功用。
这是一种已被证实为有用并广泛运用的嵌入式软件建模办法之一,可以简略有用的描绘嵌入式体系。
4.2需求建模
一个杂乱的嵌入式体系的需求建模进程,是一项体系的规划作业,一般有自顶向下和自底向上两种规划办法:
自顶向下的规划办法是一种从笼统到详细的进程。它首要需求依据体系的接口需求,树立体系的黑盒模型;然后依据体系的功用需求,对体系进行模块区分,并层层细化,直至最低层的功用单元;最终是功用单元的完结作业。
自底向上的规划办法是一种从详细到笼统的进程。它依据体系的功用需求,首要完结的是底层的各个功用模块,然后依据各模块之间的接口界说,层层组合,最终构成整个体系模型。
这两种规划办法在实践运用中各有好坏,可以依据详细需求组合运用。
一起,SCADE的建模办法也可以被以为是一种依据组件的开发办法。一个功用独立,接口清晰构功用算法模型就类似于一个封装好的组件,可以直接经过接口调用。而SCADE软件开发环境的高安全性约束和渠道无关性,保证了模型的通用性和重用价值。这样,依据老练算法模型的封装与重用,可以使软件开发变成模型组件的“安装”,极大的进步软件出产功率,也减少了引人过错的或许。
4.3模型验证手法
依据紧密的建模理论,SCADE供给了一系列依据模型的验证手法,使模型查看。体系调试和仿真验证作业都可以在模型层面上完结。其间首要有以下几项:
(1)静态查看,查看模型规划是否有静态语意。语法过错;(2)模仿仿真,依据算法规划测验用例,经过仿真器模仿接口输入输出,直接“履行”模型来完结仿真的功用;(3)办法验证,依据需求规划的安全特性,经过测验在逻辑上寻觅反例来查看模型的安全性;(4)体系原型仿真,经过与其他规划东西的桥接,可以完结体系与模仿外部环境模型的衔接运转,便利测验和需求验证。
关于一个体系模型的验证作业,一般是依照自底向上的次序进行的。首要要对底层功用模块进行验证,因为其结构和接口最为简略,所以最易于调试。在一切组成模块都经过充沛验证的根底上,可以继续进行上一层模型的验证作业,并一步步的递推至最顶层的体系模型。
4.4代码主动生成
SCADE依据严厉的数学理论和一套办法化办法,可以保证其代码和模型的彻底共同,并满意一系列的安全性特征,是彻底面向工程的产品代码。
SCADE的代码生成进程供给了多种设置以满意各种需求,需求依据实践运用需求进行装备,一般状况下其产品可以直接嵌人到产品中去而不需求做任何修正。
5开发实例
依据上述开发技能,实例构建某类型制导炸弹飞控软件的制导操控模块,来实践依据模型的嵌人式软件开发流程。
5.1开发流程
依据SCADE的嵌入式软件开发流程,首要作业会集在建模层面,其流程如图3所示。
5.2需求剖析软件需求规范描绘如下:
(1)需求完结的功用:此模块为核算功用模块,首要依据惯性系下份额扶引指令。弹目相对方位和弹体姿势核算弹体需求完结的过载指令。
(2)输入:惯性系下份额扶引指令。弹目相对方位。炸弹姿势。
(3)输出:弹体扶引指令。
5.3需求建模
需求建模可以分为概要规划阶段和详细规划阶段。概要规划阶段的首要作业是树立体系模型和模块分层细化;详细规划阶段的首要作业是完结详细模块规划。
在这个比如中,依据算法所要完结的功用首要界说了整个体系的输入输出变量,然后树立体系的黑盒模型,如图4所示。
下面依据模块功用,对体系模型进行了进一步区分,首要分为以下几个模块:
(1)飞翔状况条件核算模块Condition.其输人为弹体姿势和弹目相对方位信息,以及两个常数参数,输出为三个飞翔状况改变的条件。
(2)飞翔状况判别模块Fly-State.其输人为三个状况改变条件变量,输出为三种状况标志。
(3)扶引指令坐标系转化模块Transition.其输入为弹体姿势和惯性系下份额扶引指令,输出为弹体系下份额扶引指令。
(4)过载核算模块Acceleration.其输入为三个飞翔状况标志,弹体速度。攻角信息,弹体系下的份额扶引指令,以及一个常数参数,输出为弹体过载指令。
(5)过载限幅模块Alimit.其输入为弹体过载指令,输出为限幅后的弹体过载指令。
其间Condition.Acceleration.Transition和Alimit是功用核算模块,用数据流图建模;Fly-State是状况核算模块,用有限状况机建模。体系模型图如图5所示。
图6为飞翔状况核算模块Fly-State的模型,其间共包括3个状况,分别为初始状况(Istate),转弯状况(Tstate)和爬升状况(Astate)。依据三个输入的布尔量条件可以进行状况改变。其间的状况改变都是单向不行重复的,改变方向和线条箭头方向共同。
5.4模型验证和算法调试
完结模型规划后,需求运用SCADE供给的一系列查看验证手法来保证模型的正确性和安全性。关于发现的问题,可以在直观的图形化模型上进行模型修正和参数调试。
运用模仿仿真东西,可以经过规划各种测验用例来模仿或许呈现的实践状况,对模型进行仿真调试。可以从操控算法视点和软件工程视点对模型进行优化,以到达满意规划需求的意图。
5.5代码集成
在代码集成阶段,依据实践需求,依照功率优先准则进行了装备并主动生成了规范C代码。然后对运用了SCADE主动生成代码的软件进行仿真,其仿真成果与模型仿真的成果共同,满意规划需求。
6结束语
SCADE软件开发环境的呈现,供给了一种依据模型的高安全性嵌入式软件处理方案,使嵌入式软件的开发功率大大进步。一起因为运用了依据模型的规划流程和高度主动化的开发进程,研发作业的重心会集在建模层面,把软件规划人员从繁复的编码和验证作业中解放出来,可以把很多的精力投入到算法规划和建模作业中,这关于嵌入式软件的工程开发有着重要的含义。