☞返回总目录
相关总结:AutoSar AP CM通信组总结
5.7 通信组
5.7.1 目标
通信组(Communication Group,CG)是由 AUTOSAR 定义的复合服务模板。它提供了一个通信框架,允许在 AUTOSAR 应用程序之间以对等方式和广播模式进行通信。通信组有一个服务器和多个客户端。服务器以对等方式和 / 或广播模式向客户端发送消息,客户端可以对消息进行响应。通信组的服务器在任何时候都知道连接到该通信组的所有客户端。因此,服务器可以直接与特定的客户端进行通信。
5.7.2 实现
通信组提供了两个服务接口。
- 一个专用的服务器服务接口,类别值为
COMMUNICATION_GROUP_SERVER
,实现为骨架(Skeleton)。
// 可能的服务器服务接口实现示例(伪代码)
class ServerServiceInterfaceSkeleton : public BaseSkeleton
{
public:
// 具体的服务接口方法实现
};
- 一个专用的客户端服务接口,类别值为
COMMUNICATION_GROUP_CLIENT
,实现为代理(Proxy)。
// 可能的客户端服务接口实现示例(伪代码)
class ClientServiceInterfaceProxy : public BaseProxy
{
public:
// 具体的代理方法实现
};
通信组服务器使用服务器服务接口的服务代理连接到通信组,而通信组客户端使用客户端服务接口的服务骨架连接到通信组。另请参见下图。
注意:通信组的消息类型是通过通信组元模型定义的,也请参见以下章节。
5.7.3 使用范围
通信组最初的使用场景是自适应状态管理应用程序。《SWS_StateManagement [4]》规范定义了两个通信组,分别名为:PowerMode(电源模式)和 DiagnosticReset(诊断重置)。状态管理通信组的使用范围仅限于一台机器内的应用程序。但从设计角度来看,通信组支持本地和远程应用程序(CP 和 AP)的连接。下图展示了通信组的本地和远程场景。
5.7.4 特殊主题
5.7.4.1 架构
如前所述,通信组包含:
- 只有一个通信组服务器类型(类别值为
COMMUNICATION_GROUP_SERVER
的服务接口)的服务骨架实例化。
注意:目前存在一个限制,即只有一个通信服务器可以连接到通信组服务器服务接口。
- 多个通信组客户端类型(类别值为
COMMUNICATION_GROUP_CLIENT
的服务接口)的服务代理实例化。
注意:服务代理实例化的数量取决于具体实现和用例。理论上的限制(不考虑内存空间需求)是可用的通信客户端客户端 ID 的数量。另一方面,可能存在安全要求,这迫使设计支持有限的已知数量的通信组客户端。
5.7.4.2 远程连接
如前所述,通信组服务器或客户端可以远离通信组实例。由于通信组被设计为复合服务,所以这是被支持的。因此,在 AUTOSAR 经典平台和自适应平台方面也没有限制。
5.7.4.3 服务版本控制
通信组通过相应的服务接口支持服务版本控制。