0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

CAN协议解析

嵌入式单片机MCU开发 来源:嵌入式单片机MCU开发 作者:嵌入式单片机MCU开 2023-07-26 17:05 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

CAN 总线组网连线图

根据CAN总线的硬件特性,当一条CAN总线上挂接多个驱动器的时候,应当按照如下示意图进行连接布线。 需要在线的起点和终点上各连上一个 120Ω的电阻。并且 CAN 总线只能有一条主干线,分支的线不宜过长。
最近在弄ST和GD的课程,需要GD样片的可以加群申请:615061293 。

在这里插入图片描述

由上图可知,CAN通信是通过两根线完成的: 一条是黄色的CAN_High 一条是绿色的CANLow CAN能够使用多种物理介质作为通信媒介,最常用的是双绞线,还可以使用光纤等材料。CAN总线信号通过两条差分电压信号线CAN H和CAN* L传输,当CAN* H和CANL信号线上的电压值处于2. 5V左右时表明此时总线处于我们所谓的逻辑电平“1”的状态,也可以称做隐性状态;当CAN* H比CAN* L上电压值高时表示逻辑“0”,通常该状态下两条信号线上的电压值为CAN* H=3. 5V和CAN* L=1. 5V,此时是显性状态。下图是双绞线CAN总线电平标称值,图中显示了逻辑高电平和逻辑低电平所对应的大致总线电压值。

在这里插入图片描述

下图是发送长度为3的数据0x111111,标准帧ID为0001。

在这里插入图片描述

可以看到在空闲状态下,电平在2.5V左右,黄线为CANL,紫线为CAN* H,当为显性时,CAN* H电平拉到3V左右,CAN* L电平拉到1V左右,CAN* H-CAN* L=2V,橙色线为CAN* H-CAN_ L。

在这里插入图片描述

CAN的报文格式

报文格式

首先,CAN总线协议中的报文指的是总线单元间传递的消息,消息的格式各有不同,总线上的单元想要发送新信息就要检测到总线空闲状态的位信息才可以发送总线上的报文信息表示为几种固定的帧类型,下图列出了根据CAN总线通信中5种不同用途所设置的帧类型

在这里插入图片描述

下表是标识符种类说明。

在这里插入图片描述

终止CAN2. 0B协议时只是不能发送扩展格式报文,总线仍可以正常工作。下面就CAN总线的各种功能帧结构对报文格式进行详细说明,数据帧由7个段构成。数据帧的构成如图所示。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

标准CAN只有11位标识符,每帧的数据长度为44+8N位。
● SOF - 帧起始,显性(逻辑0)表示报文的开始,并用于同步总线上的节点。
● 标识符 - 标准CAN具有11位标识符,用来确定报文的优先级。此域的数值越小,优先级越高。
● RTR - 远程发送请求位,当需要从另一个节点请求信息时,此位为显性(逻辑0)。所有节点都能接收这个请求,但是帧标识符确定被指定的节点。响应数据帧同样被所有节点接收,可以被有兴趣的节点使用。
● IDE - 标识符扩展位为显性时表示这是一个标准CAN格式,为隐形表示这是扩展CAN格式。 ● r0 - 保留位(可能将来标准修订会使用)
● DLC - 4位数据长度代码表示传输数据的字节数目,一帧CAN最多传输8字节用户数据
● 数据0~8 – 最多可以传输8字节用户数据
● CRC - 16位(包括1位定界符)CRC校验码用来校验用户数据区之前的(包含数据区)传输数据段。
ACK - 2位,包含应答位和应答界定符。发送节点的报文帧中,ACK两位是隐性位,当接收器正确地接收到有效的报文,接收器会在应答位期间向发送节点发送一个显性位,表示应答。如果接收器发现这帧数据有错误,则不向发送节点发送ACK应答,发送节点会稍后重传这帧数据。
● EOF – 7位帧结束标志位,全部为隐性位。如果这7位出现显性位,则会引起填充错误。
● IFS – 7位帧间隔标志位,CAN控制器将接收到的帧正确的放入消息缓冲区是需要一定时间的,帧间隔可以提供这个时间。

在这里插入图片描述

扩展CAN

在这里插入图片描述

● 扩展CAN具有29位标识符,每帧数据长度为64+8N位。
● SRR – 代替远程请求位,为隐性。所以当标准帧与扩展帧发送相互冲突并且扩展帧的基本标识符与标准帧的标识符相同时,标准帧优先级高于扩展帧。
● IDE – 为隐性位表示标志位扩展帧,18位扩展标识符紧跟着IDE位。
● r1 – 保留

错误检测

在这里插入图片描述

波形解析

发送长度为3的数据0x111111,标准帧ID为0001。

ID

当ID为0001时候,对于二进制为000 0000 0001,由于位填充机制,发送器只要检测到有5个连续相同值的位,就会自动在下一位里添加一个相反值,接收器接受数据时会自动剔除这个添加位。

在这里插入图片描述

数据长度

RTR、IDE、R0默认情况下为0,数据长度为0011(3)。

在这里插入图片描述

数据字段

传输数据为3字节的数据,为0x111111。

在这里插入图片描述

CRC

校验位(CRC) = 15位之后有一个隐性CRC分隔符位 应答区(ACK) 2位,包括ACK槽加一个隐性ACK分隔符,ACK两位是隐性位,当接收器正确地接收到有效的报文,接收器会在应答位期间向发送节点发送一个显性位,表示应答。 CRC为0x1984(001 1001 1000 0100),CRC分隔符为1 ACK为01

在这里插入图片描述

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • CAN
    CAN
    +关注

    关注

    58

    文章

    3015

    浏览量

    471549
  • 协议
    +关注

    关注

    2

    文章

    617

    浏览量

    40845
  • 组网
    +关注

    关注

    1

    文章

    419

    浏览量

    23272
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    直播回顾 | CAN XL新标准落地难?从协议解析到实践应用,虹科技术专家带您全面探索CAN XL的技术突破与落地

    IntroductionCANXL总线作为CAN网络的第三代协议,CANXL总线技术在兼容经典CAN/CANFD的基础上,实现了单帧2048字节、速率20Mbps的跨越,以低成本填补了传统总线与车载
    的头像 发表于 11-12 17:32 1129次阅读
    直播回顾 |   <b class='flag-5'>CAN</b> XL新标准落地难?从<b class='flag-5'>协议</b><b class='flag-5'>解析</b>到实践应用,虹科技术专家带您全面探索<b class='flag-5'>CAN</b> XL的技术突破与落地

    如何理解工业物联网网关的协议解析功能

    工业物联网网关的协议解析功能是其核心能力之一,它通过将不同工业设备使用的多样化通信协议转换为统一格式,实现异构设备间的无缝互联与数据交互。以下从功能定位、技术实现、应用场景三个维度展开分析: 一
    的头像 发表于 10-15 11:40 163次阅读

    基恩士PLC使用EtherNet/IP协议通过EtherNet/IP转CAN协议转换网关与CAN协议IO卡通讯案例

    一、项目背景与痛点分析 某新能源科技企业生产现场部署了一台基恩士PLC,需要与4个采用CAN总线协议的远程IO卡进行数据交互,以实现对生产线关键参数的实时监控和控制。在项目初期,现场面临着三个核心
    的头像 发表于 09-25 14:24 414次阅读
    基恩士PLC使用EtherNet/IP<b class='flag-5'>协议</b>通过EtherNet/IP转<b class='flag-5'>CAN</b><b class='flag-5'>协议</b>转换网关与<b class='flag-5'>CAN</b><b class='flag-5'>协议</b>IO卡通讯案例

    基恩士PLC使用EtherNet/IP协议通过协议转换网关与CAN协议IO卡通讯案例

    一、项目背景与痛点分析 某新能源科技企业生产现场部署了一台基恩士PLC,需要与4个采用CAN总线协议的远程IO卡进行数据交互,以实现对生产线关键参数的实时监控和控制。在项目初期,现场面临着三个核心
    的头像 发表于 09-17 16:19 513次阅读
    基恩士PLC使用EtherNet/IP<b class='flag-5'>协议</b>通过<b class='flag-5'>协议</b>转换网关与<b class='flag-5'>CAN</b><b class='flag-5'>协议</b>IO卡通讯案例

    【干货】一文带你了解CAN、Modbus与LoRa三种通信协议的区别

    在工业自动化与物联网领域,CAN、Modbus和LoRa是三种主流通信技术。而亿佰特在该行业具有丰富的产品供客户选择与使用,帮助客户进一步确定需求,本文将结合技术细节与实际案例解析其核心区别。一
    的头像 发表于 08-28 19:32 1835次阅读
    【干货】一文带你了解<b class='flag-5'>CAN</b>、Modbus与LoRa三种通信<b class='flag-5'>协议</b>的区别

    协议解析网关是什么?有什么功能?

    协议解析网关是一种位于不同网络或设备之间的中间件设备或软件系统,主要作用是解决不同通信协议之间的不兼容性问题。它能够接收来自不同设备或系统的数据包,识别其携带的协议格式(如Modbus
    的头像 发表于 08-13 14:04 612次阅读
    <b class='flag-5'>协议</b><b class='flag-5'>解析</b>网关是什么?有什么功能?

    打破协议壁垒,CAN转EtherCAT连接工业相机秒变跨国CP”!

    传感器控制;EtherCAT低延迟、高吞吐,适配实时图像传输。当需要将CAN相机接入EtherCAT网络时,耐达讯通信技术CAN转EtherCAT网关成为核心桥梁,通过数据帧解析与映射实现协议
    发表于 07-14 16:20

    一文读懂CAN XL协议

    随着汽车和工业应用中数据通信量的增加,传统的CAN协议已无法满足更高的数据速率需求。传统CAN协议在数据速率和总线负载能力方面存在限制,难以满足高带宽和高实时性的应用场景。为此,
    的头像 发表于 07-03 14:53 3666次阅读
    一文读懂<b class='flag-5'>CAN</b> XL<b class='flag-5'>协议</b>

    改造神器,profinet转CAN协议网关在三高炉的场景应用分享

    profinet转CAN协议网关在三高炉的场景应用
    的头像 发表于 06-03 15:49 414次阅读
    改造神器,profinet转<b class='flag-5'>CAN</b><b class='flag-5'>协议</b>网关在三高炉的场景应用分享

    CAN协议转换器:工业互联的智能桥梁

    无缝对接的迫切需求。作为打通异构网络的关键设备,CAN协议转换器正成为工业互联的重要枢纽。本文将从技术原理、核心功能及行业应用三个维度解析CAN协议
    的头像 发表于 04-18 15:51 526次阅读

    CAN报文流程解析

    CAN报文流程解析,直流充电桩上的CAN通讯解析过程
    发表于 03-24 14:03 10次下载

    CAN通信协议——中文版

    资料介绍: 本资料是面向 CAN 总线初学者的 CAN 入门书。对 CAN 是什么、CAN 的特征、标准规格下的位置分布等、 CAN 的概要
    发表于 03-22 15:27

    浅谈CAN协议转换模块

    CAN(Controller Area Network)协议转换模块在现代工业自动化、汽车制造、航空航天等领域扮演着至关重要的角色。作为连接不同CAN网络或CAN与其他通信
    的头像 发表于 02-05 16:37 752次阅读

    基于Vector工具进行CAN协议错误帧的分析实践

    CAN(ControllerAreaNetwork)协议是当前使用最普遍的车载通信协议之一,其优点不只体现在多主并行、最高达1Mbit/sec的传输速率(针对标准CAN)、基于优先级的
    的头像 发表于 01-15 10:03 1003次阅读
    基于Vector工具进行<b class='flag-5'>CAN</b><b class='flag-5'>协议</b>错误帧的分析实践

    气体净化黑科技揭秘CAN转Profinet网关神器

    不同类型的网络需求。今天,我们将探讨一个特殊的设备——开疆智能CAN转Profinet网关,并解析其在气体净化设备中的应用。让我们了解这两种通信协议
    的头像 发表于 12-27 19:10 946次阅读
    气体净化黑科技揭秘<b class='flag-5'>CAN</b>转Profinet网关神器