[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
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
AUTOSAR中,CAN协议栈COM模块主要负责CAN通信的上层协议处理。COM模块实现了自动识别和配置CAN网络中的所有ECU,并且支持多种CAN通信模式,如周期性发送、事件触发发送、远程请求和诊断等。 下面是CAN协议栈COM模块的详细介绍: 1. 总体架构 CAN协议栈COM模块的总体架构如下图所示: ![image-20211014165955845](https://gitee.com/wu_xiaoshi/blog_img/raw/master/img/20211014170001.png) 2. 模块功能 - 支持CAN通信的上层协议处理,如UDS、J1939等。 - 自动识别和配置CAN网络中的所有ECU。 - 支持多种CAN通信模式,如周期性发送、事件触发发送、远程请求和诊断等。 - 支持CAN网络的故障诊断和错误处理。 - 支持对CAN消息的过滤和控制。 - 提供API接口,方便应用层进行CAN通信的控制和管理。 3. 模块组成部分 CAN协议栈COM模块由以下几个部分组成: - PDU Router:用于将不同的PDU映射到不同的CAN ID上,并进行CAN帧的发送和接收。 - Routing Table:用于存储PDU与CAN ID之间的映射关系。 - Transmission Handler:用于处理发送PDU的请求,包括周期性发送、事件触发发送等。 - Reception Handler:用于处理接收到的CAN帧,并将其转化为对应的PDU。 - Diagnostic Handler:用于处理CAN网络的诊断和错误处理。 4. 模块接口 CAN协议栈COM模块提供了以下几个API接口: - Com_Init():初始化COM模块。 - Com_DeInit():关闭COM模块。 - Com_SendSignal():发送信号到CAN总线上。 - Com_ReceiveSignal():接收CAN总线上的信号。 - Com_SendPdu():发送PDU到CAN总线上。 - Com_ReceivePdu():接收CAN总线上的PDU。 - Com_MainFunction():主函数,用于处理COM模块的各种任务。 5. 应用场景 CAN协议栈COM模块通常应用于车辆电子控制系统中,用于实现车内各个ECU之间的CAN通信。在汽车电子控制系统中,CAN网络通常用于传输各种控制、监测和诊断信息,如发动机控制、车身控制、仪表盘显示、车载娱乐系统等。CAN协议栈COM模块可以方便地处理这些信息,并且支持多种CAN通信模式,保证了CAN网络的可靠性和稳定性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值