【车载开发系列】AutoSar软件组件接口

2023-09-21 18:33:34

【车载开发系列】AutoSar软件组件接口

软件组件的端口根据输入/输出方向可分为:

一. 端口概念

Ports是SWC和SWC做接口(Interface)通信使用的端口,SWC通过RTE和BSW做接口(Interface)通信使用。Port是依附在SWC之上的一个概念。

二. 三种端口方向

根据端口输入输出方向而言,我们可以将端口分为需求端口,提供端口和供需端口三个部分。
1~需求端口(Require Port,RPort)
用于从其他软件组件获得所需数据或者所请求的操作。
2~提供端口(Provide Port,PPort)
用于对外提供某种数据或者某类操作。
3~供需端口(Provide and Require Port,PRPort)
兼有需型端口与供型端口的特性

三. 五种端口属性

由于端口仅仅定义了方向, 所以AUTOSAR中用端口接口(Port Interface) 来表征端口的属性

1)S/R Port

发送者-接收者接口(Sender-Receiver Interface, S/R) :它主要用来定义数据的传输;它是对一个全局变量的操作。
对于引用发送者-接收者接口的一组端口而言, 需型端口为接收者(Receiver) , 供型端口为发送者(Sender) 。

2)C/S Port

客户端-服务器接口(Client-Server Interface, C/S) 调用另一个组件当中的服务或者说是函数;特别是组件之间需要通过RTE进行调用的时候。
对于引用客户端-服务器接口的一组端口而言, 需型端口为客户端(Client) , 供型端口为服务器(Server) 。
客户端不得连接到多台服务器,以使一个以上的服务器可以处理一个操作调用

3)Mode Switch interface

模式转换接口(Mode Switch Interface)
模式切换接口是AutoSAR中使用的一种比较特殊的接口,主要用在和模式管理密切相关的模块。
具有ModeSwitchInterfaces的端口不能跨ECU边界连接。
不允许软件组件使用ModeSwitchInterfaces键入多个PortPrototype,其中包含的ModeDeclarationGroupPrototypes引用具有相同shortNames但具有不同ModeDeclaration的ModeDeclarationGroups。
显然,上述的基本原理是避免在生成的RTE文件中发生冲突。

4)其他Port

非易失性数据接口(Non-volatile Data Interface)
参数接口(Parameter Interface)
触发接口(Trigger Interface)
TriggerInterface定义了一组在软件组件之间通信的触发器。

四. PortInterface

Interface是一个抽象的概念,是一个无法直接在代码中对应的概念。Interface在配置工具的语境下包含了输入输出Port,以及两个Port之间的连接关系的一个集合。我们一般将输入输出Port连接到Interface上。
当我们定义了Port,并使用Port将两个SWC之间连接起来之后,剩下的工作就是工具将通过RTE层内部实现两个SWC之间的连接。
这些都基于这个Interface的元名称进行扩展。正因此,才会需要在工具层面上具象化Interface,并给他一个命名。
总结起来一句话就是Port Interface是将两个Component连接起来的桥梁。

五. PortInterfaceMapping

每个PortInterfaceMapping描述了恰好两个PortInterface的PortInterface元素的映射。

六. PortPrototype

PortPrototype主要提供了作为AUTOSAR概念的连接点的功能。由PortInterface定义细节,即有关在两个PortPrototype之间实际传输哪种信息的信息。
所以PortPrototype可以理解是端口,定义两个不同Component的连接点,用于两者之间通信。PortPrototype可以是Port提供者(PPortPrototype)或Port的接收者(RPortPrototype)。

七. PortIF与PortPrototype区别

PortInterface描述了信息交换的静态结构
PortInterfaces仅限于对交换信息的静态结构的描述;与通信相关的动态属性附加到PortPrototypes。
从抽象的角度来看,PortInterface充当PortPrototype的类型。 这尤其意味着可以通过同一PortInterface键入多个PortPrototype。
当然,这方面极大地促进了软件组件之间有效连接的创建。 通过使用特定的PortInterface键入特定的PortPrototype,后者可以通过定义相互连接。

八. ModeDeclarationGroupPrototypes

ModeDeclarationGroupPrototype 指定在给定上下文中提供或需要的一组模式 (ModeDeclarationGroup)。

更多推荐

汽车行业新闻稿怎么写?怎么写关于汽车的新闻稿?

撰写汽车行业新闻稿需要遵循一定的结构和要点,以确保内容准确、清晰,并能吸引读者的兴趣。以下是关于汽车的新闻稿的一些写作要点和建议,接下来伯乐网络传媒就来给大家分享一下:标题醒目:新闻稿的标题应该简洁明了,能够吸引读者的眼球并概括新闻的要点。可以使用一些字眼来突显重点,例如“首次亮相”、“全新发布”等。新闻价值:新闻稿应

Python Quine 介绍

一个Quine是一个产生其源代码作为输出的计算机程序。该程序不需要输入,并输出其源代码的副本。Quine很有趣,因为它们似乎违背了编程的目的,即根据输入生成输出。在某些情况下,Quine可能是有帮助的,例如当您需要生成程序源代码的副本时。运行PythonQuine创建一个Quine并不特别困难,但需要一些思考。基本思想

Python 基于PyCharm断点调试

视频版教程Python3零基础7天入门实战视频教程PyCharmDebug(断点调试)可以帮助开发者在代码运行时进行实时的调试和错误排查,提高代码开发效率和代码质量。准备一段代码defadd(num1,num2):returnnum1+num2if__name__=='__main__':fornuminrange(1

Linux Day18 TCP_UDP协议及相关知识

一、网络基础概念1.1网络网络是由若干结点和连接这些结点的链路组成,网络中的结点可以是计算机,交换机、路由器等设备。1.2互联网把多个网络连接起来就构成了互联网。目前最大的互联网就是因特网。网络设备有:交换机、路由器、集线器传输介质有:双绞线、同轴电缆、光纤,无线1.3IP地址IP地址就是给因特网上的每一个主机(或路由

【工作记录】springboot集成aop实现日志@20230918

springboot集成aop实现日志1.添加依赖<!--aop依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId></dependency>2.定义注解@

使用Postman如何在接口测试前将请求的参数进行自定义处理

1、前言当我们使用Postman进行接口测试时,对于简单的不需要处理的接口,直接请求即可,但是对于需要处理的接口,如需要转码、替换值等,则就麻烦一些,一般我们都是先手动把修改好的值拷贝到请求里再进行请求接口,这也是大多数测试人员进行接口测试时这么做的。其实Postman有一个Pre-requestScript功能,即在

Ampere ARM Server 内核版本更新

本篇记录AmpereARMServer服务器上,升级内核版本或部分驱动的方法。安装编译依赖库sudoapt-getinstallbuild-essentialkernel-packagelibncurses5-devlibncurses-devsudoapt-getinstallgccmakebisonflexlibs

(高阶)Redis 7 第13讲 数据双写一致性 canal篇

面试题问题答案如何保证mysql改动后,立即同步到Rediscanal简介https://github.com/alibaba/canal/wikihttps://github.com/alibaba/canal/wiki基于MySQL数据库增量日志解析,提供增量数据订阅和消费业务数据库镜像数据库实时备份多级索引(卖家

mysq 主从同步错误之 Error_code 1032 handler error HA_ERR_KEY_NOT_FOUND

错误说明:MySQL主从同步的1032错误,一般是指要更改的数据不存在,SQL_THREAD提取的日志无法应用故报错,造成同步失败(Update、Delete、Insert一条已经delete的数据)。1032的错误本身对数据一致性没什么影响,影响最大的是造成了同步失败、同步停止。如果主主(主从)有同步失败,要第一时间

第八天:gec6818arm开发板和Ubuntu中安装并且编译移植mysql驱动连接QT执行程序

一、Ubuntu18.04中安装并且编译移植mysql驱动程序连接qt执行程序1、安装Mysqlsudoapt-getinstallmysql-serverapt-getisntallmysql-clientsudoapt-getinstalllibmysqlclient-d2、查看是否安装成功,即查看MySQL版本m

软件测试(功能、工具、接口、性能、自动化、测开)详解

一、软件测试功能测试测试用例编写是软件测试的基本技能;也有很多人认为测试用例是软件测试的核心;软件测试中最重要的是设计和生成有效的测试用例;测试用例是测试工作的指导,是软件测试的必须遵守的准则。黑盒测试常见测试用例编写方法1、等价类选取少数有代表性的数据,这一类数据等价于这一类的其它值;找出最小的子集,可以发现最多的错

热文推荐