Autosar通信入门系列04-聊聊CAN通信的Basic-CAN与Full-CAN

news2024/11/27 14:27:57

本文框架

  • 1. 概述
  • 2. 基本内容
    • 2.1 什么是Basic-CAN与Full-CAN?
    • 2.2 既生瑜何生亮?
  • 3. 不同报文类型如何选择Basic-CAN与Full-CAN?

1. 概述

在CAN通信学习时我们经常会遇到或者听同事聊到Basic-CAN与Full-CAN,单从字面上很难理解两个名词是什么含义,在实际开发中如何使用?本篇我们就来一起学习下Basic-CAN与Full-CAN到底是什么?及其应用场景。本文框架如下:
在这里插入图片描述

2. 基本内容

2.1 什么是Basic-CAN与Full-CAN?

在Autosar官方文档的CanDriver中有如下描述:
在这里插入图片描述
即:Basic-CAN与Full-CAN是CAN硬件对象的两种不同类型:
Basic-CAN:一个CAN硬件对象可以处理多个L-PDUs,换句话说就是一个HOH可以处理多个CAN ID的报文,至于这些HOH是如何处理在后面会进一步介绍到;
Full-CAN:一个CAN硬件对象只能处理一个L-PDUs,即一个HOH只能处理一个特定CAN ID的报文。

既然聊到了HOH(Hardware Object Handle),就顺便再详细介绍下吧,HOH实质就是收/发CAN报文信息存放的一段RAM,根据收发区分HOH还可以进一步划分为HRH与HTH。对于HOH可以根据实际项目需求全部或部分使用,但在一般情况下为了尽可能减少报文阻塞的情况,建议全部使用。

在这里插入图片描述

2.2 既生瑜何生亮?

我们知道了什么是Basic-CAN与Full-CAN,那为什么会出现这两种不同类型的CAN呢?是不是只要Basic-CAN或者Full-CAN就能满足工程需求了呢?

可以参考下英飞凌TC39x芯片手册里的一张表格,每个CAN Module里可供缓存的接收报文的Buffer为64个,发送报文buffer大小为32个,在智能网联时代,收发报文数目不断增多,以发送报文为例,如果发送数量超过了32个,且每个报文对应的HOH都配置长Full CAN,势必Buffer大小不够,这就需要部分报文的HOH需要配置为Basic CAN对应FIFO方式。

因此,在实际开发中会将两种搭配使用,至于哪些报文使用Basic,哪些使用Full就是下一章节我们要讲述的内容。
在这里插入图片描述

3. 不同报文类型如何选择Basic-CAN与Full-CAN?

一般工程中,我们常用的报文类型有:诊断报文,应用报文,网络管理报文及XCP报文,不同报文有不同特点,例如接收的应用报文我们一般是接收最新的数据,诊断报文则需要以此接收响应,下面就来根据不同报文特点选择对应的收发类型:

应用报文:按发送及接收进一步分析:
对于接收的应用报文,一般不需要缓存,使用最新接收的数据即可,因此配置为Full-CAN。

对于发送的应用报文,为减少仲裁导致的报文发送阻塞优先选择都配置成Full-CAN,但需要底层硬件缓存区数量多于Com发送应用报文数量。例如还以英飞凌TC39x芯片为例:底层发送硬件缓存区数量为32,如节点需要发送的应用报文数量为38,即无法将这38个应用报文都配置为Full-CAN。一般的解决办法就是将发送周期短且重要的应用报文配置成Full-CAN,其他长周期应用报文配置为Basic-CAN。

诊断报文:由于诊断报文的请求及响应需按顺序处理,且数据不能被覆盖,一般将诊断报文配置为Basic-CAN,即共用Buffer,先进先出(FIFO);

网络管理报文:同样按网管报文的接收与发送进行区分:
对于接收类型的网管报文,一个接收节点通常会要求可以接收一段范围的网管报文,因此一般配置成Basic-CAN。

对于发送类型的网管报文,由于单个节点的发送的网理报文是唯一的,在资源满足情况下,推荐配置成Full-CAN,资源不够情况下配置成Basic-CAN也是可以的;

XCP报文:对于XCP报文,与诊断报文类似,XCP的CTO报文报文需要顺序执行,推荐配置成Full-CAN类型。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计讯物联工业路由器基于5G LAN技术成为工业互联网发展的“加速器”

随着5G的成熟发展,其易部署、低时延、高可靠、大带宽、广连接的特性助力传统工业智能数字化转型,解决了传统工业的布线繁琐、通信环境复杂易造成干扰、对时延与稳定性更加敏感、移动通信的网络需求、海量设备互联等难题。然而,5G在工业制造领…

软件测试基础 - 自动化测试技术

目录 前言: 什么是自动化测试? 自动化测试的优势: 自动化测试的劣势: 适合实施测试自动化的项目: 推行自动化测试的阻力: 软件研发生命周期各个阶段的自动化测试技术 前言: 软件测试是一…

还在手动维护Yapi?

因前后端人员通过接口定义字段,返回值等对接时非常苦恼,没有一个很好的平台维护,后端每次迭代都要写开发文档,需求变化,多系统联调等,给前后端联调造成阻塞。 1、后端开发文档编写规范 1)文档…

DataWhale AI夏令营——机器学习

DataWhale AI夏令营——机器学习 学习记录一1. 异常值分析2. 单变量箱线图可视化3. 特征重要性分析 学习记录一 锂电池电池生产参数调控及生产温度预测挑战赛 已配置环境,跑通baseline,并在此基础上对数据进行了简单的分析。 1. 异常值分析 对训练集…

Python知识使用目录体系

Python知识使用目录体系 前记:开始以Get No.方式进行记录,知识体系的建立 Get No. No1: IDEA(Java主要编辑器)中添加Python插件;(就在此总目录中写,属于纪念开始) 附加:另外一个pycharm工具使用python工…

pyqt5中的控件

字体部分 学习如何加载本地字体a.tff import sys from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QPushButton from PyQt5.QtGui import QFont, QFontDatabaseclass MyWindow(QWidget):def __init__(self):super().__init__()self.button Noneself.label None…

【Java开发】 Mybatis-Plus 06:通用枚举功能

枚举类是开发时绕不开的话题, Mybatis-Plus 也提供了简便的枚举功能,快学起来吧~ 目录 1 版本区别 2 通用枚举功能实现 2.1 创建枚举类 2.2 实体类新增枚举字段 3 枚举字段测试 3.1 新增 ① 后台指定枚举 ② 前后端交互 3.2 查询 3.3 修改 ①…

递归排序算法快速排序的实现过程

快速排序(Insertion Sort)也是一种递归排序算法。 快速排序原理:先以列表中的任意一个数为基准(一般选头或尾),将列表分为左、右两个子列表。 左子列表的数要比基准数小,右子列表的数要比基准数大。然后继续把左子列表和右子列表按同样的方…

蓝桥杯专题-真题版含答案-【九宫幻方】【打鱼还是晒网】【阶乘尾数零的个数】【等差素数列】

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列 👉关于作者 专注于Android/Unity和各种游…

【Java】重写compareTo()方法给对象数组排序

我们先给一个数组排序,我们肯定用的是Arrays.sort()方法: public class test2 {public static void main(String[] args) {int[] arr{3,5,4,6,9,8,1};System.out.println(Arrays.toString(arr));System.out.println("---------");Arrays.sort…

【一文详解 requests 库中 json 参数和 data 参数的用法】

在requests库当中,requests请求方法,当发送post/put/delete等带有请求体 的请求时,有json和data2个参数可选。 众所周知,http请求的请求体格式主要有以下4种:application/jsonapplicaiton/x-www-from-urlencoded multi…

音视频开发-ffmpeg介绍-系列二

目录 一、FFmpeg核心结构体 二、解码流程 三、FFmpeg解码实现 四、FFmpeg编码实现 五、FFmpeg转码实现 一、FFmpeg核心结构体 AVFormatContext:解封装功能的结构体,包含文件名、音视频流、时长、比特率等信息; AVCodecContext&#xf…

nginx代理后刷新显示404,这样解决。

项目部署之后,通过首页进入访问页面正常,F5刷新之后出现错误如下图。 怎么解决: 在Nginx配置里面增加 location / {root /www/wwwroot/phm/phmweb;index index.html index.htm;try_files $uri $uri/ /index.html;}

Kotlin基础(七):数据类和封闭类

前言 本文主要讲解kotlin数据类(DataClass)和封闭类(SealedClasses),包括使用数据类,对象复制,数据类成员的解构,使用封闭类,以及数据类和封闭类在Android开发中的应用。…

【数据挖掘】时间序列的傅里叶变换:用numpy解释的快速卷积

一、说明 本篇告诉大家一个高级数学模型,即傅里叶模型的使用; 当今,傅里叶变换及其所有变体构成了我们现代世界的基础,为压缩、通信、图像处理等技术提供了动力。我们从根源上理解,从根本上应用,这是值得付…

微信小程序——页面跳转方法和场景用法总结

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…

失物招领小程序连接人与物的奇妙纽带

hello guys!! 随着生活的节奏加快,人们在各个领域都有可能会遇到丢失物品或者拾到物品的情况。不论是学生、员工还是旅游爱好者,我们都有可能在生活的轨迹中遇到这样的情况。为了提供一个便捷的平台,让人们能够分享、发布和寻找丢失物品&…

再添新品|OPT(奥普特)高速高分辨率线阵相机发布!

针对大幅面且高速生产的视觉检测场景,OPT(奥普特)持续在数据传输接口技术上进行开发创新,推出三大系列线阵相机,产品阵容再升级。 本次发布的新品共12款,分别有万兆网、CXP及CL系列的新品,分辨…

JavaDemo——使用jks的https

java使用https主要就是设置下sslContext,sslContext初始化需要密钥管理器和信任管理器,密钥管理器用于管理本地证书和私钥,信任管理器用于验证远程服务器的证书,这两种管理器都需要KeyStore初始化,两种管理器可以按需只…

OS1_进程与线程的管理

序言 1.OS以进程、线程的方式在CPU中执行静态保存在外存(内存)中的程序,进程的构成与状态转化,特别是进程的切换; 2.当有多个进程处于就绪态,有哪些常见的挑选以执行方式; 3.并发执行(乱序发射)的进程,共享…