0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

面向复杂系统的嵌入式软件高可信建模与验证方法

上海控安 来源:上海控安 作者:上海控安 2026-01-23 14:31 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

01

引 言

在航空航天、轨道交通、核能电力、汽车电子等安全关键领域,嵌入式控制软件一旦出现故障,其造成的损失无法接受。面对软件规模和复杂度的不断提升,传统的软件开发方法已无法满足越来越繁杂庞大的安全关键系统。为应对这一挑战,上海控安研发了高可信嵌入式软件建模开发工具SmartRocket Modeler

wKgZO2lzFSCABhuVAAL9_06PRTs559.png

高可信嵌入式软件建模开发工具

SmartRocket Modeler

本文主要介绍SmartRocket Modeler工具的研发背景、核心理论支撑、功能模块概览,阐述它如何为复杂软件的开发提供更可靠、高效的解决方案。

02

研发背景


嵌入式控制软件是嵌入式系统的重要组成部分,在航空航天、轨道交通、核能电力、汽车电子等安全攸关领域的重要性尤为突出,一旦出现故障,其造成的损失无法接受。如波音737 Max坠机事件是由自动失速防止系统(MCAS)的软件缺陷导致的未能准确处理传感器故障造成的,最终导致346人遇难,经济损失达4万亿元的严重后果。

随着计算机技术的快速发展、工业制造业的不断升级,对安全关键系统的要求也越来越严格,从而使得软件应用在安全关键系统中承担越来越多的功能。与此同时软件的规模和复杂度也不断提升,导致软件的缺陷密度和失效问题也显著增加。采用传统的软件开发方法来进行现代高可信嵌入式软件开发具有研发工作反复进行、研发周期大幅延长、成本大幅度增加、软件难以进行维护以及升级等问题。近半个世纪以来,由于软件问题造成安全关键系统出现故障所导致的损失难以衡量,传统的软件开发模式已无法满足越来越繁杂庞大的安全关键系统。因此SmartRocket Modeler可视化建模开发工具应需而生。它可以根据用户在可视化建模系统中所建立的应用软件模型,自动生成应用软件的框架和源代码。其优点包括:

✦ 构建的模型不具有二义性,可读性强。在代码自动生成的过程中,可以通过可视化图形界面的方式让用户使用起来更加明确、清晰,唯一模型便于交流和维护;

✦ 代码自动生成具有特定规则。通过加载预先定制好的模型库,自动生成代码的规范性可以大幅度提升;

✦ 准确且高效。模型在进行代码生成前需经过验证,保证正确的模型生成正确的代码。避免手工编程带来的繁琐和与需求不一致性的风险,从而保证代码质量符合规则要求;

✦ 在缩短软件开发周期的情况下,可节省时间、节约成本、大大减少代码错误产生率。

该产品可实现国外垄断工具SCADE Suite的国产化替代,解决需求建模、验证领域的“卡脖子”技术,可填补国内在数据流可视化建模和验证领域的空白,并达到国内先进水平。

03

理论支撑


1. 从V字开发模型到Y字开发模型

wKgZPGlzFS-ABhy0AAEBeUcgDr4528.png

传统的“V”字软件开发流程中,以文档开发为中心,用户经历需求分析-概要设计-详细设计-编码-单元测试-集成测试-系统测试等阶段,得到相对可靠的软件产品。在此过程中,由于自然语言的二义性、文档沟通难以完全表述清晰等原因,可能存在如下问题:

✦ 手动编码与用户需求难以完全贴合;

✦ 以代码为核心,早期开发难以验证;

✦ 安全关键领域要求高,编码逻辑易混乱。

✦ ......

wKgZO2lzFTeAcEsNAAH9kdhcuek213.png

而符合MBSE的“Y”字开发则具有如下优势:

✦ 人机互动友好易用,模块化设计,便于资产留存和理解;

✦ 以模型为中心,避免实现过程二义性;

✦ 简化软件开发过程,缩短软件开发周期与成本;

✦ ......

因此,对于功能安全性和可靠性要求更高的嵌入式控制软件,更适合使用SmartRocket Modeler提供的基于模型的开发方式。

2. 同步假设

同步假设是指假设反应式系统响应速度足够快,则系统接收环境输入后可立即响应并产生输出,并等待下一个输入,在此期间系统内部状态保持不变。对于嵌入式控制系统而言,系统周期性运行,一个周期内的计算瞬时完成,不会存在系统资源不足或超时的情况。

wKgZPGlzFT6ANxdZAADVuSzTGi8891.png

在实际运行中,由于技术或成本的限制,一般是通过控制系统获得任意两次输入的时间间隔大于系统的响应时间的方式来实现同步假设的。当周期性运行的系统满足如下条件时,即可认为符合同步假设:

✦ 系统在周期开始时获得输入,且当前周期内输入不变;

✦ 中间变量与输出变量在周期内计算后,值在本周期内不会改变;

✦ 运行周期之间不会重叠。

wKgZO2lzFUSAOHOdAAEp9WPlHP8179.png

3. 同步数据流语言Lustre

Lustre建模语言每一个变量都代表一个数据流,流是一个给定数据类型的值的无限序列,具有数值和时钟两个特性。Lustre提供的时间运算符对数据流进行采样,也可以获取之前周期的流值,为控制系统的建模提供了方便。其主要应用领域有自动化控制以及信号处理系统等。

SmartRocket Modeler功能背后以Lustre语言为支撑,提供具有精确语义的可验证模型的构建、验证、测试和C代码生成等功能。

4. 反应式系统

SmartRocket Modeler面向反应式系统,即与环境持续交互的系统。反应式系统可看作序列到序列的函数,其工作模式为:

✦ 反应式系统读入环境变量;

✦ 计算出逻辑运算结果,并反馈至环境中;

✦ 通过系统逻辑运算更改内部状态。

当使用f作为反应式系统的一次逻辑计算时,工作模式可以表达为:

wKgZO2lzFUuAY9tqAAAVrK2I3es812.pngwKgZO2lzFVCARy1mAAESXwuMwTc226.png

04

产品功能

SmartRocket Modeler工具面向航空航天、轨道交通、核能、汽车电子等领域,作用于传统软件开发流程的详细设计阶段和编码阶段,提供模型设计、分析、测试、代码生成一系列功能。

wKgZO2lzFV2ASNrRAAPTu4Mmy7Y488.png

1. 图形化建模:根据对系统需求的分析,运用数据流构件、状态机构件库进行基于模型的系统设计。图形化建模基于同步数据流语言,因此建模机制具有严格的数学语义。Modeler提供的构件库包含数学构件、比较构件、数组/结构体构件、逻辑构件、位构件、时态构件、分支构件、条件块构件、状态机构件和高阶构件等,支持数据流和状态机建模,全面对标SCADE Suite建模算子。

2. 静态分析:静态分析通过从设计模型中抽取出的多层次模型刻面,充分呈现系统不同层次的功能、行为、数据定义及数据传递特征,用于进行交互式完整性检查。检查模型是否满足预定义的设计规则的维度包含类型检查、数据依赖关系分析、状态迁移分析。可帮助设计人员在开发的早期就排除模型中的基本错误。

3. 耦合度分析:耦合度分析功能以报告的形式展示项目模型中控制耦合(CC)、数据耦合(DC)的分析结果。工具提供的耦合度分析功能可帮助航空航天领域的客户满足DO-178B/C相关规定。

4. 模拟仿真模拟仿真功能通过模型仿真和断点调试确保模型在特定物理场景中的动态运行能力,并对运行结果进行可视化展示满足更直观的分析。该功能包含两种模式:基于模型的仿真调试和基于C代码的仿真调试。 对于同样的仿真用例,两种仿真模式的仿真结果相同。

5. 基于模型的测试:工具提供基于模型的测试功能。分为批量测试和覆盖率分析两个部分。批量测试功能允许用户同时执行多个测试用例文件,验证模型运行结果是否符合预期,确保设计模型的正确性。覆盖率分析功能基于测试用例文件进行指定覆盖准则的覆盖率分析,可选择的覆盖率准则包括:OMC/DC、influence、ODC。

6. 代码生成:在排除模型早期错误,保障模型一致性、正确性和安全性基础上,通过模型、LUSTRE 语言、代码转换,工具可实现 C 代码自动生成,有效减少用户重复编码工作。

7. 代码与模型的追溯:工具提供模型与代码的追溯查看,以变量为单位,直观展示C 代码和模型的对应关系,从侧面证明代码生成的可靠性。

8. 设计文档生成:工具支持对模型的设计文档自动生成,封面信息可进行配置,提供生成格式为html和docx文档。

9. 模型迁移:Modeler对SCADE Suite的模型进行了兼容,支持现有SCADE项目的一键导入,以及Modeler项目的一键导出,无缝衔接现有开发流程,便于模型资产复用。

05

总 结

SmartRocket Modeler基于严谨的理论和工程实践,为高可信嵌入式软件的开发提供了从建模、验证到代码生成的全流程支持。

本文主要介绍了工具的起源与核心理论。在后续的推送中,我们将逐一详细介绍各项具体功能,如图形化建模、静态分析、代码生成等,欢迎您持续关注。

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式软件
    +关注

    关注

    4

    文章

    252

    浏览量

    28218
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    IAR如何实现软件定义的嵌入式系统

    嵌入式系统向来是软件驱动的。几十年来,工程师一直借助软件来打造产品差异化、提升性能,并在固定硬件的基础上扩展更多功能。改变的不是想法本身,而是规模与
    的头像 发表于 05-11 10:24 973次阅读
    IAR如何实现<b class='flag-5'>软件</b>定义的<b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b>

    MathWorks 加入 EDGE AI FOUNDATION,推进面向工程化系统嵌入式 AI 发展

    嵌入式设备,并通过系统级仿真验证其性能。 EDGE AI FOUNDATION 执行董事 Pete Bernard 表示:“MathWorks 的加入将进一步强化我们让边缘 AI 更易于获取
    的头像 发表于 04-17 15:46 231次阅读

    嵌入式软件测试找bug的常见方法和秘诀

    “我怎么才能使程序跑得更快”、“什么编译器最好”等问题。 面对这个不同寻常却异乎成熟的问题,可能很多人都不知道怎么办,下面就来讲讲软件测试找bug常见方法和秘诀。 1懂得使用工具 通常嵌入式
    发表于 01-12 07:07

    C语言单元测试在嵌入式软件开发中的作用及专业工具的应用

    ,提高整体系统的稳定性和可靠性 嵌入式C语言单元测试面临的特殊挑战包括: 硬件依赖性强,测试环境搭建复杂 实时性要求,测试不能影响系统性能
    发表于 12-18 11:46

    一个面向单片机、事件驱动的嵌入式开发平台介绍

    EventOS,是一个面向单片机、事件驱动的嵌入式开发平台。它主要有两大技术特色:一是事件驱动,二是超轻量。EventOS以及其母项目EventOS,目标是开发一个企业级的嵌入式开发平台,以事件总线
    发表于 12-05 06:26

    CW32嵌入式软件开发的必备知识

    设计的原则和方法,能够设计出高效、可维护的软件系统。 了解嵌入式系统的实时性要求,能够设计出满足实时性要求的
    发表于 11-28 07:48

    嵌入式与FPGA的区别

    涉及到了计算机的各个方面,如果不满意,以后可以直接做软件开发,当然是不考虑年龄的问题下那基本不会有太大问题。 ✅2、fpga就比较复杂,就业岗位没有嵌入式那么多,但现在确实很缺人,薪资也给的特别
    发表于 11-20 07:12

    嵌入式和FPGA的区别

    嵌入式系统与FPGA的核心差异:软件定义功能VS硬件可重构。嵌入式适合通用计算,开发门槛低;FPGA凭借并行处理实现纳秒级响应,但成本、开
    发表于 11-19 06:55

    嵌入式软件测试与专业测试工具的必要性深度解析

    嵌入式系统作为控制、监视或辅助装置运行的专用计算机系统,其软件测试面临着独特的挑战和严格的要求。专业测试工具在嵌入式
    发表于 09-28 17:42

    新一代嵌入式开发平台 AMD嵌入式软件和工具2025.1版现已推出

    AMD 2025.1 版嵌入式软件和工具是面向新一代嵌入式系统开发而打造的综合平台,全面加速概念构想到部署落地。 2025.1 版
    的头像 发表于 08-20 09:15 4346次阅读

    如何在嵌入式RF测试中实施多域信号分析

    射频(RF)测试是嵌入式系统开发与验证中的关键环节,尤其是在电信、航空航天、汽车以及物联网等行业。随着嵌入式系统的日益
    的头像 发表于 08-15 16:32 3080次阅读
    如何在<b class='flag-5'>嵌入式</b>RF测试中实施多域信号分析

    AMD 2025.1版嵌入式软件和工具的新增功能

    AMD 2025.1 版嵌入式软件和工具是面向新一代嵌入式系统开发而打造的综合平台,全面加速概念构想到部署落地。
    的头像 发表于 08-15 15:32 1535次阅读

    单元测试工具TESSY现已支持ABIX HiperSIM,助力MELEXIS MLX16 汽车嵌入式系统软件验证

    TESSY现已支持ABIX HiperSIM,为基于MELEXIS MLX16架构的汽车嵌入式系统提供高效、可靠的软件验证解决方案。自动化测试+高保真仿真,助力提升
    的头像 发表于 07-17 13:39 1048次阅读
    单元测试工具TESSY现已支持ABIX HiperSIM,助力MELEXIS MLX16 汽车<b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b>的<b class='flag-5'>软件</b><b class='flag-5'>验证</b>

    Linux嵌入式和单片机嵌入式的区别?

    用于对实时性要求、资源需求较低的场合,如家电控制、工业自动化、小型机器人等。 Linux嵌入式 :适用于需要复杂功能、高处理能力的应用,如智能手机、平板电脑、智能电视、汽车电子等。 2. 开发环境
    发表于 06-20 09:46

    嵌入式力矩电机的设计方法研究

    摘 要:介绍一种用于机床直驱部件的嵌入式力短电机的设计和电磁结构优化方法。为了使嵌入式力矩电机满足机床内部结构紧凑的要求,必须具有较高的磁密。通过计算分析,得到不同长径比、不同磁极对数、不同槽极比
    发表于 06-11 15:08