AUTOSAR S2S(Signal to Service) 信号转服务方案

汽车安全 2年前 (2021) admin
1,139 0 0

简介

在引入SOA架构之后,汽车软件工程师不得不面临的一个问题是,基于以太网的服务(service)的域控制器,区域控制器等,如何能和只有基于信号(signal)工作的ECU相互兼容并工作。

这个问题之前并没有被AUTOSAR规范所定义,所以也没有类似于其他BSW模块的基础模块,或者参考解决方案以使用,基本上OEM或者Tier1需要新建一个SWC/APP来做这个转换,至于是部署在CP端还是AP端,这个不同的团队都会根据实际硬件性能或者软件架构进行思考。

在AUTOSAR组织发布20-11版本规范之后,我们可以在AUTOSAR_TPS_System Template文档的6.16章节阅读到对于Signal to Service(下称S2S)的实现参考。当然,这里也只是一个参考,并没有相应的SWS文档进行详细规范定义,所以仍旧需要各供应商或者软件团队自己进行实现。

今天,我们一起来解读一下规范中是如何说明S2S的功能的。

大体方案

AUTOSAR S2S(Signal to Service) 信号转服务方案
S2S的功能模块有以下几种部署方式:
  • 部署在网关,所有的Signal to Service转换都在网关执行
  • 部署在(例如)分布在汽车前后左右的四个区域控制器中,区域控制器会连接CAN, LIN节点
  • 部署在使用了服务的ECU中,各自转换各自需要的Signal/Service

部署S2S的时候,团队可以根据实际需求决定是部署在CP或者AP上,同时,也要考虑是否加上E2E或者SecOC的功能。

架构

AUTOSAR S2S(Signal to Service) 信号转服务方案

上图展示了S2S功能以SWC的方式部署在CP端的形式。

无论是基于信号还是基于服务的通信部,CP端的COM协议栈都可以提供完整支持,再配合E2E Transformer,SecOC等模块功能,可以实现功能安全以及信息安全的保护。

S2S可以完成Event,Field的转换,由于Method只能基于以太网而且Method本身必须做序列化,通信双方必定能够互相识别,所以没有必要再对Method做转换。

数据映射

S2S的数据映射需要定义在Arxml文件当中,以SignalServiceTranslationProps表示,例如:

AUTOSAR S2S(Signal to Service) 信号转服务方案

(由于是20-11规范定义的属性,笔者未找到合适SWC设计软件以图形化界面查看,如果有小伙伴知道有哪个工具可以,欢迎留言)

AUTOSAR S2S(Signal to Service) 信号转服务方案

和S2S功能相关的属性如上图。

Props就是一组数据映射,所有的Props都在PropsSet下。

  • controlConsumedEventGroup(ref):封装了基于信号的payload的EventGroup
  • controlPnc(ref): 控制翻译后的服务实例offer/subscribe行为的PNC
  • controlProvidedEventGroup(ref): 控制服务实例是否可用的Provided Event Groups
  • serviceControl(attr): 定义服务实例控制方法,也即什么时候去执行相关服务控制(详细请参考后文)
  • signalServiceTranslationEventProps(aggr): 定义单个翻译的事件的属性

而对于SignalServiceTranslationEventProps:

  • elementProps(aggr): 定义一个翻译元素的属性
  • safeTranslation(attr): 是否需要做数据保护(E2E)
  • secureTranslation(attr): 是否需要做信息安全保护(SecOc)
  • translationTarget(iref): ref到VariableDataPrototype,代表信号服务翻译(转换)的目标

我们先来看一个信号和服务一对一映射的一个简单示例,R1收到signal以后进行信号服务转换,然后P1发出。

AUTOSAR S2S(Signal to Service) 信号转服务方案

对于SignalServiceTranslationElementProps:

  • element(aggr): ref到DataPrototype
  • filter(aggr): (可选)过滤规则
  • transmissionTrigger(attr): 指定源元素是否会触发相应payload的发送

服务发现控制

从S2S的角度来看,它需要能够控制对应服务的提供和订阅,大体框架如下图:

AUTOSAR S2S(Signal to Service) 信号转服务方案

当然,这里涉及到一个问题,S2S在何时可以开始转换功能呢?

如果有注意到的话,上文已经提到过一个属性——serviceControl,它对应有三个值,代表了服务可用的时间节点:

  • translationStart: ECU启动时
  • partialNetwork: 对应网络上线时
  • serviceDiscovery: 相关服务实例可用时

ECU启动时,也可以理解为自启动,服务实例会自动进行offer,SWC也不需要通过BswM控制服务状态。

网络上线(激活)时,也即在网络可用时,转换过的服务实例才会提供offer/subscribe的功能。

有的场景下,基于信号的PDU是由SD控制的,所以需要在服务生效时,开启转换功能。

Safety and Security

当引入了E2E头部信息或者加密通信特性时,需要先完成对应的封包/解包等,再进行信号服务转换。

AUTOSAR S2S(Signal to Service) 信号转服务方案

上图是和E2E相关的示意图,当safeTranslation设置为True时,这个流程就起效了。

对于加密通信来说,需要设置secureTranslation为True,至于是使用SecOC还是TLS进行底层加解密,就看各团队自己的需求了。

AP端S2S实现

AUTOSAR S2S(Signal to Service) 信号转服务方案

在AP端,可以将S2S作为一个进程部署,至于具体实现,可以沿用CP的协议栈,部署在对应的POSIX系统上。

AUTOSAR S2S(Signal to Service) 信号转服务方案


阅读原文,关注作者知乎


原文始发于微信公众号(汽车电子与软件):AUTOSAR S2S(Signal to Service) 信号转服务方案

版权声明:admin 发表于 2021年11月7日 下午1:45。
转载请注明:AUTOSAR S2S(Signal to Service) 信号转服务方案 | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...