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

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

3天内不再提示

ISO 11898里的CAN总线:帧编码

冬至子 来源:知锂 作者:SW十五 2023-10-31 14:15 次阅读

帧编码

帧中的位采用 NRZ (Non-return-to-zero 非归零)方法编码。相同带宽,NRZ编码信息量更大。

CAN用双绞线的方式传输,两条线压差2V(CAN_H是3.5V左右,CAN_L是1.5V左右)为显性,表示逻辑0;两条线压差0V(都是2.5V左右)为隐性,表示逻辑1。

我很长一段时间把显性和隐性搞混,直到记住“显灵”这个词,显性是0.

为了减少CAN信号错误,专家设计了位填充技术。CAN消息帧中,帧起始、仲裁场、控制场、数据场和CRC序列均用位填充的方法编码。

图片

图片

当CAN发送器检测到5个相同的位后,插入一个相反位,产生跳变沿,用来同步,以减少检测错误。

填充位会被当成总线数据位处理,但接收器接收时会自动剔除填充位,这样要传输的信息不会出现错误。

位的传输顺序

数据帧和远程帧里,从SOF开始,一个域接一个域地传输。在一个域内,字节传输顺序是从MSB到LSB。在一个字节内,位传输顺序是从bit 7到bit 0.

图片

位时间

位时间是一个位的持续时间。我们是看表来确定时间,CAN总线的节点是通过时钟发生器确定,而常用的时钟发生器是石英晶振。石英晶振的频率通常是波特率的整数倍。

上一篇提到波特率的时候,其单位是bit/s,则一位的时间=1/波特率。比如常用的500kbit/s,位时间是2us(通常要求误差在±0.004us内)。

一个位时间可以分成很多段的时间量(Time quantum,简写为TQ)。前面说到CAN的时间是通过石英晶振的频率确定,那晶振也是有很多一小段一小段的时间周期。可以理解为,若干个石英晶振的时间段组成了一个TQ,若干个TQ组成了一个位的时间。就像六十秒组成一分钟,六十分钟组成一小时。

和一分钟固定等于六十秒不同,一个位可以分为1~32个TQ,具体是多少个可以由使用者规定。

一小时我们有时候分为前一刻钟、前半个小时和后半个小时,一个位也可以分为很几段。这个几是固定的,是4,如下图。

图片

一个位时间可以分为:

同步段(Sync_Seg):1个TQ。同步段内有一个跳变沿,用来使总线上各个ECU同步,就跟港片里飞虎队行动前都要对表一样。

传播段(Prop_Seg):用于补偿各总线上各ECU之间的物理传输延迟时间(信号在总线上的传播延迟和ECU内部延迟)。传播段的长度不同的ECU不完全一致,一般在1~8个TQ。

相位缓冲段1(Phase_Seg 1)、相位缓冲段2(Phase_Seg 2):用于补偿跳变沿的相位误差,就是ECU间的晶振误差。这两段可以被再同步处理延长或缩短。通过再同步,可以延长相位缓冲段1,或缩短相位缓冲段2。

一个位的采样点在相位缓冲段1的终点,通常是位时间的75%左右。

标准原文还详细说明了延时后,如何处理才能使仲裁顺利,感兴趣可以自己看看。

bus off

一个ECU根据错误计数不同,可以处于以下三种状态之一:错误激活(error-active)、错误认可(error-passive)或离线(bus-off)。

图片

(当ECU进入bus off后,有快恢复和慢恢复两种策略。两种策略都会被ECU执行,先快后慢,具体策略由厂家决定。)

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

    关注

    45

    文章

    3562

    浏览量

    133899
  • CAN总线
    +关注

    关注

    145

    文章

    1911

    浏览量

    130535
  • 时钟发生器
    +关注

    关注

    1

    文章

    192

    浏览量

    67187
  • CRC校验
    +关注

    关注

    0

    文章

    84

    浏览量

    15172
  • 发送器
    +关注

    关注

    1

    文章

    258

    浏览量

    26771
收藏 人收藏

    评论

    相关推荐

    浅谈CAN FD总线协议格式

    假期更新了一文搞懂CAN总线协议格式,CAN FD总线协议怎能错过?本篇博文将讲解CAN FD
    发表于 10-14 12:49 3320次阅读
    浅谈<b class='flag-5'>CAN</b> FD<b class='flag-5'>总线</b>协议<b class='flag-5'>帧</b>格式

    汽车CAN总线渗透测试

    CAN是控制器局域网络(Controller Area Network, CAN)的简称,是ISO国际标准化的串行通信协议,由以研发和生产汽车电子产品著称的德国BOSCH公司开发,并最终成为国际标准(
    发表于 11-28 10:48 1184次阅读

    高速CAN总线和低速CAN总线的特性

    ISO 11898-2和ISO 11898-3中分别规定了两种CAN总线结构(在BOSCH
    发表于 04-07 09:30 2691次阅读
    高速<b class='flag-5'>CAN</b><b class='flag-5'>总线</b>和低速<b class='flag-5'>CAN</b><b class='flag-5'>总线</b>的特性

    ISO11898 CAN标准

    ISO 11898 英文原版资料分享!!!
    发表于 01-14 18:24

    can总线stm32交通灯

    can总线stm32交通灯,1:CAN简介CAN是Controller Area Network,是一种串行的通信协议,有两标准:ISO11898
    发表于 08-05 06:41

    ISO11898物理层特性

    390图 30.1.1 ISO11898 物理层特性从该特性可以看出,显性电平对应逻辑 0,CAN_H 和 CAN_L 之差为 2.5V 左右。而隐性平对应逻辑 1,CAN_H 和
    发表于 08-06 07:30

    CAN总线笔记 精选资料分享

    Area Network 的缩写(以下称为CAN),是ISO国际标准化的串行通信协议。由德国电气商博世公司在1986 年率先提出。此后,CAN 通过ISO11898
    发表于 08-20 07:17

    CAN总线协议简介

    采用载波监听多路访问、逐位仲裁的非破坏性总线仲裁技术。直接通信距离最远10km,速率5Kb/s通信速率最高可达1Mb/s,距离40m末端要有120欧终端电阻11898协议iso的osi模型11
    发表于 03-01 06:29

    CAN_ISO11898CAN2.0

    CAN_ISO11898CAN2.0,感兴趣的小伙伴们可以看看。
    发表于 07-26 10:43 439次下载

    CAN总线过载及数据详解

    CAN:Controller Area Network,控制器局域网是一种能有效支持分布式控制和实时控制的串行通讯网络。本文首先介绍了CAN总线系统结构及数据传输,其次详细的阐述了CAN
    的头像 发表于 05-07 10:59 2w次阅读
    <b class='flag-5'>CAN</b><b class='flag-5'>总线</b>过载<b class='flag-5'>帧</b>及数据<b class='flag-5'>帧</b>详解

    CAN总线扩展的双滤波方式

    CAN总线在的帧数据在总线上传送时,其它的CAN控制器是通过验收滤波来决定总线上的数据的ID是
    发表于 07-10 11:30 2386次阅读

    CAN总线的基础知识

    CAN总线最初由德国Bosch公司为汽车检测、控制系统而设计的。1993年CAN成为国际标准iso11898(高速应用)和iso1119(低
    发表于 04-19 17:14 14次下载

    传统CAN总线CAN FD格式的区别

    的爆炸式增长,仅通过增加更多的CAN总线也是行不通的。因此,作为一种新的解决方案,博世在2011-2012年开发并发布了对原始CAN总线协议的扩展,称为
    的头像 发表于 06-20 17:40 5837次阅读
    传统<b class='flag-5'>CAN</b><b class='flag-5'>总线</b>与<b class='flag-5'>CAN</b> FD<b class='flag-5'>帧</b>格式的区别

    ISO 11898CAN总线的基本特点与结构

    ISO 11898-1主要描述了CAN总线的基本架构,定义了CAN在数据链路层的通信方式。重点内容是数据链路层的两个子层:逻辑链路控制(LL
    的头像 发表于 10-31 14:31 4179次阅读
    <b class='flag-5'>ISO</b> <b class='flag-5'>11898</b><b class='flag-5'>里</b><b class='flag-5'>CAN</b><b class='flag-5'>总线</b>的基本特点与结构

    CAN总线的标准和扩展有什么区别呢?分别适用于什么工况?

    CAN总线的标准和扩展CAN协议中的两种类型。
    的头像 发表于 01-30 09:41 5359次阅读
    <b class='flag-5'>CAN</b><b class='flag-5'>总线</b>的标准<b class='flag-5'>帧</b>和扩展<b class='flag-5'>帧</b>有什么区别呢?分别适用于什么工况?