当前位置: 首页 > article >正文

STM32-笔记44-CAN协议

一、什么是CAN协议?

        CAN协议,全称为 Controller Area Network (控制器局域网络),是一种广泛应用的 串行通信协议 ,最初由德国 BOSCH 公司开发,并已成为国际标准。
        CAN协议是一种基于 差分信号 的异步串行通信协议,采用双绞线作为传输介质,具有高性能、高 可靠性和独特的设计特点。

1.1、CAN协议与I2C\SPI协议的不同?

        与I2C、 SPI等具有时钟信号的同步通讯方式不同, CAN通讯并不是以时钟信号来进行同步的,它是一种异步通讯,只具有CAN_High和CAN_Low两条信号线,共同构成一组差分信号线,以差分信号的形式进行通讯。
       
CAN_High: 低速CAN ISO11519 )通信速率 10~125Kbps ,总线长度可达 1000 米。
CAN_Low: 高速CAN ISO11898 )通信速率 125Kbps~1Mbps ,总线长度 40 米。

1.2 特点:

  • 多主控制:支持多主方式,即任何一个节点都可以在总线上发送数据,其他节点根据需要进行接收。当两个以上的节点同时开始发送数据时,会根据标识符(ID)决定优先级。
  • 系统柔软性:与总线相连的单元没有类似于地址的信息,因此在总线上增加单元时,连接在总线上的其他单元的软硬件及应用层都不需要改变。
  • 通信速度快、距离远:数据传输速率较高,标准速率为125kbps,扩展速率可达1Mbps,且通信距离远,最远可达10KM(速率低于5Kbps)。
  • 错误检测与恢复:具有错误检测、错误通知和错误恢复功能,能够确保数据传输的可靠性。
  • 故障封闭功能:能够判断出错误的类型,并将引起故障的单元从总线上隔离出去。

二、CAN协议分层结构

详解CAN总线:CAN协议分层结构及功能-腾讯云开发者社区-腾讯云

这里分为两层解析:

物理层和协议层

https://download.csdn.net/download/L_1068/90279533

三、STM32 CAN控制器介绍

3.1 CAN控制器介绍

3.2 CAN控制器模式

3.3 CAN控制器框图

发送处理过程

接收处理过程

接收过滤器

3.4 CAN控制器位时序

 


http://www.kler.cn/a/513849.html

相关文章:

  • 联想电脑怎么用u盘装系统_联想电脑用u盘装win10系统教程
  • Springboot集成Elasticsearch8.0(ES)版本,采用JAVA Client方式进行连接和实现CRUD操作
  • 典型的 flask的 用户模型,使用 flask shell 添加数据
  • 艺术家迟首飞在特殊历史时刻展现中国艺术力量
  • MySQL管理事务处理
  • AIGC 生图应用场景与实操技巧
  • 蓝桥杯算法日常|c\c++常用竞赛函数总结备用
  • 电阻电位器可调电阻信号隔离变送器典型应用
  • 运算放大器应用电路设计笔记(四)
  • 【leetcode100】将有序数组转换为二叉搜索树
  • Scheme语言的物联网
  • 基于python的博客系统设计与实现
  • 【FISCO BCOS】二十四、通过Java SDK对FISCO BCOS进行压力测试
  • npm run dev 时直接打开Chrome浏览器
  • 【数据分享】1929-2024年全球站点的逐年最低气温数据(Shp\Excel\免费获取)
  • 工业相机 SDK 二次开发-Halcon 插件
  • 深入理解 Java 并发编程中的锁机制
  • C# HTTP/HTTPS 请求测试小工具
  • MyBatis 注解开发详解
  • 大数据和人工智能融合展望