逻辑分析仪─从入门到精通讲座(11) 逻辑分析仪在CAN总线开发中的应用
1. 引言
作为一种串行通讯技术,CAN-bus是20世纪80年代中后期适应汽车控制网络化要求而产生并迅速发展起来的,并已成为开放的国际标准通讯协议(ISO 11898),在众多领域得到了广泛的应用。
但是专用的CAN分析仪价格昂贵,本文介绍了一种基于逻辑分析仪的分析CAN总线的方法,不仅节省项目的资金,而且高效准确。
一般的逻辑分析仪中没有CAN 总线分析插件,CAN总线信号解码只能采用人工分析方法,即根据协议中规定的关系等许多情况进行分析。
这种分析方式不仅要求分析人员对该CAN协议非常熟悉,而且数据量大,分析过程容易出错。
本文采用了广州致远电子有限公司的高性能LAB6052逻辑分析仪和示波器相结合的方法对CAN-bus进行分析调试。
LAB6052逻辑分析仪的CAN-bus总线分析功能使得大多数开发人员可以很轻松的发现错误、调试硬件、加快开发进度,为高速度、高质量完成工程提供保障。
2. 测试原理
尽管CAN是差分信号,而逻辑分析仪只支持单端信号的测量,但是根据CAN的电平特性,是可以通过合适的方法准确测量分析CAN总线数据的。
如图1所示CAN2.0B规范定义了两种互补的逻辑数值:“显性”和“隐性”,同时传送“显性”和“隐性”位时,总线结果值为“显性”。
“显性”(“Daminant”)数值表示逻辑“0”,而“隐性”(“Recessive”)表示逻辑“1”。
在CAN规范中并未定义代表逻辑电平的物理状态(例如电压),iCAN网络使用符合ISO11898-2标准的电平信号,典型地,CAN总线为“隐性”(逻辑1)时,CAN_H和CAN_L 的电平为2.5V(电位差为0V);CAN总线为“显性”(逻辑0)时,CAN_H和CAN_L的电平分别是3.5V和1.5V(电位差为2V),如图1所示。
图 1 CAN协议逻辑数值
显而易见,当逻辑为1时CAN_L和CAN_H的差值为0,当逻辑为0时CAN_L和CAN_H
差值为-2伏,用CAN_L的逻辑电平减去CAN_H的逻辑电平既可以得到CAN的时序逻辑,本文就是利用这一点达到测量的目的的,或者单端的CAN_L信号也是可以满足时序要求的,但是其稳定性明显不如双端的测量。
3. 测试方法
第一种测量方式,逻辑分析仪的地线接设备系统地,测量通道接CAN_L然后设置逻辑分析的比较门限电平为2V左右就可以。
但是这种单端方式的测量稳定性在实际测量中明显不如差分信号的测量。
第二种测量方式, 把CAN_H作为逻辑分析仪的地线,测量通道接CAN_L。
这种测量方法的基本要求是CAN网络的CAN_H与其地必须是隔离的,原因是由于PC地(即逻辑分析仪地)与被测系统地是共地的,如果没有隔离的条件下这样相连等效与把CAN_H信号和CAN网络的地直接相连起来了,这样会导致系统无法正常运行,甚至会损坏仪器或设备。
为了避免不必要的损坏,提高可靠性稳定性,必须保证逻辑分析仪或设备(CAN-BUS节点)有一方是隔离的。
当用户无法确认CAN网络是否隔离时,比较保险的操作方法如下,使用一台不接外置电源的笔记本电脑与逻辑分析仪连接,这样就可以保证隔离的效果。
为了保证测量结果有着更高的精确度,推荐用户采样第二种测量方法。
4. 逻辑分析仪阀值电压的确定
在用逻辑分析仪测量CAN-bus信号之前,最好使用示波器观察CAN_L和CAN_H信号波形,以确定逻辑分析仪采样的门阀电平。
如图2所示是CAN_L信号和CAN_H信号经过相减运算后得到的波形,由图2中可知CAN_L和CAN_H的电压差值为-1.9伏左右,与理想的-2伏有0.1伏的差距。
由此可以确定逻辑分析仪的门阀电压为-0.95伏。
图 2 CAN-bus信号
5. 逻辑分析仪插件分析CAN总线
逻辑分析仪LAB6052采样CAN-bus信号据需要以下几个步骤,首先把CAN_H作为逻辑分析仪的地线连接起来,而CAN_L则接到逻辑分析仪的测量通道上。
然后设置采样频率,这里采用异步采样,由于频率过高会采样到很多毛刺,干扰会比较严重,故而设置的采样频率不宜太高,一般为50MHz就可以了,并且为得到更为准确的结果推荐用户加入数字滤波减少毛刺的影响。
最后设置门阀电压,由于CAN_L和CAN_H的电压差为-1.9伏,设置门阀电压为-0.95伏,如图3所示为逻辑分析仪的的相关参数的设置。
图 3 参数的设置
在对CAN总线进行插件分析之前,需要用户确认总线信号的波特率,如果用户并不知道CAN的波特率,可以从逻辑分析仪采样回来的数据估算出来的。
由于CAN总线信号在不工作的条件下为高电平,并且其在有效数据期间不会出现连续的5个以上的高电平。
所以可以找到最小的一个脉冲信号,假设其为一个周期的时间,由逻辑分析仪分仪分析测量,并由此列出几个可能的波特率,进行插件分析。
至此可以加入CAN插件,如图4所示是对CAN插件进行的相关参数的设置。
图 4 CAN插件设置
完成上面所述的操作后,便可以得到如图5所示的分析结果,可以分析出此时的CAN -bus信号的时序帧ID为0x7B1,发出的数据为0x56和0x78,这样的插件分析结果使得用户可以非常方便分析和学习CAN-bus信号的时序。
如图6所示的CANalyst-II的分析结果,可以看出两种工具得到的结果是完全一致的, 并且其结果与本文的通信系统所发出的数据是完全吻合。
图 5 LAB6052分析结果
图 6 CANalyst-II分析结果
相对于示波器和CANalyst-II分析仪,逻辑分析仪对CAN信号的分析和学习上有较大的优势。
由上文可知示波器只可以查看波形,其获取的CAN-bus信号的分析需要用户测量每个高低脉冲的宽度,对于大量数据来说用户是非常难以分析和学习CAN信号的。
CANalyst-II 分析仪则只能显示分析的最终结果,看不到物理传输的逻辑信号。
而逻辑分析仪可以把逻辑信号和最终的分析结果全部显示出来,用户可以更加方便的分析调试、学习CAN-bus信号。
综上所述,利用LAB6052对CAN-bus信号进行分析,可以使用户学习和分析CAN信号时序更加得心应手,同时LAB6052采样所采用的Time-State数据跳变存储技术可以获取大量的数据结果,对用户分析数据也是一大惊喜,可以说LAB6052是分析学习CAN-bus总线的一把利剑。
6. 结语
本文分析了使用逻辑分析仪分析CAN-bus上的数据的考虑因素。
从中可以看出,合理的设置好相关参数和使用功能强大的逻辑分析仪LAB6052是可以有效和方便的分析CAN 总线的。
此外,本文还说明了使用CAN插件触发可以轻松的捕获串行数据协议后的数据,使得数据分析和数据触发有机的融合一体,让用户在大批量的传输数据中可以精确的触发和分析。