目录
- [AUTOSAR Gateway 功能](#AUTOSAR Gateway 功能)
- [1. Signal/SignalGroup 路由](#1. Signal/SignalGroup 路由)
-
- [1.1 Signal/SignalGroup 路由的配置](#1.1 Signal/SignalGroup 路由的配置)
- [2. PDU部分路由](#2. PDU部分路由)
-
- [2.1 部分路由配置](#2.1 部分路由配置)
- [3. PDU整体路由](#3. PDU整体路由)
- [4. 总结](#4. 总结)
AUTOSAR Gateway 功能
Com 模块提供Signal 到Signal 的静态路由,或者SigGrp 到SigGrp的静态路由。通过ComGwMapping 进行配置. 可以实现信号的1:1 ,1:N的路由转发。
同时Com 模块也可以针对PDU之间进行路由,通过PDU数据之间的指定长度拷贝进行路由。
在PDUR模块中,也可以进行路由,不需要路由到UpModule,在PDUR层就进行PDU的路由转发,下面将详细解析这几种路由之间的区别。
1. Signal/SignalGroup 路由
Signal 路由是Com 模块的内部功能,通过ComGWMapping 配置。配置完成后,调用Signal 路由的MainFunction: Com_MainFunctionRouteSignals 即可,不需要其他的API调用。
如下图所示,当从总线上收到信号时,路由就会检查SignalGroup 的UB是否置位(如果使能了UB), 然后将源SignalGroup 的数据拷贝到目标SignalGroup 数据。
1.1 Signal/SignalGroup 路由的配置
在ComGWSouce 中配置ComGwSignal, 并选择要路由的源信号/信号组
在ComGwDestnination 中配置ComGwSignal,并选择要路由的目标信号/信号组
对于Destination 配置, 是支持配置多个的。也就是实现1:N的路由转发
2. PDU部分路由
除了针对信号的转发,Com 还支持按PDU 数据的固定起始位以及长度转发
2.1 部分路由配置
在ComGWSouce 中配置ComGwSourceDescription, 选择要路由的PDU并配置具体要在PDU中转发的数据段
在ComGwDestnination 中配置ComGwDestinationDescription,选择要路由的PDU并配置具体要在PDU中转发的数据段
同时在Destination 中也支持多个配置,以支持1:N的转发
3. PDU整体路由
在PDUR层级中,也可以做到PDU整体的转发。当PDU信号上层不需要收取时,可以在PDUR层直接进行转发。例如跨总线的转发,CAN 到CAN, CAN到FlexRay, CAN到ETH等。
一般的PDUR 的使用场景,都是LowModule 到UpModule的转发,例如CAN 接收;或者UpModule到LowModule的转发,例如CAN发送。
针对PDUR的路由转发场景,可以是LowModule 到LowModule
在PDUR路由表中配置LowModule 到LowModule,即可实现PDUR层的PDU路由。在AUTOSAR_SWS_PDUR中提供了几种路由转发的API调用关系
- CAN - CAN的转发
- CAN 到FlexRay 的转发
PDUR层也支持多个Destination, 也就是可以支持以下情况:
4. 总结
在Com 层的转发主要是针对Signal 层级,针对同一个Signal, 收取解析信号与转发信号在不同的MainFunction 中执行,互不干扰。PDUR的路由是针对PDU层级,直接在PDUR层将收取到的PDU直接发送出去
对于仅需要转发,而应用层 不需要获取的PDU更方便