CP AUTOSAR Port 入门知识梳理
Port
我们来看一个常见的例子,SWC1的输出信号,是SWC2的输入信号。我们在嵌入式软件开发中,经常要用到全局变量或者函数去读取或者发送信号。在AUTOSAR 的虚拟功能总线概念中,我们引入了一个专有的词描述这种情况——Ports(端口)
Ports的定义
Port是软件组件的属性之一,软件组件的端口是软件组件之间信号交互的节点。软件组件的端口根据输入/输出方向可分为需求端口(Require Port,RPort)与提供供端口(Provide Port,PPort),和供需端口(Provide and Require Port,PRPort。注意,Port端口仅仅定义了信号的方向。
Ports的分类
- 需求端口,Require Ports, RPorts ,有需求的端口,从其他软件组件读取数据元素,使用此类型的端口。
- 提供端口,Provide Ports, PPorts ,提供服务的端口,向其他软件组件读取数据元素,使用此类型的端口。
- 需求/提供端口,Provide Require Ports, PRPorts ,兼有需求端口与提供端口的特性。
Port交互原理
需型端口可以和供型端口连接。如图所示,软件组件'SeatHeatingControl'有一个需求端口(Rport)'SeatSwitch',软件组件'SeatSwitch'有一个提供端口(PPort)Switch,两者的端口接口使用了Port Interface 'SeatSwitch',它们之间的交互关系由SeatSwitch的提供端口指向SeatHeatingControl的需求端口。
Composition中CS/SR接口端口交互示例
未连接的Port
出现未连接端口,可能本身并不是设计错误。 比如当数据元素的提供程序不存在,并且默认初始化值足以操作时,这个端口可能是有效的。
- 未连接的PRPorts :就算没有任何连接,需求/提供端口PRPorts也不会被认为未连接,一个需求/提供端口端口,它可被认为自我相连
- 未连接的Sender/Receiver Ports :如果PPort 未连接,则提供者发布的数据将不会出现在 VFB 上,因此任何其他软件组件都无法访问。如果 RPort 未连接,则 RPort 应提供未连接 RPort 的初始值和报告。
- 未连接的Client/Server Ports :如果CS接口的 PPort 未连接,服务端口将不会收到任何请求。 RPort 未连接,则 RPort 应报告未连接的 RPort。
总结
在项目中应用的时候,需要为SWC端口配置Port方向,难度不大,还是比较容易掌握的。