STM32 CAN总线通信学习笔记(一)

本文介绍了STM32控制器局域网络CAN的基本概念,包括CAN总线的特点如多主控制、错误检测功能,以及CAN协议的帧类型如数据帧和遥控帧的结构。此外,还详细阐述了帧的优先级决定机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

STM32 CAN总线通信学习笔记(一)

一、CAN总线简介

CAN 是控制器局域网络(Controller Area Network, CAN)的简称。CAN采用数据块编码的方式,数据块根据帧的类型,能够让挂载在总线上的不同节点接收到相同的数据,再根据每个节点的配置对信息进行选择性处理(处理or丢弃)。CAN总线具有以下特点:

1. 多主控制
在总线空闲时,所有的单元都可以发送消息;具有CSMA/CA机制,即最先访问总线的单元可获得发送权;多个单元同时发送消息时,优先级高的标志(ID)单元可获得发送权,其中ID并不是发送的目的地址,而是表示访问总线的消息的优先级,仲裁机制会对消息ID的每个位继续比较,仲裁为高优先级的单元可继续发送消息,仲裁失败的单元则停止发送而进行接收工作。此处对CAN组网编程十分重要!!!

2. 系统柔软性
由于与总线相连的单元没对应的地址信息,因此在编程时比较方便,增加总线上的单元,已连接的其他的单元的软硬件以及应用层都不需要改变。

3. 通信速度
在通信距离小于40m时,速度最高1Mbps,最远可达10km,此时速率小于5Kbps。同一个网络中,所有的单元必须设定为同一个通信速度,类似于串口中要设置为相同的波特率。

4. 错误检测功能、错误通知功能、错误恢复功能
(1)所有的单元都可以检测错误;
(2)检测出错误的单元会立即同时通知其他所有单元;
(3)正在发送消息的单元一旦检测出错误,会强制结束当前的发送。被强制结束发送的单元会不断反复地重新发送此消息直到成功发送为止。

5. 故障封闭
CAN总线可以判断出错误的类型是总线上暂时的数据错误(如外部噪声干扰)还是持续的数据错误(如单元内部故障、断线等),由此功能,当总线上发生持续数据错误时,可将引起此故障的单元从总线上隔离出去。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值