汽车电子 - AutoSAR 通信协议栈

概念

CAN

在这里插入图片描述

controller / transceiver

一个controller必须有一个transceiver, controller+transceiver=network
有几路CAN,就有几个controller+transceiver组合,相当于有路CAN网络
在这里插入图片描述

controller / Msg

硬件缓存CAN报文数量

指,上层请求发送报文或这接收报文时,CAN驱动 最多能缓存的数量

项目中要求发送/接收的数量

指,当前节点要外发或者接收的报文数量
在这里插入图片描述

mailbox / Hoh / Hrh / Hth

mailbox

就是CAN驱动 所具有的接收缓存区和发送缓存区,接收缓存区和发送缓存区存在RAM
(mailbox == HOH,包含Tx Buffer和Rx Buffer)
(mailbox 由MCAL配置)

HWObject

硬件对象
包括CAN ID, DLC, Data等信息的RAM区
(一个HwObject 就是一条报文)
就是一个L-PDU buffer, 用于存储一个CAN ID msg

Hrh

Hardware receive handle 接收句柄,一个Hrh表示一个 接收HWObject(注意一对多的关系)
(上述的表述不准确,HRH就表示接收HwObj,就是接收RAM区,可以仅对应一个HwObj,也可以对应多个HwObj)

Hth

Hardware transmit handle 发送句柄,一个Hth表示一个 发送HWObject(注意一对多的关系)
(上述的表述不准确,HRH就表示发送HwObj,就是发送RAM区,可以仅对应一个HwObj,也可以对应多个HwObj)

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

FullCAN / BasicCAN

FullCAN和BasicCAN是CanIf模块配置的参数
在CAN驱动层,可以通过过滤的方式,过滤一段范围内的CANID,即会有一段范围内的报文接收进来,但是接收进来的这一段范围的报文并不一定都是上层所需要的,因此可以由CanIf层过滤所需要的CAN报文

BasicCAN

一个HWObject可以处理一段范围的CanId
一个HRH/HTH可以处理一段范围的CanId,也就是可以处理多条报文
Basic CAN:一般表示存在1个或者多个的Hardware Object与之对应,且该Basic CAN类型的Hardware Object与非特定的CAN ID Message或者一定范围内的CAN ID Message绑定

FullCAN

一个HWObject只能处理单个CanId
一个HRH/HTH仅可以处理一个CanId,也就是可以处理一条报文
Full CAN:一般表示仅存在1个的Hardware Object与之对应,且该Full CAN类型的Hardware Object与特定的CAN ID Message绑定

在这里插入图片描述
在这里插入图片描述

FIFO / Dedicate buffer

MACL(CAN驱动层) 将缓存区分配成FIFO和Dedicate buffer
报文放入待发送缓冲区以后,会将 发送Pending标志位 置位

FIFO <–> BasicCAN

一个Hrh/Hth 与多个Hareware Object 对应
(一个HRH/HTH可以处理一段范围的CanId,也就是可以处理多条报文)

Dedicate buffer区域 <–> FullCAN(好像basicCAN也可以配置成dedicated buffer???)

Hareware Object 与 Hrh/Hth 一一对应
(一个HRH/HTH仅可以处理一个CanId,也就是可以处理一条报文)

在这里插入图片描述

Tx

https://blog.csdn.net/wto9109/article/details/133189147 !!!

  • Tx Buffer
  • Tx FIFO
  • Tx Queue

Tx Buffer

Dedicated Tx Buffer
该Buffer会与特定的CAN ID进行绑定,发送优先级是完全通过CAN ID越小,优先级越高,越优先发送
(一般Tx Buffer 会与Full CAN 模式)

Dedicated Tx Buffer / Tx Queue (Full Can)

根据CanId数值越小,优先级发送越高
为了避免 要发送报文的个数超过硬件缓存区的个数,就可以设置startDelayTime对具有相同周期性报文的发送方式进行设置,避免在同一时刻发送重叠
Tx Queue本身是FIFO的一种,放置的Msg发送请求时,会按照先后顺序来放置,但是发送时则与TxBuffer机制一样,按照ID优先级发送原则进行发送

Tx FIFO (Basic Can)

根据报文进入FIFO缓冲区的先后顺序进行发送,先进先出

Rx
  • Rx Buffer
  • Rx FIFO

FullCan / BasicCan / FIFO / Dedicate Buffer

应用报文配置成Full CAN
重要应用报文配置成FullCan,其他应用报文配置成BasicCan
诊断报文,BasicCan(FIFO buffer)

在这里插入图片描述

offset

避免同一时刻发送的报文数量太多

CAN TX Stack

注意Filter condition的关系
注意是否是signal group的关系
注意TxModeTrue/False的关系
在这里插入图片描述

CAN Rx Stack

注意Filter condition的关系
注意是否是signal group的关系
在这里插入图片描述

  • 9
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值