自学内容网 自学内容网

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控制器位时序

 


原文地址:https://blog.csdn.net/L_1068/article/details/145203140

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!