一种CAN总线节点及其波特率自适应检测方法技术

技术编号:36602496 阅读:59 留言:0更新日期:2023-02-04 18:19
本发明专利技术属于工业现场总线通信技术领域,具体涉及一种CAN总线节点及其波特率自适应检测方法。方案包括:为MCU的引脚增加一个MCU输入端口,该端口与MCU的CAN Rx脚并联,用于获取CAN总线上的CAN数据帧,并从中统计高、低电平的个数以及对应的脉冲宽度,直至高、低电平脉冲宽度之和达到设定值;再从所有低电平中找到脉冲宽度最小的低电平,即位时间,最后根据位时间确定CAN总线波特率。由于一帧完整的CAN数据帧中存在一个ACK槽,其对应的低电平的时间长度等于位时间,那么从一帧完整的CAN数据帧中至少可以找到一个位时间,从而根据位时间求出CAN总线波特率,提高了新增的CAN网络节点设备波特率与CAN总线波特率的匹配成功率,从而提高了CAN总线波特率的自适应能力。提高了CAN总线波特率的自适应能力。提高了CAN总线波特率的自适应能力。

【技术实现步骤摘要】
一种CAN总线节点及其波特率自适应检测方法


[0001]本专利技术属于工业现场总线通信
,具体涉及一种CAN总线节点及其波特率自适应检测方法。

技术介绍

[0002]CAN是控制器域网(Controller Area Network,CAN)的简称,是用于解决汽车众多控制部件之间的数据交换而开发的一种串行数据通信总线,而且是国际上应用最广泛的现场总线之一。近年来,其所具有的高可靠性和良好的错误检测能力受到重视,被广泛应用于汽车计算机控制系统和环境温度恶劣、电磁辐射强和振动大的工业环境。
[0003]在CAN总线应用中,要在总线中新增一个CAN网络节点,需要提前获取总线原有的波特率信息,并将新增的CAN网络设备波特率设置为获取到的波特率参数,再添加到网络中。由于在CAN总线中往往存在多个CAN网络节点,而每个CAN网络节点大多是不同的设计人参与设计的,总会出现或多或少的波特率不匹配问题,而且还要用专业工具诊断出问题所在,最终需要做出设计变更才能解决问题,维护成本极高。
[0004]传统的CAN波特率自适应方法有两种,一种是CAN网络设备以不同的波特率尝试向CAN总线发送数据,另一种是CAN总线向CAN网络设备发送数据,当接收端成功接收到数据,表明发送的CAN数据与总线波特率匹配成功。
[0005]对于第一种,CAN网络设备从1Kbps~1000Kbps范围内的波特率中选取多个值,不断尝试向CAN总线发送一帧CAN数据,如果发送的CAN数据与总线波特率匹配,则发送成功,CAN波特率自适应成功;如果发送的CAN数据与总线波特率不匹配,则发送失败,CAN波特率自适应失败,并且其它设备监听到此数据帧时会将此数据帧标记为错误帧,从而导致CAN总线进入错误帧状态,导致CAN总线短时间内无法通信;由于一次尝试就能匹配成功的概率极小,在反复尝试不同波特率的过程中,往往会导致CAN总线在很长一段时间内无法正常通信。
[0006]对于第二种,CAN网络设备以1Kbps~1000Kbps范围内的波特率接收CAN总线发送的数据,若接收成功,则匹配波特率成功,但当其它设备发送数据时,当前CAN网络设备接收到的数据格式与其波特率不一致,则会认为CAN总线出错,进而发起错误标识,使正在接收的数据成为错误帧,导致通信异常。
[0007]可见,现有的两种CAN波特率自适应方法在自适应过程中都容易出现CAN总线通信异常的情况,因此,亟需一种不会导致CAN总线通信异常且能支持CAN总线收发的波特率自适应方法。

技术实现思路

[0008]本专利技术的目的在于提供一种CAN总线波特率自适应检测方法,用以解决现有技术中存在的波特率自适应检测过程会导致CAN总线通信异常的问题;本专利技术还提出一种CAN总线节点,用于实现CAN总线波特率自适应检测,并进一步确保CAN总线在检测过程中保持正
常通信,提高CAN网络设备的安全系数。
[0009]为解决上述技术问题,本专利技术提供了一种CAN总线波特率自适应检测方法,包括如下步骤:
[0010]步骤1:获取CAN总线上的CAN数据帧,统计其中高电平和低电平的个数以及对应的脉冲宽度,直至低电平的脉冲宽度之和与高电平脉冲宽度之和的总脉冲宽度达到设定值;
[0011]步骤2:从统计的各低电平中找到脉冲宽度最小的低电平,该脉冲宽度最小的低电平的时间为位时间,根据位时间确定CAN总线波特率B。
[0012]有益效果:本专利技术的检测方法是基于CAN数据帧独特的帧结构设计而成的,由于CAN数据帧中应答场的ACK槽的两侧分别为CRC场界定符和应答场界定符,而且两个界定符为隐性位,ACK槽为显性位且仅占一位,也就是应答场的ACK槽处对应一个脉冲宽度为一个位时间的低电平,又由于在整个CAN时序中,最小的时间单位是位时间,因此脉冲宽度最小的低电平的时间就是位时间。
[0013]本专利技术通过检测CAN总线上的CAN数据帧中的高、低电平的个数以及对应的脉冲宽度,直至所有的高、低电平脉冲宽度之和大于等于一帧完整的CAN数据帧对应的脉冲宽度,就能确保检测的低电平中至少有一个低电平的脉冲宽度等于一个位时间,然后找到低电平的脉冲宽度最小的低电平,即位时间,并根据位时间求出CAN总线波特率。综上所述,本专利技术仅需一帧完整的CAN数据帧即可实现波特率自适应检测,极大地提高了新增的CAN网络节点设备波特率与CAN总线波特率的匹配成功率,从而提高了CAN总线波特率的自适应能力。
[0014]进一步地,在CAN总线上的CAN数据帧对应的CAN节点的MCU引脚中增加一个MCU输入端口,并将MCU输入端口与MCU的CAN Rx脚并连,用于通过MCU输入端口的电平状态来表示CAN Rx脚的电平状态。
[0015]有益效果:本专利技术通过在支持CAN总线收发的MCU引脚中增加一个MCU输入端口,并与CAN接收端口并联,因此CAN接收端口的电平状态和该MCU输入端口的电平状态一致,那么通过检测MCU输入端口的电平状态即可实现对CAN接收端口的电平状态的检测,该检测方法简单、准确;增加的MCU输入端口与CAN总线隔离,仅用于监听,能够确保CAN总线在检测过程中保持正常通信,提高了CAN网络设备的安全系数。
[0016]进一步地,设定值大于等于160个位时间。
[0017]有益效果:由于一个完整的CAN数据帧占有的脉冲宽度小于160,将检测的电平所包含的脉冲宽度设置为大于等于160,能够确保检测的脉冲宽度最小的低电平时间中至少有一个是位时间,从而保证检测出的CAN总线波特率的准确性。
[0018]进一步地,高电平脉冲宽度和所述低电平脉冲宽度,采用与CAN总线上的CAN节点相连的MCU内部的晶振作为计数的脉冲来源进行统计。
[0019]有益效果:采用MCU内部的晶振作为计数的脉冲来源,每次脉冲下降时,计数寄存器的数值会自动加1,准确性高,而且无需外设硬件定时器,操作简单、稳定性强。
[0020]进一步地,CAN数据帧为标准帧或扩展帧。
[0021]有益效果:本专利技术的检测方法适用于所有完整的CAN数据帧,无需进行筛选,适用性好,能够提高检测效率。
[0022]本专利技术还提供了一种CAN总线节点,包括MCU和CAN收发芯片,MCU的CAN Tx脚和CAN收发芯片的接收端口相连,MCU的CAN Rx脚与CAN收发芯片的发送端口相连,分别用于支持
CAN总线的收、发,MCU的引脚还包括一个MCU输入端口,该MCU输入端口与MCU的CAN Rx脚并联,用于获取CAN总线上的CAN数据帧;
[0023]MCU用于统计获取的CAN数据帧中高电平和低电平的个数以及对应的脉冲宽度,直至低电平的脉冲宽度之和与高电平脉冲宽度之和的总脉冲宽度达到设定值;并从统计的各低电平中找到脉冲宽度最小的低电平,该脉冲宽度最小的低电平的时间为位时间,根据位时间确定CAN总线波特率B。
[0024]有益效果:一方面,本专利技术通过在MCU引脚中增加一个MCU输入端口,并与CAN接本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种CAN总线波特率自适应检测方法,其特征在于,包括如下步骤:步骤1:获取CAN总线上的CAN数据帧,统计其中高电平和低电平的个数以及对应的脉冲宽度,直至低电平的脉冲宽度之和与高电平脉冲宽度之和的总脉冲宽度达到设定值;步骤2:从统计的各低电平中找到脉冲宽度最小的低电平,该脉冲宽度最小的低电平的时间为位时间,根据位时间确定CAN总线波特率B。2.根据权利要求1所述的CAN总线波特率自适应检测方法,其特征在于,在所述CAN总线上的CAN数据帧对应的CAN节点的MCU引脚中增加一个MCU输入端口,并将所述MCU输入端口与MCU的CAN Rx脚并连,用于通过MCU输入端口的电平状态来表示CAN Rx脚的电平状态。3.根据权利要求1所述的CAN总线波特率自适应检测方法,其特征在于,所述设定值大于等于160个位时间。4.根据权利要求1所述的CAN总线波特率自适应检测方法,其特征在于,所述高电平脉冲宽度和所述低电平脉冲宽度,采用与所述CAN总线上的CAN节点相连的MCU内部的晶振作为计数的脉冲来源进行统计。5.根据权利要求1所述的CAN总线波特率自适应检测方法,其特征在于,所述...

【专利技术属性】
技术研发人员:尚恩惠赵明渊邓帅强刘立规石佳玉王宇庞超伟
申请(专利权)人:郑州森鹏电子技术股份有限公司
类型:发明
国别省市:

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

1