1.设置逻辑分析仪
采用的是正点原子的CAN程序。
通过CAN发送的数据,在数据帧的数据段里;发送时标识符ID表示发送优先级,接收时标识符ID用于判断是否接收对应消息(而非靠地址来进行选择)
设置合适的采样频率和软件定义的波特率500K

2.数据分析

实测SOF的宽度是2us,因此可计算出波特率为500K,与实际程序设置的速率一致。
取图中的一部分数据分析,从左往右看:
0|| 000 0[1]001 0010 0|| 000 1000 ||00 [1] 00 1110||0000 [1]1111 || [0] 000 10000||[1]0001 0001||...
SOF|| ID RTR|| IDE r0 DLC|| data0 || data1 || CRC ||CRC界定符 ACK槽 ACK界定符
注意:当连续输出5个相同的位,则需要插入一个反码位 ,如连续输出5个0则需要插入一个1,但这个1在读数时要去掉,上面[1]就是需要忽略的;连续输出5个1则需要插入一个0,但这个0在读数时要去掉,上面[0]就是需要忽略的
数据帧的构成图解如下(标准帧和扩展帧只有中间一部分不同):

注意这里抓的波形是标准帧
解析信息:
(1)SOC:起始帧 “0”
(2)11位ID
000 0001 0010 从右到左每4位一个字段,即为0x12
(3)RTR:"0"
IDE:"0"
r0 :"0"
(4)DLC
&nbs

本文详细介绍了使用正点原子CAN程序设置逻辑分析仪进行数据帧发送和接收,解析了CAN数据帧的结构,包括SOF、ID、RTR、DLC和数据段,并解释了数据中的位填充规则。此外,还深入探讨了STM32F103ZET6的CAN过滤器工作原理,包括32位和16位筛选模式、列表模式和掩码模式的设置与应用,以及如何通过设置过滤器筛选所需CAN报文。
46

被折叠的 条评论
为什么被折叠?



