can总线的示波器检测方法

本文深入解析了CAN总线的工作原理和技术细节,包括STM32中CAN总线的配置、波特率测量方法、数据帧结构及远程帧的作用。此外,还探讨了CAN总线的位填充机制和物理层实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



整理自网络::

stm32的can总线是在APB1上的,stm32f10x的主频是72Mhz,can外设时钟是36Mhz,stm32f2xx的主频是120Mhz,can外设时钟是30Mhz。。。

STM32 APB1和APB2区别:

APB2负责AD,I/O,高级TIM,串口1。

APB1负责DA,USB,SPI,I2C,CAN,串口2345,普通TIM


can总线电气特性


做一想要从车上测出can总线上的数据还不太容易。

于是我首先使用示波器(我使用的示波器型号是TDS 220)来找出汽车上can总线的接口,然后测出can总线的波特率,测量波特率的步骤如下:

1、将示波器的两个接口(接地和探头)分别接在can总线的两条线(CAN_H和CAN_L)上,
这里需要注意如果CAN线上需要接一个120欧姆的负载电阻,否则波形是不规整方波,
接上负载之后才是规整的方波。

2、此时如果can线上有数据,则会在示波器上显示出方波如图1所示。(这里使用示波器的RUN/STOP按钮捕捉波形)

                                                     图1

2、但是此时因为示波器显示的数据太多还无法读取单个脉冲的周期,
所以需要调节示波器的X轴的每格所代表的周期(调节SEC/DIV旋钮)
然后使用RUN/STOP按钮重新捕捉波形得到图2所示的波形,

                                                       图2

3、最后将图2中宽度较小的脉冲再次放大(调节SEC/DIV)直到图3所示,这时每格代表1us
可以看到这个脉冲跨度为8us

                                                      图3

所以最终得到该can总线的波特率为1s/8us=125K





在车辆电子网络中,CAN总线是一个重要的协议。它具有一个高达1兆bit的比特率, 并提供简单的微处理器网络,这需要用到一种被称为CAN控制器的专用CAN总线芯片叫做CAN控制器。

CAN的数据传输报文就是数据帧。数据帧允许有一个比较长的ID,所以称为可扩展帧

适用于某些应用中的,但不是用于汽车中的是远程帧。远程帧允许一个节点响应一个特定的ID。

CAN功能是非常齐全的。这意味着它不仅仅发现很多的错误,同时能够实现自动化传输或者节点自动关闭。

CAN使用比特流来通过接收器到发射器。为了适合于特定的位次序,CAN必须使用位填充。位填充在传统示波器上对CAN波形进行解码很困难。

CAN是一个数据链接层。有三种正在使用的物理层来对CAN进行信号的电动发射。

在使用CAN总线的某些地方,可能用FlexRay或者LIN更合适。

CAN总线的详细说明书:PDFcan2spec.pdf

CAN Bus Frame
一个CAN总线的数据帧

CAN总线数据帧

CAN总线数据帧在CAN上运作。CAN的整个过程实质上是在网络控制器之间发送数据,这就需要数据帧来实现这个功能了。

数据帧是以一个单一的SOF(起始帧)位开始的,跟着就是CAN标识符。CAN标识符是用来标识报文和接下来的节点报文。标识符可以有11位长或者是29位长,这主要是根据保留位的状态来决定。

SOF and CAN ID
CAN数据帧以一个SOF位开始,跟着就是ID位

在CAN标识符之后,有一个数据段,数据段是以一个数据长度开始的。CAN数据帧能够有0到8个字节,这样它使用4位的编码长度。数据字节直接跟着数据长度。

CAN DLC and Data Bytes
在CAN帧中数据字节跟着数据长度(DLC)

跟在数据之后是CRC。CRC是基于CAN帧的第一部分在接收器和发射器中进行计算的。如果计算出来的结果与接收器呈现的结果相匹配,则说明正确接收数据。

CAN CRC and ACK
CAN 的CRC检查数据的完整性,同时ack表示从另一个节点接收

跟着CRC的是Ack 场,这个场是在所有的其他的正确接收帧的网络节点上进行设置的。
Ack位后,有一段静态时间,它称为紧跟着一个最小的内插帧空间的帧空间结束符。

 

Image一个CAN数据帧图片

扩展数据帧

可扩展标识符CAN 帧使用29位用于辨识目的,而不是标准的CAN帧的11位。由于这个额外的ID空间增加了20位(18个ID和两个保留位),它通常不使用于希望得到最高性能的网络当中。

在J1939和GMLAN协议中,较大的ID分为不同的部分,每一个部分都有它的意义。比如,对于J1939和GMLAN的最低的8个ID位表明了一个字节的源地址。

Extended ID
单线CAN扩展ID是有29位长(还没有算入缓冲位)。许多系统设计者不使用这个ID长度,
因为它要求比较高的费用

CAN总线远程数据帧

CAN总线远程帧是可选帧,它用于请求数据。远程帧没有包含数据段,即使数据长码位大于0。你能够从RTR位的状态来判决一个帧是否是远程帧(RTR=1)。远程帧通常不使用在汽车的应用当中。

CAN Remote Frame
在这个CAN L波形中显示了一个远程帧

CAN总线错误



 

请看图片 >

CAN总线位填充

CAN波形是一系列的位。由于在CAN总线节点之间没有共享时钟,那么对于所有的节点则一定有方法从波形中得到时钟信息。因此接收器使用CAN波形转换来使得发射器与接收器实现同步时钟。

为了确保有足够的转换,CAN总线执行位填充功能。位填充在连续5个相同的位之后,插入一个额外的码流的相反位。由于填充位的出现要根据消息序列的容量,CAN帧的长度要根据在帧里面的数据位进行改变。这些额外的填充位自动被接收器丢掉,因此在CAN节点的应用软件中就从来不会接触到这些填充位了。

CAN Stuff Bits
填充位,用黄色突出,增加消耗在一个CAN报文中。这个报文有13个额外的填充位

CAN总线物理层

CAN协议介绍了1s和0s是如何使用在通讯当中的。CAN协议没有介绍发射1s和0s信号的电气方法。

最普遍流行的物理层被称为双线物理层。这个物理层使用双线CAN H和CAN L。这些线在不同的电压方向(对应着不同的信号传输)上传送1或者0。

对于特定的汽车低速应用,介绍两个其他的物理层。它们是单线CAN和低速容错CAN。如果有一条线路断了。低速容错CAN总线将会提供容错信息。

单线CAN

单线CAN是一个物理层,它是由普通的发动机生成的。它允许CAN使用一条单线在低比特率(如33.3Kbps)的情况之下进行通讯。同时对于闪存编程允许一个高速模式。最后,虽然很多CAN收发器仅仅提供了1或者0,但是单线仍能够提供一个被称为高压模式的第三状态。这种模式能够使得CAN节点的电源管理有选择性。

Single Wire CAN Voltages
这是两个不同的单线CAN帧。一个在高电压模式下发送,另一个为正常电压


<think>好的,用户想了解如何使用示波器CAN总线的时延,我需要详细思考这个问题。首先,我需要回顾一下CAN总线的基本知识,比如它的信号结构、帧格式以及时延可能涉及的部分。CAN总线使用差分信号,通常分为CAN_H和CAN_L两根线,传输的是差分电压信号,这一点很重要,因为量时需要正确连接探头。 接下来,时延量通常指的是信号从发送到接收的时间差,可能包括传播延迟、节点处理时间等。要量这个时延,用户可能需要同时捕捉发送节点和接收节点的信号,比较两者的时间差。这就需要示波器的两个通道分别连接到发送端和接收端的CAN_H和CAN_L线上,或者使用差分探头来获取差分信号。 然后,示波器的设置是关键。用户需要正确设置触发条件,比如在发送节点开始发送帧的起始位时触发,这样可以稳定波形,便于观察时延。时基的设置也很重要,需要足够小的时间刻度才能准确量微小的时延,比如CAN总线速率较高时,位时间可能只有微秒级别,时延可能更短,可能需要纳秒级的分辨率。 另外,CAN帧的结构中,帧起始(SOF)、仲裁场、数据场等部分的时序差异也需要考虑。例如,用户可能需要量从发送节点发送SOF到接收节点响应的时间差,或者在数据场中某个特定位的到达时间差。此时,可能需要使用示波器的光标功能来量两个波形之间的时间间隔。 还需要考虑示波器的带宽和采样率是否足够。CAN总线的常见速率有1Mbps、500kbps等,对应的信号上升时间可能很快,因此示波器的带宽至少需要高于信号频率的5倍,比如对于1MHz的信号,至少需要5MHz带宽的示波器,但实际中可能需要更高以确保准确性。采样率方面,根据奈奎斯特定理,至少需要两倍于信号最高频率,但实际中可能需要更高,比如10倍以上,才能准确捕捉信号边沿。 用户可能还需要进行多次量取平均值,以消除随机误差。此外,使用示波器的自动量功能,如时间差量,可以提高准确性和效率。 最后,参考用户提供的引用[^1],虽然主要是关于噪声分析,但示波器的频域分析功能可能对识别干扰导致的时延波动有帮助。不过,时延量主要是在时域进行,频域分析可能用于辅助分析噪声对时延的影响。 总结步骤应该是:连接探头,设置触发,调整时基,捕捉波形,使用光标或自动量功能计算时延。同时,注意设备设置的正确性和环境干扰的排除。</think>### 使用示波器CAN总线时延的方法及设置 #### 1. **硬件连接** - **差分信号量**:CAN总线使用差分信号(CAN_H和CAN_L),需使用差分探头或两个通道分别连接,并设置示波器为差分量模式。例如,通道1接CAN_H,通道2接CAN_L,示波器设置为“通道1 - 通道2”以显示差分信号[^1]。 - **触发设置**:选择边沿触发,触发源为差分信号通道,触发条件设为上升沿或下降沿,确保捕捉到帧起始(SOF)或特定数据位的跳变。 #### 2. **时基与采样率设置** - **时基调整**:根据CAN总线速率调整时间刻度。例如,若速率为1 Mbps(位时间为1 μs),时基可设为500 ns/div,以清晰观位跳变。 - **采样率要求**:采样率需至少为信号频率的10倍。例如,1 Mbps信号需10 MS/s(兆样本/秒)以上,以确保波形细节清晰。 #### 3. **多节点同步量** - **发送与接收端对比**:若需量网络传输时延,需同时捕捉发送节点(如控制器)和接收节点(如终端)的信号。例如: - 通道1接发送端差分信号。 - 通道3接接收端差分信号(需4通道示波器)。 - **时间差量**:使用光标功能或自动量工具(如“时间差”功能),直接读取两信号上升沿的时间差。 #### 4. **关键信号定位** - **帧起始(SOF)标记**:CAN帧以显性电平(逻辑0)开始,通过触发SOF的下降沿稳定波形。 - **数据场对比**:若需量特定数据位的时延,可放大对应区域,量发送端与接收端同一数据位的到达时间差。 #### 5. **示例设置参数** - **示波器型号**:以泰克TBS2000为例: - 通道1-2:差分模式,带宽限制20 MHz(减少高频噪声)。 - 触发类型:边沿触发(下降沿,触发电平1.5 V)。 - 采样率:10 MS/s。 - 时基:500 ns/div。 #### 6. **注意事项** - **地线干扰**:确保所有探头共地,避免接地环路引入噪声。 - **终端电阻**:CAN总线需安装120 Ω终端电阻,否则信号反射会导致波形畸变,影响量。 - **多次平均**:开启示波器平均模式(如16次),降低随机噪声对边沿检测的影响。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值