求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Modeler   Code  
会员   
要资料
 
追随技术信仰

随时听讲座
每天看新闻
 
 
AUTOSAR实战教程
1.AUTOSAR相关知识
1. 老板说项目要上AUTOSAR,我慌得一批
2. 我淡定地撸了一遍AUTOSAR的基本概念
3. AUTOSAR初学者最想搞懂的东西
2.AUTOSAR理论基础
AUTOSAR架构
1. AUTOSAR架构的故事(干货)
2. AUTOSAR架构之通信服务(干货)
3. 这次我通过Interface来贯穿整个AUTOSAR架构
AUTOSAR启动与初始化
1. 解析AUTOSAR Startup
2.AUTOSAR架构中的配置文件
3.SWC详解与配置实现
1.AUTOSAR Port原理概念详解
4.BSW原理和实战演练
1. AUTOSAR折磨,从新建工程开始
2. AUTOSAR的BswM模块详解
3. 图解AUTOSAR NVM模块
4. AUTOSAR架构的 Pdu Router
5. AUTOSAR中的vLinkGen可以干嘛
6. MCAL Wdg模块解析
7. MCAL PWM Module详解
8. AUTOSAR的Memory是如何设计的?
9. AUTOSAR NvM Block的Native、Redundant和Dataset有什么区别?
10. AutoSAR,在多核汽车MCU中如何运行
11. AUTOSAR架构中的Configurator
12. AUTOSAR中的Fee
5.MCAL应用配置
1.ADC模块的配置
2.MCU模块的配置
3.PWM模块的配置
 
 
AUTOSAR Port原理概念详解
作者:实战派大师兄
5438 次浏览
26次  

接下来看看这个Port是什么东西?

在Davinchi Developer工具配置AUTOSAR中的Port的时候,遇到了两个概念: Port Prototype和Port Interface。

也许你会潜意识任务Port不就是Interface吗,Prototype是个啥玩意?

之前我也这么天真地认为,好长一段时间被AUTOSAR理解的这几个概念折腾得糊里糊涂。

1 . Port Prototype和Port Interface

对于这个问题,找AUTOSAR官方文档看看:

PortPrototypes also referred as Ports in some places are the well-defined connection points for communication between different software-components. A PortPrototype is either required type or provided type.

这句话的意思是说,PortPrototype可以理解是端口,定义两个不同Component的连接点,用于两者之间通信。PortPrototype可以是Port 提供者(PPortPrototype)或Port的接收者(RPortPrototype)。

AUTOSAR官方对PortPrototype模型是这样的:

看不懂?

没关系!我举个例子,你一定能理解。

假设王家坝的王二狗家是一个Component,李家村的李翠花家是另一个Component,王二狗要娶李翠花,李家丈母娘要彩礼。那么王二狗家提供彩礼,就可以理解是PPortPrototype,而李翠花家接受彩礼,就可以理解为RPortPrototype。

这里引入另一个问题,彩礼怎么给过去呢,是转账还是用个皮箱子装着现金过去,这个就可以理解是彩礼的通信,即PortInterface。

这个好理解吧,那么接着来

其实,AUTOSAR官方是这样定义Port Interface的

The PortInterface defines the kind of information transported between two PortPrototypes. PortInterfaces are used to support a design-by-contract workflow. In other words, PortInterfaces represent a pivotal point in the AUTOSAR concept.

其实,我们可以简单粗暴地理解,Port Interface是将两个Component连接起来的桥梁。

2. SWC和Datatype的Prototype概念

提到Prototype这个概念,其实SWC也有Prototype这个东西,就想上次新建的SWC的例子,在Design窗口创建这个SWC就需要填写这个Prototype的名称。

按Vector支持的说法,这叫将SWC实例化。

上次的文章没有很关注这个概念,直接将这个名称填和Component Type同一个名称了,就看到的名称是CtApMySwc:CtApMySwc了

其实,更严谨地,这个Prototype处的名称,应该填C p ApMySwc,即变成 CpApMySwc : CtApMySwc ,这样就更容易区分了。

除了SWC,Data Type也有个类似Prototype概念,那叫Application Data Type和Implement Data Type。

其实这个也很好理解,前者是在Developer中概念上得东西,后者是具体实现生成具体代码上得东西。

举例,上面讲到的彩礼,就好比是Application Data Type,而彩礼具体是什么,一部豪车、一栋房子或者一大笔钱,都可以是彩礼的具体实现方式,即Implement Data Type。彩礼是大家社会面口头上讲的东西,而钱、房子车等这些是亲家双方表达彩礼的实际的东西。

这个在后面专门将Data Type的时候详细讲解下,当然本次的教程也会用到这两个东西。

好了,搞全套了,SWC、Port和Data Type的这些让人糊里糊涂的概念扯清楚了。

3. Port Interface的种类特点

Prototype,像是一个抽象的象征性的概念,可能是为了便于人理解的,其在代码中却不是一个真是明确的存在,所以以下多讲下Interface,不太多关注这个Prototype的细节了。

一个发一个收,这种叫Send/Receiver Port

还有一种叫Client/Server Port

放在Component上就上这样的

以上这个图可能是大家经常看到的关于SWC Port的图了。

那么,Send/Receiver和Client/Server有啥区别。

继续王二狗和李翠花的例子,在他们两家结为亲家之后,亲戚之间是要走动的,比如李家托人送点礼物为王家,就好像是Send/Receiver,一个发一个收,很好理解。

那么,如果李翠花要回娘家,顺便带点礼物会来给王家,这就像是Client/Server,这个李家就像是提供了“跟李翠花唠唠嗑顺便给点小礼物”的这种服务,姑且叫它Server。

这样的比喻不是很严谨,如果你对这些概念很困惑,请暂且这样理解,如果你已经很理解了,就忽略这个比喻。

问题1:Port Interface的通信方式只能是一对一(1:1)的吗?

并不是,可以是一对多(1:n)或多对一(n:1).

怎么理解呢?就拿送礼物来说,李家可以送礼物给王家,也可以送礼物给孙家等啊,对吧。当然,孙家也可以送礼物给王家啊。

这就是一对多和多对一的概念了。

问题2:Port Interface只能传一个内容吗?

也不是,可以传多个元素,组成队列来传。

比如,李家托人送了一只鸡给王家,突然想了下,地里的大葱挺好的,再送一把大葱过去。对于王家,先收到了鸡,然后有收到了大葱,像一个队列传过来的。

有些读者就会想到了,这个送的礼物,鸡、大葱、钱、房子等等,这些就是Data Type了,在AUTOSAR中,可以是基本的uint8,、uint32等,也可以是自己创建的IdtCaili(彩礼)这样的名称,从C的角度来看就是结构体啊、数组啊等等复杂的数据类型了。这些后面再讲。

问题3:RTE在SWC之间的传输起到什么作用?

好问题,这个就比较深入了,后面具体的配置会讲解。

例如王二狗和李翠花的例子,彩礼是他们直接就给过去吗?并没那么简单,他们是出于中国这种社会风俗中的,这个复杂的社会里面的种种就是这个RTE了,例如送彩礼送钱如果是转账,那要通过银行吧,就算送现金,也得找个皮夹子吧,这些东西都是这个社会RTE提供的,RTE就是这个婚姻风俗的运行环境。

那么实际上他们是这样的。

4. AUTOSAR的多种Interface

我们都讲到社会这个RTE了,有必要讲讲其他的Interface了

这里有三种Interface,其实这个在《 这次我要通过Interface来贯穿整个AUTOSAR架构 》有讲过这个。

1. AUTOSAR Interface

AUTOSAR Interface 定义了软件组件和/或BSW模块之间交换的信息。该描述独立于特定的编程语言,ECU或网络技术。 AUTOSAR Interface 用于定义软件组件和/或BSW模块的端口。通过这些端口,软件组件和/或BSW模块可以彼此通信(发送或接收信息或调用服务)。AUTOSAR使得可以在本地或通过网络在SoftwareComponents和/或BSW模块之间实现这种通信。

2. Standardized AUTOSAR Interface

Standardized AUTOSAR Interface 是其语法和语义在AUTOSAR中标准化的 AUTOSAR Interface 。 Standardized AUTOSAR Interface 通常用于定义AUTOSAR服务,这是AUTOSAR基本软件向应用程序软件组件提供的标准化服务。

3. Standardized Interface

Standardized Interface 是一种在AUTOSAR中标准化的API,无需使用 AUTOSAR Interface 技术。这些 Standardized Interface 通常是为特定的编程语言(如C语言)定义的。因此,通常在始终位于同一ECU上的软件模块之间使用 Standardized Interface 。当软件模块通过 Standardized Interface 进行通信时,将无法再通过网络路由软件模块之间的通信。


您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码: 验证码,看不清楚?请点击刷新验证码 必填



5438 次浏览
26次