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

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

3天内不再提示

车载TBOX嵌入式设备软件的性能测试

上海控安 来源:上海控安 作者:上海控安 2023-02-10 10:47 次阅读

作者 |李伟 上海控安安全测评中心安全测评部总监

来源 | 鉴源实验室

01 ECU软件和通用软件性能测试的区别

通用软件进行性能测试时通常会通过压力测试、负载测试、稳定性测试、疲劳强度测试、用户并发访问测试等等方法来了解当前软件系统的各项性能指标数据,并在这些测试过程中发现并修复系统存在的问题,或者优化系统运行效率等。

通用软件和ECU软件使用场景的不同产生的需求不同,从而出现了性能测试的差异和侧重点的不同。

首先系统运行场景的不同,通用软件一般直接面向客户使用,如果是提供在线web服务的系统,面向的客户群体有时候会是一个庞大数量。车载ECU一般不会面向最终用户,ECU的数据输入和输出对象一般是其他ECU或者系统TSP后台,以Tbox为例,车内通讯对象有网关、娱乐主机等,外部通讯对象是TSP后台,以及单个用户的手机蓝牙或者WiFi。

除使用场景和服务对象的不同外,性能需求也不一样。通用软件对于系统的在线并发处理,同时在线用户数等性能有较高的要求。车载ECU不会有多个最终用户的并发使用情况,所有信息通讯交互对象都是有限定的,从功能安全和产品需求设计出发,性能需求集中在系统长时间运行稳定性,以及各种场景下内存溢出和泄漏测试。

02 Tbox的性能测试项

在进行tbox性能测试项设计时,我们常用的做法是先进行使用场景的梳理,在梳理场景过程中,对数据流和逻辑的控制流相结合按照不同业务进行细分析,对这些过程中发现的瓶颈处设计性能测试项进行验证。

以Tbox为中心形成的车内子系统中,CAN总线上的通讯数据是明确固定的,意思是CAN总线上主动向TBOX发送的各种信号是明确的,tbox被动响应的或主动向网络发送的信号也是明确的,这部分信号在项目的早期就被确定下来,在项目研发过程中会有轻微的调整,tbox对这部分数据的处理是依靠自身的CAN通讯芯片,这部分的设计已经非常成熟,设计师选型会留有充分的余量,这部分的性能测试通常会放在硬件部分跟CAN网络和诊断测试在项目早期一起完成,系统级的性能测试一般不会考虑这部分内容。

Tbox和各子系统的通讯如下图所示,子系统间的通讯通常有从车端至云端,从TSP端至车端,周期性和触发型等几个部分。在这些通讯过程中,除了云端的TSP平台,车端还会跟Internet上的各种网络服务有通讯,主要是给娱乐主机提供各种定制化的服务,但是这些服务不会主动从云端向车端发起。

v2-d6f020fa36305b49b9d6492a530d7e42_720w.webp图 1

从车端上报至TSP端的通讯,周期性上报数据通常包括:大数据、新能源国标或地标上报等。触发型上报数据通常包括:各种报警信息、娱乐系统互联网服务。

从TSP端至车端的通讯,一般只包含触发型数据,不会从TSP端向车端主动发起周期性的通讯请求,通常包括:车况的查询与上报、远程控制车辆等。

经过分析我们可以看到,在这个子系统中,场景比较简单,消费子系统资源的最终用户是单一的,不存在通用软件类似大量用户并发访问的情况,我们对系统的性能要求主要集中在稳定性,和一定负载下的长时间疲劳测试中。通常的性能测试设计主要集中在以下几个方面:

车端网络上传下载速率测试,对tbox整体的上传和下载的最大速率进行测试,确定是否存在车端上传下载在网络速率上的瓶颈。

车端和云端网络通讯长时间的稳定性测试,一般测试24小时以上,测试车端和云端的通讯是否存在丢包,网络抖动等情况。

系统内存溢出和泄漏测试,通过对系统增加一定的负载,长时间运行并对系统资源使用情况进行监控,确认是否存在系统资源异常消耗的事件存在。

03 Tbox性能测试工具

Tbox系统运行软件一般是在各种Linux环境之上,如Ubuntu、CentOS、Android等,所以各种性能测试的开源工具是比较多的,我们列举常用的一些跟大家分享。

Speedtest,无论是Linux还是windows环境下,speedtest都是非常好用的网络带宽测试工具,可以测试出当前网络连接Internet的上传和下载最大速率,平均速率,网络延迟等参数,在针对车端上网性能的测试项时我们一般都会用到这款工具。

Iperf,是一款已经存在了很多年的著名网络测试工具,应用非常广泛,可以设置参数对TCP、UDP等协议进行性能测试,获得网络带宽、MTU/MSS,网络丢包,延迟等数据。我们在测试长时间的网络稳定性时会用到这款工具。

Monit,是Linux上最灵活、功能最强大的监视工具之一,已经存在了很多年,支持各种参数的自定义设置和报警阈值设置,还提供一个轻量化的web服务,方便用户通过浏览器来监视系统资源情况。我们在进行长时间内存泄漏探测时,会用到这款工具。

目前各种性能测试的小工具是非常多的,实际的使用中首先是根据测试设计的需要来进行选取,其次对工具的测试精确度,易操作性,成本等进行考虑,最终确认适合项目产品测试的最佳工具。

04 总 结

车载ECU的性能测试跟传统的通用软件,特别是提供web服务的互联网软件系统有非常大的区别,并发测试不再是tbox测试的重点,TBOX的运行稳定性和探测内存泄漏溢出成为了首要测试目标。车载的其他ECU也存在类似的情况,我们需要通过系统的ECU设计使用场景分析,基于数据和控制流对功能模块全面覆盖细分类考虑,来具体情况具体对待。

审核编辑黄宇

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

    关注

    8

    文章

    5298

    浏览量

    126634
  • ecu
    ecu
    +关注

    关注

    14

    文章

    886

    浏览量

    54497
  • TBOX
    +关注

    关注

    0

    文章

    17

    浏览量

    8170
收藏 人收藏

    评论

    相关推荐

    嵌入式系统开发中的测试方法 嵌入式系统开发与AI结合应用

    嵌入式系统开发中的测试方法 嵌入式系统开发是一个复杂的过程,涉及到硬件和软件的紧密结合。测试是确保系统可靠性和
    的头像 发表于 12-09 10:22 336次阅读

    什么是嵌入式?一文读懂嵌入式主板

    在现代科技浪潮中,嵌入式技术已成为支撑各种智能设备和系统运行的核心力量。那么,究竟什么是嵌入式嵌入式系统,顾名思义,是将计算机的硬件和软件
    的头像 发表于 10-16 10:14 959次阅读

    嵌入式主板是什么意思?嵌入式主板全面解析

    嵌入式主板,通常被称为嵌入式系统的核心组件,是一种用于控制和数据处理的计算机硬件,其设计旨在嵌入特定设备中执行专门任务。嵌入式主板如同是
    的头像 发表于 09-30 10:05 462次阅读

    EsDA,一站嵌入式软件

    ,旨在提高嵌入式软件开发的效率、性能和可扩展性。EsDA全称是嵌入式系统设计自动化,它是一个由AWorksLP、AWStudio、AXPI、AWTK、ZWS等多种
    的头像 发表于 09-15 08:10 288次阅读
    EsDA,一站<b class='flag-5'>式</b><b class='flag-5'>嵌入式</b><b class='flag-5'>软件</b>

    嵌入式软件开发与AI整合

    嵌入式软件开发与AI整合是当前技术发展的重要趋势之一。随着人工智能技术的快速发展,嵌入式系统越来越多地集成了AI算法,以实现更复杂的智能功能。以下是关于嵌入式
    的头像 发表于 07-31 09:25 708次阅读
    <b class='flag-5'>嵌入式</b><b class='flag-5'>软件</b>开发与AI整合

    嵌入式开发者的未来

    测试这些产品的硬件和软件。汽车行业:现代汽车包含大量的嵌入式系统,例如车载娱乐系统、发动机控制单元、自动驾驶系统等。在这个领域,工程师可以从事嵌入
    的头像 发表于 06-23 08:10 367次阅读
    <b class='flag-5'>嵌入式</b>开发者的未来

    嵌入式软件工程师和硬件工程师的区别?

    、调试和测试嵌入式软件,以确保其功能正常,性能优良。 * 文档编写:包括编写用户手册、维护文档等。 * 维护和更新:对现有的嵌入式
    发表于 05-16 11:00

    嵌入式系统软硬件基础知识大全

    嵌入式系统是现代科技发展的一个重要分支,广泛应用于工业控制、消费电子、医疗设备、汽车电子等领域。本文试图全面解析嵌入式系统的软基础知识,以期让读者对这一技术有更深入的了解。嵌入式系统是
    发表于 05-09 14:12

    嵌入式软件设计的原则分享

    嵌入式软件开发如果具有更好的阅读性、扩展性以及维护性,就需要考虑很多因素。今天给大家分享几个嵌入式软件设计的原则。
    发表于 02-25 10:54 685次阅读
    <b class='flag-5'>嵌入式</b><b class='flag-5'>软件</b>设计的原则分享

    嵌入式软件开发应该掌握哪些知识?

    两个部分组成,其中嵌入式软件是指在嵌入式系统中运行的程序,用于控制硬件并提供特定的功能和服务。嵌入式软件应用广泛,包括汽车、医疗
    发表于 02-19 11:23

    嵌入式工控机性能特点 嵌入式工控机应用场景

    嵌入式工控机性能特点 嵌入式工控机应用场景 嵌入式工控机是一种专门设计用于工业控制系统的计算机设备。它具有与传统计算机不同的
    的头像 发表于 02-04 11:35 686次阅读

    嵌入式学习步骤

    硬件组件。 (4).开发固件:编写嵌入式系统的固件,这是嵌入式系统的软件部分。固件负责控制硬件并执行特定任务。 (5).调试和测试:在将嵌入式
    发表于 02-02 15:24

    嵌入式软件开发和软件开发的区别

    嵌入式软件开发和软件开发是两个不同的概念,它们在一些关键方面有着明显的区别。嵌入式软件开发是指开发嵌入
    的头像 发表于 01-22 15:27 2282次阅读

    基于功能安全的汽车嵌入式软件单元验证技术研究

    随着汽车嵌入式软件功能的不断叠加,软件复杂性不断提升,对汽车嵌入式软件的安全性提出了更高要求,基于功能安全的
    的头像 发表于 01-07 11:27 1053次阅读
    基于功能安全的汽车<b class='flag-5'>嵌入式</b><b class='flag-5'>软件</b>单元验证技术研究

    聊聊嵌入式软件分层

    今天以控制LED闪烁为例,聊聊嵌入式软件分层
    的头像 发表于 12-28 09:22 676次阅读