b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

自动检测CAN总线波特率的方法和过程

电脑杂谈  发布时间:2020-04-08 21:30:58  来源:网络整理

can通信波特率_can 波特率_can通信的波特率

一种自动检测CAN总线波特率的方法与制造工艺

本发明涉及一种用于自动检测CAN总线的波特率的方法.

背景技术:

CAN总线是世界上使用最广泛的现场总线之一. 由于它的高可靠性和良好的错误检测能力,它被广泛用于许多领域,例如工业自动化,监视系统和医疗系统. CAN总线在不同的应用环境(主要是通信距离)中将使用不同的波特率. 常用的有5Kbps(10km),10Kbps(6.7km),20Kbps(3.3km),100Kbps(620m),125Kbps(530m),250Kbps(270m),500Kbps(130m),1Mbps(40m).

使用相同CAN总线通讯的设备必须具有与所有设备相同的CAN通讯波特率. 如果其中一台设备的波特率不一致,则该设备将无法正确接收和发送数据.

CAN总线本身具有错误检测功能,错误通知功能和错误恢复功能: 所有单元都可以检测到错误(错误检测功能),检测到错误的单元将通知所有其他单元(错误通知功能),正在发送消息单元检测到错误后,将强制结束当前传输,并将继续重复重新发送消息can 波特率,直到成功发送为止(错误恢复功能).

目前,常见的波特率自动匹配技术解决方案有以下两种方法:

方法一: 将设备置于监视模式,监视总线上的数据,并根据中断类型(接收中断,错误中断)确定波特率是否匹配. 流程图如图1所示.

方法1是被动方法. CAN总线上的节点需要连续向设备发送数据. 适用于单主机和多从机连接模式下的从机节点设计. 当主节点的波特率发生变化时,所有从节点都可以主动切换波特率以建立与主设备的连接.

can通信波特率_can 波特率_can通信的波特率

方法2: 将设备置于活动发送模式,然后将特定的数据包发送到总线上的节点. 如果总线上的节点与设备的波特率相同,则将接收数据包,然后节点将反馈给设备. 当设备收到反馈数据包时,认为已建立通信且波特率相同. 否则,它将更改设备的波特率,并继续发送直到建立通信. 流程图如图2所示.

尽管方案2是一种主动方法,但它需要与总线上的节点进行交互. 适用于单主机和多从机连接模式下的主节点设计. 自动切换为与从属节点相同的波特率.

技术实现要素:

本发明要解决的技术问题是提供一种方法,可以根据现有技术的上述缺陷自动检测CAN总线的波特率,从而可以方便,快速地测量CAN总线的波特率. CAN总线的波特率.

本发明为解决上述技术问题而采用的技术方案是:

一种自动检测CAN总线波特率的方法,其特征在于包括以下步骤:

1)将设备连接到CAN总线;

2)设备主动向CAN总线发送数据;

3)检查设备是否在设备上成功发送;

can 波特率_can通信波特率_can通信的波特率

4)如果设备的波特率与CAN总线的波特率相同,则会成功发送并显示当前的波特率;

5)如果设备的波特率与CAN总线不一致,则传输失败,请更改设备的波特率,然后重复步骤2-3,直到传输成功.

更好的是,在上述第5步中,可以使用精确检测和模糊检测两种模式来更改设备的波特率,以修改CAN总线的波特率.

更具体地说,上述精确检测使用常用的波特率进行检测,即,CAN总线使用的所有常用波特率都被一个接一个地检测.

更具体地说,上述模糊检测检测波特率根据一定的变化规则检测CAN总线采用的波特率值范围内的所有波特率.

更具体地说,如果上述精确检测无法获得波特率,则继续执行模糊检测以检测CAN总线的波特率.

更好地在成功检测之后,通过LED或其他显示设备显示当前的波特率,从而可以更直观地获得波特率.

与现有技术相比,本发明的优点是:

1,只需要通过设备发送数据就可以自动检测CAN总线的波特率,而无需与CAN总线从节点进行数据交互,因此,可以简化测量方法,适用于单主多从连接方法.

can通信波特率_can 波特率_can通信的波特率

图纸说明

图1是检测CAN总线波特率的现有方法的流程图.

图. 图2是检测CAN总线波特率的另一种现有方法的流程图.

图. 图3是根据本发明实施例的检测CAN总线波特率的方法的流程图.

图4是TMS320F28035检测CAN总线波特率的方法的流程图.

具体实现

下面将参考附图中的实施例进一步描述本发明.

如图参照图3,一种自动检测CAN总线波特率的方法包括以下步骤:

1)将包含CAN控制器的设备连接到CAN总线,然后打开电源进行初始化;

can通信波特率_can通信的波特率_can 波特率

2)然后设备主动将数据发送到CAN总线;

3)然后检查设备发送是否成功;

4)如果设备的波特率与CAN总线的波特率相同can 波特率,则设备成功发送并显示当前的波特率,

5)如果设备的波特率与CAN总线的波特率不一致,则设备发送失败并显示不成功,然后更改设备的波特率,重复步骤2-3,直到传输成功. 成功,获取CAN总线的波特率.

以德州仪器(TI)芯片TMS320F28035为例来说明此方法. TMS320F28035芯片包含一个CAN控制器,其通信波特率可通过CANBTC寄存器进行修改. 计算方法如下:

其中SYSCLK为系统时钟,最大工作频率为60MHz,BRP的最大值为256,最小值为1,BitTime的最大值为25,最小值为3. 下表显示了系统时钟为60MHz时,常用通信波特率的设置.

表1常用通信波特率设置列表

.

精确检测使用以上8种波特率,以降序排列,首先根据1Mbps进行检测,如果不匹配,则使用500Kbps,直到10Kbps或匹配;如果无法成功进行准确检测,请切换至模糊检测,然后将“ BitTime”值设置为“ 25”,然后将BRP值从2逐渐增加到256,以进行检测. 如果仍然不匹配,则修改BitTime值,然后从小到大检查BRP值;请按照上述方法,逐步进行处理.

TMS320F28035芯片中的CANTA寄存器包含32个成功发送邮箱的标志. 如果将相应的邮箱设置为发送邮箱,则使用该邮箱成功发送数据后,该标志将设置为1(必须手动清除)并触发相应的邮箱. 具体实现如图4所示.


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-168665-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...