0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

CAN的概述及发展历史

晟矽微电 来源:晟矽微电子 作者:晟矽微电子 2022-07-05 14:27 次阅读

一、CAN的概述及发展历史

CAN总线的概述及发展历史

CAN发展的时间线:

1983年,Bosch开始研究汽车网络技术

1986年,Bosch在SAE大会正式公布CAN的协议

1987年,Intel和philips公司先后推出CAN控制器芯片

1991年,Bosch颁布CAN2.0技术规范

1991年,CAN总线最新在Benz S系列轿车上实现

1993年,ISO颁布CAN国际标准ISO-11898

1994年,由CiA组织举办第一届国际CAN大会(iCC)

2015年,CAN FD的ISO标准化

2021年,CAN XL第三代使用的规范CIA-610

CAN概述

CAN(Controller Area Network,控制器局域网)是一种串行通信技术,专门用于在汽车电子控制单元(ECU)之间实现可靠的数据交换。

74d17dbc-fc2b-11ec-ba43-dac502259ad0.png

CAN通信特点

1)节点间采样多主通讯的方式

2)采用短帧结构,报文帧的有效字节数为8个,可达汽车到实时响应的要求

3)报文ID越小,优先级别越高。报文ID可分成不同的优先级,进一步满足汽车网络报文的实时性要求

4)非破坏性总线仲裁处理机制

5)可靠的CRC校验方式,传输数据出错率极低,满足汽车数据传输的可靠性要求

6)报文帧仲裁失败或传输期间被破坏有自动重发机制

7)节点在错误严重的情况下,具有自动脱离总线的功能,切断它与总线的联系,不影响总线的正常工作。

8)通讯距离最远达10KM

9)通讯速率最高1MB/S(此时距离最长40m)

10)节点数实际可达110个

11)CAN节点设计成本较低,通讯介质采用双绞线

通信网络参考模型OSI

应用层:人家交互

表示层:压缩解压、加密解密、编码解码

会话层:会话建立、维护中止会话隔离

传输层:可靠的连接,传输端口号---区分不同的应用程序

网络层:为了数据提供地址信息 ----IP地址(软件地址)

数据链路层:为数据转发提供地址MAC地址(硬件地址)

物理层:提供电规格,数据bit的传输100101011

74ed3318-fc2b-11ec-ba43-dac502259ad0.png

二、CAN的物理层

CAN使用总线传输方式

早期汽车使用点对点的通讯方式,现在使用总线式的线束连接,减少了通讯线的数量、通过多个网络进行大量数据的高速传输、诊断和做线缆简单。

750b7986-fc2b-11ec-ba43-dac502259ad0.png

752d9d90-fc2b-11ec-ba43-dac502259ad0.png

753ff49a-fc2b-11ec-ba43-dac502259ad0.png

CAN物理电平说明

75608598-fc2b-11ec-ba43-dac502259ad0.png

容错CAN优缺点:通讯速率低,承载的节点少,但具有更高的抗干扰能力。

758978ae-fc2b-11ec-ba43-dac502259ad0.png

7598ed02-fc2b-11ec-ba43-dac502259ad0.png

CAN的编码规则

CAN编码采用的NRZ非归零编码(5个相同电平加入一个填充位),相同带宽的情况下,NRZ编码方式的信息量更大。

75ab9178-fc2b-11ec-ba43-dac502259ad0.png

NRZI编码:当电平状态发生变化时,表示数据0,信号电平不变表示1(7个1变换一次0USB2.0通讯使用的编码方式就是NRZI编码。

75c14bb2-fc2b-11ec-ba43-dac502259ad0.png

75d0e0f4-fc2b-11ec-ba43-dac502259ad0.png

RZ编码

75f63070-fc2b-11ec-ba43-dac502259ad0.png

NRZ编码

760addfe-fc2b-11ec-ba43-dac502259ad0.png

NRZI编码

CAN的传输介质

传输介质:非屏蔽双绞线

终端电阻:120Ω

双绞线的作用:外部干扰在两根导线上产生的噪声(在专业领域里,把无用的信号叫做噪声)相同,以便后续的差分电路提取出有用信号,差分电路是一个减法电路,两个输入端同相的信号(共模信号)相互抵消(m-n),反相的信号相当于x-(-y),得到增强。

76283980-fc2b-11ec-ba43-dac502259ad0.png

763623ec-fc2b-11ec-ba43-dac502259ad0.png

CAN的终端电阻

CAN总线终端电阻的作用有3个:

1.提高抗干扰能力,让高频低能量的信号迅速走掉

2.确保总线快速进入隐性状态,让寄生电容的能量更快走掉

3.提高信号质量,放置在总线的两端,让反射能量降低

764c6c06-fc2b-11ec-ba43-dac502259ad0.png

765c9b6c-fc2b-11ec-ba43-dac502259ad0.png

766ce4a4-fc2b-11ec-ba43-dac502259ad0.png

寄生电容进行充电和放电

768bbbd6-fc2b-11ec-ba43-dac502259ad0.png

高速信号传输,阻抗变化,引起的反射,“振铃”现象

CAN终端电阻选择

如图所示是CAN总线的经典拓扑图。终端电阻一般选择放在最远的两个节点上。如果其中一个放在中间位置,终端电阻外面的CAN收发器处于支路上,这将大大增加该节点的信号反射,进而影响总线通讯。

7697e37a-fc2b-11ec-ba43-dac502259ad0.png

在CAN总线中使用的典型线缆,将它们扭制成双绞线,就可根据上述方法得到特征阻抗大约为120Ω,这也是CAN标准推荐的终端电阻阻值,所以这个120Ω是测出来的,不是算出来的,都是根据实际的线束特性进行计算得到的。

根据标准需要考虑短路到18V的情况,假设CANH短路到18V,电流会通过终端电阻流到CANL上,而CANL内部由于限流的原因,最大注入电流为50mA(TJA1145的规格书上标注),这时候120Ω电阻的功率就是50mA*50mA*120Ω=0.3W。

76abb76a-fc2b-11ec-ba43-dac502259ad0.png

CAN总线的电平逻辑

76bd79be-fc2b-11ec-ba43-dac502259ad0.png

76d9f3f0-fc2b-11ec-ba43-dac502259ad0.png

CAN的数据采样点

采样点:是总线数据被读取并被解释为相应位值的时间点。

76eb0334-fc2b-11ec-ba43-dac502259ad0.png

76f636aa-fc2b-11ec-ba43-dac502259ad0.png

三、数据链路层

帧类型类型

7730f740-fc2b-11ec-ba43-dac502259ad0.png

数据帧

分类:标准帧和扩展帧

SOF:1bit,起始位,显性

Identifier:11bit/29bit, ID位

RTR:远程帧和数据帧位,远程帧“1”,数据帧“0”

SRR:替代远程帧位,“1”

IDE:扩展帧和标准帧,扩展帧“1”,标准帧“0”

r:预留

DLC:4bit,数据长度位

Data Field:0-8 Byte,数据位

CRC:15bit,数据CRC校验SOF----CRC前

DEL:校验和应答界定符

ACK:1bit,确认数据是否正常接收,所谓正常接收是指不含填充错误、格式错误、 CRC 错误。发送节点将此位为1,接收节点正常接收数据后将此位置为”0”;(1 bit)

DEL:校验和应答界定符,隐形“1”

EOF:7bit,结束标志位,连续7bit隐形位表示帧结束

7798ac00-fc2b-11ec-ba43-dac502259ad0.png

77ad7ff4-fc2b-11ec-ba43-dac502259ad0.png

CRC和ACK位

77cd9ac8-fc2b-11ec-ba43-dac502259ad0.png

78003d70-fc2b-11ec-ba43-dac502259ad0.png

781c4240-fc2b-11ec-ba43-dac502259ad0.png

EOF结束位

78601772-fc2b-11ec-ba43-dac502259ad0.png

786fe878-fc2b-11ec-ba43-dac502259ad0.png

789dd0c6-fc2b-11ec-ba43-dac502259ad0.png

远程帧

78be9aa4-fc2b-11ec-ba43-dac502259ad0.png

78edf966-fc2b-11ec-ba43-dac502259ad0.png

791f987c-fc2b-11ec-ba43-dac502259ad0.png

错误帧

错误帧:错误帧可用于指示通信期间检测到的错误。错误帧将强行中止正在进行的错误数据传输。

错误帧的结构与数据帧或远程帧明显不同,仅由两部分构成:错误标志(error flag)和错误界定符。

793b4b08-fc2b-11ec-ba43-dac502259ad0.png

794ac7e0-fc2b-11ec-ba43-dac502259ad0.png

错误帧分类:

位错误:发送节点检查,发送数据后回读数据,检查发送是否错误

填充错误:接收节点检测。CRC之前,连续6个显性或隐形位

ACK错误:发送节点检测。发送数据后ACK位没有置低

格式错误:CRC之后11bit固定的格式位,

CRC错误:接收节点检测

796153de-fc2b-11ec-ba43-dac502259ad0.png

位填充

位填充从以SOF的传输为开始,以CRC序列的最后一位的传输为结束。因此在传输包含8个数据字节的标准格式的数据帧时,在极限情况下,应有24个填充位。所以,理论上标准格式数据帧最多包含132位。

797c8e10-fc2b-11ec-ba43-dac502259ad0.png

错误检测

798d5a4c-fc2b-11ec-ba43-dac502259ad0.png

799cd81e-fc2b-11ec-ba43-dac502259ad0.png

错误跟踪

79c5cfd0-fc2b-11ec-ba43-dac502259ad0.png

错误处理流程

79eab908-fc2b-11ec-ba43-dac502259ad0.png

7a03139a-fc2b-11ec-ba43-dac502259ad0.png

过载帧和帧间隙

过载帧:接收节点向总线上其它节点报告自身接收能力达到极限的帧。

7a14b19a-fc2b-11ec-ba43-dac502259ad0.png

帧间隔:是用来隔离数据帧(或者远程帧)的,也就是说,数据帧(或者远程帧)经过插入帧间隔能够将本帧与先行帧

(数据帧、远程帧、错误帧、过载帧)分隔开来。

7a295fa0-fc2b-11ec-ba43-dac502259ad0.png

主动错误状态下的间隙帧

7a42f280-fc2b-11ec-ba43-dac502259ad0.png

被动错误状态下的间隙帧

发送仲裁机制

特点:

1.仲裁发送在仲裁段

2.采用“线与”机制

3.ID值越小,优先级越高

4.仲裁失败进入“只听”模式,等待空闲发送

7a5193d0-fc2b-11ec-ba43-dac502259ad0.png

上图在多个节点同时发送报文时,首次出现不同,且发送显性位的节点占用总线。由于CAN报文首先发送的为ID段且显性位为逻辑“0”,因此ID越小该帧的优先级越高。

发送仲裁机制

7a776ec0-fc2b-11ec-ba43-dac502259ad0.png

上图:数据帧A的优先级高于数据帧B的优先级,总线空闲时,数据A先发。

7a8b5a34-fc2b-11ec-ba43-dac502259ad0.png

7aaa4818-fc2b-11ec-ba43-dac502259ad0.png

仲裁场

7aba0bb8-fc2b-11ec-ba43-dac502259ad0.png

7aca3308-fc2b-11ec-ba43-dac502259ad0.png

仲裁流程

几种状态仲裁错误

7ae3bc24-fc2b-11ec-ba43-dac502259ad0.png

仲裁场相同,数据场不一致

7aff8ff8-fc2b-11ec-ba43-dac502259ad0.png

相同帧无应答,产生应答错误

7b239d76-fc2b-11ec-ba43-dac502259ad0.png

相同帧有应答,隐藏了错误

位同步机制

同步的目的其实就是保证采样点采集时,采集的位数不会错乱,并且都是接收端同步。发送端发送一个帧,如果接收端有延时,并不做同步,那么就可能会出现,发送端发送第2位时,接收端还是按照第1位的时序来采样,导致接收端认为采集的到是第1位。显然就出错了。

1)同步段(Synchronization Segment):长度固定,1个时间量子Tq;一个位的传输从同步段开始;同步段用于同步总线上的各个节点,一个位的跳边沿在此时间段内。

2)传播段(Propagation Segment):传播段用于补偿报文在总线和节点上传输时所产生的时间延迟;传播段时长 ≥ 2 × 报文在总线和节点上传输时产生的时间延迟 ;传播段时长可编程(1~8个时间量子Tq)。

3)相位缓冲段1(Phase Buffer Segment1):用于补偿节点间的晶振误差;允许通过重同步对该段加长;在这个时间段的末端进行总线状态的采样;长度可编程(1~8个时间量子Tq)。

4)相位缓冲段2(Phase Buffer Segment2):用于补偿节点间的晶振误差;允许通过重同步对该段缩短;长度可编程(1~8个时间量子Tq)。

7b33a18a-fc2b-11ec-ba43-dac502259ad0.png

同步段时钟机制

系统时钟→CAN时钟→CAN位时间

波特率 = 1 / CAN位时间

7b66bcdc-fc2b-11ec-ba43-dac502259ad0.png

位同步特点

一个位时间内只允许一种同步方式,要么硬同步要么重同步;

任何一个从“隐性”到“显性”的下降沿 都可以用于同步;

硬同步发生在报文的SOF位,所有接收节点调整各自当前位的同步段,使其位于发送的SOF位内;

重同步发生在一个报文SOF位之外的其它段,当下降沿落在了同步段之外时发生重同步;

在SOF到仲裁场发送的时间段内,如果有多个节点同时发送报文,那么这些发送节点对跳变沿不进行重同步。

7b8ac596-fc2b-11ec-ba43-dac502259ad0.png

硬同步

重同步

7bb93426-fc2b-11ec-ba43-dac502259ad0.png

重同步,PBS1延长

7be5f06a-fc2b-11ec-ba43-dac502259ad0.png

重同步,PBS2缩短

同步跳转宽度

在重同步时,有个同步跳转宽度(SJW,Synchro Jump Width)的概念,表示的是PBS1和PBS2重同步时允许跳转的最大宽度。

同步跳转宽度必须满足以下几个条件:

SJW必须小于PBS1和PBS2的最小值

SJW最大值不能超过4

同步段规则

CAN报文在CAN总线上的传输时,物理延迟包含两个部分:

在CAN-BUS上传输造成的延迟

在节点内部传输造成延迟

7bf7c51a-fc2b-11ec-ba43-dac502259ad0.png

按照CAN通信协议的规定,补偿给传播延迟的时间长度要至少等于实际实际传播延迟时长的2被,

即:tPTS≥2×tdel=2×(tdel+tBus)

四、CAN应用层

定义ID的规则

7c24b106-fc2b-11ec-ba43-dac502259ad0.png

7c3213c8-fc2b-11ec-ba43-dac502259ad0.png

定义控制命令和节点

7c44d31e-fc2b-11ec-ba43-dac502259ad0.png

定义索引对象

7c586c6c-fc2b-11ec-ba43-dac502259ad0.png

7c74126e-fc2b-11ec-ba43-dac502259ad0.png

7c901edc-fc2b-11ec-ba43-dac502259ad0.png

分段报文写---起始帧

7c9dbf24-fc2b-11ec-ba43-dac502259ad0.png

分段报文写---传输帧和结束帧

7cb5dadc-fc2b-11ec-ba43-dac502259ad0.png

分段报文读-----起始帧

7ccce498-fc2b-11ec-ba43-dac502259ad0.png

7cdc1468-fc2b-11ec-ba43-dac502259ad0.png

分段报文读----传输过程

7cecdf6e-fc2b-11ec-ba43-dac502259ad0.png

7d00be3a-fc2b-11ec-ba43-dac502259ad0.png

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 控制器
    +关注

    关注

    112

    文章

    16361

    浏览量

    178022
  • CAN
    CAN
    +关注

    关注

    57

    文章

    2754

    浏览量

    463697
  • 网络层
    +关注

    关注

    0

    文章

    40

    浏览量

    10295

原文标题:【晟矽课堂】FlexCAN发送接收

文章出处:【微信号:shengxiweidian,微信公众号:晟矽微电】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    CAN时钟--位时间介绍#CAN #CANoe

    CAN
    北汇信息POLELINK
    发布于 :2024年10月29日 14:11:09

    什么是CAN时钟?#CAN #汽车CAN总线  #CANoe

    CAN总线
    北汇信息POLELINK
    发布于 :2024年10月29日 12:23:36

    简述微处理器的发展历史

    微处理器的发展历史是一部充满创新与突破的技术演进史,它见证了计算机技术的飞速发展和人类社会的巨大变革。以下是对微处理器发展历史的详细回顾,内
    的头像 发表于 08-22 14:22 2966次阅读

    温度振动变送器的概述及功能介绍

    工业不仅是经济发展的基石,更是社会进步的重要推手。工业设备是促进工业生产效率提高和产品质量提升的重要驱动力,温度振动变送器的广泛应用可以保证工业设备的正常运转,保障工业生产正常进行,无论是传统
    的头像 发表于 08-20 17:18 509次阅读

    图像处理器的发展历史

    图像处理器(Image Processor)的发展历史是一段充满创新与突破的历程,它伴随着计算机技术的不断进步和图像处理需求的日益增长而逐渐成熟。以下是对图像处理器发展历史的详细回顾,
    的头像 发表于 08-14 09:42 909次阅读

    射频天线的发展历史

    射频天线,作为无线通信系统的关键组成部分,其发展历程充满了探索与创新。从最初的简单形态到如今的复杂多样,天线技术不仅见证了无线通信技术的飞速发展,也深刻影响了人类社会的方方面面。以下是对射频天线发展
    的头像 发表于 08-13 10:50 603次阅读

    简述光通信的发展历史

    光通信的发展历史是一段充满创新与突破的旅程,它极大地推动了现代通信技术的进步,为人类社会带来了前所未有的便捷与高效。以下是对光通信发展历史的详细介绍,分为几个关键阶段进行阐述。
    的头像 发表于 08-09 11:47 1681次阅读

    risc-v的发展历史

    RISC-V的发展历史可以追溯到2006年左右,当时David Patterson和其他研究者开始探索创建一个开放和可扩展的指令集架构(ISA)。以下是RISC-V发展的主要里程碑: 一、起源与初步
    发表于 07-29 17:20

    can信息帧数据链路层组成部分及功能

    CAN协议概述 1.1 CAN协议的起源和发展 CAN协议最早由德国Bosch公司于1983年提出,旨在解决汽车电子系统中的通信问题。随着技
    的头像 发表于 07-24 15:12 486次阅读

    【项目陪跑--无线CAN转发器】第一章 课程概述

    第一节项目概述设计一款无线CAN转发器,由若干个终端组成,若干个终端之间可以将接收到的CAN数据通过无线的方式转发出去。第二节硬件概述CAN
    的头像 发表于 07-03 08:00 328次阅读
    【项目陪跑--无线<b class='flag-5'>CAN</b>转发器】第一章 课程<b class='flag-5'>概述</b>

    can的通信协议主要由什么完成

    性、灵活性和成本效益。本文将详细介绍CAN通信协议的各个方面,包括其历史、原理、特点、应用和发展趋势。 一、CAN通信协议的历史 1.1
    的头像 发表于 06-16 10:29 612次阅读

    汽车上can高和can低都是多少伏

    高”,CANL被称为“CAN低”。 CAN总线电压概述 CAN总线是一种差分信号传输方式,其电压水平取决于CANH和CANL之间的电压差。在CAN
    的头像 发表于 06-16 09:45 6373次阅读

    浅谈交换机的发展历史

      交换机作为网络通讯中的关键设备,其发展历程见证了信息技术的飞速进步和网络架构的持续优化。从早期的电路交换到现代的以太网交换,再到未来的可编程交换机,交换机的发展不仅提升了网络的速度和性能,也推动了计算机网络技术的不断革新。以下将详细探讨交换机的
    的头像 发表于 06-06 11:05 2120次阅读

    网络测试仪概述及发展历史 网络测试仪的常见故障及原因

    随着信息技术的迅猛发展,网络已经成为人们日常生活、工作和学习中不可或缺的一部分。然而,网络的复杂性和多变性也使得网络管理和维护变得异常困难。网络测试仪作为一种专业的网络检测工具,其在网络管理和维护中发挥着至关重要的作用。本文将对网络测试仪的技术原理、发展
    的头像 发表于 05-10 15:42 559次阅读

    光伏逆变器拓扑概述及关键技术

    光伏逆变器拓扑概述及关键技术
    的头像 发表于 02-21 09:47 809次阅读
    光伏逆变器拓扑<b class='flag-5'>概述及</b>关键技术