求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Modeler   Code  
会员   
要资料
 
追随技术信仰

随时听讲座
每天看新闻
 
 
AUTOSAR实战教程
1.AUTOSAR相关知识
1. 老板说项目要上AUTOSAR,我慌得一批
2. 我淡定地撸了一遍AUTOSAR的基本概念
3. AUTOSAR初学者最想搞懂的东西
2.AUTOSAR理论基础
AUTOSAR架构
1. AUTOSAR架构的故事(干货)
2. AUTOSAR架构之通信服务(干货)
3. 这次我通过Interface来贯穿整个AUTOSAR架构
AUTOSAR启动与初始化
1. 解析AUTOSAR Startup
2.AUTOSAR架构中的配置文件
3.SWC详解与配置实现
1.AUTOSAR Port原理概念详解
4.BSW原理和实战演练
1. AUTOSAR折磨,从新建工程开始
2. AUTOSAR的BswM模块详解
3. 图解AUTOSAR NVM模块
4. AUTOSAR架构的 Pdu Router
5. AUTOSAR中的vLinkGen可以干嘛
6. MCAL Wdg模块解析
7. MCAL PWM Module详解
8. AUTOSAR的Memory是如何设计的?
9. AUTOSAR NvM Block的Native、Redundant和Dataset有什么区别?
10. AutoSAR,在多核汽车MCU中如何运行
11. AUTOSAR架构中的Configurator
12. AUTOSAR中的Fee
5.MCAL应用配置
1.ADC模块的配置
2.MCU模块的配置
3.PWM模块的配置
 
 
AUTOSAR架构的 Pdu Router
作者:实战派大师兄
3604 次浏览
10次  

前言:

PDU Router(路由器)在本文将简称为PduR,考虑到个人对PduR模块认识深度有限,且接触的CAN通讯功能运用PduR模块功能也较简单,所以本文仅对PduR模块做简单介绍。

1.基本概念

首先了解下 路由 的概念, 路由是指路由器从一个接口上收到数据包,根据数据包的目的地址进行定向并转发到另一个接口的过程 (引自百度百科)。 接着了解下PduR更多的作用,引自[1]:PduR模块提供路由I-PDU(Interaction Layer Protocol Data Units)服务,使用在通讯接口模块(比如CanIf,CanNM,FrIf)和传输协议模块(比如CanTp,COM和DCM),如下图1所示。常用的PDU路由使用模块有:与UDS服务相关的AUTOSAR 诊断通讯管理模块(Diagnostic Communication Manager,DCM)和传输协议模块,与CAN通讯相关的AUTOSAR COM,通讯协议模块等。

图1 AUTOSAR架构下的PduR模块,引自[1] PduR主要由2部分组成:

  • PduR路由表:静态路由表描述每个被路由的I-PDU的路由属性;I-PDU路由的执行是基于静态定义的I-PDU ID。
  • PduR引擎:根据PduR路由表执行路由动作的实际代码,该引擎不得不路由I-PDU从源头到目的地,以及根据I-PDU ID的源头翻译其目的地。

图2 PduR模块的组成,引自[1] 通过以上知识对应到CAN通讯, 就是PduR模块从CAN接口模块/COM模块接收到了PDU,然后根据PDU ID查找已定义好的静态路由表,获得其目标地址,定向并转发到COM模块/CAN接口模块,即路由PDU,故称为PDU Router。

2.发送与接收操作

从CAN通讯的发送与接收来看,再来理解下PduR模块的作用,即:
  • 发送时,PduR模块将来自COM模块的发送请求路由到Can接口模块,将来自Can接口模块的确认路由到COM模块,如下图3。
  • 接收时,PduR模块将来自Can接口模块的通知路由到COM模块,如下图4。

图3

图4 下面借助文档了解下上述函数的定义,发送请求函数如下图5所示:

图5 发送请求函数,引自[1}

注意User:Up与当前的功能有关,CAN通讯的话,User:Up为Com,即发送时,COM模块调用PduR_ComTransmit函数。当然作为PduR模块的函数,会根据不同功能路由到其他模块,自然需要采用这种定义方式。同样地发送确认函数和接收通知函数也一样。

引自[1] 发送确认函数的定义如下图6,

其中User:Lo的定义如下表,发送时,Can接口模块调用PduR_CanIfTxConformation函数向上确认。

图6 发送确认函数,引自[1]

接收通知函数的定义如下图7,其中User:Lo的定义如上表,即Can接口模块调用PduR_CanIfRxIndication函数。在此就发现图4用PduR_RxIndication函数就不够准确咯。

图7 接收通知函数,引自[1]

3.路由表

目前觉得PduR模块最关键还是路由表的定义,一是路由路径的确定,二是由源头ID到目的地ID的确定。特此再引用两例说明,如下图8、9。

图8 接收通知路由,引自[2]

图9 发送请求路由,引自[2]

以上就是简单介绍了PduR模块在CAN通讯的发送与接收所起的作用,当向上进入COM层后,简单地说就是:接收时,将PDU解包成一个一个的信号,供ASW使用;发送时,将一个一个的信号打包成PDU,向下发送。


您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码: 验证码,看不清楚?请点击刷新验证码 必填



3604 次浏览
10次