汽车CAN总线详解

本文详细介绍了汽车CAN总线的各个方面,包括位速率、位填充、位时序、通信网络、显隐性、CAN报文结构以及不同类型的帧。CAN总线的位速率关乎数据传输速度,位填充用于同步,位时序则涉及到数据采样点。通信网络采用无源链路,保证双向传输。显隐性是CAN总线逻辑信号的基础。报文结构包括数据帧、远程帧、错误帧、过载帧和间隔帧,确保数据安全传输。通过示波器波形,读者可以更直观地理解CAN总线的工作原理。
摘要由CSDN通过智能技术生成

前面的文章已经介绍过基础软件的CAN通信部分,今天整理下CAN通信的概览知识。从几个概念开始。

1 位速率

位速率(bit rate),即传输期间单位时间的位数。
数字信号系统中,带宽用来标识通讯线路所能传送数据的能力,即在单位时间内通过网络中某一点的最高数据率,常用的单位为bps(bit per second,又称为比特率)。通过多少个物理电平的位及以什么样的方式组合来表示逻辑上的0和1,即位表示法来分,主要有NRZ编码和曼码。其中,使用曼彻斯特码时可以用电平上的0-1跳变表示逻辑上的0,电平上的1-0跳变表示逻辑上的1,如下图(b)所示。使用NRZ码用电平上的0表示逻辑上的0,电平上的1表示逻辑上的1,如下图(a)所示。
在这里插入图片描述

2 位填充

在使用NRZ位表示时,使用位填充提供的总线状态来满足周期性同步。每当发送逻辑在数据中遇到一定填充宽度的有相等值连续位时,它会自动填充一个位的互补值,填充到输出比特流中。接收器执行逆过程,从接收数据中去除它。
NRZ码的带宽利用率很高,但是有些时候它不能传输时钟信号。比如,传输0-0-0-0或1-1-1-1在物理线路上将看到一条水平直线的“低电平”或“高电平”,当接受方和发送方的时钟存在偏差时,会造成接收方多检出或少检出一个位。如下图,发送方1-0跳变开始,接收方时钟与它同步,但是接收方比发送方的系统时钟慢了1/5Tq,当发送方连续发了6个零,接收方只连续收到了5个零,丢了一个位。
在这里插入图片描述
对于采用NRZ码的异步通信,为了避免这种情况,就要定义一个最大时钟同步间隔。即最大允许发送N个连续位时必须要反转一次电平,让接收方同步发送方的时钟。定义发送数据帧中连续位的个数为数列{n_i},如果max{n_i}<N,就不需要填充,否则就要对帧中满足填充。但是这个填充位是0还是1没有任何数据意义,它只是时钟同步的标志,接收到之后必须要被识别出来并剔除掉,才能恢复出发送方的原始数据。
在这里插入图片描述
每填充一个位,填充的位也会被定义到发送数据序列里,则{n_i}就要重新计算一次,重新判定max{n_i}<N。从而可能会出现填充的连锁反应,如下图所示。而在去填充的时候,要首先全识别出填充位,然后再一起剔除。
在这里插入图片描述

3 位时序

由发送单元在非同步的情况下发送每秒的位数称为位速率。一个位可分为 4 段。
同步段(SS)
传播时间段(PTS)
相位缓冲段1(PBS1)
相位缓冲段2(PBS2)
这些段又由可称为 TimeQuantum(以下称为Tq)的最小时间单位构成。
1 位分为4 个段,每个段又由若干个Tq 构成,这称为位时序。
1 位由多少个Tq 构成、每个段又由多少个Tq 构成等,可以任意设定位时序。通过设定位时序,多个单元可同时采样,也可任意设定采样点。各段的作用和 Tq 数如下图所示:
在这里插入图片描述
1个位的构成如下图所示:
在这里插入图片描述
上图的采样点,是指读取总线电平,并将读到的电平作为位值的点。位置在 PBS1 结束处。根据位时序,可以计算CAN通信的波特率了。
前面提到的CAN协议具有仲裁功能,下面我们来看看是如何实现的。在总线空闲态,最先开始发送消息的单元获得发送权。当多个单元同时开始发

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值