利用逻辑分析仪处理CAN协议数据

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值