OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2898|回复: 3

请教非常熟悉CAN协议的大神一个问题

[复制链接]

75

主题

185

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
291
金钱
291
注册时间
2021-2-5
在线时间
135 小时
发表于 2023-8-17 15:13:12 | 显示全部楼层 |阅读模式
根据CAN总线的特性,我们可以自动识别波特率,原理就是利用CAN总线上波特率相同的两个终端可以通信,并且错误(波特率不同)的时候可以根据寄存器报错得到反馈这个特点进行识别,我在一篇论文上也验证了这个原理的正确性,从代码的角度也是实现了这个原理,但是有一点,论文上讲的是,识别的时候从波特率较大的切换到较小的,这是有什么说法吗,因为我的代码波特率是从小的切换到大的,遇到的问题就是有的时候无法识别成功,所以想弄明白这个由大到小和由小到大有什么区别吗?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

75

主题

185

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
291
金钱
291
注册时间
2021-2-5
在线时间
135 小时
 楼主| 发表于 2023-8-17 16:51:03 | 显示全部楼层
虽然我没有弄清楚是为什么,但是刚才通过实际的验证,确切的结论就是:就是要从大的波特率往小的开始识别,否则就是会识别不到,而且这种现象是偶发性的识别不到
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
2
金钱
2
注册时间
2023-8-18
在线时间
0 小时
发表于 2023-8-18 16:35:44 | 显示全部楼层
根据你描述的情况,识别 CAN 总线的波特率的原理是基于两个终端的通信,并通过错误反馈来判断波特率是否匹配。至于从较大的波特率切换到较小的波特率或从较小的波特率切换到较大的波特率,这在原理上没有特别严格的要求。可以从大到小或从小到大进行识别,原理是相同的。  然而,在实际应用中,从大到小或从小到大进行波特率切换可能会受到一些考虑因素的影响,这些因素可能会导致在某些情况下无法成功识别波特率:  波特率检测时间窗口: 当你从较小的波特率切换到较大的波特率时,终端会尝试在一个较短的时间窗口内检测较大的波特率,可能需要更高的精确性来识别。如果波特率不匹配,错误可能会更容易被检测到。  信号干扰: 当切换波特率时,信号可能会受到干扰或失真,可能会导致错误的检测或干扰检测。  终端的自适应能力: 不同终端在波特率切换时可能具有不同的自适应能力,一些终端可能对从小到大或从大到小的切换更敏感。  实验环境和测试条件: 实验环境、硬件条件以及测试的稳定性也可能影响从大到小或从小到大的波特率切换的成功率。  在实际应用中,为了提高波特率识别的可靠性,你可以尝试从不同方向进行波特率切换,或者在切换波特率之前增加一些准备阶段,以确保终端在切换波特率时可以稳定地进行通信和识别。同时,确保你的代码在波特率切换时处理正确的寄存器配置和错误反馈,以便进行可靠的波特率识别。
回复 支持 反对

使用道具 举报

12

主题

3344

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8462
金钱
8462
注册时间
2020-5-11
在线时间
3904 小时
发表于 2023-8-21 19:11:39 | 显示全部楼层
不能利用定时器捕获功能测一下数据脉宽来推算波特率?
专治疑难杂症
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-24 18:06

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表