CAN通信又叫控制器局域网(Controller Area Network)

直观作用是将整车上所有需要通信的ECU都连接在一条总线上使用线束变得清晰简单,使每个ECU都能相互通信。

接下来我们看一下CAN信号是如何实现通信的

要理解CAN通信先说一下串口通信,信息是转化成二进制码在转化成高低电平的形式在总线上传输的。

当信号从单片机发出来时,高电平是“1”低电平是“0“,传输到CAN收发器时转化为can差分信号

当发出一个高电平时CANh和CANl输出都为2.5V,电位差为0表示为逻辑1 我们称之为隐性

当发出一个低电平时CANh和CANl分别为3.5V和1.5V,电位差为2V表示为逻辑0 我们称之为显性

如果这里你觉得有点绕那我们可以想像CAN信号的两条线信号用逻辑&来作为最终输出1&0=0,所以把0作为显性性号(口诀:神仙“显灵(0)”),这也是为什么在CAN报文总裁时0显性信号为什么优先级高一些,为什么ID越小优先级越高。

示波器测量信号时如何来看显隐性呢?和常规状态一致的就是隐性,发生变化的就是显性啦

上图我们可以看出以下结论

1.   VCAN_H+VCAN_L=5V

2.   2.5V<VCAN_H<3.5V

3.   1.5V<VCAN_L<2.5V

当VCAN_H和VCAN_L超出这个范围那么我们可以判断发生了短路或者断路

差分电压有什么优势呢,当信号受到干扰时CAN高和低可以同时变化来减小外界对信号带来的影响,如果在测试单条CAN线时我们发现波形很差没关系,只要差分信号稳定就不受影响。

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐