CAN总线报文格式———标准数据帧

这篇具有很好参考价值的文章主要介绍了CAN总线报文格式———标准数据帧。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

标准数据帧 : 用于节点向外传送数据

标准数据帧由帧起始、仲裁段、控制段、数据段、CRC段、ACK段、帧结束等组成。

一、总线空闲(Bus Idle)

CAN总线空闲时,总线上会输出持续的高电平“1”。当总线空闲时任何连接的单元都可以开始发送新的报文。

CAN总线报文格式———标准数据帧,STM32学习手记24-bxCAN,网络,stm32,嵌入式硬件,单片机


二、帧起始(Start of Frame)

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

CAN总线报文格式———标准数据帧,STM32学习手记24-bxCAN,网络,stm32,嵌入式硬件,单片机


三、仲裁段(Arbitration Field)

仲裁段用于写明需要发送到目的CAN节点的地址、确定发送帧类型(当前发送的是数据帧还是遥控帧),并确定发送的帧格式是标准数据帧还是扩展数据帧。

标准数据帧的仲裁段由11位ID标识符(0x000 ~ 0x7FF)和远程发送请求位RTR(Remote Transmission Request BIT)组成。

如下图:RTR = 0 时为数据帧,RTR = 1 时为遥控帧。CAN的线与机制决定了相同ID下数据帧优先级高于遥控帧优先级。

CAN总线报文格式———标准数据帧,STM32学习手记24-bxCAN,网络,stm32,嵌入式硬件,单片机


四、控制段(control Field)

标准数据帧的控制段由6位组成,如下图。IDE(Identifier Extension Bit)为扩展标识符,IDE = 0 时为标准数据帧,IDE = 1 时为扩展数据帧。CAN的线与机制决定了相同ID下标准数据帧优先级高于扩展数据帧优先级。

R0作为保留位,未使用,恒为 0。

接下来4位 为数据长度位 DLC(Data Length),CAN总线为了保证每一帧的短小精悍,约定了数据帧长度 DLC≤8;即一次最大传送8个字节的数据,然后让出总线重新仲裁,以保证更高优先级的数据能够即时占用总线发送。(确保CAN总线高优先级数据的实时性)

CAN总线报文格式———标准数据帧,STM32学习手记24-bxCAN,网络,stm32,嵌入式硬件,单片机

五、数据段(Data Field)

标准数据帧传送时,紧随控制段的为数据段,数据段的长度由DLC(Data Length)决定,如DLC = 2时,则填充 2 个字节的数据。

数据传送时,首先发送最高有效位MSB,依次发送至最低有效位LSB。

CAN总线报文格式———标准数据帧,STM32学习手记24-bxCAN,网络,stm32,嵌入式硬件,单片机

六、CRC段

CRC段用于检查总线数据传输是否出错(如受电磁干扰,某一位或几位的电平反转),CRC段包括:15 个位的 CRC序列(CRC SEQUENCE)和1 个位的CRC界定符(CRC DELIMITER)构成。

CRC序列是根据多项式生成的 CRC 值,CRC 的计算范围包括:帧起始、仲裁段、控制段、数据 段。 接收方以同样的算法计算 CRC 值并进行比较,不一致时会通报错误。

CAN总线报文格式———标准数据帧,STM32学习手记24-bxCAN,网络,stm32,嵌入式硬件,单片机

 七、ACK段

ACK段用来确认是否正常接收。由 ACK 槽(ACK SLOT)和 ACK 界定符(ACK DELIMITER)2 个位构成。

发送节点在 ACK 段发送 2 个位的隐性位“11”。当接收节点正确地接收到有效的报文时,接收器就会在ACK槽(ACK SLOT)位发送 ACK 应答信号 “0”。发送节点读取到总线上隐性电平“0”,则代表发送成功。否则将根据设置重新竞争总线,再次发送此数据帧。

CAN总线报文格式———标准数据帧,STM32学习手记24-bxCAN,网络,stm32,嵌入式硬件,单片机

八、帧结束(End of Frame)

帧结束为ACK段DEL界定符后紧随的 7 个“隐性”位组成。

CAN总线报文格式———标准数据帧,STM32学习手记24-bxCAN,网络,stm32,嵌入式硬件,单片机

九、间歇场(Intermission)

3位间隔场ITM与帧结束EOF、ACK的DEL界定符共同组成11位的隐性位“1” ,以分割两帧数据传送。

CAN总线报文格式———标准数据帧,STM32学习手记24-bxCAN,网络,stm32,嵌入式硬件,单片机

十、总线空闲(Bus Idle)

总线空闲为非必须段,两帧数据连续传输时,间歇场ITM可直接连接帧起始SOF。

CAN总线报文格式———标准数据帧,STM32学习手记24-bxCAN,网络,stm32,嵌入式硬件,单片机

综上,发送1个字节时,CAN总线需要传送 55bit 位,发送n个字节时需要传送 55+8 ×(n-1)个bit位。

CAN总线报文格式———标准数据帧,STM32学习手记24-bxCAN,网络,stm32,嵌入式硬件,单片机文章来源地址https://www.toymoban.com/news/detail-814012.html

到了这里,关于CAN总线报文格式———标准数据帧的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32在进行CAN总线多节点通信时,同时发数据会一直收不到某设备数据的问题及解决

    最近在开发Canopen项目中,进行一主多从设备通信时,主站发送同步帧,两个从站往往只有帧ID优先级高的设备可以让主站接收到数据,而另一个从设备的数据往往接收不到。但当我关闭其中一个can从设备,另一个就可以和主站设备通信正常。经过排查发现,是由于Can的冲突解

    2024年02月03日
    浏览(58)
  • CAN总线详解及STM32的CAN通信编程指南

    对于CAN通信而言,本人之前也未接触了解过,由于实习的技术要求,因此也花费了一段时间对CAN通信进行学习,并且实现了基于STM32的CAN环回静默模式通信,因此写一遍比较详细的文章对该内容进行总结。本文的参考资料有STM32的中文参考手册、协议手册等。话不多说开始吧!

    2024年02月11日
    浏览(44)
  • STM32 CAN总线过滤器设置

                                                                                                         CAN过滤器配置以及常见问题总结 过滤器组 在具有两个CAN的产品中,CAN1和CAN2分享28个过滤器组,只有一个CAN的系列产品中有14个过滤器组,用以对接收到的帧进行过

    2024年01月17日
    浏览(47)
  • STM32的CAN总线调试经验分享

    CAN总线简易入门教程 CAN总线显性电平和隐性电平详解 STM32的CAN总线调试经验分享 最近负责的一个项目用的主控芯片是 STM32F407IGT6 ,需要和几个电机控制器进行通讯,有很多参数需要进行监控。负责固件开发的同事一直搞不定一个问题。就是开启 CAN 的接收中断,接收不到数据

    2024年01月20日
    浏览(44)
  • CAN总线基础详解以及stm32的CAN控制器

    目录 CAN简介 CAN总线拓扑图 CAN总线特定 CAN应用场景 CAN的物理层 CAN的协议层 CAN数据帧介绍 CAN位时序介绍 数据同步过程 硬件同步 再同步 CAN总线仲裁 stm32的CAN控制器 CAN控制器介绍 CAN控制器模式 CAN控制器框图 接收过滤器 CAN控制器波特率计算 CAN相关寄存器 CAN主控制寄存器(

    2024年01月25日
    浏览(49)
  • STM32CubeIDE开发(二十六), STM32的CAN总线开发要点

    目录 一、CAN总线简介         1.1 CAN概述         1.2 CAN总线较其他串行通信优势         1.3 CAN总线通信          1.4 报文种类及格式          1.5 CAN应用 二、CAN工程创建及配置         2.1 工程设计及原理框图          2.2 工程创建接配置 三、代码设计

    2023年04月15日
    浏览(50)
  • STM32基于CAN总线协议控制步进电机

    如上图所示,实现了以下功能: 1.两块stm32单片机通过CAN控制器与收发器进行半双工通信; 2.stm32主机通过检测按键,切换不同的模式,将不同模式的case值发送给stm32从机; 3.stm32从机根据收到的case值,控制步进电机进行不同的运动操作; 4.OLED用于显示收发内容与按键状态等

    2024年01月19日
    浏览(51)
  • STM32+收发器实现CAN和485总线

    RS485总线是一种常见的(Recommended Standard)串行总线标准(485是它的标识号),采用平衡发送与差分接收的方式,因此具有抑制共模干扰的能力。CAN是控制器局域网络(Controller Area Network, CAN)的简称,是一种能够实现分布式实时控制的串行通信网络,属于CSMA(多路载波侦听)/CD(冲突检测

    2024年02月05日
    浏览(52)
  • CAN总线(五)STM32的CAN波特率设置方法(完整版)

     ①HSI是高速内部时钟,RC振荡器,频率为8MHz。   ②HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz。 ③LSI是低速内部时钟,RC振荡器,频率为40kHz。 ④LSE是低速外部时钟,接频率为32.768kHz的石英晶体。 ⑤PLL为锁相环倍频输出,其时钟输入

    2024年02月07日
    浏览(30)
  • STM32 基础知识(探索者开发板)--159讲 CAN总线

    CAN基础知识:ISO国际标准化的串行通信协议,为了减少线束的数量 a.多主控制  每个设备都可以主动发送数据 b.通信速度较快,通信距离远。最高1Mbps(距离小于40M),最远可达10KM(速率低于5Kbps) c.具有错误检测、错误通知和错误恢复功能 d.故障封闭功能  能发现故障,且可以把故

    2024年01月17日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包