一.什么是can

can就是车用主线,贯穿整个车的存在

can的分类2

默认是高速can

低速容错can

单线can

用两种can会减少can网络语言的负载率,就是原本一个小屋做核酸,现在是两个速度翻倍。可参考均衡负载原理

can的特征

1.节点间采用多主通信方式

即任意节点都可以发送,可以实现点对点发送和全局网络发送

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

即字节数越少响应速度越快

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

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

即两个报文进行传输,不会只接收一个会根据id大小依次接收

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

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

即会将未发送成功的报文进行重新发送

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

如果一直发送不成功,会自动停止发送

8.通信距离最远达10km(速度5Kbps以下)

距离越远通信质量越差

9.通信速率最高1MB/s

距离越近速率越快

10.节点数实际可达110个

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

can的收发器

can收发器定义:can收发器逻辑信号和物理信号之间的转换采用差分电平方式

1.将逻辑数字信号转化成物理信号

2.将物理信号转换成逻辑数字信号

can的模式

can高can低

即高速can和低速can,高速can系统采用硬线是动力型,速度快,适用于ABS、控制ECU等

低速can是舒适型,速度相对较慢,主要是控制仪表、防盗等

can信号电平

显性即差压过高然后为零 差压大于0.9v显零

隐形即无差压或者差压过低 差压小于0.5v隐1

显性0,隐性1

can编码方式

采用非归零编码

CAN编码采用NRZ非归零编码,相同带宽情况下,NRZ编码信息量比曼彻斯特编码更大

can信号电平之线与原理

多个can节点并接到同一个总线时,只要其中一个节点输出低电平,总线就为低电平;当所有节点输出高电平时,总线才为高电平

can的异步串行通信

can报文同步采用时钟线采样数据

can报文异步采用采样点按照约定的频率区采样数据

异步串行通信省去了时钟信号线,但遇到一个问题是:根据波特率做采样,波特率的误差会产生通信错误

波特率采样点每次出现一点偏差,后面偏差越来越大

can的采样点

一个标称的位时间=1/波特率

为时间分为:同步端、传播段、相位缓冲段1、相位缓冲段2

采样点在相位缓冲段1和2中提取采样
(C:\Users\10345\AppData\Roaming\Typora\typora-user-images\image-20221008212112517.png)]

1000=1024k 1位相当于一微妙

can的终端电阻与连接器

根据电磁场

和微波理论,高频电路中负载阻抗需与传输线的特性阻抗一致,否则电信号在线束端遭遇阻抗突变,产生反射现象,造成波形震荡

信号反射造成的信号不完整性,是属于直接将数据反射,不管数据反射到哪里

解决:反射都在首端或者末端进行数据传输,因此在首尾加上120欧姆,加在中间不推荐,有可能反射不到


协议推荐:

默认协议,但是根据制造商的设定,会有偏差[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ek2aAoEn-1665659904917)(C:%5CUsers%5C10345%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5Cimage-20221009194714109.png#pic_center)]

can终端电阻和线缆

不符合要求会造成总线波形不好之类的,影响通信

can节点物理结构

1.can控制器/收发器

分别对应ISO/OSI模型的数据链路层和物理层,完成CAN报文的收发

2.功能电路

完成特定的功能,如信号采集或控制外设等

3.主控制器与应用软件

  • 控制各个硬件部件工作
  • 按照CAN报文使用规则解析CAN报文;
  • 采集并发送数据等

二.CAN报文

1.CAN报文帧种类

  • 数据帧 用于发送节点向接收节点传送数据,是使用最多的帧类型
  • 远程帧 用于接收节点向某个发送节点请求数据
  • 错误帧 用于当某节点检测出错误时向其他节点通知错误的帧
  • 过载帧 用于接收节点向发送节点通知自身接收能力的帧
  • 帧间隔 将数据帧或远程帧与前面的帧分离的帧

2.数据帧:标准帧和扩展帧

标准帧和扩展帧的帧起始,SOF,由一个显性位组成

在总线空闲的时候,发送节点发出帧起始,其他接收节点从这个帧起始位进行同步


控制段主要是数据长度

数据段最多八个字节
Data:Byt0-Byte7 传输时首先发送MSB(最高位)



帧结束如果连续11个隐性位组成,就代表帧空闲

全部加起来是108位
特殊情况:如果有位填充,那就要在加

3.CAN总线竞争与仲裁机制

CAN总线有多个节点同时要发送数据,谁先发送那?

CAN总线非破坏性仲裁机制

  • 仲裁发生在仲裁段
  • 采用“线与”机制
  • ID值越小,优先级越高
  • 仲裁失败进入“只听”模式

用相同的轨道,有序就是非破坏性仲裁机制

非破坏仲裁机制的前提

检测到的数据与另一条数据相遇后,被另一条数据覆盖

如果发生在其他六个段,则会报错

仲裁的线与机制


显性0,隐性1

仲裁段的节点Bid第五位是隐性

节点A、C的为显性,总线电平为显性,节点B退出总线竞争

节点C的ID第三位是隐形

节点A的为显性,总线电平为显性,节点C退出总线竞争

如果有报文正在发送,是无法插入破坏这个帧的

三、CAN节点状态与错误处理机制

CAN错误类型

**1.CRC错误:**接收节点计算的CRC值与发送CRC值不同

**2.位填充错误:**传输信号违反“位填充”规则

**3.应答错误:**发送节点在ACK阶段没有接收到应答信号

**4.位发送错误:**发送节点在发送时总线电平与发送电平不同

5.**格式错误:**传输的数据帧格式与任何一种合法的帧格式不符

错误检测区域

错误帧


**主动错误:**六个连续的显性电平位(错误标志)加上八个连续的隐形电平位(错误界定符)就是处于主动错误状态的节点发送

**被动错误:**六个连续的隐性电平位(错误标志)加上八个连续隐性电平位(错误界定符)就是处于被动错误状态的节点发送

CAN节点状态

CAN的错误处理流程

四、CAN分析仪常用功能有那些

数据链路层测试需求

CAN报文检测,报文记录,错误帧记录

DBC解析信号,线图绘制,仪表板功能

报文自动化脚本发送等

CAN物理层测试需求

物理波形测量,CAN波形串行解码,CAN错误位指示等

五、问题

1.为什么要采用两根线(双绞线)的差分电平信号?

原因:双绞线传输差分信号时受到共模信号干扰后,电平差值不变,信号解码正常

2.如何减少波特率的误差带来的通信错误?

can总线规定信号的跳变沿时刻进行同步,将误差累积限制在两个跳变沿。

3.如果发送的数据都是0或者1,同样不跳变造成误差累积应该怎么办那?

发送多个相同位时没有跳变沿用于同步,导致误差不断累计

解决:采用填充位在连续五个相同位后插入一个相反位,产生跳变沿,用于同步。连续五个0,插入一个1,或者连续五个1,插入一个0

经过大量实验为五个

4.CAN节点供电正常,CAN工具就是接收不到CAN报文数据或报错,可能是什么原因?

网络上有多个节点的时候就要注意多加终端电阻的问题,会引发短路

错误类型:为错误、填充错误、格式错误、CRC错误、ACK错误

主动错误和被动错误、关闭总线三个变换条件

5.测试CAN物理变形,发现报文出现严重的振铃和反射现象?

信号传输过程中出现到阻抗的变化,就会发生信号的反射。信号在驱动端和远端负载之间多次反射,其结果就是信号振铃

原则:

  • 尽量缩短引线长度
  • 加粗到线、印制铜箔的宽度 通信品质,质量
  • 减小信号的传输距离 通信品质
  • 采用引线电感小的元器件等
  • 阻抗匹配

6.通信错误会不会是CAN收发器故障引起,如何判断收发器的好坏?

can收发器的常规检测方法:可以在给ECU上电的CAN总线空闲情况下,测量CANH和CANL对地的电压是否在2.5v左右。如果出现0v或者5v质类的,靠考虑收发器故障问题

7.来自相同厂家的两个CAN节点可以通信,为什么两个不同厂家的CAN节点连接通信是好是坏,甚至不能通信?

波特率采样点:不同厂家可能使用不能的采样点,也可能是通信不良

8.所有在测的ECU节点CAN功能单独测试正常,但是装车后发现CAN功能失常,可能仪表紊乱,CAN错误频发,特别是新能源车上?

重点考虑电磁干扰

选择一个性能好的隔离收发器,或者外部隔离器

增加CAN线缆双绞程度,保证差模信号被干扰的程度

步线将动力线缆和CAN线缆远离,抑制周期脉冲干扰

CAN端适当共模滤波器等浪涌效果好的感性防护器件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ki79jrtl-1665659265406)(C:\Users\10345\AppData\Roaming\Typora\typora-user-images\image-20221009203757163.png)]
闲情况下,测量CANH和CANL对地的电压是否在2.5v左右。如果出现0v或者5v质类的,靠考虑收发器故障问题

7.来自相同厂家的两个CAN节点可以通信,为什么两个不同厂家的CAN节点连接通信是好是坏,甚至不能通信?

波特率采样点:不同厂家可能使用不能的采样点,也可能是通信不良

8.所有在测的ECU节点CAN功能单独测试正常,但是装车后发现CAN功能失常,可能仪表紊乱,CAN错误频发,特别是新能源车上?

重点考虑电磁干扰

选择一个性能好的隔离收发器,或者外部隔离器

增加CAN线缆双绞程度,保证差模信号被干扰的程度

步线将动力线缆和CAN线缆远离,抑制周期脉冲干扰

CAN端适当共模滤波器等浪涌效果好的感性防护器件

[外链图片转存中…(img-Ki79jrtl-1665659265406)]

can的总结——笑笑相关推荐

  1. 笑一笑十年少,大家来笑笑吧

    紧张的工作学习中来点笑话吧-   我妈妈说我的智商只有76.我的智商到底有多高,我也不知道.我只知道我是一个杀伤力很强的人,很多人因我而受到伤害,他们有的对生活失去了希望,有的甚至自杀身亡.所以我一直 ...

  2. 暴笑笑话集(全是最新经典!)

    暴笑笑话集(全是最新经典!) 1.女:"只要有钱,我嫁给谁都行."男:"银行的保险柜你嫁吗?" 2.争吵的时候,男人和女人的区别就像是手枪和机关枪的区别. 3. ...

  3. (只为娱乐,笑笑可了)赛龙舟

    只为娱乐,笑笑可了---------------------------------------------------------- 某人云:此地有崇山峻岭,茂林修竹,又有清流激湍,映带左右,引以为 ...

  4. 笑笑成长记(1)--烤鱼店

    这是笑笑四个月大时妈妈带她来我家玩,我们中午一起去西三旗桥东的巫山烤全鱼时拍的照片.笑笑那时候可乖了,我们一顿饭吃完她都没哭没闹.

  5. 笑笑成长记(4)--在张宸宇的满月宴会上

    上个月我们去给赵老二家的孩子过满月,这时候笑笑8个月大,也被她妈妈带去了.午饭定在史各庄的一家饭店.我们到那时,饭店服务员看到笑笑都十分震惊,说"我的妈呀,刚过满月的孩子就长这么大个儿啦!! ...

  6. 实习生两分钟解决程序bug,老程序员笑笑不说话,还是太年轻?

    又到一年高校毕业季,为了能实现更好就业,大学生们也是使尽了浑身解数. 从某种程度上来说,985.211高校毕业的大学生找工作要比普本院校毕业的学生要容易很多,现在也有不少985高校的毕业生已经进入了实 ...

  7. 生活无非就是笑笑别人,偶尔笑笑自己

    许久不写了,好懒 但突然间发现人潮退去时 我 孤独了 害怕了. 如果太阳一直燃烧.如果我会一直奔跑. 这是真的.2012不会来到 人们确一直在奔跑 也许真的是这样.我们就这样不停的跑啊跑. 以为这就是 ...

  8. 每天多笑笑,人就更健康

    俗话说笑一笑十年少,每天多笑笑,人就更健康,心情更开朗.而且据说经常笑的人还不容易失眠哦,嘿嘿,这也就是说经常保持微笑可以治疗失眠哦.你知道为什么可以治疗失眠吗?那是因为在笑的时候可以舒缓紧张.解除压 ...

  9. 笑笑:农民与大款谈差距

    俺们刚吃上肉你们又吃菜了: 俺刚娶上媳妇你们又独身了: 俺们刚吃上糖你们又糖尿了: 俺们刚拿白纸擦屁股你们又用它擦嘴了. 俺们刚存点钱你们又买保险了. 俺们的娃子春节回家你们又开始出门旅游了. 俺们刚 ...

  10. 昨天7月21号,笑笑又生病了

    21号从上午就开始发烧,中午吃了安瑞克烧退了, 但是下午6点左右又开始发烧了,再次吃安瑞克,效果不是太好,还是烧,睡了觉之后烧退了. 晚上十点又开始发烧,吃美林悬浮液烧还是没退,又吃安瑞克,还是烧, ...

最新文章

  1. MegEngine推理性能优化
  2. 安智armeabi 和 armeabi-v7a 的库文件增加法则
  3. LeetCode 2094. 找出 3 位偶数
  4. Linux内核空间和用户空间
  5. 【youcans 的 OpenCV 例程200篇】135. 形态学重建之粒度测定
  6. 有了它,Python编码再也不为字符集问题而发愁了!
  7. BZOJ.4909.[SDOI2017]龙与地下城(正态分布 中心极限定理 FFT Simpson积分)
  8. C#中的深度学习:了解神经网络架构
  9. curl php 禁用ip6,CentOS 6禁用IPv6解决curl Couldn’t resolve host或dns解析慢
  10. SQL 存储过程中,将串连的字符串当表用。
  11. Java 接口(interface)的三种类型
  12. 132.Function Handing 函数
  13. python 多线程 线程池的四种实现方式
  14. 【操作系统】斐讯K2 PSG1218 A2 版本22.6.512.75 刷breed+老毛子固件
  15. win8优化(win8优化大师设置开始界面)
  16. echarts 广州地图入门案例
  17. PHP海补知识(6)-- nl2br/ucfirst/ucwords
  18. A082_springcloud_微服务场景_Eureka_负载均衡
  19. 公会晋升计划第 2 季来啦!
  20. MATLAB编写黄金分割法

热门文章

  1. Nginx实现高可用
  2. 【Linux系列文章】软件包管理
  3. 关于WIN10开机自动开启小键盘解决方案
  4. Unity 登录Ios GameCenter
  5. 深入浅出java并发编程(线程池)
  6. Ubuntu系统如何屏幕截图
  7. 光学系统中的几何像差
  8. 为什么鼓励工程师写博客
  9. 地毯店人员告诉你如何正确选购合适地毯
  10. 从PPG预测BP,离了大谱