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