CAN 协议常见面试题总结

news2024/11/22 15:47:50

0.讲一下CAN通讯的过程

第一段:需要发送的通讯设备,先发送一个显性电平0,告诉其他通讯设备,需要开始通讯。

第二段:就是发送仲裁段,其中包括ID帧和数据帧类型,告诉其他通讯设备,需要和哪个通讯设备进行通讯,以及帧的类型,CAN通讯设备的优先级,就是由ID号决定的,往往ID号越小优先级别越高。为标准帧还是扩展帧,由仲裁段最后一位IDE位的电平决定的,IDE为显性则为标准帧,IDE为隐性则为扩展帧。

第三段,为控制段,共6位,四位储存数据段长度的信息,还有两位为保留位。

第四段:为数据段,固定长度为8个字节,先发送高位,后发送低位。

第五段,为CRC,为验证段;

第六段,为ACK为应答段,发送机发送两个隐形电平,接收机发送一个显性电平,告诉发送机,接收完成。

第七段,结束段,发送7个隐形电平

一CAN物理层

1.CAN使用差分信号进行数据传输,根据CAN_H和CAN_L上的电位差来判断总线电平。

2.总线电平分为显性电平(逻辑0)电位差5V和隐性电平(逻辑1)电位差0V

3.显性电平具有优先权。发送方通过使总线电平发生变化,将消息发送给接收方

4.高速CAN

 

二CAN协议层

0.标准帧和扩展帧区别是什么?标准帧的Id是多少比特?扩展帧的Id是多少比特

扩展帧与标准帧的区别在于扩展帧拥有更长字节的ID,以便能够扩展更多的CAN通讯设备。

标准帧的ID是11位比特长

扩展帧的ID是29位比特长

1.CAN总线以帧形式通信共包含5种帧

数据帧 遥控帧 错误帧 过载帧 间隔帧

数据帧:用于发送单元向接收单元传输数据的帧

遥控帧用于接收单元向具有相同ID的发送单元请求数据的帧

2.数据帧的组成

帧起始 仲裁帧 遥控帧 数据段 CRC段 ACK段 帧结束

3.CAN总线仲裁

多个单元同时发送 ,标准帧与扩展帧之间,标准帧的优先级会更高,扩展帧的优先级更低;相同帧类型中,报文ID值越小,优先级越高

4. CAN总线的的校验机制(CRC校验)?


Can总线的校验机制包括CRC校验和和ACK校验两个部分:

CRC校验和:CAN总线在发送数据帧时会对数据帧进行CRC校验和计算,并将计算结果追加到数据帧末尾。接收方在接收数据帧时会对数据帧进行CRC校验和计算,并将计算结果与数据帧中的CRC校验和进行比较,以判断数据帧是否发生了错误。如果计算结果与CRC校验和不一致,则认为数据帧发生了错误,接收方将丢弃该数据帧。

ACK校验:CAN总线在发送数据帧后,接收方需要向发送方发送一个ACK(应答)信号,告知发送方数据帧已经成功接收。如果发送方在规定的时间内未收到ACK信号,则认为该数据帧发送失败,发送方将重新发送该数据帧。


 

5 终端电阻是多大的?作用是什么

120Ω终端电阻 

在高速CAN通讯的过程中,可能会产生电感现象,对CAN通讯的高低电压产生影响,使得系统无法判别显性或者隐形电平,因此并联一个终端电阻,使得在阻抗高的时候电流可以从终端电阻流过,从而保证CAN通讯的正常运行。

6 CAN的通讯矩阵是哪两种?(制作DBC的时候字节的排列顺序?)


常用格式:

Intel格式(小端,数据低位在内存低位)

Lsb在低字节,msb在高字节,以起始位为原点,从左往右,自上而下填充

Motorola格式(大端,数据低位在内存高位)

Lsb在高字节,msb在低字节,以起始位为原点,从左往右,自上向下填充

7CAN FD 和CAN的 区别:


CAN-FD:一帧数据最长64字节。以理解成CAN协议的升级版,只升级了协议,物理层未改变。传输速率不同、数据长度不同、帧格式不同、ID长度不同。

1)速率不同:

CAN:最大传输速率1Mbps。
CAN-FD:速率可变,最大传输速率8Mbps。

2)数据长度不同

CAN:一帧数据最长8字节

CAN-FD:一帧数据最长64字节。

3)ID长度不同
CAN标准帧ID长度最长11bit。 CAN-FD标准帧ID长度可扩展到12bit。

4)帧格式不同

CAN-FD新增了FDF、BRS、ESI位,

FDF表示CAN报文还是CAN-FD报文。BRS:表示位速率转换,该位隐性时,速率可变,该位为显性时,以正常的CAN-FD总线速率传输(恒定速率)。

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

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

相关文章

记录一次校园CTF--wp

一.第一题简单nc 这题直接nc 地址端口即可得到flags没有套路 二.第二题pwn:ezstack 这是一题栈溢出题目,查看保护: 没有开启PIE,运行下查看效果: 题目是一个文字购物游戏。 接着扔进IDA中分析: 在主函数中我们找到…

C++ string赋值和添加值

在MFC中使用C的string&#xff0c;要先#include <string>&#xff0c;然后&#xff0c;std::string s2("") 这样就可以了&#xff1b; void CStrnewView::OnDraw(CDC* pDC) {CStrnewDoc* pDoc GetDocument();ASSERT_VALID(pDoc);// TODO: add draw code for n…

【Redis】list常用命令内部编码使用场景

文章目录 前置知识列表类型的特点 命令LPUSHLPUSHXRPUSHRPUSHXLRANGELPOPRPOPLINDEXLREMLINSERTLTRIMLSETLLEN 阻塞版本命令BLPOPBRPOP 命令总结内部编码测试内部编码 使用场景消息队列分频道的消息队列 模拟栈和队列 前置知识 列表类型是⽤来存储多个有序的字符串&#xff0c…

项目管理之如何出道(上)

前言 终于有时间更新了&#xff0c;大家是不是等不及了&#xff1f;那么书接上文&#xff0c;言归正传。 各位盆友&#xff0c;时间之轮已划入夜晚&#xff0c;尝试静下心来&#xff0c;思考一番。 Q1&#xff1a;是否曾经期待自己做一名项目经理&#xff0c;干了几年的coder甚…

MinGW32丢失dll文件

问题现象 执行Makefile的时候&#xff0c;突然出现这个提示&#xff0c;还有好几个类似的&#xff0c;提示我找不到dll文件&#xff0c;建议重装。 问题分析 重装软件 最直接的办法肯定是按照建议来重装&#xff0c;但是发现重装了好几次&#xff0c;不是缺这个就是缺那个&a…

每天一道算法题:17. 电话号码的字母组合

难度 中等 题目 给定一个仅包含数字 2-9 的字符串&#xff0c;返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下&#xff08;与电话按键相同&#xff09;。注意 1 不对应任何字母。 示例 1&#xff1a; 输入&#xff1a;digits “23” …

换服还是掀桌?哪条才是程序员的出路?

站在时代的风口浪尖&#xff0c;猪都能起飞。 大数据互联网正是时代的宠儿&#xff0c;IT行业的发展也正如火如荼。 人人都眼红程序员的高薪资&#xff0c;认为他们吃着时代的红利。 但是三百六十行&#xff0c;行行出社畜。”996“也好&#xff0c;甚至"007"也罢…

龙迅LT6911GXC,HDMI 2.1转4 PORT MIPI/LVDS支持分辨率高达8K30HZ

描述&#xff1a; LT6911GXC 是一款面向 VR / 显示应用的高性能 HDMI2.1 至 MIPI 或 LVDS 芯片。 高清遥控器RX作为高清电脑中继器的上游&#xff0c;可与其他芯片的高清电脑TX合作&#xff0c;实现直译台功能。 对于 HDMI2.1 输入&#xff0c;LT6911GXC 可配置为 3/4 通道。 …

2023最新版JavaSE教程——第2天:变量与运算符

目录 一、关键字(keyword)二、标识符(identifier)三、变量3.1 为什么需要变量3.2 初识变量3.3 Java中变量的数据类型3.4 变量的使用3.4.1 步骤1&#xff1a;变量的声明3.4.2 步骤2&#xff1a;变量的赋值 四、基本数据类型介绍4.1 整数类型&#xff1a;byte、short、int、long4…

OmniFocus Pro for Mac(GTD时间管理软件) OmniFocus Mac版

OmniFocus Pro 3 for Mac 中文激活版是一款功能强大且灵活的 GTD 时间管理工具&#xff0c;可为您提供无干扰的环境&#xff0c;帮助您可以轻松地从邮件&#xff0c;消息&#xff0c;Safari 和任何其他第三方应用程序中安排任务&#xff0c;编写备注和剪辑信息。您可以快速轻松…

kotlin 基本语法

const val INFO "ZZZ is Success Result" fun main(){ var name: String? "zzz" name null name?.capitalize() //?问号的意思是如果name是null ,后面的方法不执行&#xff0c;如果name不是null&#xff0c;后面方法执行 var name: String? &q…

16 DNS协议详解

1、DNS的由来 很难记住网站的 IP 地址&#xff0c;因而也需要一个地 址簿&#xff0c;就是DNS 服务器。DNS 在日常生活中非常重要。每个人上网&#xff0c;都需要访问它&#xff0c;因此一旦DNS出现故障&#xff0c;是非常可怕的。因而&#xff0c;DNS 服务器&#xff0c;一定…

​软考-高级-信息系统项目管理师教程 第四版【第22章-组织通用治理-思维导图】​

软考-高级-信息系统项目管理师教程 第四版【第22章-组织通用治理-思维导图】 课本里章节里所有蓝色字体的思维导图

一文解析嵌入式Linux系统自动构建框架

1、Buildroot 是什么&#xff1f; Buildroot 是 Linux 平台上一个开源的嵌入式 Linux 系统自动构建框架。整个Buildroot是由 Makefile 脚本和 Kconfig 配置文件构成的。你可以和编译Linux内核一样&#xff0c;通过 buildroot 配置&#xff0c;menuconfig 修改&#xff0c;编译…

HCIP---VLAN

文章目录 前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据总结 前言 一.VLAN概述 VLAN&#xff08;Virtual Local Area Network&#xff0c;虚拟局域网&#xff09;是一种基于交换机和网络设备的划分技术&#xff0c;可以将不同区域的计算机、服务器和网络设…

推荐10个地推拉新app推广接单平台,都是一手单 官签渠道

地推拉新app推广接单平台是一种可以帮助APP获取新用户&#xff0c;并获得推广者获得佣金的平台。 这些平台通常提供各种类型的拉新任务&#xff0c;包括注册、下载、激活等&#xff0c;为APP应用方和推广者架起合作的桥梁。 本文将推荐10个优质的地推拉新app推广接单平台&…

JDBC(一)

第1章&#xff1a;JDBC概述 1.1 数据的持久化 持久化(persistence)&#xff1a;把数据保存到可掉电式存储设备中以供之后使用。大多数情况下&#xff0c;特别是企业级应用&#xff0c;数据持久化意味着将内存中的数据保存到硬盘上**&#xff0c;而持久化的实现过程大多通过各种…

b2b.ccb.com:443 需要你的凭据

忙活了一天&#xff0c;晚上回来准备查一下公户的最近的账单。因为昨天晚上熬夜重新做了电脑系统&#xff0c;就下载了建设银行的E路护航&#xff0c;一切安装就绪&#xff0c;准备进入企业网银时&#xff0c;被这些垃圾搞的系统及软件恶心到了&#xff0c;在此记录一下&#x…

底座(基座)模型是如何训练的?

我们把LLM的基本训练步骤分为两步&#xff0c;预训练和对齐&#xff1b;预训练我们非常熟悉&#xff0c;是bert-finetuning时代的基本原理&#xff0c;只不过LLM一般遵循自回归的逻辑&#xff0c;因此使用GPT模型的预训练方式&#xff1a;CLM&#xff08;具备因果关系的MLM&…

四、IPSec NAT穿越

IPSec NAT穿越 1、IPSec NAT穿越2、IPSec穿越NAT的处理3、IKEv2与NAT穿越3.1、NAT-T能力检测3.2、NAT网关发现3.3、NAT穿越的启用3.4、NAT-keepalive 4、IPSec NAT穿越示例&#xff08;网关之间存在NAT设备&#xff09;5、IPSec NAT穿越示例&#xff08;两侧存在NAT设备&#x…