CAN总线 知识点(江科大)(未完结)

本文介绍了CAN总线的基本概念、工作原理,包括STM32设备如何通过TJA1050收发器进行数据广播和请求模式通信,以及高速和低速CAN的区别。还对比了CAN总线与串口、I2C和SPI在应用场景中的优劣。
摘要由CSDN通过智能技术生成

视频:

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

CAN 通讯 实验 程序现象

接线图

有 3个STM32设备 作为CAN总线的 节点   均接入TJA1050 CAN收发器模块  将三个 CAN收发器的 CAN_H接在一起  CAN_L也接在一起

(设备一发送 设备二和设备三接收)按下设备一的按键  设备一 会广播TXID为555的数据(设置了设备一TXID为555) 数据长度为4字节 数据内容在最下面 

(设备二发送 设备一和设备三接收)按下设备二的按键  设备一 会广播TXID为666的数据(设置了设备一TXID为666) 数据长度为4字节 数据内容在最下面 (设备三同理)

CAN:可以 广播发送自己的数据  可以配置为 请求模式传输  我请求你了  你才发数据  每个设备还能设置过滤器 进行选择性的接收 

CAN简介

CAN总线:为差分信号(双绞线) 两根通讯线(CAN_H CAN_L)无需供地 

CAN总线 分为 高速CAN(ISO11898)  和  低速CAN(ISO11519) 

CAN总线: 半双工 所以不能同时发送和接收 多设备同时发送时 会通过仲裁判断先后顺序  根据报文ID仲裁。

报文ID 11位的叫标准格式   29位的 叫扩展格式  ID号小的优先发送

CAN总线与其他总线对比

应用场景:

串口:

点对点的 两个设备的互相通信  例如 单片机 和 电脑的 串口助手 点对点通讯。 (弊端:只能俩点对点通讯)(但两个设备都可以是主控  也就是 两主 一主一从)

I2C: 默认为高电平   如果想传输0  则把线路强制拉低 1 则总线不操作 实现线与的操作

一个单片机当主控  其他全部为从设备(外挂多个被动 传感器之类的模块) 主要  一主多从

SPI:

场景和 I2C类似  一主 多从(但通讯速率 最快 ) 应用于高速通信的场景

CAN: 如果想实现 有很多 主控单片机 相互进行通讯 比如 5个STM32 之间任意通信

 这时候就可以利用到 CAN总线了 , USART I2C SPI 都难以实现这个要求

CAN总线硬件电路:总线默认状态就是 1 

CAN收发器 就是一个芯片 主要实现 电平转换 输出驱动和输入采样 几个功能

STM32(CAN控制器) 与CAN收发器 TX接TX  RX接RX  无需交叉

高速 CAN总线:使用闭环网络 两端有120Ω的电阻

电阻作用: 1.防止回波反射  尤其是 高频信号、远距离传输的场景 如果不加终端电阻  信号波形会在线路终端反射,进而干扰原始信号   

加了终端电阻 且 阻抗匹配 则电平跳变会比较平稳

2. 在没有设备操作时  将两根差分线的电压 “收紧”   (收紧为 电平1  呈隐性) 使其电压一致。

收紧:在没有设备操作总线的情况下  电阻就和弹簧一样 将两根线(CAN_H CAN_L) 的电压拉到同一个电平 和I2C的上拉电阻很像。

如果某个设备想要发送 0 时   设备会操作总线 把总线 拉开(总线的电平拉开) 使其呈现0状态

当设备想要发送  1时 就不去碰总线 总线 在终端电阻的收缩下 自动默认为1状态。

低速 CAN总线:开环网络  CAN_H 和CAN_L 其中一端 +一个2.2KΩ的电阻。

没有形成环路  一端接到总线 另一端 悬空

电平标准:1为隐性   0为显性

高速CAN总线

电压差(是电压差!!!差!!)  0V  表示 逻辑1  (隐性电平)  因为没有压差

电压差(是电压差!!!差!!)  2V  表示  逻辑0   (显性电平) 因为有压差

 下图有两种 表示方式  一种是  逻辑电平  另一种 是  差分电平(有两根线 CAN_H和 L)

当CAN_H和L对地的电压都为2.5V时(压差为0): 表示当前 CAN总线 处于  逻辑1  的状态

当CAN_H对地电压3.5  L对地电压1.5V (压差 2V):表示 当前 处于 逻辑0  的状态

如果 CAN 想发送 101 数据流  则  CAN总线就会呈现出 两线收紧 两线张开 两线收紧的状况

总线  收紧状态:成为 隐性电平  张开状态(电压差增大 就很像张开):称为显性电平 

显性和隐性表现的是总线的状态 没有电压差 为 默认状态 所以叫隐性  

两线张开 产生电压差 需要设备干预 所以为  显性。

低速CAN总线

电压差(是电压差!!!差!!)  -1.5V  表示 逻辑1  (隐性电平)  因为没有压差

电压差(是电压差!!!差!!)  3V  表示  逻辑0   (显性电平) 因为有压差

因为低速CAN 传输距离更远 考虑到线路会有压降  所以把1和0的 电压差的 差距增大了

 CAN收发器:TJA1050(高速CAN收发器)

CAN物理层特性(总结)

  • 21
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
车载CAN总线是一种用于汽车电子系统之间进行通信的总线协议。它被广泛应用于现代汽车中,可以实现多个电子控制单元(ECU)之间的数据交换和通信。CAN总线具有以下基础知识点: 1. CAN是什么?CAN是“控制器局域网络”的缩写,是一种串行通信协议,用于在车辆电子系统中传输数据。 2. CAN的技术原理:CAN总线采用差分信号传输和冲突检测机制,能够实现高速、可靠的数据传输。 3. CAN总线的特点:CAN总线具有高可靠性、抗干扰能力强、传输速率高等特点,适用于复杂的汽车电子系统环境。 4. CAN与其他通信方案的比较:相比于其他通信方案,如LIN总线和FlexRay总线,CAN总线具有成本低、可扩展性好等优势。 5. CAN总线的作用:CAN总线用于连接和管理车辆的各个电子控制单元,如发动机控制单元、制动系统控制单元等,实现数据交换和协同工作。 6. CAN的发展历史:CAN总线协议最早由德国Bosch公司在1983年提出,并在之后的几十年间得到了广泛应用和发展。 7. ISO/OSI基本参照模型与CAN协议:CAN总线协议按照ISO/OSI参考模型进行了分层设计,其中数据链路层和物理层对应了CAN总线的通信规范和电气特性。 8. CAN总线协议标准:CAN总线协议有多个版本和标准,如CAN 2.0A、CAN 2.0B等,每个版本都定义了不同的数据帧格式和通信规则。 9. CAN总线协议数据链路层中的帧:CAN总线的数据链路层使用了两种帧格式,即标准数据帧和扩展数据帧,用于在CAN总线上传输数据和控制信息。 如果您还有其他相关问题,请告诉我。 相关问题: 1. 什么是CAN总线的差分信号传输? 2. CAN总线如何实现冲突检测? 3. 为什么CAN总线适用于汽车电子系统?

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值