Autosar软件组件概述

AUTOSAR中的应用软件设计为独立的软件单元,即软件组件类型(SwComponentTypes),封装了相关功能和行为的实现,并通过端口原型(PortPrototypes),向外部暴露自己。

AUTOSAR 标准应用了设计模式中的原型(Prototype)模式,要求应用软件的可重用性,可以重复使用已有的组件来创建新的模型元素,而不是每个项目都重复创建单独的组件。

软件组件面向虚拟功能总线(VFB)进行开发的,VFB 是一个抽象的通信通道,不依赖于 ECU 和通信总线,不直接调用操作系统或硬件驱动,可以在开发过程的晚期阶段部署到实际的 ECU 上。

软件组件

1.软件组件类型(SwComponentType)

是AUTOSAR软件组件的基础类,它是一个抽象类,包含了与软件组件相关的基本属性和行为定义,有三个子类,分别是AtomicSwComponentType、CompositionSwComponentType和ParameterSwComponentType,这些子类进一步细化了软件组件的类型和功能。

  • 原子软件组件类型:是SwComponentType的具体实现,代表不可再分解和分布在多个ECU上的原子软件组件。它具有原子性,意味着其功能和行为是不可分割的,并且在运行时不会被分布到多个ECU上。
  • 组合软件组件类型:用于组合多个其他软件组件,以实现更复杂的系统功能。它通过聚合其他软件组件来创建更大的系统单元,从而实现系统的模块化设计和可扩展性。
  • 参数软件组件类型:主要用于定义和管理软件组件的参数信息。与AtomicSwComponentType不同,它不能聚合SwcInternalBehavior,这意味着它没有内部行为的概念,只专注于参数的定义和管理。

软件组件模型
 

2.端口原型(PortPrototype)

端口原型在软件组件之间的通信中起着关键作用,它们定义了数据的传输方向和接口规范,端口原型通过端口接口来定义其通信行为,不同类型的端口接口具有不同的语义和功能,端口接口提供了一种标准化的方式来描述端口之间的通信协议和数据格式,使得不同的软件组件可以相互理解和交互。

端口接口是实现软件组件之间通信的基础,它们定义了数据的传输方式、格式和语义。不同类型的端口接口对应着不同的通信场景和需求,例如,客户端-服务器接口用于实现客户端和服务器之间的远程调用,而发送方-接收方接口用于实现异步的数据传输。

端口接口是通过在端口原型上添加额外的模型信息来实现的,这些信息包括接口的名称、描述、数据类型、操作等。这些信息被用于生成代码和实现通信功能。

端口原型包含:

需求端口原型(RPortPrototype):表示需求端口,需要某些服务或数据。它通常用于客户端与服务器之间的通信,客户端通过RPortPrototype向服务器请求服务或数据。

提供端口原型(PPortPrototype):表示提供端口,提供服务或数据。它通常用于服务器向客户端提供服务或数据的场景。

提供-需求端口原型(PRPortPrototype):可以同时作为需求和提供端口,具有双重功能。它既可以接收来自其他组件的请求,也可以向其他组件提供服务或数据。

端口组件继承与组合
 

3.原子软件组件类型

原子软件组件类型是软件组件类型的子类,可以聚合一个内部行为(InternalBehavior)类,能够实现更复杂的功能和行为,在模型中独立地开发和测试内部行为,而不会影响其他部分的开发。

在完成软件组件的基本架构设计后,可以在后期添加更多的细节,如内部行为的实现、数据处理逻辑等。

泛化(继承)
 

4.参数软件组件类型

不能聚合SwcInternalBehavior,唯一聚合的端口原型是《参数接口类型(ParameterInterface)》的PPortPrototype。

 数据属性定义:在汽车电子系统中,校准参数的准确性和一致性对于系统的性能和可靠性至关重要,通过定义特定的数据属性,可以确保每个参数在系统中的作用和意义是明确的,并且可以根据不同的角色进行灵活的配置和管理。

实例化数据定义:《实例化数据定义属性(InstantiationDataDefProps)》提供了一种在运行时动态配置数据属性的方式,通过聚合这些属性,参数软件组件类型可以根据具体的实例化需求来设置数据属性的值,从而实现更加灵活和可定制的系统配置。

参数软件组件
 

5.软件组件的符号名称

原子软件组件类型(AtomicSwComponentType)体现在运行时环境(RTE)的源代码中,原子软件组件类型的一个实例被部署在该运行时环境中。

如果具有相同短名称的原子软件组件类型实例被部署到特定的RTE中,可能会导致命名冲突。

为了缓解这种潜在的风险,可以为原子软件组件类型提供一个伴随的符号名称,用于解决命名冲突,符号名称是通过原子软件组件类型拥有的符号属性(SymbolProps)类的属性 “symbol” 来提供。

在生成RTE代码时,根据软件组件的符号名称来识别和处理不同的组件实例,确保RTE能够正确地生成代码,并将不同的组件实例正确地组合在一起。

组合符号名称

我的开源项目链接,欢迎star:​
基于UDS on CAN的Bootloader的刷写上位机:​
https://github.com/sydyg/UDS-on-Bootloader.git​
OSEKNM协议栈:​
https://github.com/sydyg/OSEK_NM​

赠送汽车研发入门资料,助力中国汽车行业发展。​
https://mv0qxzpryx9.feishu.cn/wiki/TPvDwYGcAizCVEkH3fVci48nn9f?from=from_copylink   ​
密码:8M&78193

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

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

相关文章

std::setw中文不能对齐的问题

从别的博主那 copy过来 记录下 #include <codecvt> #include <locale>class chs_codecvt : public std::codecvt_byname<wchar_t, char, std::mbstate_t> {public:chs_codecvt() : codecvt_byname("zh_CN.GBK") {} };int encoding_diff(string …

xtu oj 原根

文章目录 回顾杂思路c 语言代码 回顾 AB III问题 H: 三角数问题 G: 3个数等式 数组下标查询&#xff0c;降低时间复杂度1405 问题 E: 世界杯xtu 数码串xtu oj 神经网络xtu oj 1167 逆序数&#xff08;大数据&#xff09; 杂 有一些题可能是往年的程设的题&#xff0c;现在搬到…

Higress 重磅更新:AI 能力全面开源,云原生能力再升级

作者&#xff1a;澄潭、钰诚 新版本简介 Higress 最新的 1.4 版本基于为通义千问&#xff0c;以及多家云上 AGI 厂商客户提供 AI 网关的积累沉淀&#xff0c;开源了大量 AI 原生的网关能力。同时也在 Ingress、可观测、流控等云原生能力上做了全方位升级&#xff1a; AI 能力…

VS code部署Vue项目Demo

在之前已经在IDEA中部署过vue项目demo。本次在上次基础上进行。 IDEA中Vue的安装和使用【window10】_idea安装vue-CSDN博客 步骤一、安装VSCode 双击安装即可 步骤二&#xff1a;检查npm是否安装 步骤三&#xff1a;检查vue是否安装 &#xff08;vue create 项目名 只要在v…

Leetcode 单词规律

即判断给定的模式字符串&#xff08;pattern&#xff09;和单词字符串&#xff08;s&#xff09;是否遵循相同的对应规则。具体来说&#xff0c;就是要判断 pattern 中的字符与 s 中的单词是否存在一一对应的关系&#xff0c;即双射&#xff08;bijection&#xff09;。 算法思…

【解决办法】git clone报错unable to access ‘xxx‘: SSL certificate problem

git clone 是 Git 版本控制系统中的一个基本命令&#xff0c;用于从远程仓库复制一个完整的版本库到本地。这个命令不仅复制远程仓库中的所有文件&#xff0c;还复制仓库的历史记录&#xff0c;使得你可以在本地进行版本控制操作&#xff0c;如提交&#xff08;commit&#xff…

Electron+Vue实现两种方式的截屏功能

本次介绍的截屏功能一共有两种分别是在electron环境中与非electron环境中 非electron环境 这个环境下会有一些限制&#xff1a; 1.只能截浏览器中的画面 2.如果里面有iframe或者base64的图片会加载不出来&#xff08;这个会有解决办法&#xff09; yarn add -D js-web-scree…

Java爬虫:获取商品评论数据的高效工具

在电子商务的激烈竞争中&#xff0c;商品评论作为消费者购买决策的重要参考&#xff0c;对于商家来说具有极高的价值。它不仅能够帮助商家了解消费者的需求和反馈&#xff0c;还能作为改进产品和服务的依据。Java爬虫技术&#xff0c;以其稳健性和高效性&#xff0c;成为了获取…

基于Spring Cloud的电商系统设计与实现——用户与商品模块的研究(上)

操作系统&#xff1a;Windows Java开发包&#xff1a;JDK1.8 项目管理工具&#xff1a;Maven3.6.0 项目开发工具&#xff1a;IntelliJIDEA 数据库&#xff1a;MySQL Spring Cloud版本&#xff1a;Finchley.SR2 Spring Boot版本&#xff1a;2.0.6.RELEASE 目录 用户模块—user-…

YOLO系列入门:1、YOLO V11环境搭建

YOLO了解 yolo检测原理 yolo是目标检测模型&#xff0c;目标检测包含物体分类、位置预测两个内容。目前yolo的开发公司官网为&#xff1a;https://docs.ultralytics.com/zh截止到目前2024年10月&#xff0c;最新的是yolo11。关于YOLO的介绍可以参考这篇文章&#xff1a;https…

[Javase]封装、继承、多态与异常处理

文章目录 一、前言二、封装1、封装的思想2、封装代码层面的体现 三、继承1、继承的概念和好处2、继承代码层面的体现 四、多态1、多态的概念2、多态的好处和三要素2、多态代码层面的体现 五、异常处理1、try-catch-finally结构详解2、throw\throws 一、前言 本文章适合有一定面…

10.15.2024刷华为OD C题型(二)

10.15.2024刷华为OD C题型&#xff08;二&#xff09; 密码输入检测智能成绩表 如果是目标院校150分能过&#xff0c;而且这道题是两百分的话我就阿弥陀佛了。 这类简单类型的字符串处理题目一看就有思路&#xff0c;起码能做&#xff0c;遇到那种稍微加点数学的&#xff0c;感…

【从零开始的LeetCode-算法】3099. 哈沙德数

如果一个整数能够被其各个数位上的数字之和整除&#xff0c;则称之为 哈沙德数&#xff08;Harshad number&#xff09;。给你一个整数 x 。如果 x 是 哈沙德数 &#xff0c;则返回 x 各个数位上的数字之和&#xff0c;否则&#xff0c;返回 -1 。 示例 1&#xff1a; 输入&am…

MySQL增删改进阶

目录 1.数据库约束 1.1约束类型 1.2 not null约束 1.3 unique&#xff1a;唯一约束 1.4 default&#xff1a;默认约束 1.5 primary key&#xff1a;主键约束 1.6 foreign key:外键约束 1.7 check约束&#xff08;了解&#xff09; 2.表的设计 3.新增&#xff08;进阶&…

刷题训练之多源 BFS

> 作者&#xff1a;დ旧言~ > 座右铭&#xff1a;松树千年终是朽&#xff0c;槿花一日自为荣。 > 目标&#xff1a;熟练掌握多源 BFS算法。 > 毒鸡汤&#xff1a;学习&#xff0c;学习&#xff0c;再学习 ! 学&#xff0c;然后知不足。 > 专栏选自&#xff1a;刷…

C++(stack和queue)

1. stack的介绍、使用和实现 1.1 stack的介绍 stl里的stack其实和数据结构内的stack和前面数据结构的栈不能说百分百一样&#xff0c;但也有百分之90是一样的&#xff0c;他们的特性都是LIFO&#xff08;last in first out&#xff09;先进后出的原则&#xff0c;前面有类似的…

VideoCLIP-XL:推进视频CLIP模型对长描述的理解

摘要 对比语言-图像预训练&#xff08;CLIP&#xff09;已被广泛研究并应用于众多领域。然而&#xff0c;预训练过程中对简短摘要文本的重视阻碍了CLIP理解长描述的能力。在视频方面&#xff0c;这个问题尤为严重&#xff0c;因为视频通常包含大量详细内容。在本文中&#xff…

如何看一个flutter项目的具体flutter版本

查看pubspec.lock文件 这个项目实际运行的就是 flutter 3.16.6 版本的

Leetcode 1489. 找到最小生成树里的关键边和伪关键边

1.题目基本信息 1.1.题目描述 给你一个 n 个点的带权无向连通图&#xff0c;节点编号为 0 到 n-1 &#xff0c;同时还有一个数组 edges &#xff0c;其中 edges[i] [fromi, toi, weighti] 表示在 fromi 和 toi 节点之间有一条带权无向边。最小生成树 (MST) 是给定图中边的一…

MFC扩展库BCGControlBar Pro v35.1新版亮点:改进网格控件性能

BCGControlBar库拥有500多个经过全面设计、测试和充分记录的MFC扩展类。 我们的组件可以轻松地集成到您的应用程序中&#xff0c;并为您节省数百个开发和调试时间。 BCGControlBar专业版 v35.1已全新发布了&#xff0c;这个版本改进网格控件的性能、增强工具栏编辑器功能等。 …