[MCU]AUTOSAR COM STACK - CAN协议栈

[MCU]AUTOSAR COM STACK - CAN协议栈_第1张图片

 

各层PDU

PDU:Protocal Data Unit,协议数据单元,由SDUPCI组成;

  • I-PDUInteraction Layer PDU,数据交互层PDU;
  • N-PDUNetWork Layer PDU,网络层PDU,通常用的是TP层,给I-PDU分片段,格式为N_AI + N_PCI + N_Data;
    • N_AI:Address Information,包含源地址、目标地址、寻址方式
    • N_PCI:帧类型,共4种:单帧、首帧、流控帧、连续帧
  • L-PDU:Data Link Layer PDU,数据链路层PDU,由数据、长度、ID组成,几个I-PDU打包进一个L-PDU里面;

SDU:Service Data Unit,服务数据单元的缩写,是由上层传递的数据,带有传输数据的请求。在由下层接收之后提取并传递到上层的数据也是如此;
PCI:Protocol Control Information,协议控制信息,如单帧,首帧,流控帧,连续帧等信息。

数据流

普通数据流

CAN driver <--(LPDU)--> CanIf <--(IPDU)--> PDU Router <--(IPDU)--> COM <--(Signals)--> RTE 

CAN driver:接收、发送函数;配置通道、波特率、port口等;配置帧ID、DLC、类型等

CanIf:对驱动层的封装、给上层一些通知函数;DLC、ID到PDU的转换

PDU Router:传递数据到对应的上层模块;配置路由表

COM:IPDU分解成signals;提供接口(接收、发送信号/帧);配置发送类型、周期、接收函数、IPDU对应signal

诊断数据流

CAN driver <--(LPDU)--> CanIf <--(NPDU)--> CanTp <--(IPDU)--> PDU Router <--(IPDU)--> DCM 

CanTp:根据ISO15765进行拆包、组包;配置时间参数、回调函数等

DCM:为上层提供UDS服务、OBD服务;

动态PDU数据流

在普通数据流的基础上,在PudR和COM之间增加 PDU Router <--(IPDU)--> IPDU Multiplexer <--(IPDU)--> PDU Router

IpduM:发送/接收动态的IPDU;配置动态IPDU的DLC、静态段、动态段

安全通信数据流

在普通数据流的基础上,在PudR和COM之间增加 PDU Router <--(IPDU)--> SecOC <--(IPDU)--> PDU Router

SecOC(Security Onboard Communication):安全通信报文的加解密、验证、拆包组包;配置SecOC

XCP数据流

CAN driver <--(LPDU)--> CanIf <----> XCP

XCP:标定、测量功能;配置XCP的帧信息、周期等

控制流

ComM:状态机管理、通信控制;配置通道的休眠唤醒等

状态机管理控制流

ComM <----> CanSM <----> CanIf

CanSM(State Manager):Can通道的开启/关闭;Bus off的错误处理和恢复;配置Busoff等

网络管理控制流

ComM <----> NM <----> CanNM <----> CanIf

NM:封装每个通道的接口,统一给上层;同步各通道的网络状态;配置相关回调函数接口

CanNM:Can网络管理的整体状态机;配置时间参数、NM帧等

你可能感兴趣的:(学习笔记-AUTOSAR,学习笔记-通信,网络,网络协议,autosar)