随笔 - 733  文章 - 2  评论 - 12  阅读 - 92万

CAN总线学习

CAN总线优点:

  •   相比RS485从机只能被动等待主机轮询,CAN总线可以多主,只要总线空闲就可以向总线发送帧信息(数据帧,远程帧,错误帧,过载帧,帧间隔)
  • 抗干扰,可靠性(内有检测死机(TEC/REC的收发超时计数,超过255后,CAN模块进入BUS-OFF模式,此节点不能发送也不能接收避免节点造成系统死机))
  • 速度快,通讯距离远,标准CAN最高速度1Mbsp/8字节,CANFD最高10Mbps/64字节。
  • 物理差分线:单片机引脚的逻辑电平0,被CAN收发器(PHY)转换为显性电平(Dominant),逻辑电平1被转换为隐性电平(Reccesive)。总线上执行的是“线与”逻辑,只要有一个节点输出显性电平,那么总线上就是显性电平

使用注意:

  • 阻抗匹配:120欧电阻,与电缆长度无关但与信号频率有关,可消除不连续处的信号反射,且使CAN从显性快速恢复到隐性状态。
  • EMC防护,控制器到收发器的2根线最好用光耦6N137隔离,且屏蔽层单点接地。
  • 死机恢复:【初始化模式-》设置-》退出初始化模式进入运行模式,依靠的是寄存器初始化请求位(Initialization request)如STM32单片机中的ABOM位】可以手动复位也是其可靠性的一面。
  • 时钟容差:总线的速度越高,需要的时钟精度越高。一般在低于125kpbs时可以用低成本的陶瓷震荡器(ceramic resonators),更高的速度下建议使用晶体振荡器(Quartz,or Crystal Oscilators)
posted on   杰瑞鼠  阅读(435)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
历史上的今天:
2018-07-06 STM32之CAN
2017-07-06 宏 函数 内联函数inline
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示