【车载开发系列】CAN总线知识进阶篇

本文深入探讨了车载开发中CAN总线的知识,涉及与CAN协议相关的ISO11898和ISO11519-2标准,以及它们在OSI七层网络模型中的位置。CAN总线的错误检测、错误通知与恢复、位填充等功能被详细阐述,揭示了其高可靠性的特点。同时,介绍了比特率、波特率和位时序的概念,帮助理解CAN总线的通信机制。

【车载开发系列】CAN总线知识进阶篇

一.与CAN协议相关的两个ISO标准

数据链路层及物理层的一部分在ISO中进行了标准化,CAN协议经ISO标准化后有ISO11898标准和ISO11519-2标准两种。

1)关于ISO11898

ISO11898是通信速度为125kbps-1Mbps的CAN高速通信标准。
目前,ISO11898追加新规约后,成为 ISO1189-1新标准。

2) 关于ISO11519

ISO11519 是通信速度为125kbps 以下的CAN低速通信标准。
ISO11519-2是ISO11519-1追加新规约后的版本。

二.ISO11898和11519-2的比对

ISO11898和ISO11519-2标准对于数据链路层的定义相同,但物理层不同

物理层ISO 11898(High speed)ISO 11519-2(Low speed)
通信速度最高 1Mbps最高 125kbps
总线最大长度40m/1Mbps1km/40kbps
连接单元数最大30最大 20
总线拓扑闭环总线开环总线

在这里插入图片描述

三.与OSI七层网络模型的关系

从OSI(Open System Interconnection开放系统互联)7层网络模型的角度来看,CAN现场总线仅仅定义了第 1 层(物理层)和第 2 层(数据链路层)。
而在实际设计中,这两层完全由硬件实现,设计人员无需再为此开发相关软件或固件(Firmware),只要了解如何调用相关的接口和寄存器,即可完成对CAN的控制。
概括起来说:CAN总线就是一层硬件协议。比如:差分信号电平的定义、数据帧的定义等等。

1)CAN协议的数据链路层定义

分为了MAC子层和LLC子层。主要实现了消息帧化,仲裁,应答,错误的检测或报告,组织物理层收到的信号,把信号组织成消息

2)CAN协议的物理层定义

定义了信号的发送方式,位时序,位的编码方式,同步方式等。其中NRZ就是不归零码,它的正电平表示1,低电平表示0。这里的位的编码方式就是采用了NRZ码;同步方式根据同步段(SS)实现同步并具有再同步功能。

3)CAN协议传输层定义

CAN协议在传输层定义了再发送控制功能,主要用来实施永久性的再尝试,但是CAN的再发送控制功能未在 ISO11898/11519-2中标准化

四.CAN总线错误检测功能

总线上所有的单元都能够检测错误,CAN总线是可以判断出错误的类型是总线上暂时的数据错误(比如外部噪声)还是持续的数据错误(如单元内部故障,驱动器故障,断线等等)。由此功能,当总线上发生持续数据错误时,可以将引起故障的单元从总线上隔离出去。这也就是所说的故障封闭

五.错误通知与恢复功能

检测出错误的单元会立即同时通知其他所有单元。
正在发送消息的单元一旦检测出错误,会强制结束当前的发送。强制结束发送的单元会不断反复地重新发送 此消息直到成功发送为止
在CAN总线中, 既具备检测错误的功能,同时还有容错的功能,可见CAN是可靠性很高的总线

六.CAN总线位填充

是为防止突发错误而设定的功能。当同样的电平持续5位时则添加一个位的反型数据。也就是插入一个补码位。
(1) 发送单元的工作
在发送数据帧和遥控帧时, SOF~CRC 段间的数据,相同电平如果持续 5 位,在下一个位(第 6 个位)则要插入 1 位与前 5 位反型的电平。
(2) 接收单元的工作
在接收数据帧和遥控帧时, SOF~CRC 段间的数据,相同电平如果持续 5 位,需要删除下一个位(第 6 个位)再接收。如果这个第 6 个位的电平与前 5 位相同,将被视为错误并发送错误帧。

七.CAN总线位填充的作用

填充位的作用是避免总线上出现太多的连续相同码时,收发双方失步,同时也提高了CAN总线的稳定性

八.CAN总线的ISO/OSI 基本参照

CAN协议中关于ISO/OSI基本参照模型中的传输层、数据链路层及物理层

1)数据链路层

数据链路层分为MAC子层和LLC子层,MAC子层是CAN协议的核心部分。数据链路层的功能是将物理层收到的信号组织成有意义的消息,并提供传送错误控制等传输控制的流程。具体地说,就是消息的帧化、仲裁、应答、错误的检测或报告。数据链路层的功能通常在CAN控制器的硬件中执行。

2)物理层

在物理层定义了信号实际的发送方式、位时序、位的编码方式及同步的步骤。但具体地说,信号电平、通信速度、采样点、驱动器和总线的电气特性、连接器的形态等均未定义。这些必须由用户根据系统需求自行确定

九.比特率和波特率是什么

1)比特率

即单位时间内传送的二进制位数;

2)波特率

即单位时间内传输的符号个数
1波特即指每秒传输1个符号。
波特(Baud)即调制速率,指的是有效数据信号调制载波的速率,即单位时间内载波调制状态变化的次数。它是对符号传输速率的一种度量
而决定波特率大小的就是位时序

十.CAN总线波特率

1)同步通信

通信设备之间通过同步信号(CLK时钟)来实现数据传输的通信叫同步通信。

2)异步通信

是通信设备之间通过约定一样的时间来收发数据。而这个时间就会决定波特率。
CAN总线属于异步通信,因此就有通信波特率,而这个波特率发生器就位于CAN控制器内部。

十一.什么是位时序

由发送单元在非同步的情况下发送的每秒钟的位数称为位速率。1位分为4个段,每个段又由若干个Tq(Time Quantum)构成,这称为位时序。
位时序间接决定了传输的波特率。

组成位时序一个位的4个段

段名称英语段的作用Tq
同步段SS: Synchronization Segment多个连接在总线上的单元通过此段实现时序调整,同步进行接收和发送的工作。由隐性电平到显性电平的边沿或由显性电平到隐性电平边沿最好出现在此段1Tq
传播时间段PTS: Propagation Time Segment用于吸收网络上的物理延迟的段。所谓的网络的物理延迟指发送单元的输出延迟、总线上信号的传播延迟、接收单元的输入延迟1~8Tq
相位缓冲段1PBS1: Phase Buffer Segment 1当信号边沿不能被包含于SS段中时,可在此段进行补偿1~8Tq
相位缓冲段2PBS2: Phase Buffer Segment 2当信号边沿不能被包含于SS段中时,可在此段进行补偿2~8Tq
再同步补偿宽度SJW: reSynchronization Jump Width因时钟频率偏差、传送延迟等,各单元有同步误差1~4Tq

十二.什么是采样点

所谓采样点是读取总线电平,并将读到的电平作为位值的点。位置在PBS1结束处。简单来说采样点是CAN节点判断信号逻辑(1或0)的位置。
它在读取总线电平之后,解释各个位置的值的一个时间点。

在这里插入图片描述

十三.总线上取得同步的方法

CAN协议的通信方法为 NRZ(Non-Return to Zero)方式。各个位的开头或者结尾都没有附加同步信号。发送单元以与位时序同步的方式开始发送数据。另外,接收单元根据总线上电平的变化进行同步并进行接收工作。
发送单元和接收单元存在的时钟频率误差及传输路径上的(电缆、驱动器等)相位延迟会引起同步偏差。因此接收单元通过硬件同步或者再同步的方法调整时序进行接收

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

进击的横打

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值