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)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .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