CAN总线学习笔记-CAN物理层

CAN介绍

        CAN总线:控制器局域网总线(类似一个局域网网络,网络中任何一个节点都可以向其他节点发送数据)

CAN总线特性:

        两根通信线(CAN_H、CAN_L)

        差分信号通信,抗干扰能力强

        高速CAN(ISO11898):125k~1Mbps, <40m

        低速CAN(ISO11519):10k~125kbps, <1km

        异步,无需时钟线,通信速率由设备各自约定

        半双工(不能同时发送和接收),可挂载多设备,多设备同时发送数据时通过仲裁判断先后顺序

        11位/29位报文ID,用于区分消息功能,同时决定优先级(ID号小的优先发送)

        CAN总线通过广播自己的消息来实现多设备的通信,CAN总线中的每个设备都可以广播消息,每个消息都加一个ID用于区分功能

        一个数据帧(一次发送)可配置1~8字节的有效字节

        可实现广播式和请求式两种传输方式

        应答、CRC校验、位填充、位同步、错误处理等特性

主流通信协议对比

        UART适用于点对点的通信,I2C、SPI主要适用于一主多从的情况,其中SPI主要用于需要高速通信的场景,那假如我需要的场景是,多个点(主控)相互通信,UART、I2C、SPI就不行了,这时候就引进了CAN通信,也就是可以实现多个主控相互通信。

CAN硬件电路

        每个设备通过CAN收发器挂载在CAN总线网络上

        CAN控制器引出的TX和RX与CAN收发器相连,CAN收发器引出的CAN_H和CAN_L分别与总线的CAN_H和CAN_L相连

        高速CAN使用闭环网络,CAN_H和CAN_L两端添加120Ω的终端电阻(具有收紧作用,因为两个线是连在一起的)

        低速CAN使用开环网络,CAN_H和CAN_L其中一端添加2.2kΩ的终端电阻

        CAN默认就是1,如果想发送0的时候,就拉开两个线,产生信号的差分,就是发送0了

CAN电平标准

        CAN总线采用差分信号,即两线电压差(VCAN_H-VCAN_L)传输数据位

高速CAN规定:

        电压差为0V时表示逻辑1(隐性电平)

        电压差为2V时表示逻辑0(显性电平)

低速CAN规定:

        电压差为-1.5V时表示逻辑1(隐性电平)

        电压差为3V时表示逻辑0(显性电平)

CAN物理层特性

相关推荐

  1. CAN总线协议

    2024-06-11 04:06:01       36 阅读
  2. Kvaser使用(Can总线

    2024-06-11 04:06:01       184 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-11 04:06:01       5 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-11 04:06:01       5 阅读
  3. 在Django里面运行非项目文件

    2024-06-11 04:06:01       4 阅读
  4. Python语言-面向对象

    2024-06-11 04:06:01       6 阅读

热门阅读

  1. 算法训练营day52

    2024-06-11 04:06:01       13 阅读
  2. ABSD-系统架构师(七)

    2024-06-11 04:06:01       14 阅读
  3. document.queryselector怎么用

    2024-06-11 04:06:01       18 阅读
  4. Centos7.9部署单节点K8S环境

    2024-06-11 04:06:01       14 阅读
  5. leetcode 40. 组合总和 II

    2024-06-11 04:06:01       20 阅读
  6. Cordova WebView重定向到网站

    2024-06-11 04:06:01       22 阅读
  7. 重写setter方法要小心递归调用

    2024-06-11 04:06:01       8 阅读