AUTOSAR 多核操作系统时序监控系统设计

news2024/11/24 5:55:07

AUTOSAR 多核操作系统时序监控系统设计

  • 0 引言
  • 1 AUTOSAR 介绍
    • 1.1 AUTOSAR 诞生
    • 1.3 AUTOSAR 架构
  • 2 时序监控系统软硬件介绍
    • 2.1 硬件部分
    • 2.2 软件部分
  • 3 时序监控系统设计
    • 3.1 监控系统整体设计
    • 3.2 监控数据获取
    • 3.3 监控数据存储
    • 3.4 监控数据处理
  • 3.5 还原运行时序
  • 5 推动 5G+工业互联网的融合应用建议
    • 5.1 加大资金扶持力度,加快新型设施建设
    • 5.2 推进商业模式创新,实现高质量发展
  • 5.3 打好关键技术攻坚战,提高产业链可控水平
  • 5.4 复制推广标杆案例,打造跨界高端人才队伍
  • 6 结语

摘要:AUTOSAR 多核操作系统遵循汽车嵌入式软件开发的标准,在快速增加的软件负载下需要保证系统的安全性、实时性要求。仅依靠软件开发人员的经验进行配置常会存在操作系统运行时序上的种种问题,因此需要一种对 OS 进行监控的方法在开发初期阶段及时发现可能存在的时序错误。针对上述难点,文章提出了一种 OS 时序的监控方法,并搭建了一套以 Infineon AURIX TC397 芯片和 Vector Davinci 工具链为软硬件平台的时序监控系,同时监控系统还包含上位机端软件进行监控数据处理并构建可视化窗口实时还原核内任务运行时序。
关键词:AUTOSAR;多核操作系统;时序监控;可视化

0 引言

进入 21 世纪以来,得益于科学技术的不断进步,尤其是电子技术的发展,极大地提高了汽车的安全性和舒适性。当前汽车行业朝着电动化、智能化、网联化和共享化的趋势发展,汽车电子电气架构也越来越复杂。在此背景下,业内提出了基于软件集中化和域控制器的集中式电子电气架构,其在计算性能、通讯带宽和软件更新迭代等方面具有明显优势。考虑到汽车的行驶安全,动力域的安全等级往往是域控制器架构中最高的,因此在动力域的微控制器上通常搭载实时操作系统,以确保微控制器中的所有行为都满足实时性要求。

AUTOSAR OS作为目前汽车电子嵌入式多核操作系统已然成为目前汽车电子研究的热门话题。系统的实时性、内存开销、多核处理器的负载率是评价当下AUTOSAR OS 性能的重要指标。实时性很大程度上决定了车辆在各种不同的工况下,操作能够及时传达并且执行,同时也可以实时反馈车辆运
行状态;负载率则影响操作系统的响应速度,这些都是关乎行车安全的重要指标[1]。所以对于AUTOSAR OS 操作系统的监控与优化显得尤为重要。

本文从 AUTOSAR 多核操作系统监控的角度出发,通过剖析多核操作系统任务切换和调度原理,设计出 AUTOSAR多核操作系统的时序监控系统,并构建上下位机信息传输通道,在上位机界面实时展示监控结果,并对比专业监控软件监控结果,以验证本文所搭建监控系统的可行性和一致性。

1 AUTOSAR 介绍

1.1 AUTOSAR 诞生

在 AUTOSAR 诞生之前,汽车嵌入式系统的研发过程采用的是硬件紧密结合的方式,即开发人员从底层的硬件驱动到上层的应用逻辑算法进行完整的开发,对于同样的需求实现,不同开发团队所采用开发思路、方法以及软件架构的设计都可能不同。随着需求的复杂化与需求开发相关方的增加,为了保证开发过程中多个相关方能顺利交付阶段成果与整合需求,在2003年汽车开放式系统架构(AutomotiveOpen System Architecture,AUTOSAR)[2]就此诞生。
在这里插入图片描述
1.2 AUTOSAR 发展
AUTOSAR 形成了一套完整的汽车电子软件开发及集成解决方案。除了像 OSEK 一样定义了一套基础软件架构和标准的软件接口、清晰的功能划分以外,AUTOSAR 提出了一套相应的方法论,用来指导系统的开发流程和开发方法,标准化规范化整个开发链中各个角色的工作内容和数据交互。AUTOSAR 大规模应用于量产的版本为 R3.X 和 R4.X,其中 AUTOSAR R3.1 第一次被使用在某宝马车型的量产开发过程中,中国于 2008 年大规模引入 AUTOSAR 标准的软件架构和开发方法论。2016 年后,AUTOSAR R4.x 被广泛应用在整车厂商的量产开发项目中。
在这里插入图片描述

1.3 AUTOSAR 架构

AUTOSAR体系架构分为应用程序层(Application Layer,AppL)、运行时环境(Runtime Environment,RTE)和基础软件层(Basic Software,BSW),如图 3 所示。
在这里插入图片描述
应用层位于整个软件架构的上层,由位于 RTE 之上的所有软件组件(Software Component,SWC)组成,是系统的功能实现的外在表现形式。

RTE,即运行时环境,是 VFB 的接口实现,主要负责应用层间以及应用层与基础软件之间的通信。RTE 将基础软件的API 接口统一封装,应用层通过调用 RTE 接口使用基础软件服务。应用层软件和基础软件相互独立,提高了软件可复用性。同时,RTE 确保了通信过程中的数据一致性。在生成代码之前,RTE 代码生成器原则上会分析哪里可能出现不一致的数据。

BSW具体可分为微控制器抽离层(Microcontroller Abstraction Layer,MCAL),ECU 抽象层(ECU Abstraction Layer,ECUAL)、服务层(Service Layer)和复杂驱动 (Complex Driver,CDD)。图 1.3 中砖红色模块为 MCAL,绿色模块(除 CDD 以外)为 ECUAL,紫色模块为服务层。MCAL 是对微控制器上物理设备的抽象,其接受来自上层的调用,同时从硬件获取相关状态向上层反馈。ECU 抽象层是将 ECU 上的外围设备等进行抽象处理,使上层软件的设计与具体的 ECU 平台隔离。服务层则包含了各个服务软件模块,为不同的基础软件功能提供标准化的接口。

2 时序监控系统软硬件介绍

2.1 硬件部分

本文所搭建的监控系统基于 Infineon Aruix2G TC397 评估板进行开发,并将其作为监控系统的硬件部分,参数如下表所示。
在这里插入图片描述

2.2 软件部分

本文所搭建时序监控系统使用的软件工具如下表所示:
在这里插入图片描述

3 时序监控系统设计

3.1 监控系统整体设计

本文所搭建时序监控系统通过追踪(Tracing)的方式进行监控布置,即将系统发生的事件和时间戳一同记录在硬件内存中,同时下位机将其整理成为监控数据文件并发送到上位机,最终上位机对监控作数据处理并且重塑还原原始的核内任务运行状态。整体设计链路如图 5 所示:
在这里插入图片描述

3.2 监控数据获取

监控数据获取基于AUTOSAR 操作系统内部提供的多种不捕获状态切换信息的钩子(Hook)函数接口。在任务上下文切换时会调用两个介入函数(PreTaskHook 和 PostTaskHook),可以用于调试和测量运行时间。如图 6 所示,在新的任务进入运行状态前,系统会调用 PreTaskHook,同理在任务结束时回调 PostTaskHook。使用 PreTaskHook 和 PostTaskHook 可以快速定位任务开始结束位置,方便进行插桩确定各个任务的时间戳数据。
在这里插入图片描述
在确定任务的时间戳信息后,还需要确定的是任务的背景信息,包括任务激活信息,由于存在抢占机制,调度、中断等信息也是需要获取监控信息,这样才是一个完整的时序监控系统。对这些信息利用时间介入函数(Timing Hook)通过宏的方式实现监控功能。

任务激活介入函数的宏如下所示:
在这里插入图片描述
其中:TaskId 表示激活任务的编号,DestCoreId 表示激活任务从属的内核编号,CallerCoreId 则表示实施任务激活操作的内核编号。
调度介入函数的宏如下所示:
在这里插入图片描述
其中:FromThreadId 和 FromThreadReason 分别表示在调度前运行的任务/ISR 编号以及其被调度的原因。同理,ToThreadId和ToThreadReason分别表示在调度后运行的任务/ISR编号以及其被调度的原因,包括任务的激活、ISR开始、事件或者信号量的获取、被抢占后的继续运行等。CallerCoreId 则表示发生调度过程的内核编号。

3.3 监控数据存储

为了实现监控系统的高性能运行,减小监控给系统运行带来的额外负载同时提高监控的精度,需要将监控数据和代码存放在能够快速写入和读取的空间中。所以本文采用数据存储方式为内部缓存的方式,即将监控到的数据暂存在处理器的 RAM 空间中,然后再发送到上位机端。此种方式虽然占用了一部分处理器RAM空间,但是对传输带宽没有特别的要求。

本文所用单片机的每个 CPU 都有一个 PSPR(Program Scratch Pad RAM)的本地程序存储器和一个 DSPR(Data Scratch Pad RAM)的本地数据存储器。对于同核 DSPR 的读写以及PSPR的指令获取不存在机器周期上的延时,且每个内核中有 64kB 的 PSPR存储空间以及 240/96kB 的 DSPR 空间。所以在每个核都配置了用于存储 2000 个监控数据的DSPR空间,共占约 8kB。

监控数据存储空间分为AB两部分,在A块内存记录监控数据时,使用以太网将 B 块内存数据一次性发送至上位机,反之亦然,如下图所示。考虑到填满每块内存空间至少需要几百毫秒,所以选择在 100ms周期任务中根据当前写入数据的条目序号以及上次传输的条目序号判断是否进行监控数据传输。
在这里插入图片描述
监控数据格式:本文所搭建的时序监控系统的硬件为TC39x 系列,其采用 32 位宽的处理总线,所以将一次追踪的数据大小设为 32 位,可以在一个机器周期内完成对一次追踪数据帧的写入操作。前 18 位存储时间戳信息,18 至 23 位用于存储事件信息,最后的 8 位用于存储任务信息。
在这里插入图片描述

3.4 监控数据处理

监控信息将通过以太网传输到上位机端,下表为上位机接收到的监控数据信息。通过上位机软件对 32 位监控数据的解析,可以得到具体的时间戳以及任务或者中断信息。
在这里插入图片描述
在表 3 中,第一列为监控帧序号。第二列记录了当前事件的相对时间。第三列为当前发生的事件编号。第四列和第五列分别表示任务/ISR ID 号以及其对应的任务名。

3.5 还原运行时序

根据一段时间内的追踪信息,在上位机中可以绘制出对应的时序 Gantt 图。以 Core2 为例,如图 9 所示。
在这里插入图片描述
测试满足要求,5G相比其他网络组合方式在业务延时、可靠性等方面都有领先优势,所以 5G将为企业在工业企业互联网化过程中提供变革性帮助,后续会进行多终端上线测试,探索实践 PLC 场景形成行业标准,推广到更多工业领域。

5 推动 5G+工业互联网的融合应用建议

5.1 加大资金扶持力度,加快新型设施建设

首先,各地政府部门应在现有的基础上进一步加大资金扶持力度,结合现实需求,从多个层面推出资金补贴扶持政策,如芯片研发、企业内网改造等,鼓励并支持更多的企业进行 5G改造,切实有效地解决企业 5G 网络建设的资金压力。

其次,要加快 5G+工业互联网新型基础设施建设,鼓励企业在内网改造中积极应用边缘计算等新型网络技术,以网络化带动数字化,为后续的发展提供保障。

最后,在政府部门和龙头企业的带领下,成立 5G+工业互联网融合研发中心,将各方面资源进行有机整合,兼顾发展差异,为企业发展提供可靠的 5G 专网,确保 5G 网络全覆盖,助力 5G技术成果转化水平,切实有效地解决融合发展中存在的痛点。

5.2 推进商业模式创新,实现高质量发展

首先,在产品的提供方面,工业企业应结合现实需求,积极制定一体化的解决方案。运营商应最大程度地发挥 5G 云网的融合优势,不断打造高质量的 5G、边缘计算等核心能力,将 5G 和大数据技术、物联网等联合应用,实现线上线下有效协同,从工业企业的角度出发,为其提供全要素行业解决方案。更加重要的是,要加速 5G 技术和制造技术的深度融合,并联合其他合作伙伴联手打造数字化平台,为推动工业企业的智能化转型奠定扎实基础,助力运营商向价值链中高端迈进。

其次,工业企业要创新合作模式,在信息化平台的支撑下,实现技术攻关,并和其他伙伴开展合作,在新模式的发展中,可以探索“融合发展+资本经营”,和龙头企业积极合作,并向其学习,借鉴充足的经验,不断壮大 5G 产业的生态圈。

最后,依托 5G 技术制定一体化解决方案,不断拓展更加丰富的营收模式,进而达到预期的目标。当前的营收模式包含了连接费、流量费、5G 专线费,为此可以拓展多渠道收费模式,如平台能力开放变现、多量纲收费、网络维护费等等。同时,运营商还需要做好 5G 解决方案的价值分配,保障其合理性,如此才能吸引并凝聚更多的合作伙伴,实现共同发展。

5.3 打好关键技术攻坚战,提高产业链可控水平

当前,掌握关键核心技术直接关系到我国国际竞争力的强弱[4]。尤其是国外发达国家近年来对我国贸易的制约等,我国工业发展必须要正视其面临的困难和挑战,并深究造成该现象的原因,尤其是针对半导体芯片、工业软件受制于人的现状,要加强产学研用多方协同攻关,创新企业联合体,将各个企业凝聚起来,一起打好关键核心技术的攻坚战。如此采取多样化的形式,强化光通信、5G增强、量子通信、仪器仪表等技术的研发工作,不断提高我国核心技术研发水平。除此之外,研发人员还应对云计算技术、物联网等进行深层次的研发,对现有的工业产品进行优化改良,加速人工智能等技术和传统行业的融合发展,从整体的角度上提高产业链安全水平,助力5G+工业互联网的融合发展。

5.4 复制推广标杆案例,打造跨界高端人才队伍

运营商要将线上线下方式深度融合,加强 5G+工业互联网的宣传力度,积极开发、培育、创新市场,提升其市场份额,不断促进产业、技术、模式与应用的创新与发展,大力推广典型应用场景的规模化、扩大行业标杆案例,全面提升 5G+产业的普及率。与此同时,加大力度培养 5G+与工业互联网的
跨界复合型高端技术人才队伍。一是以推动 5G+产业网络专业化运作为契机,加强 5G+工业互联网人才专业化培训,促进员工转型,建设一批 5G+工业互联网高素质、高技术的复合型人才;二是要加速引入成熟的 5G+行业领军人才、技术人才,并与相关大学、院校建立起有效的人才引进和培育体系[5]。

6 结语

5G+工业互联网的融合发展是大势所趋,5G 也将进一步与云计算、大数据、人工智能等技术融合,工业制造业应正视现存的问题,从多个层面着手,积极应对挑战,将 5G技术应用于更多的场景中,发挥其优势,进而推动行业的高质量发展。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1038031.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

3D点云目标检测:Centerformer训练waymo数据集

一、环境准备 项目地址:centerformer 1.0、基础环境 python 3.8.0 torch 1.9.1cu111 waymo-open-dataset-tf-2-6-0 1.4.9 spconv 1.2.1 其余按照requirement.txt里安装就行 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt由于我本人是在…

uniapp、vue实现滑动拼图验证码

uniapp、vue实现滑动拼图验证码 实际开发工作中,在登陆的时候需要短信验证码,但容易引起爬虫行为,需要用到反爬虫验证码,今天介绍一下拼图验证码,解决验证码反爬虫中的滑动验证码反爬虫。滑动拼图验证码是在滑块验证码…

QLineEdit设置数据的输入范围QIntValidator和QDoubleValidator

在日常开发过程中QLineEdit作为输入框,有时要限制输入的内容,比哪,考试分数为0-100,这个时候就使用QIntValidator作为限制范围,而如何输入的是带小数的呢,那么使用QDoubleValidator可以吗,下面请…

ipad触控笔有必要买原装吗?ipad2023手写笔推荐

目前,在无纸教学、无纸办公的大背景下,电容笔得到了广泛的关注。只是,对于这两支电容笔的不同之处,不少人并不是很清楚。其实这两种电容笔都很好区分,第一种是主动电容笔,也就是我们常用的电容式屏幕&#…

安全生产一张图 安全生产三维地理信息平台

一、 建设目标 易图讯科技是一家专业从事大数据、移动互联网、物联网、三维GIS、AI系统研发,开发了三维电子沙盘、AI三维电子沙盘、WEB三维地球、移动端三维地球、数字武装三维电子沙盘、智慧动员三维电子沙盘、智慧公安三维电子沙盘、智慧安监三维电子沙盘、森林防…

vue重修003

文章目录 版权声明day03一、今日目标1.生命周期2.综合案例-小黑记账清单3.工程化开发入门4.综合案例-小兔仙首页 二、Vue生命周期三、Vue生命周期钩子四、生命周期钩子小案例1.在created中发送数据2.在mounted中获取焦点 五、案例-小黑记账清单1.需求图示:2.需求分析…

Maven项目在pom.xml里配置远程仓库

如图:作用 在项目的 pom.xml 文件中配置了 <repositories> 元素&#xff0c;Maven会优先使用项目级别的仓库配置&#xff0c;而不会查找全局设置文件中的仓库配置。换句话说&#xff0c;项目级别的配置会覆盖全局设置文件中的仓库配置。 这意味着当在项目的 pom.xml 文…

AUTOSAR 面试知识回顾

如果答不上来&#xff0c;就讲当时做了什么 1. Ethernet基础: 硬件接口&#xff1a; ECU到PHY&#xff1a; data 是MII总线&#xff0c; 寄存器控制是SMI总线【MDCMDIO两根线, half duplex】PHY输出(100BASE-T1)&#xff1a; MDI总线&#xff0c;2 wire 【T1: twisted 1 pair …

C++项目:仿muduo库实现高性能高并发服务器

文章目录 一、实现目标二、前置知识&#xff08;一&#xff09;HTTP服务器1.概念 &#xff08;二&#xff09;Reactor模型&#xff1a;1.概念2.分类&#xff08;1&#xff09;单Reactor单线程&#xff1a;单I/O多路复用业务处理。&#xff08;2&#xff09;单Reactor多线程&…

腾讯mini项目-【指标监控服务重构-会议记录】2023-07-26

2023-07-26组长会议纪要 A组 项目对齐和问题 分配需求&#xff0c;SLI指标上报&#xff0c;暂时没有实际效果 每个人负责一条指标&#xff0c;同步代码&#xff0c;时间问题还是难题跟B组同学请教&#xff0c;答疑 问题&#xff1a;启动 Tracer 【已解决】 环境问题&#xf…

21.redo日志(下)

title: “redo日志&#xff08;下&#xff09;” createTime: 2022-03-06T15:52:4108:00 updateTime: 2022-03-06T15:52:4108:00 draft: false author: “ggball” tags: [“mysql”] categories: [“db”] description: “” redo log的刷盘时机 log buffer 空间不足时&…

【linux】性能优化

这张图谱出自倪朋飞&#xff1b; 1、什么是性能指标 这里一定会想到 “高并发” 和 “响应快”&#xff0c;这里词正对应的就是 “吞吐” 和 “延时”。我们知道随着应用负载的体系&#xff0c;系统资源的使用就会提高&#xff0c;甚至达到极限。而性能问题的本质&#xff0c…

【CNN-FPGA开源项目解析】卷积层01--floatMult16模块

文章目录 (基础)半精度浮点数的表示和乘运算16位半精度浮点数浮点数的乘运算 floatMult16完整代码floatMult16代码逐步解析符号位sign判断指数exponent计算尾数fraction计算尾数fraction的标准化和舍位整合为最后的16位浮点数结果[sign,exponent,fraction] 其他变量宽度表alway…

Matplotlib 是一个广泛用于 Python 数据可视化的库

Matplotlib 是一个广泛用于 Python 数据可视化的库&#xff0c;它提供了丰富的绘图功能&#xff0c;允许用户创建各种类型的图表&#xff0c;从简单的折线图到复杂的三维图表&#xff0c;以及定制图形的各个方面。以下是Matplotlib的一些重要特点和常见用法&#xff1a; Matpl…

linux用户和权限命令学习记录

文章目录 版权声明root用户&#xff08;超级管理员&#xff09;su和exit命令sudo命令为普通用户配置sudo认证 用户、用户组管理用户组管理getent命令 查看权限控制认知权限信息 修改权限控制chmod修改文件、文件夹的权限权限的数字序号chown修改所属用户、用户组 版权声明 本博…

操作系统权限提升(二十八)之数据库提权-SQL Server 数据库安装

SQL Server 数据库安装 SQL Server介绍 SQL Server 是Microsoft 公司推出的关系型数据库管理系统。具有使用方便可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2012 的大型多处理器的服务器等多种平台使用。…

Python深度学习入门 - - Transformers网络学习笔记

前言 一、Transformers架构原理 Transformer 架构与传统循环神经网络RNN、LSTM相比具有并行计算、自注意力机制、位置编码和多头注意力等方面的差异。这些差异使得 Transformer 在处理长序列、建模上下文关系和并行计算方面表现出更强的能力&#xff0c;成为自然语言处理和其他…

Java代码审计17之fastjson反序列化漏洞(2)

文章目录 1、类加载与反射调用1.1、类加载1.2、测试代码1.3、通过类的加载和反射调用evil类 2、Fastjson TemplatesImpl链调试2.1、链路总览2.2、调试构造利用链 3、fastjson反序列化TemplatesImpl 利⽤3.1、开启 Feature.SupportNonPublicField 得作用3.2、构造利用payload3.3…

【kubernetes】使用virtual-kubelet扩展k8s

1 何为virtual-kubelet&#xff1f; kubelet是k8s的agent&#xff0c;负责监听Pod的调度情况&#xff0c;并运行Pod。而virtual-kubelet不是真实跑在宿主机上的&#xff0c;而是一个可以跑在任何地方的进程&#xff0c;该进程向k8s伪装成一个真实的Node&#xff0c;但是实际的…

关于DatagridviewComboBox控件的若干技术问题

一&#xff1a;DatagridviewComboBox 选定索引更改时更改 DatagridviewTextBox 文本内容 private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e){if (dataGridView1.CurrentCell.ColumnIndex 1 && e.Contr…