汽车电子 - AutoSAR 通信协议栈

汽车电子 - AutoSAR 通信协议栈

  • 概念
    • CAN
      • controller / transceiver
      • controller / Msg
      • mailbox / Hoh / Hrh / Hth
      • FullCAN / BasicCAN
      • FIFO / Dedicate buffer
        • Tx
        • Rx
      • FullCan / BasicCan / FIFO / Dedicate Buffer
    • CAN TX Stack
    • CAN Rx Stack

概念

CAN

汽车电子 - AutoSAR 通信协议栈_第1张图片

controller / transceiver

一个controller必须有一个transceiver, controller+transceiver=network
有几路CAN,就有几个controller+transceiver组合,相当于有路CAN网络
汽车电子 - AutoSAR 通信协议栈_第2张图片

controller / Msg

硬件缓存CAN报文数量

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

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

指,当前节点要外发或者接收的报文数量
汽车电子 - AutoSAR 通信协议栈_第3张图片

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)

汽车电子 - AutoSAR 通信协议栈_第4张图片

汽车电子 - AutoSAR 通信协议栈_第5张图片
汽车电子 - AutoSAR 通信协议栈_第6张图片

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绑定

汽车电子 - AutoSAR 通信协议栈_第7张图片
汽车电子 - AutoSAR 通信协议栈_第8张图片

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,也就是可以处理一条报文)

汽车电子 - AutoSAR 通信协议栈_第9张图片

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)

汽车电子 - AutoSAR 通信协议栈_第10张图片

offset

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

CAN TX Stack

注意Filter condition的关系
注意是否是signal group的关系
注意TxModeTrue/False的关系
汽车电子 - AutoSAR 通信协议栈_第11张图片

CAN Rx Stack

注意Filter condition的关系
注意是否是signal group的关系
汽车电子 - AutoSAR 通信协议栈_第12张图片

你可能感兴趣的:(汽车电子,汽车)