电子发烧友网>接口/总线/驱动> > 正文

CAN总线的特点/帧类型/应用中的注意事项

2021年01月05日 10:37 次阅读

1980年,Bosch的工程师开始研究汽车上高速串行通信的问题,并在1986年发布了CAN(ControllerAreaNetwork)总线。CAN以其多主,高速(最高1Mbps),抗干扰的特性被广泛应用汽车及各种工业环境。在此我们主要介绍一下CAN总线的特点,帧类型,以及应用中的注意事项。

1.CAN总线特点

1.1多主控制

跟我们常用的RS485只有一个主机,从机只能等待主机的轮询不同,在CAN总线中,当任意一个节点监测到总线空闲时,就可以立即启动信息的发送,也就是每一个节点都可以当主机。当然,这马上会引起我们的担心。如同一个家庭每个人都当家做主,那还不乱了套吗?不急,我们来看一下。这个问题是如何被巧妙地解决的。

物理层,CAN采用差分总线。单片机引脚的逻辑电平0,被CAN收发器(PHY)转换为显性电平(Dominant),逻辑电平1被转换为隐性电平(Reccesive)。总线上执行的是“线与”逻辑,只要有一个节点输出显性电平,那么总线上就是显性电平。

pIYBAF_z0S6AOg-DAAC6qfmPI9Y394.png

仲裁(ArbitraTIon),CAN的发送总是以SOF(StartOfFrame)起始,紧跟器后是ID。在发送ID的同时,节点监听总线上的显隐状态,当监听到的状态与自己发送的不一致时,此节点将停止发送,进入只收模式。如下图所示,每一帧消息所具有的ID决定了此消息的优先级,发送最高优先级消息的节点获得总线最后的控制权,得以最终完整的发送自己的消息。

o4YBAF_z0TeAOGJJAAEDTs3QXWI519.png

接收滤波(Filter)。一个挂在总线上的节点可以监听到所有的消息(Message),但通常我们只对其中某些消息感兴趣,这时怎么办呢?CAN模块一般会提供接收滤波功能(Filter)。通过设置滤波寄存器,我们可以达到接收消息时,比对ID所有位,也可以只比对ID某些位,从而达到只接收ID与自己完全相同的消息,或接收ID与自己部分相同的消息的目的。利用这种机制可以给节点编组,给组成员群发消息。

1.2速度快,距离远

CAN总线可以达到1Mbps的速率。总线速度随着传输距离增加而下降,下面是一些典型速率。在一个数据帧内可以传送8个字节的数据。

1000kbps40m

500kbps130m

100kbps620m

50kbps1300m

5kbps10000m

2012年,Bosch又发布了CANFD(CANwithFlexibleData-rate),最高速率可以达到10Mbps,在一个数据帧内可以传送64字节的数据。2015年,国际标准化组织(ISO)正式发布支持CANFD的11898-1协议。

2.帧类型

CAN协议很简洁,只包含4种帧类型。

数据帧(DataFrame),用来把数据从发送节点传送至接收节点。

远程帧(RemoteFrame),一个节点用来请求其它节点发送数据。一个节点发送远程帧时会把ArbitraTIonFiled最后一位RTR(置1),具有相同ID的节点会把数据发送到总线上。

错误帧(ErrorFrame),当一个节点检测到错误时会向总线发出错误帧,以通知其它节点。

过载帧(OverloadFrame),用来在数据帧或远程帧之间插入延时。

帧间隔(InterframeSpace),不是一种帧类型。它是帧之间的间隙,由多个连续的隐性电平构成。

在编程时我们直接用到的就是数据帧和远程帧。软件编程比较简单,需要注意的是一般需要设置寄存器中的初始化请求位(IniTIalizaTIonrequest),使模块进入初始化状态,才能开始进行CAN模块的各种配置,初始化完成后退出初始化状态,进入运行状态。

3.CAN总线应用注意事项

3.1终端匹配电阻

在CAN总线的两端要用120欧的电阻端接进行阻抗匹配,因为CAN总线长度一般会比较长,传输的信号速度快,特别是信号的边沿跳变部分频率很高。

pIYBAF_z0UCAVMBgAACY9iZfGBg329.png

传输线效应平常我们总是认为电信号从一个引脚发出,通过导线,瞬间就会到达接收引脚,导线上的电压处处是相等的。但是当信号的频率很高,或者导线特别长,总之导线的长度接近传导信号波长的1/10后,我们就需要转变一下我们的观念,此时信号的传输主要受电缆特性阻抗的影响。

电缆特性阻抗=信号电场强度(伏特/米)/磁场强度(安培/米)

电缆的特性阻抗与电缆的材质,粗细,线缆之间的距离有关,而与电缆的长度无关。电缆的特性阻抗还和信号的频率有关,但是当频率增加到一定数值时,特性阻抗不再变化。常用的带屏蔽双绞线的特性阻抗是120欧。

信号在阻抗不连续处会产生反射,所以要保持电缆阻抗的连续性,而且线缆终点需要用等于电缆特性阻抗的电阻进行端接,以消耗掉传输至端点的信号,否则信号会反射回去和后续发出的信号产生叠加,引起错误。

频率与波长对应关系

150K2000m

500K600m

1M300m

10M30m

端接电阻的另一个作用是可以使CAN总线从显性状态快速回到隐性状态。因为在显性状态下,两条线缆CAN_H,CAN_L之间的寄生电容会被充电,如果没有一个放电回路,总线不能快速回到隐性状态。

3.2EMC防护

CAN常常工作在强干扰的工业环境中,采用屏蔽双绞线会极大的提升EMC防护性能。同时如果数字电路部分和CAN收发器之间用高速光耦隔离开,并且对两部分采用完全隔离的电源供电,那么可以把总线上的干扰最大限度地隔离在外部。

o4YBAF_z0UeAfq98AAIIdfzawBQ937.png

需要注意的是屏蔽层只能在一点接入大地。如果在多个点接地,那么通过大地会形成电流环路,反而会引入噪声。

3.3时钟容差(OscillatorTolerance)

总线的速度越高,需要的时钟精度越高。一般在低于125kpbs时可以用低成本的陶瓷震荡器(ceramicresonators),更高的速度下建议使用晶体振荡器(Quartz,orCrystalOscilators)。

3.4CAN模块死机现象

CAN模块内部有监控电路,总线上的异常,如短路等,会引起错误计数器增长。TEC(TransmitErrorCounter),REC(ReceiveErrorCounter)。当发送错误TEC计数超过255后,CAN模块进入BUS-OFF模式,此节点不能发送也不能接收。这样做的好处是可以避免由个别模块的问题引起整个总线不能工作。

芯片一般会提供两种恢复机制:自动和手动模式。比如在STM32单片机中,如果ABOM位设置为1,CAN模块将不断尝试自动恢复。如果ABOM=0,则需要程序进入CAN初始化模式,重新配置后,再退出初始化进入正常工作模式。

由于CAN总线非常可靠,不易出错,所以在测试阶段建议人为制造一些总线错误,比如短路,断路,强干扰之类,看程序是否能从异常状态下恢复。
责任编辑人:CC

下载发烧友APP

打造属于您的人脉电子圈

关注电子发烧友微信

有趣有料的资讯及技术干货

关注发烧友课堂

锁定最新课程活动及技术直播

电子发烧友观察

一线报道 · 深度观察 · 最新资讯
收藏 人收藏
分享:

评论

相关推荐

第二期:J1939通信数据链路层(上)

主题简介及亮点:J1939通信是商用车,军工,船舰 ,农机,发电机,特种设备等上面的常用通信标准,这两年在新能源车上应用
发烧友学院发表于 2019-03-07 00:00 5392次阅读
第二期:J1939通信数据链路层(上)

CAN总线关闭对新能源汽车的功能和安全性能产生的...

因此,对于新能源汽车行业工程师,了解CAN总线Bus Off原理是非常有必要的。CAN控制器可以判断....
发表于 2021-01-06 09:39 57次阅读
CAN总线关闭对新能源汽车的功能和安全性能产生的...

国产集成DC电源隔离CAN收发器数字隔离器——产品手册CA-IS306X

CA-IS3062是一款隔离式控制区域网络(CAN)物理层收发器,同时内部集成隔离式DC-DC转换器。符合ISO11...
发表于 2021-01-04 09:28 0次阅读
国产集成DC电源隔离CAN收发器数字隔离器——产品手册CA-IS306X

Kvaser灵活多变的CAN总线接口方案介绍

为什么要单独的讲讲CAN总线? Kvaser—灵活多变的CAN总线接口方案 ...
发表于 2020-12-30 07:37 0次阅读
Kvaser灵活多变的CAN总线接口方案介绍

如何配置CAN和RFID的驱动

  本文档介绍如何配置CAN和RFID的驱动。   截图界面使用的是4418开发板的menuconfig界面,4412和6818的配...
发表于 2020-12-30 06:15 0次阅读
如何配置CAN和RFID的驱动

带can的国产mcu单片机MM32L073介绍

带can的国产mcu单片机MM32L073
发表于 2020-12-29 07:42 0次阅读
带can的国产mcu单片机MM32L073介绍

实现CAN总线数据的存储和回放的方法

如何实现CAN总线数据的存储和回放
发表于 2020-12-29 06:25 0次阅读
实现CAN总线数据的存储和回放的方法

CAN总线协议详解

电子通信协议之CAN总线协议篇
发表于 2020-12-28 06:30 0次阅读
CAN总线协议详解

TMC2160大功率步进电机驱动板-CAN总线

控制板属性: 输入电压:24V~30V(推荐24V) 驱动芯片:TMC2160-TA 主控芯片:ST....
发表于 2020-12-25 16:22 252次阅读
TMC2160大功率步进电机驱动板-CAN总线

CAN总线同步机制/地址机制/仲裁机制分析

CAN(ControllerAreaNetwork)总线,即控制器局域网总线,在工业控制、医疗电子、....
发表于 2020-12-24 10:45 142次阅读
CAN总线同步机制/地址机制/仲裁机制分析

基于CAN总线技术实现绝对式光电轴角编码器的设计...

编码器由数据采集装置和数据处理装置两部分组成。结构原理框图如1所示。单片机是编码器电路系统的核心部分....
发表于 2020-12-24 09:55 284次阅读
基于CAN总线技术实现绝对式光电轴角编码器的设计...

嵌入式CAN总线入门

1. 简介 CAN总线由德国BOSCH公司开发,最高速率可达到1Mbps。CAN的容错能力特别强,C....
发表于 2020-12-22 16:36 499次阅读
嵌入式CAN总线入门

基于控制局域网总线技术实现船用张紧器驱动监控系统...

本文通过分析 CAN总线特点,将 CAN总线技术应用于张紧器驱动监控系统中。 CAN总线技术为张紧器....
发表于 2020-12-22 10:13 422次阅读
基于控制局域网总线技术实现船用张紧器驱动监控系统...

基于4G网络和CAN总线的远程数据采集系统设计

针对目前电传动矿车运行环境差,数据采集困难,维护成本高的特点,设计了一种基于网络和的数据采集系统。该系统采用05...
发表于 2020-12-22 07:34 0次阅读
基于4G网络和CAN总线的远程数据采集系统设计

1~8通道 隔离型CAN通讯模块 支持1Kbps...

奥林普,一直在进步 奥林普科技研制开发的高速CAN通讯模块,通道数最多同时具有8个通道,每通道独立隔....
发表于 2020-12-21 11:37 222次阅读
1~8通道 隔离型CAN通讯模块 支持1Kbps...

基于混合ARQ技术实现多机牵引无线同步控制系统的...

采用基于无线通信技术的列车控制系统,实现有效的运输指挥及安全监控,是国际重载运输技术的发展方向。中国....
发表于 2020-12-21 10:11 289次阅读
基于混合ARQ技术实现多机牵引无线同步控制系统的...

CAN网络通信部分的设计与实现

基于CAN总线技术实现热网监控控制和通信系统的设计...
发表于 2020-12-21 07:30 0次阅读
CAN网络通信部分的设计与实现

如何用Labview使用kvaser硬件读取数据

目前可以使用Kvaser官方的范例,读取到数据,但是当数据量过大的时候,就需要去掉读取循环中的延迟,但是延迟去掉后对...
发表于 2020-12-20 23:07 707次阅读
如何用Labview使用kvaser硬件读取数据

整车厂如何快速实现测试设备CANFD升级?

传统的汽车网络架构主要是由CAN总线组成,车内分布式电控单元ECU按照功能划分为动力总成、车身控制、....
发表于 2020-12-20 09:36 599次阅读
整车厂如何快速实现测试设备CANFD升级?

芯力特国产CAN FD芯片SIT1051,IO兼...

芯力特3.3V逻辑输入电源的高性能CAN FD收发器芯片,总线耐压达到±70V以上,支持5Mbps ....
发表于 2020-12-20 09:21 506次阅读
芯力特国产CAN FD芯片SIT1051,IO兼...

CAN总线中继器是什么,有哪些性能与和参数指标

CAN网桥(Bridge)是一个智能的中继器。使用CAN网桥对设备进行互连,克服了CAN总线结点个数....
发表于 2020-12-19 09:46 284次阅读
CAN总线中继器是什么,有哪些性能与和参数指标

基于控制器局部网CAN总线实现大型电机状态监测系...

本文提出了基于控制器局部网 CAN(Controller Area Network)总线数字模块化三....
发表于 2020-12-18 10:23 1431次阅读
基于控制器局部网CAN总线实现大型电机状态监测系...

汽车尾灯的新宠—E522.49

E522.49通过使用业界通用 CAN 物理层,基于UART的灵活导线接口可轻松实现长距离的板间通信....
发表于 2020-12-13 09:42 357次阅读
汽车尾灯的新宠—E522.49

工业级1-2路CAN总线的功能特点及应用

本CAN光纤猫能实现CAN总线信号转换为光信号在光纤上传输,起到延长了CAN总线的通信距离的作用,同....
发表于 2020-12-13 08:59 265次阅读
工业级1-2路CAN总线的功能特点及应用

总线按功能和规范可分为五大类型

地址总线:是专门用来传送地址的,由于地址只能从CPU传向外部存储器或I/O端口,所以地址总线总是单向....
发表于 2020-12-09 16:57 693次阅读
总线按功能和规范可分为五大类型

CAN总线和RS485总线的定义

rs-485采用半双工工作方式,支持多点数据通信。rs-485总线网络拓扑一般采用终端匹配的总线型结....
发表于 2020-12-09 15:43 501次阅读
CAN总线和RS485总线的定义

CAN总线为什么这么好用,CAN总线技术原理及物...

CAN总线在硬件系统中占有一席之地,国际上应用最广泛的现场总线之一,与我们讲过的SPI、UART不同....
发表于 2020-12-09 10:41 323次阅读
CAN总线为什么这么好用,CAN总线技术原理及物...

高速CAN、容错CAN、LIN总线的区别是什么

花点时间看了一些关于LIN总线基础的内容,把其中的关键点提取了出来,在这里分享给大家。在这里你可能要....
发表于 2020-12-06 09:37 776次阅读
高速CAN、容错CAN、LIN总线的区别是什么

CAN总线拓扑图,基本的CAN总线电路

CAN是ControllerAreaNetwork的简称,是一种有效支持分布式控制或实时控制的串行通....
发表于 2020-12-04 10:16 539次阅读
CAN总线拓扑图,基本的CAN总线电路

基于现场总线can-bus的plc网络方案

目前,一般常见plc型号都没有集成现场总线can-bus的通讯功能接口,因而不便于基于can总线多台....
发表于 2020-12-01 10:25 430次阅读
基于现场总线can-bus的plc网络方案

广成科技GCAN-PLC的优势

广成科技GCAN-PLC是一款模块化的可编程可扩展的PLC模块,该模块主控模块采用高速CPU,具有强....
发表于 2020-11-25 15:59 564次阅读
广成科技GCAN-PLC的优势

CAN总线的工作原理是什么,它的优点和缺点又是什...

CAN全称为ControllerAreaNetwork,简称CAN,是国际上应用最广泛的现场总线之一....
发表于 2020-11-24 11:55 1231次阅读
CAN总线的工作原理是什么,它的优点和缺点又是什...

CAN总线与一般的通讯系统总线相比,它的优势是什...

现场总线是连接智能现场设备和自动化系统的数字式,双向传输,多分支结构的通讯网络。它是电子信息技术、通....
发表于 2020-11-18 17:17 144次阅读
CAN总线与一般的通讯系统总线相比,它的优势是什...

以STM8单片机为例,该如何实现Bootload...

STM8的中断向量跳转地址是固定的,会跳转到0x8000对应中断的偏移地址,所以会把Bootload....
发表于 2020-11-16 16:52 532次阅读
以STM8单片机为例,该如何实现Bootload...

芯力特量产70V耐压CAN FD收发器芯片SIT...

SIT1042是一款满足国际标准的高性能CAN FD收发器芯片。芯力特成为拥有5V快速CAN系列,3....
发表于 2020-11-16 12:14 407次阅读
芯力特量产70V耐压CAN FD收发器芯片SIT...

CAN总线的详细资料讲解

嵌入式的工程师一般都知道CAN总线广泛应用到汽车中,其实船舰电子设备通信也广泛使用CAN,随着国家对....
发表于 2020-11-14 11:08 822次阅读
CAN总线的详细资料讲解

嵌入式CAN总线知识大全之CAN接口器件与CAN...

嵌入式的工程师一般都知道CAN总线广泛应用到汽车中,其实船舰电子设备通信也广泛使用CAN,随着国家对....
发表于 2020-11-09 15:35 1260次阅读
嵌入式CAN总线知识大全之CAN接口器件与CAN...

CAN总线原理,CAN总线的8个特点

CAN总线是与串行总线不同的工业控制通信系统,是德国博世公司为提供汽车电子产品的升级服务,所有它更多....
发表于 2020-11-02 10:52 535次阅读
CAN总线原理,CAN总线的8个特点

一文详解CAN总线的报文结构

数据帧由7个不同的位场组成:帧起始、仲裁场、控制场、数据场、CRC场、应答场、帧结束。其中,数据场的....
发表于 2020-11-02 10:46 405次阅读
一文详解CAN总线的报文结构

基于PC-CAN适配卡和总线技术实现潜水电机分布...

目前,国内外已有多家公司开发出针对个体潜水电机的智能电了保护装置,虽然可以达到保护电机的目的,但无法....
发表于 2020-11-02 10:28 822次阅读
基于PC-CAN适配卡和总线技术实现潜水电机分布...