CAN协议详细介绍

CAN出现的原因:为什么要提出CAN协议为了减少线束数量,通过多个LAN进行大量的数据高速通讯,本质是为了节省成本,减少工程使用的复杂度,提供产品的可靠度。

时间节点 :1986博世提出CAN协议1993年ISO发布CAN标准ISO11898(118我要发发了去98酒吧) 高速CAN以及ISO11519(115 我要19药酒)低速CAN。

低速CAN通信速率:10-125K 长度可以达到1000米,越慢反而距离越远

高速CAN通讯速率:125-1M  <=40M 距离好近

  • CAN2.0A定义了11位标识符,适用于标准帧。
  • CAN2.0B扩展了标识符的长度,定义了29位标识符,适用于扩展帧。

CANFD 通讯速率5M,并且兼容经典CAN,遵循IS011898-1做数据收发

CAN的结构图:

 

 

 

 

 CAN中断电阻2个作用:1.传输线理论减少波形反射 2.收紧CAN的电平状态

 

2.2K电阻放置回波反射作用

 

仲裁段到RTR:标准数据帧11+1  12位,

扩展帧组成:

标准帧组成:

扩展帧11+2+18+1=32位

  • RTR位(Remote Transmission Request Bit),译作远程传输请求位,它是用于
  • 区分数据帧和遥控帧的,当它为显性电平时表示数据帧,隐性电平时表示遥控
  • 帧。
  • • IDE位(Identifier Extension Bit),译作标识符扩展位,它是用于区分标准格式
  • 与扩展格式,当它为显性电平时表示标准格式,隐性电平时表示扩展格式。
  • • SRR位(Substitute Remote Request Bit),只存在于扩展格式,它用于替代标
  • 准格式中的RTR位。由于扩展帧中的SRR位为隐性位,RTR在数据帧为显性
  • 位,所以在两个ID相同的标准格式报文与扩展格式报文中,标准格式的优先级
  • 较高。
  • 控制段
  • 在控制段中的r1和r0为保留位,默认设置为显性位。最主要的是DLC段(Data
  • Length Code),译为数据长度码,它由4个数据位组成,用于表示本报文中的数
  • 据段含有多少个字节,DLC段表示的数字为0~8。
  • 数据段
  • 数据段为数据帧的核心内容,它是节点要发送的原始信息,由0~8个字节组成,
  • MSB先行。
  • CRC段
  • 为了保证报文的正确传输,CAN的报文包含了一段15位的CRC校验码,一旦接收节点算出的CRC码跟接收到的CRC码不同,则它会向发送节点反馈出
  • 错信息,利用错误帧请求它重新发送。CRC部分的计算一般由CAN控制器硬件完成,出错时的处理则由软件控制最大重发数。
  • 在CRC校验码之后,有一个CRC界定符,它为隐性位,主要作用是把CRC校验码与后面的ACK段间隔起来。
  • ACK段
  • ACK段包括一个ACK槽位,和ACK界定符位。类似I2C总线,在ACK槽位中,发
  • 送节点发送的是隐性位,而接收节点则在这一位中发送显性位以示应答。在ACK
  • 槽和帧结束之间由ACK界定符间隔开。
  • 帧结束
  • EOF段(End Of Frame),译为帧结束,帧结束段由发送节点发送的7个
  • 隐性位表示结束。

第2讲 CAN基础知识介绍(下)_哔哩哔哩_bilibili

CAN总线入门教程 - 持续更新中_哔哩哔哩_bilibili

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
嵌入式总线协议是用于连接和通信嵌入式系统中各个组件的协议。它定义了硬件接口和通信规范,使得不同的设备能够在同一个总线上进行数据传输和交互。 以下是一些常见的嵌入式总线协议: 1. I2C(Inter-Integrated Circuit):I2C是一种串行的、双向的、多主从结构的总线协议。它使用两根线(SDA和SCL)进行数据传输,在同一个总线上可以连接多个设备。I2C协议常用于连接传感器、存储器、扩展IO等设备。 2. SPI(Serial Peripheral Interface):SPI是一种串行的、全双工的、点对点的总线协议。它使用四根线(MOSI、MISO、SCK和SS)进行数据传输,支持高速通信。SPI协议常用于连接存储器、显示器、传感器等设备。 3. UART(Universal Asynchronous Receiver-Transmitter):UART是一种异步的串行通信协议。它使用两根线(TX和RX)进行数据传输,通过发送和接收数据字节实现通信。UART协议广泛应用于串口通信,如连接计算机和外部设备、调试和配置嵌入式系统等。 4. CAN(Controller Area Network):CAN是一种串行的、多主从结构的总线协议。它主要用于在汽车和工业领域中连接和通信各种控制器和传感器。CAN协议具有高可靠性和抗干扰能力,支持远距离通信。 5. USB(Universal Serial Bus):USB是一种通用的、高速的、热插拔的总线协议。它支持主从结构,可以连接各种外部设备,如打印机、摄像头、存储设备等。USB协议在计算机和嵌入式系统中广泛使用。 这些嵌入式总线协议都有各自的特点和适用场景,开发者可以根据具体需求选择合适的协议来实现设备之间的通信和数据交换。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值