基于一主多从式模块的CAN总线地址分配方法及装置制造方法及图纸

技术编号:24216042 阅读:70 留言:0更新日期:2020-05-20 19:11
本发明专利技术公开基于一主多从式模块的CAN总线地址分配方法。该CAN总线智能分配地址的方法针对模块化CAN通讯单元设计,提供了预置各通讯单元硬件ID,处理CAN网络中各模块单元节点设备竞争做主以及主模块自动分配所有模块地址,在线运行时模块的投入与退出相关一整套控制策略。本发明专利技术解决了CAN网络中各模块CAN ID依赖外部硬件地址信息来确定的不便,采用纯软件控制方案,无需增加硬件成本,很大程度上提高了模块化系统运行的灵活性和可扩展性,提升了模块在线投入和退出时系统的稳定。

Can bus address assignment method and device based on one master multi slave module

【技术实现步骤摘要】
基于一主多从式模块的CAN总线地址分配方法及装置
本专利技术属于嵌入式系统领域,涉及模块化CAN通信网络的地址分配技术,具体涉及一种基于一主多从式模块的CAN总线地址分配方法及装置。
技术介绍
CAN总线协议,是ISO国际标准化得串行通信协议,在工业自动化,汽车船舶,智能家庭管理,机器人网络互联等产业有广泛的应用。CAN总线具有简单,实用,高性能,可靠,传输距离远,抗干扰能力强等多方面的优点。传统的CAN通信网络中,需要预先设定好每个CAN通讯节点的地址,这些CAN地址不能重复,否则通讯会出现异常。而对于一主多从式模块化设备的应用场合,传统的硬件分配CAN地址满足不了模块化设备即插即用的地址分配需求,同样,也满足不了所有模块无差异竞争做主的需求。因此,亟需一种基于一主多从式模块的CAN总线智能分配地址的方法,来提供系统的灵活性,可扩展性和稳定性。
技术实现思路
本专利技术的目的,在于提供一种基于一主多从式模块的CAN总线地址分配方法及装置,一方面解决了多模块CAN通讯节点自动进入一主多从运行方式的需求,另一方面多模块的CAN总线智能分配地址的要求。采用出厂模块自带唯一设备ID号,运行过程中竞争当主,主从模块互发地址申请报文和地址分配报文的方式动态分配模块地址。并将设备ID号和CAN地址对应表存储在各个模块中。实现了模块的可靠动态投退。为了达成上述目的,本专利技术采用的技术方案是:基于一主多从式模块的CAN总线地址分配方法,包含如下步骤:步骤S1:在每个模块上预先存储有唯一的设备ID号;步骤S2:各模块启动后,通过侦听CAN总线来竞争推选主模块,并存储所有模块设备ID号,主模块给各从模块分配CAN地址;步骤S3:各模块正常运行后,通过不断的侦听CAN总线,收集总线上的信息;主模块发送控制信息到总线,其他从模块依据控制信息进行调节并发送应答CAN报文。进一步地,在步骤S3后还包括当前系统正常运行后,新投入一个模块,通过侦听总线来确定自动成为从模块还是竞争做主模块。进一步地,在步骤S3后还包括当前系统正常运行后,退出一个模块,其他模块通过侦听总线来确定下一步操作。各模块预先存储唯一的设备ID号、各模块通过一定的控制策略竞争做主模块、系统正常运行时支持模块稳定投退。进一步地,所述步骤S1中,设备ID号的设定方法具体是:设备ID号为出厂调试每个模块的时候根据当前UTC时间以及所用DSP硬件ID号生成,每个模块的设备ID号是唯一的。进一步地,所述步骤S2中竞争推选主模块的方法具体包括:步骤S2-1:各模块同时上电后,首先会侦听总线,如果在预定时间内没有收到有主模块发出的控制报文,则向总线发送竞争信息;步骤S2-2:在竞争阶段每个模块均收到所有模块的设备ID号并存储下来,进行大小排序,通过比较所有模块的设备ID号来确认自身的设备ID号是否为所有模块中最小的;步骤S2-3:如果设备ID号最小,成为主模块,如果不是最小,则放弃竞争,成为从模块。进一步地,所述步骤S2中主模块给各从模块分配CAN地址的方法具体包括:步骤S2-4:主从模块确定后,主模块自身CAN地址设为1,并按照之前存储的各个模块设备ID号内部分配好各设备ID号对应的CAN地址;步骤S2-5:从模块发送申请CAN地址报文,主模块收到申请后发送CAN地址分配报文给从模块;从模块收到CAN地址分配报文后进行匹配,如果该帧报文发送的设备ID号与自身匹配,则获取该帧分配的CAN地址。进一步地,所述步骤S2-1中,竞争信息CAN报文的帧ID标识符的最后为本模块的设备ID号。进一步地,所述当前系统正常运行后,新投入一个模块,通过侦听总线来确定自动成为从模块还是竞争做主模块,具体是:当前系统已经运行后,如果新投入一个模块,新上电的模块首先侦听总线,确认是否收到有主模块发出的控制信息,如果收到控制信息确定有主模块,新投入的模块自动确定为从模块,并发送申请CAN地址报文,主模块收到报文后存储下新投入模块的设备ID号并发送CAN地址分配报文给该新投入的模块。进一步地,所述当前系统正常运行后,退出一个模块,其他模块通过侦听总线来确定下一步操作,具体是:如果主模块退出,各个从模块在预设时间内收不到来自主模块的控制信息,则各模块向总线发送竞争信息,开始新一轮的主模块竞争以及CAN地址分配;从模块故障退出时,主模块在一定时间内收不到该从模块的应答报文,则确定该模块退出总线,并释放该模块CAN地址。本专利技术同时提出了一种基于一主多从式模块的CAN总线地址分配装置,包括设备ID预设单元,用于在每个模块上预先存储有唯一的设备ID号;主从模块设定单元,用于各模块启动后,通过侦听CAN总线来竞争推选主模块,并存储所有模块设备ID号,主模块给各从模块分配CAN地址;主从模块运行控制单元:各模块正常运行后,通过不断的侦听CAN总线,收集总线上的信息;主模块发送控制信息到总线,其他从模块依据控制信息进行调节并发送应答CAN报文。进一步地,上述装置还包括:新模块投入控制单元,用于控制新模块的投入操作,当前系统正常运行后,新投入一个模块,通过侦听总线来确定自动成为从模块还是竞争做主模块。模块退出控制单元,用于控制模块的退出操作,当前系统正常运行后,退出一个模块,其他模块通过侦听总线来确定下一步操作。采用本CAN总线智能分配地址的方法,具有以下有益效果:采用纯软件控制策略,无需各模块硬件差异化配置。各模块即插即用,投退不会对已运行系统通讯产生影响。始终保证一主多从模式运行,提高了系统的可靠性和安全性附图说明图1是本专利技术的单个模块上电逻辑框图。图2是本专利技术的部分CAN通信标识符格式。图3是本专利技术的系统运行时序图。具体实施方式以下将结合附图,对本专利技术的实施例进行详细说明。本专利技术一实施例提供的基于一主多从式模块的CAN总线地址分配方法,包含如下步骤:步骤S1:在每个模块上预先存储有唯一的设备ID号。ID号为出厂调试每个模块的时候,根据当前UTC时间以及所用DSP硬件ID号生成一个20bit的设备ID号,每个模块的设备ID号是唯一的。步骤S2:各模块启动后,通过侦听CAN总线来竞争推选主模块,并存储所有模块设备ID号,主模块给各从模块分配CAN地址;各模块同时上电后,首先会侦听总线,如果一段时间内没有收到有主模块发出的控制报文,则向总线发送竞争信息。竞争信息CAN报文的帧ID标识符后20位为本模块的设备ID号。在竞争阶段每个模块均收到所有模块的设备ID号并存储下来,进行大小排序,通过比较所有模块的设备ID号来确认自身的设备ID号是否为所有模块中最小的。如果最小,成为主模块,如果不是最小,则放弃竞争,成为从模块。主从模块确定后,主模块自身CAN地址设为1,并按照之前存储的各个模块设备ID号内部分配好各设本文档来自技高网...

【技术保护点】
1.基于一主多从式模块的CAN总线地址分配方法,其特征在于,包含如下步骤:/n步骤S1:在每个模块上预先存储有唯一的设备ID号;/n步骤S2:各模块启动后,通过侦听CAN总线来竞争推选主模块,并存储所有模块设备ID号,主模块给各从模块分配CAN地址;/n步骤S3:各模块正常运行后,通过不断的侦听CAN总线,收集总线上的信息;主模块发送控制信息到总线,其他从模块依据控制信息进行调节并发送应答CAN报文。/n

【技术特征摘要】
1.基于一主多从式模块的CAN总线地址分配方法,其特征在于,包含如下步骤:
步骤S1:在每个模块上预先存储有唯一的设备ID号;
步骤S2:各模块启动后,通过侦听CAN总线来竞争推选主模块,并存储所有模块设备ID号,主模块给各从模块分配CAN地址;
步骤S3:各模块正常运行后,通过不断的侦听CAN总线,收集总线上的信息;主模块发送控制信息到总线,其他从模块依据控制信息进行调节并发送应答CAN报文。


2.如权利要求1所述的基于一主多从式模块的CAN总线地址分配方法,其特征在于:在步骤S3后还包括
当前系统正常运行后,新投入一个模块,通过侦听总线来确定自动成为从模块还是竞争做主模块。


3.如权利要求1所述的基于一主多从式模块的CAN总线地址分配方法,其特征在于:在步骤S3后还包括
当前系统正常运行后,退出一个模块,其他模块通过侦听总线来确定下一步操作。


4.如权利要求1所述的基于一主多从式模块的CAN总线地址分配方法,其特征在于,所述步骤S1中,设备ID号的设定方法具体是:设备ID号为出厂调试每个模块的时候根据当前UTC时间以及所用DSP硬件ID号生成,每个模块的设备ID号是唯一的。


5.如权利要求1所述的基于一主多从式模块的CAN总线地址分配方法,其特征在于,所述步骤S2中竞争推选主模块的方法具体包括:
步骤S2-1:各模块同时上电后,首先会侦听总线,如果在预定时间内没有收到有主模块发出的控制报文,则向总线发送竞争信息;
步骤S2-2:在竞争阶段每个模块均收到所有模块的设备ID号并存储下来,进行大小排序,通过比较所有模块的设备ID号来确认自身的设备ID号是否为所有模块中最小的;
步骤S2-3:如果设备ID号最小,成为主模块,如果不是最小,则放弃竞争,成为从模块。


6.如权利要求1或5所述的基于一主多从式模块的CAN总线地址分配方法,其特征在于,所述步骤S2中主模块给各从模块分配CAN地址的方法具体包括:
步骤S2-4:主从模块确定后,主模块自身CAN地址设为1,并按照之前存储的各个模块设备ID号内部分配好各设备ID号对应的CAN地址;
步骤S2-5:从模块发送申请CAN地址报文,主模块收到申请后发送CAN地址分配报文给从模块;从模块收到CAN地址分配报文后进行匹配,如果该帧报文发送的设备ID号与...

【专利技术属性】
技术研发人员:何嵘周强赵天恩江长青文继锋
申请(专利权)人:南京南瑞继保电气有限公司南京南瑞继保工程技术有限公司
类型:发明
国别省市:江苏;32

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

1