CAN通信

博客详细介绍了CAN总线的通信速率配置,强调了其在一个数据帧内传输8byte数据的优势,相较于遥控器串口每次只能发送一个字节。通过GetMotorMeasure()接收电调数据,根据ID判断电调来源并解码电机相关参数。数据帧包含仲裁段、控制段和数据段,每个部分都有特定含义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CAN的通信速率按照电调的手册要求的1Mbps配置,71.42854142857473ns*(9+4+1)=1000ns=1us=1Mbps在这里插入图片描述

CAN总线的一个数据帧中所需要传输的有效数据是8byte(字节)。一帧完整的CAN报文就完全可以将所需要的数据发送出去,不许将数据拆分成许多不同的数据帧,对比遥控器的串口每次只能发送一个字节的数据,一帧完整的数据需要发送18个字节,减少了数据拼接时丢帧的可能(要丢就全丢了)
GetMotorMeasure()是接收电调向总线上发送的数据。
在这里插入图片描述

在这里插入图片描述

首先根据接收到的ID判断究竟接收到的是哪个电调发送来的数据,C620(3508的电调)手册中规定1号电调ID为0x201,2号为0x202,3号为0x203,4号为0x204,判断完数据来源之后,就可以按照手册中的数据格式进行解码,通过高八位和低八位拼接的方式,得到电机的转子机械角度,转子转速,实际转矩电流,电机温度等数据。

数据帧,一个帧可以理解为一个邮件
仲裁段相当于邮件名,写上ID号,ID的数据长度是2的11次方。
控制段,确定要发送的字节数,相当于邮件里多少页
数据段,我们要发送给对方的内容,最多8个字节
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值