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技术应用于更多的场景中,发挥其优势,进而推动行业的高质量发展。