【DSView逻辑分析抓取波形CAN步骤-硬件连接-数据解析-底层波形认识CAN】
- 1、概述
- 2、实验环境
- 3、写在前面的一个问题
- 4、实验准备
- (1)硬件连接
- 1)CAN卡连接开发板
- (2)逻辑分析仪连接开发板
- (2) CAN卡连接软件
- (3)软件-DSView设置
- (4)实验代码
- 5、实验过程
- (1)调试代码>>对于普通模式和回环模式
- (2)调试代码>>对于标准帧和扩展帧
- 6、实验结果对比
- 第一次实验:1KHz-普通模式-标准帧
- 第二次实验:1KHz-回环模式-标准帧
- 第三次实验:1KHz-回环模式-标准帧+标准帧
- (1)结果对比>>对于普通模式和回环模式
- (2)结果对比>>对于标准帧和扩展帧
- (3)本次实验-实验数据
- 7、本次实验样例代码
- 8、实验细节
- 9、设备链接与软件地址
- 10、参考资料
- 11、总结
1、概述
最近在一次工作中,和同事谈论想抓下can的波形。因为以前自己也没有使用逻辑分析仪,单独抓过can。所以这次想自己亲自试试,但是尝试的时候,虽然已经查过资料,但是感觉数据就是不对,和can卡出来的数据就是有出入。经过反复实验,才渐渐明白了。
你能得到什么?你可以从本篇大致了解底层can的波形样貌,认识can,并且对于工具使用有初步了解。
2、实验环境
本次涉及的实验设备,相对多一些,如果你做本次实验,可以用其它替代品,并一定非要一模一样。
- 开发板:正点原子STM32F407探索者
- 开发调试软件:KEIL5
- 逻辑分析仪:DSLogic
- 逻辑分析仪软件:DSView
- can卡:创芯科技 CAN分析仪 CANOpen J1939 DeviceNet USBCAN USB转CAN 高配版(红色)
- CAN:随can卡软件适配软件
- 下载器:J-Link
- 其它辅助材料:电源适配器,杜邦线等
以下是测试环境拍摄
3、写在前面的一个问题
最开始设计实验的时候,就想用can卡直接连接逻辑分析仪,一个发一个收,这样你知道你发了啥,你收到你直接解析,清晰明了,但是后来如何连接和设置软件,都没成功,后来才发现:
有can卡的时候,逻辑分析仪就会出现数据不对情况。
有can卡的时候,这款逻辑分析仪貌似不能同can开一同使用。
有can卡的时候,CAN不能直接发数据给逻辑分析仪。
如下图,就是开始出现问题时候,一次性将所有东西都接好了,导致逻辑分析仪数据就是不对,所以本次实验,
默认使用can卡时,暂时断开逻辑分析仪。
默认使用逻辑分析仪时,暂时断开can卡。
4、实验准备
(1)硬件连接
硬件连接部分主要分为CAN卡连接开发板和逻辑分析仪连接开发板。
1)CAN卡连接开发板
如下图所示
开发板CANH----> CAN卡H
开发板CANL----> CAN卡L
(2)逻辑分析仪连接开发板
逻辑分析仪抓取can,稍微不一样,逻辑分析仪主要是一个GND和通道,按如下方式接。
通道0的通道0--->接开发板CANL
通道0的GND--->接开发板GND
(2) CAN卡连接软件
如果你和我买的这款can卡一样的话,那么可以想店家要资料,里面有这个软件。
(3)软件-DSView设置
这块开始查资料,没注意到,导致没成功,主要有两个注意点。
- 2V电平设置
- 波特率和采集频率
2V电平设置
如下图,主要是阈值电平,默认是1V,要设置2.0V
波特率和采集频率
如下图,波特率主要是从发射端,你需要知道你测试频率是多少,本次实验是1000K,如下图是1000000,也就是6个零,
采集时间是5S,采集频率20MHz,一般采集频率要求是高于采集源头的2倍数以上。
(4)实验代码
本次实验使用的正点原子代码,并没有自己亲自重新写一份代码,稍微做了修改,可以去下边自取。
5、实验过程
在调试过程中,发现有些参数设置,需要注意,而这些参数的不同,在can卡和逻辑分析仪上,看到结果也不禁相同。
- 普通模式和回环模式
- 标准帧和扩展帧
(1)调试代码>>对于普通模式和回环模式
因为这两个模式:普通模式和回环模式,只能在初始化时设设置,所有跑了两边代码,才能看出差异,平时使用时,有可能就因为这个模式不同,而设备无法工作。
如下图,在初始化时,这个地方进行设定。
(2)调试代码>>对于标准帧和扩展帧
这个数据帧,在发送时只要设一下就可以了,可以在一份带来发送不同帧,所有在下边代码,直接复写了函数,分别装载不同数据,用来去区分。
样例数据:
uint8_t canbuf[8]={0x02,0x00,0x72,0x3C,0x42,0x68,0x00,0x00};
uint8_t test_canbuf1[8]={0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18};
uint8_t test_canbuf2[8]={0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28};
复用发送代码:
实际循环发送:
6、实验结果对比
说明:中间改过代码,最终结果截图不是和最终代码一致的,但为了说明其问题。
第一次实验:1KHz-普通模式-标准帧
(1)逻辑分析仪抓取数据如下图
(2)can卡如下图
第二次实验:1KHz-回环模式-标准帧
(1)逻辑分析仪抓取数据如下图
(2)can卡如下图
第三次实验:1KHz-回环模式-标准帧+标准帧
(1)逻辑分析仪抓取数据如下图
(2)can卡如下图
(1)结果对比>>对于普通模式和回环模式
(1)从CAN卡端,接收的数据看不出任何任何差别,会告诉是标准帧和扩展帧,但仅此而已。
(2)从逻辑分析仪,可以看出明显差别:
普通模式:像是循环一样,连续发送
回环模式:是按照1S等待时间发送的。
(2)结果对比>>对于标准帧和扩展帧
(1)从CAN卡端,接收的数据看不出任何任何差别,会告诉是标准帧和扩展帧,但仅此而已。
(2)从逻辑分析仪,可以看出明显差别:主要是位置不一样
(3)本次实验-实验数据
主要是DSView保存数据,can卡以上边截图为主
实验数据:https://download.csdn.net/download/qq_22146161/87439529
7、本次实验样例代码
本次样例代码:https://download.csdn.net/download/qq_22146161/87439432
8、实验细节
(1)如果CAN卡和逻辑分析仪同时接入问题。
从实验来看,我尝试使用多种连接方式,甚至直接让CAN卡和逻辑分析仪连接,都没有成功,目前还没有查到相关原因,暂时认定不能连接。
(2)普通模式和回环模式,平时使用时,有可能就因为这个模式不同,而设备无法工作。
在实际工作中,使用时,有个设备,使用开发板发送数据给它,发现设备就是不响应,但是使用can卡确实可以,数据仔细对过后,没发现却别,后来设置了普通模式立刻响应了,所以我们看着数据一样,对于设备来说,就是不一样的。
(3)can卡软件和逻辑分析仪收不到数据
这个是个人原因,有点蠢了,找了一圈,开发板忘记开电源了,并且每次下代码,要按下复位按键。
(4)下载代码时,keil软件问题
如下图,报找不到设备了,这个时候先将can卡或者逻辑分析仪拔掉,重新插下j-link尝试几次,看样是连接问题。
9、设备链接与软件地址
关于本次实验使用软件与硬件资料,基本上某宝,某京,只要搜索名字就能查到,我这里提供can的相关软件和一些连接:
- 逻辑分析仪软件:DSView>>https://www.dreamsourcelab.com/
- can卡:创芯科技 CAN分析仪 CANOpen J1939 DeviceNet USBCAN USB转CAN 高配版(红色)>>https://download.csdn.net/download/qq_22146161/87439313
10、参考资料
使用逻辑分析仪时,参考的网上相关文章,但是开始只有文字描述,没主要设置2V,以及怎么设置,这点笔者认为可以更好优化。
参考文章:https://blog.csdn.net/qq_37956302/article/details/122584368
11、总结
想起了最近《三体》电视剧热播,有个道理是,对于事物的本质了解,才决定人类文明高度,也许,对于我们这些搞电子相关的人来说,对于这种底层的认知,才决定水平高低。