下面以PicoScope 6403E-034为例说明
1.Scope 硬件结构介绍
前面板:
最多支持捕获2路CAN/CANFD/FlexRay总线,或者4路LIN总线
后面板:
Scope Bus Probe 300 Mhz
2.Option Scope使用条件
前提条件1:购买CANoe/CANalyzer Option Scope的 License
前提条件2:购买PicoScope硬件设备,支持的硬件型号可参考Help文档说明
前提条件3:安装PicoScope驱动,从如下官网下载
PicoScope oscilloscope software and PicoLog data logging software
3.硬件接线
3.1可能遇到的问题如下:
- A通道下面的运行灯为红色
- 有两个报错
- Measurements窗口显示为红色
- Eye Diagram不显示
3.2解决方法
PicoScope 6403E-034的A通道接PIN2(CAN_L),B通道接PIN7(CAN_H),并且Scope Hardware Configuration里配置的A和B通道要一致。
解决后运行A通道下面的运行灯为绿色,软件界面如下图:
注意:如果示波器实际通道A接PIN7,B接PIN2,则Scope Hardware Configuration里配置的A通道对应CAN1_H, B通道对应CAN1_L
Scope VT Trigger Y-cable线接PicoScope 6403E-034,Gen应该接到AWG端口,而不是AUX Trig端口,即Gen接AWG;Ext接AUX Trig;另外一头接VH6501或者其他硬件的Sync
以下是PicoScope 5444D-034接线实物可参考(通过VH6501对被测DUT施加干扰,Scope捕获报文波形图)
4.Scope 捕获报文波形
CAN Frame详解_mengqiutong的博客-CSDN博客 波形解析参考这篇文章
5.Tmess 测试案例分析
CAN报文的显性跳变是指从1到0跳变,也就是总线电平从高变低。这是因为CAN总线采用的是“线与”的规则,即只要有一个节点发送0,总线就会输出0,而0代表有数据传输12。相反,隐性跳变是指从0到1跳变,也就是总线电平从低变高,表示无数据传输
捕获一帧DUT发出的报文,测量从ID场之后第一个显性跳变沿开始(需要注意填充位),到ACK位之前的最后一个显性跳变沿之间CAN总线差分信号的长度,记为Tmess;计算Tbit的值为Tmess/n,n表示这2个跳变沿之间的位个数(就是总共多少个bit,除去插进去填充位)
CAN报文ID场之后第一个显性跳变沿是指远程发送请求位(RTR)。RTR位标明是数据帧还是请求帧,在数据帧中RTR位为显性电平(逻辑0),在请求帧中RTR位为隐性电平(逻辑1。如下图所示,RTR位是ID场之后的第一个位,也是第一个显性跳变沿 (注意:实测有些报文ID场后第一个显性跳变可能不是RTR,这个时候可能计算出来的Tbit不对,比如CANID 0x380)
CAN报文ACK位之前的最后一个显性跳变沿是指CRC段的最后一位。这是因为CRC段是用于检验报文正确性的,如果CRC段没有错误,那么接收节点就会在ACK段发送显性位来应答发送节点。如下图所示,CRC段的最后一位是一个显性位,也就是总线电平从高变低的跳变沿。
总共填充位(黄色标注)为12个,其中第一个填充位在测量线之外,所以需要考虑的填充位为11个
时间为23.879-1.997=21.882μs
Tmess=195.9811μs-21.882μs=174099.1ns (其中21.882μs表示11个填充位所占的时间)
n1=0.998 bits+5.988 bits+74.975 bits+16.047 bits=98.008 bits (包含填充位)
Tbit=174099.1/(98.008-11)=2000.955ns
6.测量CAN frame identifier (CAN ID)
一般是11bits
比如CANoe 发出的信号,CAN ID 0x158
功放回的消息,CAN ID 0x21,在下图解析中是11.980bits,也就是12bits,是包含了一个填充位
实际上CAN ID 还是11bits