一种CAN总线的波特率自适应检测方法和系统技术方案

技术编号:38583329 阅读:19 留言:0更新日期:2023-08-26 23:27
本发明专利技术提供一种CAN总线的波特率自适应检测方法和系统,CAN总线的波特率自适应检测方法至少包括如下步骤:首先多次采样CAN总线的CAN数据帧,并对每次CAN数据帧进行处理得到有效脉宽数据;然后对所有有效脉宽数据进行计算得到最大公约数;最后基于所有最大公约数和预存波特率表确定最终波特率值。本发明专利技术能够准确检测CAN总线的波特率,从而确保CAN总线系统中数据传输的可靠性。本发明专利技术的CAN总线的波特率自适应检测系统通过硬件电路和软件功能模块的相互结合,提高了检测CAN总线的波特率的准确性,进而能够使基于波特率数据传输更加可靠,CAN总线系统的性能更好。CAN总线系统的性能更好。CAN总线系统的性能更好。

【技术实现步骤摘要】
一种CAN总线的波特率自适应检测方法和系统


[0001]本专利技术涉及工业现场总线通信
,特别是涉及一种CAN总线的波特率自适应检测方法和系统。

技术介绍

[0002]CAN总线因其高可靠性和良好的错误检测能力受到重视,并被广泛应用于工业自动化、监控系统等众多领域。CAN总线在不同的应用环境会使用不同的波特率,波特率是指有效脉宽数据信号调制载波的速率,也是传输通道频宽的指标。目前波特率自适应的检测方法有:
[0003]方法一:软件控制CAN控制器打开侦听模式,配置某个波特率来侦听CAN总线,产生错误中断或者完成中断,最终得到匹配的波特率,该方法操作时间比较长,软件介入控制比较多。
[0004]方法二:硬件采集CAN总线报文的每个脉宽,然后对得到的数据进行逐一比对,得到脉宽的关系,因为CAN报文的报文宽度的脉宽可能是1~5bit,比如3bit和2bit,比值得到1.5,因为这种关系只有2和3才会得到,所以可以知道1bit的脉宽是两者的差,但是这个方法没有考虑CAN总线本身的抖动以及采样误差,并且比值计算会涉及到浮点数,也会让误差范围更加不确定,硬件实现不便。

技术实现思路

[0005]鉴于以上所述现有技术的缺点,本专利技术的目的在于提供一种CAN总线的波特率自适应检测方法和系统,用于解决现有技术中硬件采集处理导致误差范围不准确的问题。
[0006]为实现上述目的,本专利技术提供一种CAN总线的波特率自适应检测方法,至少包括如下步骤:
[0007]S1,多次采样CAN总线的CAN数据帧,并对每次CAN数据帧进行处理得到有效脉宽数据;
[0008]S2,对所有有效脉宽数据进行计算得到最大公约数;
[0009]S3,基于所有最大公约数和预存波特率表确定CAN总线的当前波特率值。
[0010]优选地,对每次CAN数据帧进行处理得到有效脉宽数据的过程包括:
[0011]对所述CAN数据帧进行同步、统计处理得到中间脉宽数据;
[0012]对每个中间脉宽数据进行校正得到所述有效脉宽数据。
[0013]优选地,对每个中间脉宽数据进行校正得到所述有效脉宽数据的过程为:
[0014](1)基于多个设定波特率的理想脉冲宽度对所有的中间脉宽数据进行筛选得到筛选脉宽数据;
[0015](2)对筛选脉宽数据进行处理得到所述有效脉宽数据。
[0016]优选地,基于所述理想脉冲宽度、抖动容忍度和同步电路带来的误差进行校正。
[0017]优选地,所述有效脉宽数据为[(理想脉冲宽度*(1

抖动容忍度)

补偿值)~(理想
脉冲宽度*(1+抖动容忍度)+补偿值)],其中,补偿值用来补偿第一级同步电路带来的误差。
[0018]优选地,采用Stein算法对所有有效脉宽数据进行计算得到最大公约数。
[0019]优选地,基于所有最大公约数和预存波特率表确定CAN总线的当前波特率值的过程包括:
[0020]基于每次CAN数据帧的最大公约数和预存波特率匹配表得到每次CAN数据帧的初始波特率值;
[0021]基于所有的初始波特率值确定最终波特率值,并将所述最终波特率值作为CAN总线的当前波特率值。
[0022]优选地,利用最大脉冲宽度和最小脉冲宽度进行二次判断确定初始波特率值的过程为:
[0023](1)将最大脉冲宽度和最小脉冲宽度作比值得到比值结果;
[0024](2)对所述比值结果进行再计算得到匹配脉冲宽度;
[0025](3)基于匹配脉冲宽度和预存波特率表确定初始波特率值。
[0026]优选地,基于所有的初始波特率值确定最终波特率值包括:
[0027]若所有帧的初始波特率值相同,则直接将初始波特率值确定为最终波特率值;
[0028]若多次帧的初始波特率值不全相同,将相同数量多的初始波特率值确定为最终波特率值。
[0029]为实现上述目的,本专利技术还提供一种CAN总线的波特率自适应检测系统,包括同步电路模块、校正模块、计算模块和判决模块;
[0030]所述同步电路模块的输入端连接所述CAN总线,用于对CAN总线输出的插值电平进行同步处理得到中间脉宽数据;
[0031]所述校正模块对所述中间脉宽数据进行校正得到有效脉宽数据;
[0032]所述计算模块对所述有效脉宽数据进行计算得到最大公约数;
[0033]所述判决模块基于所述最大公约数和预存波特率表进行匹配、判断处理得到CAN总线的当前波特率值。
[0034]如上所述,本专利技术的CAN总线的波特率自适应检测方法和系统,具有以下有益效果:
[0035]本专利技术提供一种CAN总线的波特率自适应检测方法和系统,CAN总线的波特率自适应检测方法至少包括如下步骤:首先多次采样CAN总线的CAN数据帧,并对每次CAN数据帧进行处理得到有效脉宽数据;然后对所有有效脉宽数据进行计算得到最大公约数;最后基于所有最大公约数和预存波特率表确定最终波特率值。本专利技术能够准确检测CAN总线的波特率,从而确保CAN总线系统中数据传输的可靠性。本专利技术的CAN总线的波特率自适应检测系统通过硬件电路和软件功能模块的相互结合,提高了检测CAN总线的波特率的准确性,进而能够使基于波特率数据传输更加可靠,CAN总线系统的性能更好。
附图说明
[0036]图1显示为本分明CAN总线的波特率自适应检测方法的流程示意图。
[0037]图2显示为本专利技术CAN总线的结构示意图。
[0038]图3显示为本专利技术CAN总线中信号的收发示意图。
[0039]图4显示为本专利技术CAN总线的波特率自适应检测系统的结构示意图。
具体实施方式
[0040]以下通过特定的具体实例说明本专利技术的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本专利技术的其他优点与功效。本专利技术还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本专利技术的精神下进行各种修饰或改变。
[0041]请参阅图1

4。需要说明的是,本实施例中所提供的图示仅以示意方式说明本专利技术的基本构想,遂图式中仅显示与本专利技术中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
[0042]实施例一
[0043]本专利技术的CAN总线的波特率自适应检测方法的流程图如图1所示,现结合图1对本专利技术CAN总线的波特率自适应检测方法进行详细介绍,本专利技术的CAN总线的波特率自适应检测方法至少包括:
[0044]S1,多次采样CAN总线的CAN数据帧,并对每次CAN数据帧进行处理得到有效脉宽数据;
[0045]如图2所示为CAN总线示意图,CAN总线是一条共享的网络总线,包括CAN H和CAN L两根总线,利用这两根总线形成本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种CAN总线的波特率自适应检测方法,其特征在于,至少包括如下步骤:S1,多次采样CAN总线的CAN数据帧,并对每次CAN数据帧进行处理得到有效脉宽数据;S2,对所有有效脉宽数据进行计算得到最大公约数;S3,基于所有最大公约数和预存波特率表确定CAN总线的当前波特率值。2.根据权利要求1所述的CAN总线的波特率自适应检测方法,其特征在于,对每次CAN数据帧进行处理得到有效脉宽数据的过程包括:对所述CAN数据帧进行同步、统计处理得到中间脉宽数据;对每个中间脉宽数据进行校正得到所述有效脉宽数据。3.根据权利要求2所述的CAN总线的波特率自适应检测方法,其特征在于,对每个中间脉宽数据进行校正得到所述有效脉宽数据的过程为:(1)基于多个设定波特率的理想脉冲宽度对所有的中间脉宽数据进行筛选得到筛选脉宽数据;(2)对筛选脉宽数据进行处理得到所述有效脉宽数据。4.根据权利要求3所述的CAN总线的波特率自适应检测方法,其特征在于,基于所述理想脉冲宽度、抖动容忍度和同步电路带来的误差进行校正。5.根据权利要求4所述的CAN总线的波特率自适应检测方法,其特征在于,所述有效脉宽数据为[(理想脉冲宽度*(1

抖动容忍度)

补偿值)~(理想脉冲宽度*(1+抖动容忍度)+补偿值)],其中,补偿值用来补偿同步电路带来的误差。6.根据权利要求1所述的CAN总线的波特率自适应检测方法,其特征在于,采用Stein算法对所有有效脉宽数据进行计算得到最大公约数。7.根...

【专利技术属性】
技术研发人员:叶飞伍能举
申请(专利权)人:芯思原微电子有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1