[MCU]AUTOSAR COM STACK - CAN协议栈

 

各层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帧等

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值