工程师们一般运用示波器调查CAN总线的信号质量,一般首要重视CAN总线差分信号的幅值、最小位宽、边缘状况等。信任不少工程师都看到过一条报文数据的波形上高高低低存在多个幅值,心里可能会变得坐卧不安,幅值不共同是不是波形呈现畸变了呢?其实并非如此,今日就把CAN总线上的幅值“反常”归归类。
一、CAN-bus信号发生原理
众所周知,一个规范CAN节点由微处理器、控制器、收发器构成。多个节点成总线型架构挂在一同,两个端节点上并有终端电阻。其结构简图如下图所示。
图1 CAN-bus节点网络结构
能够看出,与总线直接相连的是CAN节点的收发器,起内部电路等效如下图所示,CAN-H、CAN-L直接由三极管驱动,近似能够当作电流型输出。结合上文所述网络架构中的终端电阻,节点宣布信号时电流流过终端电阻发生电压信号,当同一时间多个节点一起宣布信号时就会使总线上的电流高于单一节点宣布的电流,使得咱们调查电压信号时呈现突增的现象。
图2 CAN收发器结构
CAN-bus是总线型结构,一般状态下一般只要一个节点占有总线。那么有几种状况会导致多个节点一起宣布,从而导致幅值呈现“反常”呢,下文经过致远电子CANScope分析仪的几个测验事例总结一下。
二、应对位上的幅值“反常”
最常见的,当CAN网络上存在3个以上的节点时,应对位上的幅值要显着高于同一报文的其他方位,如下图所示。能够看到报文在ID段、数据段、CRC校验段处的幅值均比较共同,可是到应对位处时幅值呈现突增。这是为什么呢,咱们都知道CAN-bus总线具有自动应对机制,即当某一节点发送完一帧报文时,一切总线中的其他非只听节点均会在应对位处做出呼应,假如报文被成功辨认则宣布一个显性位做为应对信号。
结合上文所述,应对位此刻CAN总线上的电流是若干节点电流叠加的归纳,所以应对位的幅值高就很简单讲通了。
图3 应对位上的幅值“反常”
三、ID段上的幅值“反常”
CAN-bus总线的一大特色便是多主结构,即网络中一切节点功用对等,没有主从机的概念,一切节点均可自在收发数据。确保多主结构得以完成的关键在于CAN总线的裁定机制也称优先级机制。当网络中一起有多个节点一起发送数据时会在ID段处发生裁定,优先级高的节点会终究占有总线。
如下图所示,能够看到在图中的符号处波形呈现了“台阶”。正是因为在“台阶”呈现前有两个节点一起宣布数据,导致幅值增高,在“台阶”处某一节点因为优先级高占有总线,另一个节点暂时退出,使得幅值又回归往常。
图4 ID段上的幅值反常
四、过错帧上的幅值“反常”
再看看这个事例,能够看到在波形的后半部分也呈现了台阶式的幅值增高,光标卡住的显性电平区间能够看到宽度显着超过了5个规范位宽,依照CAN总线的位填充规矩(不能存在接连六个相同的显性位或隐性位)标明这是一条过错帧。可是不要误解,并不是因为这个幅值“反常”而导致的过错帧,咱们知道CAN总线有过错重发机制,以确保总线传输数据的可靠性。这种可靠性正式经过过错帧的“一票否决制”完成的。
当网络中某一节点辨认到一条认为是有问题的报文后会发送六个接连的显性位(即过错帧),投出这一否决票告诉网络上一切其他节点,本条报文无效。尔后其他节点会以“跟票”的方式悉数宣布六个显性位过错帧。所以此刻多个节点堆叠部分的过错帧的幅值就会高一些了。
图5 过错帧上的幅值反常