CAN波形时序解析

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

===============
总线上执行逻辑上的线“与”时,显性电平的逻辑值为“0”,隐性电平为“1”。
“显性”具有“优先”性,只要有一个单元输出显性电平,总线上即为显性电平。
本文中指二进制bit位

1 数据帧组成

can信号波形,单片机C语言,CAN总线,单片机

2 收发器引脚波形

can信号波形,单片机C语言,CAN总线,单片机

3 波形数据解析

can信号波形,单片机C语言,CAN总线,单片机

帧起始段
  • ① 帧起始位 SOF
仲裁段

仲裁段包括:11位基本ID、1位SRR、1位IDE、18位扩展ID、1位RTR。

  • ② 位填充
    位填充是为防止突发错误而设定的功能。当同样的电平持续 5 位时则添加一个位的反型数据。
    位填充的构成如图所示。

can信号波形,单片机C语言,CAN总线,单片机
(1) 发送单元的工作在发送数据帧和遥控帧时, SOF~CRC 段间的数据,相同电平如果持续 5 位,在下一个位(第 6 个位)则要插入 1 位与前 5 位反型的电平。
(2) 接收单元的工作在接收数据帧和遥控帧时, SOF~CRC 段间的数据,相同电平如果持续 5 位,需要删除下一个位(第 6 个位)再接收。如果这个第 6 个位的电平与前 5 位相同,将被视为错误并发送错误帧。

  • ③ 去掉位填充后11位基本ID,0x00。
  • ④ SRR位,扩展格式,代替标准帧的 RTR 位。
  • ⑤ IDE位,扩展格式,识别符扩展位 。标准格式里的 IDE 位为“显性”,而扩展格式里的 IDE 位为“隐性”。
  • ⑥ 去掉位填充后的18位扩展ID,00 0001 0011 0001 0100,得到0X01314。
  • ⑦ RTR位,仲裁段的最后一位,该位在 数据帧 里必须为“显性”,而在 远程帧 里必须为“隐性”。

can信号波形,单片机C语言,CAN总线,单片机

控制段

控制段包括:1位r1、1位r0、4位DLC长度码。

  • ⑧ r1位,保留位,必须以显性电平发送。但接收方可以接收任意电平。
  • ⑨ r0位,保留位,必须以显性电平发送。但接收方可以接收任意电平。
  • ⑩ DLC位,4位数据长度码,必须为 0~8 字节。0x8表示数据长度是8个字节。数据长度码和字节数的关系如表所示。
    can信号波形,单片机C语言,CAN总线,单片机

数据段

can信号波形,单片机C语言,CAN总线,单片机

数据段可包含 0~8 个字节的数据。从 MSB(最高位)开始输出。


can信号波形,单片机C语言,CAN总线,单片机

CRC段

CRC段包括:CRC校验码和CRC界定符。

  • ⑫ CRC段,15位CRC校验码。
  • ⑬ CRC界定符,用于分割后面的ACK 段 。

can信号波形,单片机C语言,CAN总线,单片机

ACK段
  • ⑭ ACK 段发送 2 个位的隐性位。

第一位若为显性,表示应答ACK,接收方收到正确消息。若为隐性,表示应答无NAK。图中只有一个发送节点,信号为NAK。

第二位是应答界定符,是一个必须为“隐性”的位。文章来源地址https://www.toymoban.com/news/detail-692652.html

帧结束
  • ⑮ 帧结束由7位显性位构成。

到了这里,关于CAN波形时序解析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 基于51单片机的四种波形信号发生器仿真设计(仿真+程序源码+设计说明书+讲解视频)

    本设计 (仿真+程序源码+设计说明书+讲解视频) 仿真原版本:proteus 7.8 程序编译器:keil 4/keil 5 编程语言:C语言 设计编号:S0015 1、本设计采用AT89C51单片机作为控制核心,外围采用数字/模拟转换电路(DAC0832)、运放电路(LM324)、按键和LCD1602液晶显示电路。 2、电路采用单

    2024年02月05日
    浏览(46)
  • STM32F407单片机HAL库CAN2不能接收数据解决方法

      最近在使用stm32F407的片子调试can通信,直接在正点原子的代码上修改调试,调试can1的时候,基本没啥问题,收发都正常,使用查询模式和中断模式都可以。但是当修改到can2的时候,可以正常发送数据,但是中断函数始终进不去。折腾了一两个小时终于搞定了。下面将解

    2024年02月16日
    浏览(46)
  • 51单片机:Keil软件问题warning C318: can‘t open file ‘REGX52.H‘

    一、问题说明         出现这种问题,是因为你的软件没有导入下载的头文件。 二、 解决方法                  按步骤来先点击 config flash tool 再点 C51 然后导入路径即可。           点击上图的图标添加路径;   然后你的 Keil 安装路径 C51-INC 然后从里面选取

    2024年02月13日
    浏览(73)
  • CAN数据帧格式解析与波形实例

    CAN总线的数据帧有标准帧和扩展帧两种格式,区别在于标准帧具有 11-bit 的帧ID,扩展帧具有 29-bit 的帧ID; CAN数据帧由以下七个段组成: 1、帧起始,又叫SOF(Start of Frame):帧起始位,表示一帧的开始; 2、仲裁段:决定该帧在总线传输上的优先级的数据段,根据仲裁段ID码长度

    2024年02月15日
    浏览(30)
  • 【单片机】UART、I2C、SPI、TTL、RS232、RS422、RS485、CAN、USB、SD卡、1-WIRE、Ethernet等常见通信方式

    在单片机开发中,UART、I2C、RS485等普遍在用,这里做一个简单的介绍 UART口指的是一种物理接口形式(硬件)。 UART是异步(指不使用时钟同步,依靠帧长进行判断),全双工(收发可以同时进行)串口总线。它比同步串口复杂很多。有两根线,一根TXD用于发送,一根RXD用于接收

    2024年02月11日
    浏览(43)
  • 关于Keil开发C51单片机的头文件“REGX52.H“问题。其他类型的warning C318:can‘t open fine头文件也可以按照这个步骤来

    我用的是宏晶STC的入门板子,最近在学习写代码的时候也是遇到了这个问题,这个\\\"REGX52.H\\\"是只能用大写的,我们也必须用大写。 其他类型的板子也可以按照最下面的步骤试试;    第一步,我们先点开魔法棒   第二步,我们点开魔法棒后按箭头步骤点击 第三步 :打开后新建,选择你

    2024年02月12日
    浏览(40)
  • 单片机课程设计波形发生器

    怎么说呢,前面半个月被这个单片机课程设计搞得焦头烂额的,再加上运气属实有点“好”,就脾气有点“暴躁”,好的,也就骂了半天的脏话。有一说一,没有素质确实舒服。 好了,事情目前是过去了,那就好好回顾一下遇到的问题,以及找到了怎样的解决方案,和最后仍

    2024年02月09日
    浏览(52)
  • 单片机实验——简易波形发生器设计

    波形发生器广泛地应用于电子和通信等领域,是应用最广泛的电子仪器之一,本设计用51单片机以及DAC0832实现基本波形的输出,参考电路如下: 可以产生方波、三角波、正弦波、锯齿波等波形,用仿真的示波器查看。 用4个按键分别控制输出相应波形。 利用C51设计程序完成以

    2024年02月12日
    浏览(50)
  • 51单片机入门教程(4)——波形发生器

    目录 1、总述 2、系统硬件设计  3、系统软件设计思路  3、测试与分析 (1)Proteus仿真测试 (2)直流稳压电源测试 (3)实物测试 该篇为51单片机入门教程的实战篇 ,本篇介绍了以51单片机和DAC0832数模转换芯片为核心的波形发生器,并对DAC0832和UA741的结构和工作原理以及电

    2024年02月08日
    浏览(50)
  • 基于51单片机的DAC0832波形发生器

    输出1HZ正弦波、三角波、方波、锯齿波 使用LCD1602显示 DAC0832的D0~D7数据输入口,IOUT1、IOUT2互补输出口,RFB反馈端口、 VREF基准电压值(一般是5V)。用定时器控制段码表输出速度来控制波形的频率。 (定时数值)*10^(-6)*256=波形频率。 ( 1 )锯齿波的实现原理:   锯齿波的实现

    2024年02月06日
    浏览(89)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包