CAN的实际波形

 关于CAN的介绍有很多,但是实际看到测量的波形并不多,这个是使用CAN分析仪 CANScope 得到的其中一帧数据的波形。

相关的CAN介绍可以看其他文章进行学习。

 

### CAN通信波形分析 控制器局域网(CAN)是一种用于嵌入式系统的串行通信协议,广泛应用于汽车电子和其他工业领域。其波形特性对于理解信号传输过程至关重要。 #### 波形基本特征 CAN总线采用差分信号传输方式来提高抗干扰能力[^1]。两条信号线分别称为CAN_High (CANH) 和 CAN_Low (CANL),它们之间的电压差代表逻辑状态。典型情况下,在隐性状态下两根导线具有相同的电平;而在显性状态下,则存在明显的电压差异以表示数据位的变化[^2]。 #### 数据帧结构中的波形表现 标准CAN消息由多个字段组成,包括起始位、仲裁场、控制场、数据场以及校验和结束标志等部分。这些不同阶段会在示波器上呈现出特定模式的脉冲序列: - **起始位**: 所有节点检测到此同步事件后进入接收模式。 - **仲裁场**: 包含ID信息并决定优先级发送权归属哪个设备。 - **ACK槽**: 发送方等待确认应答期间可能出现短暂静默期。 - **错误标记**: 如果发生冲突或者CRC验证失败时会插入额外长周期低电平作为指示。 #### 常见异常及其影响因素 当观察实际运行环境下的CAN网络时可能会遇到一些不正常现象: - **反射效应引起的回声振荡** : 这通常由于终端电阻配置不当造成阻抗失配所致. - **电磁兼容性(EMC)**: 外部高频噪声可能叠加在原始信号之上, 导致误码率增加甚至完全失效.[^3] 为了有效诊断上述问题可以借助专业工具如数字存储示波器(DSO), 它能够捕捉高速瞬态变化并将时间轴放大以便更清晰地查看细节. ```python import matplotlib.pyplot as plt import numpy as np t = np.linspace(0, 1e-6 * 100, num=1000) voltage_diff = lambda t: 3.5 if ((int(t*1e6)) % 2 != 0 ) else 0 plt.plot(t,[voltage_diff(i) for i in t]) plt.title('Idealized CAN Differential Voltage Waveform') plt.xlabel('Time [s]') plt.ylabel('Voltage Difference[V]'); ``` 以上代码片段展示了理想条件下简单模拟的一个CAN差动电压波形图样例。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值