【CN109768907A】一种CAN总线波特率自适应设置方法【专利】
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
权利要求书1页 说明书4页 附图1页
CN 109768907 A
CN 109768907 A
权 利 要 求 书
1/1 页
1 .一种CAN总线波特率自适应设置方法,其特征在于,包括以下步骤: 步骤1,设置CAN总线的初始波特率; 步骤2,对CAN总线上的所有数据帧进行实时监测; 步骤3 ,如果在设定的 第一时间阈值内监测到CAN总线上的数据帧 ,则波特率设置成功 , 自适应设置完毕;否则,转步骤4; 步骤4,按照设定的步长降低波特率,转步骤2; 步骤5 ,如果在设定的 第二时间阈值内没有监测到CAN总线上的数据帧 ,对CAN控制器进 行复位操作,转步骤1。 2 .根据权利要求1所述的CAN总线波特率自适应设置方法,其特征在于, 所述步骤1具体包括 :读取存储器中的 波特率 和CRC16校验码 ,计算所述波特率对应的 CRC16校验码,如果计算结果与读取的CRC16校验码相等,按照读取的波特率设置CAN总线的 波特率;否则,按照预定的初始波特率设置CAN总线的波特率; 所述步骤3还包括 :如果在设定的 第一时间阈值内监测到CAN总线上的数据帧 ,将设置 的波特率及其对应的CRC16校验码保存至所述存储器。 3 .根据权利要求1所述的CAN总线波特率自适应设置方法,其特征在于,所述步骤2通过 设置CAN控制器的接收消息邮箱的信息帧接收掩码为0,实现对CAN总线上的所有数据帧进 行实时监测。 4 .根据权利要求1~3任意一项所述的CAN总线波特率自适应设置方法,其特征在于,所 述第一时间阈值为0 .2秒。 5 .根据权利要求1~3任意一项所述的CAN总线波特率自适应设置方法,其特征在于,所 述第二时间阈值为10秒。
代理人 卢业强
(51)Int .Cl . H04L 12/40(2006 .01)
(10)申请公布号 CN 109768907 A (43)申请公布日 2019.05.17
( 54 )发明 名称 一种CAN总线波特率自适应设置方法
( 57 )摘要 本发明公开一种CAN总线波特率自适应设置
方法。所述方法通过实时监测CAN总线上的所有 数据帧 ,根据是否监测到数据帧判断CAN总线波 特率设置是否成功 ,如果不成功 ,按步长逐渐降 低波特率 ,直到监测到数据帧 ,实现了CAN总线波 特率的自适应设置。本发明通过采用广播接收方 式 ,不对任何CAN标识符数据帧进行过滤 ,监测 CAN总线上的所有数据帧 ,大大提高了CAN总线波 特率设置的效率 ;本发明还具有CAN控 制器故障 监测与自动复位功能 ,如果在设定的时间内没有 监测到CAN总线上的数据帧 ,对CAN控制器进行复 位后重新执行波特率自适应设置流程。
发明内容 [0004] 为了解决现有技术中存在的上述问题,本发明提出一种CAN总线波特率自适应设 置方法。 [0005] 为实现上述目的,本发明采用如下技术方案: [0006] 一种CAN总线波特率自适应设置方法,包括以下步骤: [0007] 步骤1,设置CAN总线的初始波特率; [0008] 步骤2,对CAN总线上的所有数据帧进行实时监测; [0009] 步骤3,如果在设定的第一时间阈值内监测到CAN总线上的数据帧,则波特率设置 成功,自适应设置完毕;否则,转步骤4; [0010] 步骤4,按照设定的步长降低波特率,转步骤2; [0011] 步骤5,如果在设定的第二时间阈值内没有监测到CAN总线上的数据帧,对CAN控制 器进行复位操作,转步骤1。 [0012] 与现有技术相比,本发明具有以下有益效果: [0013] 本发明通过实时监测CAN总线上的所有数据帧,根据是否监测到数据帧判断CAN总 线波特率设置是否成功 ,如果不成功 ,按步长逐渐降 低波特率 ,直到监测到数据帧 ,实现了 CAN总线波特率的自适应设置。本发明通过采 用广播接收方式 ,不对任何CAN标识符数据帧 进行过滤 ,监测CAN总线上的所有数据帧 ,大大提高了CAN总线波特率设置的效率 ;本发明还 具有CAN控制器故障监测与自 动复位功能 ,如果在设定的时间 (第二时间阈值) 内没有监测 到CAN总线上的数据帧 ,对CAN控制器进行复位后重新执行波特率自适应设置流程。
2
CN 109来自百度文库68907 A
说 明 书
1/4 页
一种CAN总线波特率自适应设置方法
技术领域 [0001] 本发明属于嵌入式计算机CAN总线技术领域,具体涉及一种CAN总线波特率自适应 设置方法。
背景技术 [0002] 在工业应用现场,各种嵌入式计算机实现互联互通是大势所趋。在各种现场总线 的 使 用过程中 ,由 于CAN总线具有抗干扰性强 、传输距离远以 及维 护成本低等优点 ,在各种 工业现场已 广为应 用。根据实际的工业现场使 用场景 ,当CAN控制器节点数少时 ,可以 设置 CAN总线的 波特率为1Mbit/s来提高传输速率 ;而当CAN控制器节点数目较多时 ,1Mbit/s的 波特率无法满足使 用的 要求 ,会出现严重的丢帧现象 ,因此需要降 低CAN总线的波特率 ,如 500Kbit/s或者250Kbit/s等。 [0003] 目前,基于CAN总线的波特率自适应控制器产品已开始应用于工业控制现场,但技 术并不成熟。例如 ,当某个控制器节点出现异常时 ,可能会导致一直复位现象发生。这种现 象能够对CAN总线造成严重干扰,轻则使CAN总线丢帧,重则可能导致CAN总线瘫痪。
3
CN 109768907 A
说 明 书
附图说明 [0014] 图1为本发明实施例一种CAN总线波特率自适应设置方法的流程图。
2/4 页
具体实施方式 [0015] 下面结合附图对本发明作进一步详细说明。 [0016] 本发明实施例一种CAN总线波特率自适应设置方法的流程图如图1所示,所述方法 包括: [0017] S101、设置CAN总线的初始波特率; [0018] S102、对CAN总线上的所有数据帧进行实时监测; [0019] S103、如果在设定的第一时间阈值内监测到CAN总线上的数据帧,则波特率设置成 功,自适应设置完毕;否则,转S104; [0020] S104、按照设定的步长降低波特率,转S102; [0021] S105、如果在设定的第二时间阈值内没有监测到CAN总线上的数据帧,对CAN控制 器进行复位操作,转S101。 [0022] 在本实施例中,步骤S101用于设置CAN总线的初始波特率。初始波特率一般设置得 较高 ,如1Mbit/s。如果设置不成功 ,再逐步降 低波特率 ,直到设置成功。CAN总线波特率的设 置一般通过设置波特率设置寄存器实现。例如,对于AT91SAM7X256型嵌入式微处理器,CPU 主频为48MHz,可通过将CAN_BR寄存器的值设置为0x00173255,将波特率设置为250Kbit/s; 通过将CAN_BR寄存器的值设置为0x00050301,将波特率设置为1Mbit/s。 [0023] 在本实施例中,步骤S102用于对CAN总线上的所有数据帧进行实时监测,根据是否 监测到数据帧判断波特率设置是否成功。对CAN总线上的所有数据帧进行实时监测,也就是 采取广播接收方式 ,不对任何CAN标识符数据帧进行过滤 ,可以 接收CAN总线上的所有数据 帧。例如 ,如果一条CAN总线上挂有多个控制器节点 ,当CAN总线上有一条数据帧 传输时 ,所 有的控制器节点均能接收到此数据帧。只要接收到数据帧就认为CAN波特率设置成功,波特 率设置成功之后,再根据各个节点控制器的实际地址进行CAN标识符接收屏蔽过滤设置。这 样处理可大大提高CAN总线波特率自适应设置的效率。 [0024] 在本实施例中,步骤S103主要用于判断波特率设置是否成功。判断方法是:设置第 一时间阈值 ,根据在第一时间阈值内是否监测到CAN总线上的数据帧进行判断 ,如果接收到 数据帧 ,就认为波特率设置成功 ,自适应设置结束 ;如果没有接收到数据帧 ,就认为当前的 波特率不匹配 ,即设置失败。第一时间阈值取值过大 ,将使波特率的自 适应设置耗时过长 ; 取值过小,可能会出现误判,有可能将本来可以匹配的波特率因等待时间太短判为不匹配。 第一时间阈值的大小一般根据经验或反复试验确定。第一时间阈值可利用定时器获得。例 如 ,如果第一时间阈值为200ms ,可配置一个10ms的定时器 ,每10ms中断一次 ,对中断次数进 行计数 ,如果当计数值为20 (20×10ms=200ms) 时 ,依然没有监听到CAN总线上的 任何数据 帧 ,则说明设置的波特率与CAN总线上的波特率不匹配 ,波特率设置失败。 [0025] 在本实施例中,步骤S104主要用于当波特率设置失败时重新设置波特率,重新设 置的 波特率比 当前设置失败的 波特率低一个步长。每次重新设置采 用的 步长可以 相等 ,也 可以不等。步长尽量不要过大,步长过大很难使自适应设置的波特率达到或接近最大值;当 然,步长也不要太小,步长太小会使波特率自适应设置次数明显增加,从而增加自适应设置
( 19 )中华人民 共和国国家知识产权局
( 12 )发明专利申请
(21)申请号 201910017580 .8
(22)申请日 2019 .01 .09
(71)申请人 北京安控科技股份有限公司 地址 100095 北京市海淀区地锦路9号院6 号楼
(72)发明人 李永成 龚攀 卢铭 卓明 俞凌
(74)专利代理机构 北京中北知识产权代理有限 公司 11253