一、介绍
CAN 是 Controller Area Network 的缩写(以下称为 CAN),是 ISO 国际标准化的串行通信协议。在北美和西欧,CAN 总线协议已经成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线,并且拥有以 CAN 为底层协议专为大型货车和重工机械车辆设计的 J1939 协议。

优点:
1、速度快,可以达到1Mbit
2、线少,2根线解决255台设备之间通信
3、组网简单,所有设备可以直接相互发送消息
4、抗干扰能力强,用到汽车和工业场合比较稳定
5、低功耗
6、有容错机制

二、硬件原理
首先需要单片机本身带can控制器,然后出去信号经过can驱动芯片转换为差分信号;

设备连接
汽车上的应用

电路网络

电平电压
驱动芯片将逻辑电转换成can_h和can_l差分信号
逻辑0对应显性 CAN_L 1.5V CAN_H 3.5V
逻辑1对应隐性 CAN_L 2.5V CAN_H 2.5V

具体标准在iso11898有详细介绍
can是异步通信
所以一个网络上的设备波特率要一样才能通信成功

协议
can一帧报文最多可以传输8个字节,每一帧自带id、校验、数据长度以及帧格式,’整个一帧协议实现由can控制器完成,不需要软件去组包,只需要在发送之前配置好波特率和帧格式即可实现收发

具体协议如下
SOF:帧起始1位
Identify:接下来的仲裁段有11位,即本数据帧的 ID 信息,决定着数据帧发送的优先级,也决定着其它设备是否会接收这个数据帧,禁止高 7 位都为隐性(禁止设定:ID=1111111XXXX), ID 信息的作用:① 如果同时有多个节点发送数据时,作为优先级依据(仲裁机制);② 目标节点通过 ID 信息来接受数据(验收滤波技术)。这些将在下文提出。
RTR:(Remote Transmission Request BIT) 位用于标识是否是远程帧(0,数据帧;1,远程帧),在数据帧里这一位为显性(逻辑 0)。
IDE:(Identifier Extension Bit),是用于区分标准格式与扩展格式,在标准格式中 IDE 位为显性,在扩展格式里 IDE 位为隐性。
r0:保留位,必须以显性电平发送。
DLC:发送数据长度,0到8,由 4 位组成,MSB 先行(高位先行),若接收方接收到 9~15 的时候并不认为是错误。
Data:数据,0~8 个字节(0 ~ 64位)组成,MSB 先行。
CRC:校验,该段用于检查帧传输错误,发送方以一定的方法计算包括:帧起始、仲裁段、控制段、数据段;接收方以同样的算法计算 CRC 值并进行比较,如果不同则会向发送端反馈出错信息,重新发送;计算和出错处理一般由 CAN 控制器硬件完成或由软件控制最大重发数。该段由 15 个位的 CRC 顺序和 1 个位的 CRC 界定符(用于分隔的位)组成,它为隐性位,主要作用是把CRC 校验码与后面的 ACK 段间隔起来。
ACK:由 ACK 槽(ACK Slot)和 ACK 界定符 2 个位组成,在 ACK 槽位中,发送端发送的为隐性位,而接收端则在这一位中发送显性位以示应答。在 ACK 槽和帧结束之间由 ACK 界定符间隔开,为隐性位。(发送 ACK/返回 ACK这个过程使用到回读机制,即发送方先在 ACK 槽发送隐性位后,回读到的总线上的电平为显性0,发送方才知道它发送成功了,不用重发)
EOF:帧结束, 7个隐性位表示结束。

帧类型

小汽车上面主要使用标准数据帧
货车上面主要使用拓展数据帧

编码规则
当出现相同极性的电平持续五位时,则添加一个极性相反的位,称为位填充
仲裁机制
当网络中出现多台设备同时发送的时候,发送数据的时候也能收到网络上的数据,当发送到id部分,发送当前如果位隐性,结果收到位显性则放弃当前发送,总线上只会出现优先级最高的报文

位同步

汽车电子can总线(一)物理层相关推荐

  1. 细说汽车电子通信总线之LIN总线协议详解

    内容提要 1. LIN总线概述 1.1 LIN总线特点及发展历史 1.2 LIN 总线协议的物理层(收发器) 2. LIN总线报文帧结构(Message Frame Structure)详解 2.1 ...

  2. 细说汽车电子通信总线之常见汽车电子串行通信总线(CAN、LIN、DSI、ISO-9141、SWCAN、J 1850)对比

    内容提要 引言 1. 常见汽车电子串行通信总线类型概述 1.1 不同总线的总线信号对比 1.2 不同总线类型的差异 1.3 不同总线通信速率对比 2. 总线的物理层(Physical Layer) 2 ...

  3. 细说汽车电子通信总线之CAN 2.0 总线协议详解

    引言 1. CAN总线发展历史与ISO规范 2. CAN总线主要功能特性 3. CAN 2.0总线协议的物理层电气特性 4. CAN 2.0总线协议消息报文详解 4.1 CAN2.0总线的通信报文帧格 ...

  4. can总线不加末端电阻_细说汽车电子通信总线之CAN 2.0 总线协议详解

    引言 1. CAN总线发展历史与ISO规范 2. CAN总线主要功能特性 3. CAN 2.0总线协议的物理层电气特性 4. CAN 2.0总线协议消息报文详解 4.1 CAN2.0总线的通信报文帧格 ...

  5. CAN总线技术 | 物理层01 - CAN信号电平

    文章目录 一.前言 二.CAN信号的电平 三.为什么要采用两根线(双绞线)的差分电平信号? 四.线与原理 一.前言 广州虹科录制的CAN总线技术课程非常不错,建议同学们学习一下.B站的地址:https ...

  6. can总线短距离不用双绞线_CAN 总线(一) 物理层—屏蔽双绞线

    1.物理层一般要求 1.1 物理层 物理层实现网络中电控单元(ECU)的电连接.ECU 的数目限制于总线线路的负载承 受能力.根据本部分的电气参数定义,在特定网段上ECU 的最大数目定为30. 1.2 ...

  7. can总线短距离不用双绞线_can总线(一)物理层—屏蔽双绞线

    1 1 .物理层一般要求 1 . 1 物理层 物理层实现网络中电控单元( ECU )的电连接. ECU 的数目限制于总线线路的负 载承 受能力.根据本部分的电气参数定义,在特定网段上 ECU 的最大数 ...

  8. CAN总线技术 | 物理层04 - 终端电阻与双绞线(特性阻抗120欧)

    文章目录 一.前言 二.信号反射与信号振铃 一.前言 广州虹科录制的CAN总线技术课程非常不错,建议同学们学习一下.B站的地址:https://www.bilibili.com/video/BV1gD ...

  9. CAN总线技术 | 物理层03 - 采样点

    文章目录 一.前言 二.STM32CubeMX上采样点的设置 一.前言 广州虹科录制的CAN总线技术课程非常不错,建议同学们学习一下.B站的地址:https://www.bilibili.com/vi ...

最新文章

  1. 使用PHP+Sphinx建立高效的站内搜索引擎
  2. 【micropython】用python来进行BadUSB的USB-HID测试(含无线控制)
  3. 获取Sql服务器列表 (C#)
  4. web性能优化(理论)
  5. 前端学习(2598):按钮控制操作
  6. 一起来玩树莓派--解决官方docker源安装失败的问题
  7. C++函数返回局部变量
  8. sql server计算机用户权限,SQL Server新增用户并控制访问权限设置。
  9. nfine框架 上传文件,nfine(nfine快速开发框架)
  10. [NVIDIA] Ubuntu 16.04 安装 nvidia-384 + cuda-9.0
  11. VMware vCenter Server安装与配置
  12. 如何通过安全的网络防御XcodeGhost?
  13. 报表生成器FastReport .Net使用Windows.Forms教程
  14. 浏览器主页被篡改修复
  15. pytorch是什么?解释pytorch的基本概念
  16. docker可视化工具Shipyard
  17. SQL --子查询与临时表
  18. PS 有哪些小技巧让你好用到哭?
  19. 无线传感器网络期末复习知识点总结资料
  20. Shardingsphere的分库分表+读写分离+分页条件查询

热门文章

  1. shell循环loop
  2. 后台接口数量及粒度的一些思考总结
  3. 企业网络安全防护概述
  4. 最近做项目所积累的一些小知识(一)
  5. 2D横板跑酷游戏Boxman
  6. 【剑指Offer】最小的k个数---大顶堆 Java
  7. Kubernetes(三):k8s集群部署之kubeadm
  8. 交换机千兆和百兆对网速影响_千兆网线和百兆网线是否可以通用?
  9. 探索入门云计算风向标Amazon的ECS容器技术
  10. 全国计算机等级考试python教材.pdf_全国计算机等级考试二级教程Python语言程序设计(2018年版).PDF...