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

    文章

    4540

    浏览量

    125237
  • ecu
    ecu
    +关注

    关注

    14

    文章

    828

    浏览量

    53967
  • TBOX
    +关注

    关注

    0

    文章

    15

    浏览量

    8085
收藏 人收藏

    评论

    相关推荐

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

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

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

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

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

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

    嵌入式学习步骤

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

    嵌入式硬件和软件哪个好?

    ,他的领域是比较广泛的,在一些消费电子,通讯设备等这些方面。因为领域大,相对而言就业领域也是比较大的,人才需求量也是一样。嵌入式软件工程师相对于硬件工程师来说,人才需求比硬件工程师要大,软件
    发表于 12-05 15:17

    「飞凌嵌入式OK3568开发板试用 」sqlite性能测试

    SQLite简介 SQLite是一个轻量级的关系型数据库管理系统,它是自包含的,即数据库和所有必需的库文件都包含在一个单独的可执行文件中。SQLite是一个嵌入式数据库,适用于嵌入式系统、移动
    发表于 11-08 12:26

    什么是嵌入式Linux?

    发展需要不断进化。随着芯片性能的增强和社会变革的需要,嵌入式系统越来越承接更多、更复杂的功能,所以嵌入式开发也以高薪稳定的状态稳坐在就业的顶端。(相较于其他行业,嵌入式工程师的工资在同
    发表于 10-11 13:47

    从事嵌入式工作有哪些优势?

    随着物联网和人工智能的发展,嵌入式技术越来越值钱,学嵌入式的人也越来越多,现在开始入行嵌入式。根据一些权威部门统计,我国目前嵌入式软件人才缺
    发表于 10-08 15:05

    STM32嵌入式操作系统介绍

    嵌入式操作系统的特点• 嵌入式操作系统是一种用途广泛的系统软件,通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面
    发表于 09-28 06:59

    嵌入式软件好还是硬件好?

    一些消费电子,通讯设备等这些方面。因为领域大,相对而言就业领域也是比较大的,人才需求量也是一样。嵌入式软件工程师相对于硬件工程师来说,人才需求比硬件工程师要大,软件学习门槛较低,相对而
    发表于 09-18 15:31

    如何提高嵌入式软件单元测试效率

    在本指南中,您将学习如何通过在更短的时间内运行更多的测试来增加您的单元测试吞吐量。 这种效率的提高来自于使用虚拟平台而不是物理硬件作为开发平台。 本指南对任何开发或运行嵌入式软件单元
    发表于 08-28 06:31

    Simulink模型测试、C/C++代码测试,都有喔#嵌入式软件测试技术

    嵌入式软件代码
    北汇信息POLELINK
    发布于 :2023年08月24日 09:59:39

    有效的嵌入式软件安全测试

    嵌入式应用程序中,手写汇编和第三方二进制库的使用相当普遍。通常,即使内存变得更便宜并且编译器效率提高,也有必要手动优化代码。程序集还用于直接与一些低级处理器功能交互。但是,这限制了传统的基于源代码的测试框架的使用。Inception 框架提供了一种强大的方法,可以在源代
    的头像 发表于 06-29 14:27 595次阅读

    嵌入式软件开发,测试、找bug技巧

    通常嵌入式系统对可靠性的要求比较高。嵌入式系统安全性的失效可能会导致灾难性的后果,即使是非安全性系统,由于大批量生产也会导致严重的经济损失。这就要求对嵌入式系统,包括嵌入式
    的头像 发表于 06-28 17:22 524次阅读

    嵌入式学习路线你知道吗?

    外围设备的硬件工作原理,以及如何使用C语言来编程、控制这些硬件。除了要学习对硬件编程之外,还需要学习嵌入式硬件的知识,但是对于嵌入式软件工程师来讲,重点是学习硬件的工作原理,在掌握硬件
    发表于 06-14 16:00