电子通信协议之CAN总线协议篇
关注、星标公众号,直达精彩内容
来源: 网路素材
CAN总线在硬件系统中占有一席之地,是国际上应用最广泛的现场总线之一,与我们收藏过的SPI、UART不同,属于“高端高效”系列。
嵌入式的工程师一般都知道CAN总线广泛应用到汽车中,其实船舰电子设备通信也广泛使用CAN,像机器人、工业、自动控制系统中,也都有广泛的应用。随着国家对海防的越来越重视,对CAN的需求也会越来越大。
概述
CAN(Controller Area Network)即控制器局域网,是一种能够实现分布式实时控制的串行通信网络。
想到CAN就要想到德国的 Bosch公司,因为CAN就是这个公司和Intel于80年代末开发的。
CAN有很多优秀的特点,使得它能够被广泛的应用。比如:传输速度最高到1Mbps,通信距离最远到10km,无损位仲裁机制,多主结构。
近些年来,CAN控制器价格越来越低,很多MCU也集成了CAN控制器。现在每一辆汽车上都装有CAN总线。
一个典型的CAN应用场景:
图1. 一个典型的CAN应用场景
CAN总线标准
CAN总线标准 只规定了物理层和数据链路层,需要用户自定义应用层。不同的CAN标准仅物理层不同。
图2. CAN总线标准
CAN收发器负责逻辑电平和物理信号之间的转换,如图3所示:
图3. CAN收发器的逻辑电平和物理信号转换
将逻辑信号转换成物理信号(差分电平),或者将物理信号转换成逻辑电平。
即从CAN控制芯片输出逻辑电平到CAN收发器,然后经过CAN收发器内部转换将逻辑电平转换为差分信号输出到CAN总线上,CAN总线上的节点都可以决定自己是否需要总线上的数据。具体的管脚定义如下表1所示:
表1. 管脚定义
CAN标准有两个,即 IOS11898(图4-1)和 IOS11519(图4-2),两者差分电平特性不同。图5展示了两个CAN标准的比对。
图4-1. ISO11898高速CAN电平
(高低电平幅度低,对应的传输速度快)
图4-2. ISO11519-2低速CAN电平
图5. CAN标准比对
*双绞线共模消除干扰,是因为电平同时变化,电压差不变。
物理层
CAN有三种接口器件,如下图6所示:
图6. CAN的三种接口器件
图7. 通过切换开关状态输出高低电平
多个节点连接,只要有一个为低电平,总线就为低电平,只有所有节点输出高电平时,才为高电平。所谓"线与"。可通过切换开关状态输出高低电平,如图7所示。
CAN总线有5个连续相同位后,就插入一个相反位,产生跳变沿,用于同步。从而消除累积误差。
和485、232一样, CAN的传输速度与距离成反比,如图8所示。
图8. CAN的传输速度与距离成反比
CAN总线的 终端电阻的接法如下图9所示:
图9. 低速/高速 CAN-bus终端电阻接法
增加终端电阻的目的是为了增强CAN通讯的可靠性,消除CAN总线终端信号反射干扰。
(注: 一般如果CAN总线使用的是在双绞线上运行,这时我们会增加120Ω的电阻。 为什么是120Ω,因为电缆的特性阻抗为120Ω,为了模拟无限远的传输线。)
数据链路层
CAN总线传输的是CAN帧,CAN的通信帧分成五种,分别为 数据帧、 远程帧、 错误帧、 过载帧和 帧间隔。
数据帧用来节点之间收发数据,是使用最多的帧类型; 、
远程帧用来接收节点向发送节点接收数据;
错误帧是某节点发现帧错误时用来向其他节点通知的帧;
过载帧是接收节点用来向发送节点告知自身接收能力的帧;
帧间隔是用于将数据帧、远程帧与前面帧隔离的帧。
CAN的报文格式
在总线中传送的报文,每帧由7部分组成。CAN协议支持两种报文格式,其唯一的不同是 标识符(ID)长度不同, 标准格式为11位,扩展格式为29位。
‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧ END ‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧
关注我的微信公众号,回复“加群”按规则加入技术交流群。
点击下面图片,有星球具体介绍,新用户有新人优惠券,老用户半价优惠,期待大家一起学习一起进步。
点击“阅读原文”查看更多分享,欢迎点分享、收藏、点赞、在看。
电子通信协议之CAN总线协议篇相关推荐
- 数字IC设计入门篇:APB总线协议学习心得
声明:本文章是本人学习AMBA APB协议的一些个人理解,仅用于学习交流之用.本人学习APB协议时参考的是ARM公司官方的APB协议技术规范文档(编号:IHI0024D).受限于本人的知识水平,本文 ...
- 关于I2C和SPI总线协议
IICvs SPI 现今,在低端数字通信应用领域,我们随处可见IIC (Inter-Integrated Circuit) 和 SPI (Serial Peripheral Interface)的身影 ...
- 《安富莱嵌入式周报》第280期:支持在线仿真编程的网页版电子开发,CAN总线防攻击实现,BigFAT 规范打破了 FAT 每个文件 4GB 的限制
往期周报汇总地址:嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - P ...
- 一文搞懂CAN FD总线协议帧格式
目录 1.为什么会出现CAN FD? 2.什么是CAN FD? 3.CAN FD和CAN总线协议帧异同 4.解析CAN FD帧结构 4.1.帧起始 4.2.仲裁段 4.3.控制段 4.4.数据段 4. ...
- 细说汽车电子通信总线之CAN 2.0 总线协议详解
引言 1. CAN总线发展历史与ISO规范 2. CAN总线主要功能特性 3. CAN 2.0总线协议的物理层电气特性 4. CAN 2.0总线协议消息报文详解 4.1 CAN2.0总线的通信报文帧格 ...
- 三种串行总线协议的区别(SPI、I2C和UART)
SPI.I2C跟UART三种串行总线协议的区别: (如果想了解SPI和I2C更多详细内容,可看 SPI总线(一):基本原理篇, SPI总线(二):驱动分析篇,SPI总线(三):驱动实例,i2c总线(基 ...
- can总线不加末端电阻_细说汽车电子通信总线之CAN 2.0 总线协议详解
引言 1. CAN总线发展历史与ISO规范 2. CAN总线主要功能特性 3. CAN 2.0总线协议的物理层电气特性 4. CAN 2.0总线协议消息报文详解 4.1 CAN2.0总线的通信报文帧格 ...
- [转]关于I2C和SPI总线协议的优缺点
关于I2C和SPI总线协议 IICvs SPI 现今,在低端数字通信应用领域,我们随处可见IIC (Inter-Integrated Circuit) 和 SPI (Serial Peripheral ...
- 简书大佬的笔记:一篇文章带你详解 HTTP 协议(网络协议篇一)
一篇文章带你详解 HTTP 协议(网络协议篇一) 本篇文章篇幅比较长,先来个思维导图预览一下. 一张图带你看完本篇文章 一.概述 1.计算机网络体系结构分层 计算机网络体系结构分层 2.TCP/IP ...
- 从零开始学习CAN总线协议(一)
最近开始零基础学习CAN总线协议,想通过通俗易懂的方式来讲述一些相关的知识点,一部分是我自己的理解,另一部分是参考其他博主的文章,希望能对CAN总线协议有更深一步的理解和学习. CAN总线基本概念 C ...
最新文章
- Python-time
- python【力扣LeetCode算法题库】892-三维形体的表面积
- hdu 1251 统计难题(trie树入门)
- Socket网络协议之一
- python 爬取svg数据_抓取SVG图表
- 未来的科学计算机作文800字,未来的高科技学校作文800字
- Java笔记-多线程协调及ReentrantLock的使用
- ssh : how to add hostkey to “know_hosts”
- 【学习Android NDK开发】Java通过JNI调用native方法
- json:JSONObject包的具体使用(JSONObject-lib包是一个beans,collections,maps,java arrays和xml和JSON互相转换的包)...
- git 常见操作合集
- oracle sql语句_7个维度查看oracle执行计划的sql语句执行效率
- freeswitch 录音录像模块和内核
- YDOOK:版权C符号:怎样在任何地方 任何位置快速输入版权符号 © 快捷键
- easyui filebox 上传类型控制
- Win32基础学习笔记
- 沥青路面粘弹性力学分析基础研究
- 学习Matlab的第一个程序——用二分法求根
- 360 android 应用市场,360手机助手在安卓应用市场占大份额
- [Kerberos] Kerberos教程(一)