【CAN】CAN基础概念2

2023-05-16

摘自VECTOR官网E-Learning的资料

9. 帧类型

数据帧

为传输用户数据,ISO 11898-1定义了数据帧。数据帧可以传输的最大有效负载为八个字节,即数据场。除了数据场,数据帧还包括执行CAN通信协议所需的许多其他场,包括报文ID、数据长度代码(DLC)、校验场(循环冗余校验序列 - CRC序列)以及应答场(ACK)等。

远程帧

通常ECU会通过数据帧主动发送相关数据,但某些情况也可能用到远程帧。使用远程帧可以从其他任何CAN节点请求用户数据(即数据帧)。除了缺少数据场以外,远程帧与数据帧结构相同。

错误帧

错误帧可用于指示通信期间检测到的错误。错误帧将强行中止正在进行的错误数据传输。错误帧的结构与数据帧或远程帧明显不同,仅由两部分构成:错误标志(error flag)和错误界定符

10. 数据帧

数据帧是传输用户数据的载体,CAN通信中的主要角色。数据帧由多种不同部分构成,每个部分都会在传输过程中执行一项重要任务。例如:启动并维护ECU节点之间的同步,建立通信矩阵中定义的通信关系,以及传输和保护用户数据。

SOF(帧起始)

SOF是数据帧传输的起始位。发送方(sender)会发送一个显性电平作为SOF,由于总线空闲时总线会保持隐性电平,因此SOF发出后会产生一个跳变沿,用于整个CAN网络的时间同步。为了在帧传输期间保持与发送方的同步,接收方会在所有隐性电平到显性电平的跳变沿进行是否与发送方保持同步的判断。如果出现偏差,接收方将按照相关相位误差量重新进行同步(重同步)。

ID和RTR

SOF之后是标识符(ID),用于区分数据帧的优先级,并根据通信矩阵中定义的收发关系为节点中的接收过滤器提供过滤依据
ID之后是RTR位(Remote Transmission Request,远程请求位)。发送方将其用于通知接收方帧的类型(数据帧或远程帧)。RTR位为显性表示数据帧,隐性则表示远程帧。

IDE

IDE(Identifier Extension bit,标识符扩展位)位用于区分标准格式和扩展格式。标准ID有11位,扩展ID有29位。
canvas.png

DLC

DLC(Data Length Code,数据长度代码)表示数据场中有效负载的字节数,一个数据帧最多可以传输八个字节。
canvas.png

CRC&ACK

CRC(Cyclic Redundancy Check,循环冗余校验码)和ACK(Acknowledge,应答), 校验场使用以界定符(delimiter)为结尾的CRC来保护有效负载。接收方在ACK位做出肯定或否定的应答,ACK位后同样有一位界定符。

EOF

EOF由7个连续隐性位组成,在此之后,报文传输结束。
canvas.png

11. 远程帧

请求数据

远程帧用于从任何CAN节点请求数据(即数据帧)。但是数据传输并不基于请求,而是主要基于信息生产者的自我主动性,因此汽车应用程序中几乎不使用远程帧。远程帧支持标准格式和扩展格式。

通过RTR决定

除缺少数据场以外,远程帧与数据帧布局相同。数据帧和远程帧是以RTR位来区分的。数据帧的RTR位为显性,远程帧的RTR位则为隐性。

两种帧,同一ID

原则上,可以为CAN网络中的所有数据帧定义远程帧,仅需确保远程帧的标识符与所关联数据帧的ID匹配。发送节点通过发送数据帧来响应远程帧。

远程帧与响应

如果CAN控制器具有对象存储,则该CAN控制器会自动响应远程帧。不具有对象存储的CAN控制器必须先让主机知道远程帧,然后才能发起响应。 在理想情况下,远程帧的请求会立即触发对应数据帧的响应。但在请求和响应之间可能会插入具有更高优先级的CAN报文。canvas.png

12. 寻址

报文寻址

CAN网络中的通信基于与内容相关的寻址。CAN节点本身没有ID,但是可以通过ID区分CAN报文。所有CAN节点都会收到总线上广播发送的所有CAN报文。每个接收方都根据需求自行选择CAN报文。这种接收方选择寻址非常灵活,但需要每个接收方对接收到的CAN报文进行过滤(接收过滤)。

标准格式和扩展格式

用户可以选择以下两种报文格式:标准格式和扩展格式。两种格式的标识符长度不同。在标准格式中,ID有11位。在扩展格式中,ID有29位。
与标准格式ID相比,扩展格式ID由两个部分构成:基本ID和扩展ID。连接这两个部分的是IDE(Identifier Extension,标识符扩展)位和SRR(Substitute Remote Request,替代远程请求)位。
显性IDE位表示CAN报文为标准格式。隐性IDE位表示CAN报文为扩展格式。在扩展格式中,始终以隐性方式传输的SRR位取代了标准格式的RTR位,并且控制场的前两位(r0和r1)没有实际作用,两者都作为显性位传输。

13. CRC和应答

传输可靠性

串行通信在汽车环境中遇到的最大难题之一就是如何保证极高的传输可靠性。CAN总线中使用的CRC校验是功能最强大的错误检测方法之一。

CRC序列

CRC方法根据要传输的位(从SOF到数据场结束)和ISO 11898-1定义的生成多项式G(x)计算CRC序列。CRC序列位于数据场之后。接收方会采用同样的方法针对接收到的位(SOF开始到数据场结束)计算CRC并与接收到的报文中的CRC序列进行对比,这样可以非常可靠地检测是否发生了传输错误。(例外情况:当CRC序列本身遭到干扰破坏时)。

应答

根据计算后的结果,每个接收节点都会给出应答,与节点是否会过滤该报文无关。接收方的应答不是肯定就是否定。ACK 位中的显性电平表示肯定应答,隐性电平表示否定应答。

ACK界定符

为了进行错误跟踪,ACK界定符始终以隐性方式传输。由于发送方以隐性方式传输ACK 位和ACK界定符,因此一个肯定应答足以告知发送方报文已正确传输。这就是CAN网络中的应答方法被称为节点肯定应答的原因。
canvas.png图片.png图片.png图片.png图片.png图片.png图片.png

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【CAN】CAN基础概念2 的相关文章

  • STM32串口通信(串口中断、FIFO机制)之安富莱代码学习笔记

    创建串口设备结构体 span class token keyword typedef span span class token keyword struct span span class token punctuation span U
  • c语言函数未定义的引用,c – CMake“未定义的函数引用”

    我试图使用CMake链接库 BNO055 Driver 由于BNO055驱动程序不使用CMake并且大约一年没有更改 我决定只下载源文件并将它们放入我的项目中 然后我使用CMake创建一个库并链接它 问题是该链接似乎不起作用 当我编译项目时
  • RFID智能门禁系统设计

    博主福利 xff1a 100G 43 电子设计学习资源包 xff01 http mp weixin qq com mp homepage biz 61 MzU3OTczMzk5Mg 61 61 amp hid 61 7 amp sn 61
  • 基于单片机的节能照明仿真设计(#0049)

    功能描述 1 采用51 52单片机作为主控芯片 xff1b 2 采用光敏电阻 43 ADC0832检测光强 xff1b 3 具有声音检测和红外人体检测功能 xff1b 4 通过按键进行自动 手动模式切换 xff1b 5 手动模式 xff0c
  • 基于单片机的导盲仪系统设计(#0477)

    功能描述 1 采用51 52单片机 通用 作为主控制器 xff1b 2 采用HC SR04超声波模块测距 xff0c 测量范围0 02m 5 5m以上 xff1b 3 采用四位数码管切换显示 xff1a 障碍物距离 设置报警距离 xff0c
  • 基于单片机的可燃气烟雾系统设计(#0488)

    功能描述 本系统可用于可燃气体监测 烟雾火灾监测 1 采用51 52单片机 通用 作为主控芯片 xff1b 2 采用1602显示 xff1a 气体浓度的实时值及报警值 xff1b 3 采用MQ2 43 ADC0809检测气体浓度 xff1b
  • 析构函数的执行顺序

    析构函数的执行顺序 回答包括类定义的先后顺序 xff0c 局部和全部 xff0c 以及静态 xff0c 同时说明继承的关系 对于继承类的析构函数执行顺序为 xff0c 先派生类 xff0c 后基类 对于一个执行单元 xff08 cpp文件
  • 基于单片机的可燃气烟雾系统设计(#0489)

    功能描述 1 采用51 52单片机 通用 作为主控芯片 xff1b 2 采用数码管显示 xff1a 气体浓度等级 温度值 xff1b 3 采用MQ2 43 ADC0832检测气体浓度 xff1b 4 采用DS18B20检测温度 xff1b
  • 基于单片机的氢气监测系统设计(#0490)

    功能描述 1 采用51 52单片机 通用 作为主控芯片 xff1b 2 采用1602显示 xff1a 氢气浓度的实时值及报警值 xff1b 3 采用MQ8 43 ADC0809检测氢气浓度 xff1b 4 氢气浓度超标时 xff0c 蜂鸣报
  • 基于单片机的心率监测系统设计(#0495)

    功能描述 1 采用51 52单片机 通用 作为主控芯片 xff1b 2 采用1602液晶显示 xff1a 当前心率 报警上限 报警下限 xff1b 3 采用ST188红外对管检测心率 xff0c 当单片机检测到大约第5次信号时 xff0c
  • Verilog - 利用加法器实现乘法器 [代码]

    博主福利 xff1a 100G 43 电子设计学习资源包 xff01 http mp weixin qq com mp homepage biz 61 MzU3OTczMzk5Mg 61 61 amp hid 61 7 amp sn 61
  • LCD1602液晶 - 开发技术详解

    博主福利 xff1a 100G 43 电子设计学习资源包 xff01 http mp weixin qq com mp homepage biz 61 MzU3OTczMzk5Mg 61 61 amp hid 61 7 amp sn 61
  • LCD1602温度显示程序设计流程

    博主福利 xff1a 100G 43 电子设计学习资源包 xff01 http mp weixin qq com mp homepage biz 61 MzU3OTczMzk5Mg 61 61 amp hid 61 7 amp sn 61
  • 语音处理WT588D-20SS芯片 - 原理详解

    博主福利 xff1a 100G 43 电子设计学习资源包 xff01 http mp weixin qq com mp homepage biz 61 MzU3OTczMzk5Mg 61 61 amp hid 61 7 amp sn 61
  • 基于单片机的智能温度监测系统设计(电路图+程序)

    博主福利 xff1a 100G 43 电子设计学习资源包 xff01 http mp weixin qq com mp homepage biz 61 MzU3OTczMzk5Mg 61 61 amp hid 61 7 amp sn 61
  • 基于单片机的电子秤系统设计(电路+流程)

    博主福利 xff1a 100G 43 电子设计学习资源包 xff01 http mp weixin qq com mp homepage biz 61 MzU3OTczMzk5Mg 61 61 amp hid 61 7 amp sn 61
  • MPU6050 - 陀螺仪 - 技术总结

    博主福利 xff1a 100G 43 电子设计学习资源包 xff01 http mp weixin qq com mp homepage biz 61 MzU3OTczMzk5Mg 61 61 amp hid 61 7 amp sn 61
  • JavaParser使用指南

    抱歉这个博客是很久以前写的 xff0c 现在我已经不用javaparser了 xff0c 这个包也一直在更新所以这篇博客参考意义不大 大家可以根据官网的例子去试试 JavaParser使用指南 前言入门 StartJavaParser Cl
  • 共享式与交换式以太网

    大家好呀 xff0c 我是请假君 xff0c 今天又来和大家一起学习数通了 xff0c 今天要分享的知识是共享式与交换式以太网 一 共享式以太网 xff1a Hub 与同轴电缆都是典型的共享式以太网所使用的设备 xff0c 工作在OSI模型
  • 51单片机入门 - 自己动手搭建实验板

    博主福利 xff1a 100G 43 电子设计学习资源包 xff01 http mp weixin qq com mp homepage biz 61 MzU3OTczMzk5Mg 61 61 amp hid 61 7 amp sn 61

随机推荐

  • TCP 协议

    传输层协议作用 1 分段及封装应用层送来的数据 2 提供端到端的传输服务 3 在发送主机与接收主机之间构建逻辑通信 4 包括两个协议 xff1a 1 xff09 TCP 2 xff09 UDP 怎样提供的逻辑通信 xff1a 两台主机进程间
  • 海康门禁 远程控制

    1 登录海康官网下载sdk包 https www hikvision com cn download 61 html 2 登录海康sdk包 库文件中的ClientDemo exe 然后添加设备 只用填写ip xff0c 用户名 xff0c
  • TCP、UDP通信例程(C语言)

    xff08 转载 xff09 socket笔记 TCP UDP通信总结 1 基于TCP的本地客户端 服务端信息交互实例 xff08 windows xff09 xff08 已验证 xff09 实现功能 xff1a 本地TCP客户端往本地TC
  • STM32F030F4P6 HAL库 PPM信号输出 24L01 PPM接收机制作

    事件起因 因为给PX4测试缺少遥控器 xff0c 手撸了一套支持PPM的遥控器系统 xff0c 这篇文章将在接收机上遇到的问题分享一二 xff0c 供大家借鉴 1 需求分析 接收机需要输出至少8通道的PPM信号 xff0c 可以将 通PPM
  • Linux网络编程——简单基于TCP协议的服务器/客户端示例

    说明 xff1a 本文章旨在总结备份 方便以后查询 xff0c 由于是个人总结 xff0c 如有不对 xff0c 欢迎指正 xff1b 另外 xff0c 内容大部分来自网络 书籍 和各类手册 xff0c 如若侵权请告知 xff0c 马上删帖
  • vue vlc插件的使用

    公司要求使用vlc插件播放rtsp实时视频 span class token operator lt span object span class token operator span id span class token operat
  • c++按键退出循环 windows平台

    span class token macro property span class token directive keyword include span span class token string lt windows h gt
  • 关于c++ char char*

    span class token macro property span class token directive keyword include span span class token string lt iostream gt s
  • ROS 学习系列 -- 使用Rviz 可视化调试9轴机器人姿态融合

    机器人平面 行走时只需要知道行进方向角度即可 xff0c 也就是yaw 但当行走在有坡度的地方时则需要识别出其它两个倾角 xff1a pitch 和 raw 借助9轴传感器的姿态融合就可以识别 下面就是在Rviz中的识别效果测试 IE可能无
  • 二维码制作、识别

    二维码制作 识别 二维码生成生成二维码二维码尺寸编辑二维码的制作 二维码定位识别识别结果仿形变换后识别失败 二维码信息识别Zbar库安装Zbar库信息识别 二维码生成 1 生成二维码 2 需要将二维码换成准确尺寸 生成二维码 qrcode
  • 四元数学习

    文章目录 1复数的矩阵表示形式2复数矩阵代表的2D线性变换复数表示向量2D旋转三种等价形式 3三维中旋转旋转的分解 xff1a 平行分量 43 垂直分量平行分量的旋转 xff1a 不变垂直分量的旋转叠加后的旋转 4四元数四元数的定义 5四元
  • 10代i5主频为什么这么低_干货丨十代和九代i5、i7处理器的性能测试

    立信笨鸟丨BenNiao 九代十代CPU谁更值得入手 相信大家已经观望很久了 今天立信笨鸟对九代和十代的几款处理器进行测试 今天测试四组处理器 分别是I5 9600KF和I5 10400 I7 9700和I7 10700 九代的处理器都是采
  • 世界淡水资源占水资源的多少_我国淡水资源在全球水资源占比6%,世界排名第四(分布不均)...

    水是生命之源 xff0c 我们的生活的地球被称之为水球 xff0c 因为地球上的水域面积也占到了70 左右 xff0c 但这其中大部分是海洋 xff0c 人是不能够直接饮用的 xff0c 所以淡水异常珍贵 xff0c 我国淡水资源在全球水资
  • 计算机主机接电视机,电脑连接电视,详细教您电脑连接电视当显示器的方法

    现在的科技越来越发达了 xff0c 之前是现在MP4下载好电影或者电视剧 xff0c 然后就可以连接到电视上进行观看 现在不同了 xff0c 现在电脑也可以连接电视了 xff0c 今天小编大大我就负责来告诉你们电脑怎么连接电视当显示器 小编
  • 网易我的世界服务器正在维护,网易《我的世界》Hypixel中国版服务器将停止运营...

    4月16日消息 网易 我的世界 官方现已发布Hypixel中国版服务器停止运营公告 网易表示 xff0c 由于其与Hypixel团队的合作即将到期 xff0c 按照约定将于2020年6月30日10点停止运营Hypixel中国版服务器 届时将
  • 七日杀服务器怎么修改天数,七日杀如何调整天数 | 手游网游页游攻略大全

    发布时间 xff1a 2016 01 21 有这种报错的是硬件加速的问题 调整硬件加速的方法 右键桌面属性 点设置 在设置界面中点高级 然后弹出一个界面 点击疑问解答 然后把硬件加速调到最大 如果还是不能解决可能是软件本身有问题 建议重新安
  • 如何给服务器传输文件,给服务器传输文件

    给服务器传输文件 内容精选 换一换 公有云通常指第三方供应商为用户提供的能够通过Internet使用的云端基础设施和服务 xff0c 其核心属性是共享资源服务 华为云是公有云品牌 xff0c 在SAP系统迁移的过程中 xff0c 您可以单独
  • 服务器架设文件服务器,服务器架设文件服务器

    服务器架设文件服务器 内容精选 换一换 安装完操作系统后的临时云服务器需要进行相关配置 xff0c 并安装原生的XEN和KVM驱动 xff0c 才能保证后续创建的云服务器正常使用 该任务指导用户完成Linux云服务器的相关配置与驱动安装 x
  • 基于YOLOv3的视频中无人机的目标检测(包括CUDA等环境配置)

    在SLAM毫无建树的我又投入了深度学习的大坑 xff0c 由于项目需求需要做无人机的目标检测 xff0c 这里把搭建系统中的一些问题记录下来 xff0c 方便之后复现 系统搭建 采用YOLOv3来进行无人机的检测 xff0c yolo的安装
  • 【CAN】CAN基础概念2

    摘自VECTOR官网E Learning的资料 9 帧类型 数据帧 为传输用户数据 xff0c ISO 11898 1定义了数据帧 数据帧可以传输的最大有效负载为八个字节 xff0c 即数据场 除了数据场 xff0c 数据帧还包括执行CAN