【AUTOSAR CANTP】深入理解CAN传输层:N-SDU数据接收与缓冲处理

2023-11-04 05:20

本文主要是介绍【AUTOSAR CANTP】深入理解CAN传输层:N-SDU数据接收与缓冲处理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. 前言

CanTp是PDU路由器和CAN接口模块之间的那个模块。它的主要作用就是对超过8字节或者CAN FD情况下超过64字节的CAN I-PDU进行分段和重组啦。PDU路由器会把AUTOSAR COM和DCM I-PDU放到不同的通信协议上去,具体是用哪个网络系统类型(比如CAN、LIN和FlexRay)来路由,就看I-PDU标识符了。而且PDU路由器还会判断是否需要用到传输协议。最后,如果不需要进行速率转换的话,这个模块还可以充当网关的功能。

CAN接口(CanIf)也提供了类似的机制,用来访问CAN总线通道,不管它是在微控制器内部还是外部。根据CAN控制器的位置(是芯片内还是板载),它会了解ECU的硬件布局和CAN驱动程序的数量。因为CanTp只处理传输协议帧(也就是SF、FF、CF和FC PDU),所以根据N-PDU ID,CAN接口必须把I-PDU转发给CanTp或者PduR。

缩写

SDU: 在分层系统中,此术语指由给定层的服务使用者发送的一组数据,并传输到对等服务使用者,同时保持语义不变。我们可以将其想象成一个快递包裹。在分层系统中,每一层就像是一个快递站点,而SDU就像是从一个站点发送到另一个站点的包裹。而且,这个包裹在从一个站点传送到另一个站点的过程中,它的内容(即数据)是不会改变的,就像我们寄快递时,快递的内容在整个运输过程中都不会改变一样。所以,“在我们的快递系统中,一个快递站点(给定层的服务使用者)会发送一个包裹(一组数据),这个包裹会被送到另一个快递站点(对等服务使用者),并且在整个运输过程中,包裹的内容(语义)都不会发生改变。”

N-PDU: 这是CAN传输层的PDU。它包含唯一标识符、数据长度和数据(协议控制信息加上整个N-SDU或其部分)。

N-SDU: 这是CAN传输层的SDU。在AUTOSAR架构中,它是来自PDU路由器的一组数据。

这篇关于【AUTOSAR CANTP】深入理解CAN传输层:N-SDU数据接收与缓冲处理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/343511

相关文章

Java利用@SneakyThrows注解提升异常处理效率详解

《Java利用@SneakyThrows注解提升异常处理效率详解》这篇文章将深度剖析@SneakyThrows的原理,用法,适用场景以及隐藏的陷阱,看看它如何让Java异常处理效率飙升50%,感兴趣的... 目录前言一、检查型异常的“诅咒”:为什么Java开发者讨厌它1.1 检查型异常的痛点1.2 为什么说

MySQL中查询和展示LONGBLOB类型数据的技巧总结

《MySQL中查询和展示LONGBLOB类型数据的技巧总结》在MySQL中LONGBLOB是一种二进制大对象(BLOB)数据类型,用于存储大量的二进制数据,:本文主要介绍MySQL中查询和展示LO... 目录前言1. 查询 LONGBLOB 数据的大小2. 查询并展示 LONGBLOB 数据2.1 转换为十

使用SpringBoot+InfluxDB实现高效数据存储与查询

《使用SpringBoot+InfluxDB实现高效数据存储与查询》InfluxDB是一个开源的时间序列数据库,特别适合处理带有时间戳的监控数据、指标数据等,下面详细介绍如何在SpringBoot项目... 目录1、项目介绍2、 InfluxDB 介绍3、Spring Boot 配置 InfluxDB4、I

Python利用PySpark和Kafka实现流处理引擎构建指南

《Python利用PySpark和Kafka实现流处理引擎构建指南》本文将深入解剖基于Python的实时处理黄金组合:Kafka(分布式消息队列)与PySpark(分布式计算引擎)的化学反应,并构建一... 目录引言:数据洪流时代的生存法则第一章 Kafka:数据世界的中央神经系统消息引擎核心设计哲学高吞吐

Java整合Protocol Buffers实现高效数据序列化实践

《Java整合ProtocolBuffers实现高效数据序列化实践》ProtocolBuffers是Google开发的一种语言中立、平台中立、可扩展的结构化数据序列化机制,类似于XML但更小、更快... 目录一、Protocol Buffers简介1.1 什么是Protocol Buffers1.2 Pro

Go语言使用Gin处理路由参数和查询参数

《Go语言使用Gin处理路由参数和查询参数》在WebAPI开发中,处理路由参数(PathParameter)和查询参数(QueryParameter)是非常常见的需求,下面我们就来看看Go语言... 目录一、路由参数 vs 查询参数二、Gin 获取路由参数和查询参数三、示例代码四、运行与测试1. 测试编程路

Java异常捕获及处理方式详解

《Java异常捕获及处理方式详解》异常处理是Java编程中非常重要的一部分,它允许我们在程序运行时捕获并处理错误或不预期的行为,而不是让程序直接崩溃,本文将介绍Java中如何捕获异常,以及常用的异常处... 目录前言什么是异常?Java异常的基本语法解释:1. 捕获异常并处理示例1:捕获并处理单个异常解释:

Python实现数据可视化图表生成(适合新手入门)

《Python实现数据可视化图表生成(适合新手入门)》在数据科学和数据分析的新时代,高效、直观的数据可视化工具显得尤为重要,下面:本文主要介绍Python实现数据可视化图表生成的相关资料,文中通过... 目录前言为什么需要数据可视化准备工作基本图表绘制折线图柱状图散点图使用Seaborn创建高级图表箱线图热

MyBatis的xml中字符串类型判空与非字符串类型判空处理方式(最新整理)

《MyBatis的xml中字符串类型判空与非字符串类型判空处理方式(最新整理)》本文给大家介绍MyBatis的xml中字符串类型判空与非字符串类型判空处理方式,本文给大家介绍的非常详细,对大家的学习或... 目录完整 Hutool 写法版本对比优化为什么status变成Long?为什么 price 没事?怎

MySQL数据脱敏的实现方法

《MySQL数据脱敏的实现方法》本文主要介绍了MySQL数据脱敏的实现方法,包括字符替换、加密等方法,通过工具类和数据库服务整合,确保敏感信息在查询结果中被掩码处理,感兴趣的可以了解一下... 目录一. 数据脱敏的方法二. 字符替换脱敏1. 创建数据脱敏工具类三. 整合到数据库操作1. 创建服务类进行数据库