温馨提示:关注公众号“嵌入式软件实战派”回复“AUTOSAR”获得整个AUTOSAR实战教程。

在前面的文章《AUTOSAR SWC详解》提到了Port和Runnable是SWC的灵魂,配置好SWC还不能用的,接下来看看这个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处的名称,应该填CpApMySwc,即变成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 InterfaceStandardized AUTOSAR Interface通常用于定义AUTOSAR服务,这是AUTOSAR基本软件向应用程序软件组件提供的标准化服务。

3. Standardized Interface

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

好了,这些概念都讲清楚了,接着就实战吧,光说不练不是我的风格。
接着上面王二狗和李翠花的例子,在下面的设计和配置中都是根据这个例子来做,看看王二狗和李翠花在AUTOSAR是怎么成亲的。

由于篇幅比较长,这部分内容另开一篇文章详细讲解配置过程,敬请期待!

关注公众号“嵌入式软件实战派”回复“AUTOSAR”可获得整套实战教程

AUTOSAR Port原理概念详解相关推荐

  1. [crypto]-02-非对称加解密RSA原理概念详解

    说明:本文使用的数据来自网络,重复的太多了,也不知道哪篇是原创. 算法原理介绍 step 说明 描述 备注 1 找出质数 P .Q - 2 计算公共模数 N = P * Q - 3 欧拉函数 φ(N) ...

  2. [crypto]-01-对称加解密AES原理概念详解

    1.对称加解密 术语:P是明文,C是密文,K是密钥,E是加密算法,D是解密算 (1).常用的对称加解密有哪些? (2).加解密的模式 [ecb]这种模式是将整个明文分成若干段相同的小段,然后对每一小段 ...

  3. AUTOSAR从入门到精通100讲(三十九)-AUTOSAR 通信服务-Com模块两部曲-概念详解

    Com模块概念详解 1. Com模块功能介绍 COM模块位于RTE和PDU Router模块之间. COM模块提供信号网关功能,主要的功能如下: . 为RTE提供信号导向的数据接口 . 将AUTOSA ...

  4. 关于大小端、位域的一些概念详解

    关于大小端.位域的一些概念详解 我们常用的x86结构都是小端模式,而大部分DSP,ARM也是小端模式,不过有些ARM是可以选择大小端模式.所以对于上面的maxHeight是应该以小端模式来存放,具体情 ...

  5. NLP --- 隐马尔可夫HMM(概念详解、三个基本问题详解)

    本节将进入隐马尔可夫环节,再次提醒不懂马尔科夫过程的同学建议先搞懂什么是马尔科夫过程,什么是马尔科夫链,同时需要懂一点语言模型的知识,下面会用到一点点,本人打算详细总结隐马尔可夫算法思想,因此讲解的会 ...

  6. Linux 下 TC 命令原理及详解<一>

    文章目录 1 前言 2 相关概念 3 使用TC 4 创建HTB队列 5 为根队列创建相应的类别 6 为各个类别设置过滤器 7 复杂的实例 Linux 下 TC 命令原理及详解<一> Lin ...

  7. 抖音推荐算法原理全文详解

    阅读目录 一.系统概览 二.内容分析 三.用户标签 四.评估分析 五.内容安全 抖音推荐算法原理全文详解 本次分享将主要介绍今日头条推荐系统概览以及内容分析.用户标签.评估分析,内容安全等原理. 回到 ...

  8. TYPE-C接口的工作原理图文详解

    TYPE-C接口的工作原理图文详解 发表于 2018-01-29 09:53:53 电子常识 +关注 2016年,有一个名词在手机上非常火,几乎所有的旗舰手机都会提到这个名词,说到这,大家应该都够猜到 ...

  9. 零基础学习PHP编程——基本概念详解之域名解析与DNS缓存

    基本概念详解之一--域名解析与DNS缓存 注意: 本文主要介绍了域名解析流程即DNS缓存相关知识 [转载请注明] 欢迎交流QQ群: 640765823 一. DNS是什么? DNS(Domain Na ...

最新文章

  1. 代码洁癖的春天!Java 效率工具之 Lombok
  2. 科普|深度解析5G与未来天线技术
  3. VMware 虚拟机 无法将Ethernet0连接到虚拟网络VMnet0 问题
  4. 将null转换成数组_把数组里面的值为 null 的转换为字符串 - - ,你们的方法都是什么呢?...
  5. 【Linux网络编程】IP地址分类和介绍
  6. netty系列之:channelPipeline详解
  7. 解决Ubuntu16.04虚拟机窗口全屏问题
  8. linux进程互斥要点,linux进程之间互斥
  9. chrome只能装在c盘吗_电脑硬盘使用与文件整理入门——逃离C盘?
  10. python增加一列数据_python数据怎么添加列?
  11. vs未能找到程序集platform.winmd_PP体育直播大连人VS恒大:新老8冠王首尾对决竟有十大看点...
  12. linux work queue
  13. About Exception Handling
  14. mysql文章列表_MySQL-分享文章列表 - Su的博客
  15. 量化投资学习——统计套利综述
  16. URL传递参数长度限制
  17. iOS 蓝牙开发之NFC读写
  18. MOS管耗尽型和增强型的区别是什么呢?
  19. 通过shell脚本来rerun一个oozie调度失败的job,从而可以跳过执行失败的节点
  20. Facebook 是神经制封号 还是有规则的封号?

热门文章

  1. java仓库管理设计报告_仓库管理系统(课程设计JSPJAVA大学设计).doc
  2. 朋友圈转发集赞截图生成工具,以假乱真!
  3. 5G NR preamble生成原理
  4. webrtc码率设置的函数调用
  5. pg_stat_database的字段tup_returned,tup_fetched含义
  6. 网络基础知识之IP与子网掩码和网络地址
  7. 160多个android开源代码汇总
  8. Android 从WebServer 获取PDF转图片
  9. PyQt4实时显示文本内容GUI
  10. work信息每日汇总