一种Can总线通讯地址自动竞争分配算法制造技术

技术编号:39419569 阅读:13 留言:0更新日期:2023-11-19 16:08
本发明专利技术公开了一种Can总线通讯地址自动竞争分配算法,具体包括以下步骤:S1、各模块发送“地址请求帧”;S2、各模块收到其它模块发送的“地址请求帧”后回复“地址声明帧”;S3、各模块收到对方发送的“地址声明帧”后解析帧数据取出其它模块的的当前地址和识别码,判断自身当前地址和其它模块当前地址是否重复;S4、各模块依次与重复地址的其它模块比较识别码的优先级;本发明专利技术涉及Can总线技术领域。该Can总线通讯地址自动竞争分配算法,取消硬件拨码或键盘,或人机界面等方式设定地址,降低人工操作的复杂度,减少人为操作错误导致无法通讯的问题。题。题。

【技术实现步骤摘要】
一种Can总线通讯地址自动竞争分配算法


[0001]本专利技术涉及Can总线
,具体为一种Can总线通讯地址自动竞争分配算法。

技术介绍

[0002]Can总线也称控制器局部网,是BOSCH公司为现代汽车应用领域推出的一种多主机局部网,由于其高性能、高可靠性、实时性等优点现已广泛应用于工业自动化、多种控制设备、交通工具、医疗仪器以及建筑、环境控制等众多部门。
[0003]BMS(电池管理)测控模块,以及括充电桩,UPS,模块式通讯电源等系统,他们的安装和维护中,需要对通模块间和模块与系统的通讯地址进行设置。设置方案的差别,对系统的维护运行便捷性和可靠性有重要影响。现有技术存在诸多缺点,具体如下:
[0004]1、专用主机给所有从机分配地址,要专门主机,系统框架复杂,成本高;
[0005]2、通过拨码开关设定地址,耗费人工,数量固定,系统扩容受限;
[0006]3、通过键盘或人机界面或电脑上位机设定地址,耗费人工,要求外接操作设备;
[0007]4、增加通讯仲裁线,利用通讯仲裁线进行仲裁分配地址,接线复杂,成本增加。

技术实现思路

[0008]针对现有技术的不足,本专利技术提供了一种Can总线通讯地址自动竞争分配算法,解决了现有多模块系统通讯地址设置复杂,避免因通讯地址重复无法通讯的问题。
[0009]为实现以上目的,本专利技术通过以下技术方案予以实现:一种Can总线通讯地址自动竞争分配算法,具体包括以下步骤:
[0010]S1、各模块发送“地址请求帧”;
[0011]S2、各模块收到其它模块发送的“地址请求帧”后回复“地址声明帧”;
[0012]S3、各模块收到对方发送的“地址声明帧”后解析帧数据取出其它模块的的当前地址和识别码,判断自身当前地址和其它模块当前地址是否重复;
[0013]S4、各模块依次与重复地址的其它模块比较识别码的优先级;
[0014]S5、以新的地址发送“地址请求帧”再次进入S2流程;
[0015]S6、等待其他模块的“地址请求帧”,并判断地址分配是否超时2秒,若超时2秒则进入S7流程;
[0016]S7、以当前地址作为最终分配的地址,进入正常通信,开始周期发送正常数据报文。
[0017]优选的,所述S1中,所谓“地址请求帧”是在ID中的功能码段填入特定的功能码作为“地址请求帧”的功能码,其ID的地址段填入模块的当前地址。
[0018]优选的,所述S2中,所谓“地址声明帧”也是用另外一个特定功能码作为“地址声明帧”的功能码,其ID的地址段填入模块的当前地址,且“地址声明帧”的数据内容包含有各模块唯一的识别码,这个识别码可以是序列号码或者流水号码等可以区分每个模块的一串号码,并以识别码的大小作为地址分配的优先级,识别码越小优先级越高,识别码越大,优先
级越低。
[0019]优选的,所述S3中,判断自身当前地址和其它模块当前地址是否重复后,若重复则进入S4流程,若没有重复则当前地址保持不变进入S6流程。
[0020]优选的,所述S4中,若自身优先级高,则当前地址保持不变,若自身优先级低则当前地址+1作为新地址,判断当前地址是否发生变化,如果发生变化进入S5流程,否则进入S6流程。
[0021]优选的,所述S7中,进入正常通信后,实时监控总线上其它模块发送的消息判断是否有使用相同地址的模块存在,若存在则进入S1流程。
[0022]有益效果
[0023]本专利技术提供了一种Can总线通讯地址自动竞争分配算法。与现有技术相比具备以下有益效果:
[0024](1)、该Can总线通讯地址自动竞争分配算法,通过取消硬件拨码或键盘,或人机界面等方式设定地址,降低人工操作的复杂度,减少人为操作错误导致无法通讯的问题。
[0025](2)、该Can总线通讯地址自动竞争分配算法,通过实现不固定数量的并联设备的地址自动分配。
[0026](3)、该Can总线通讯地址自动竞争分配算法,通过实现无需系统下电,通讯线热插拔的地址自动分配。
附图说明
[0027]图1为本专利技术模块地址自动分配通讯接线设计图;
[0028]图2为本专利技术自动竞争分配算法流程图。
具体实施方式
[0029]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0030]在CAN总线通讯中,标识符(Identifier以下称为ID)用于多个节点发送信息时进行总线仲裁,每个节点发送的ID需要互不相同才能使监控模块收到每个节点对应的信息,因此可以根据实际模块数量,配置固定位数的地址段包含在ID中,再配置固定位数的功能码段也包含在ID中,如表图1所示。
[0031][0032][0033]请参阅图1

2,本专利技术提供一种技术方案:一种Can总线通讯地址自动竞争分配算法,具体包括以下步骤:
[0034]S1、各模块发送“地址请求帧”;
[0035]S2、各模块收到其它模块发送的“地址请求帧”后回复“地址声明帧”;
[0036]S3、各模块收到对方发送的“地址声明帧”后解析帧数据取出其它模块的的当前地址和识别码,判断自身当前地址和其它模块当前地址是否重复;
[0037]S4、各模块依次与重复地址的其它模块比较识别码的优先级;
[0038]S5、以新的地址发送“地址请求帧”再次进入S2流程;
[0039]S6、等待其他模块的“地址请求帧”,并判断地址分配是否超时2秒,若超时2秒则进入S7流程;
[0040]S7、以当前地址作为最终分配的地址,进入正常通信,开始周期发送正常数据报文。
[0041]同时本说明书中未作详细描述的内容均属于本领域技术人员公知的现有技术。
[0042]本专利技术中,所述S1中,所谓“地址请求帧”是在ID中的功能码段填入特定的功能码作为“地址请求帧”的功能码,其ID的地址段填入模块的当前地址。
[0043]本专利技术中,所述S2中,所谓“地址声明帧”也是用另外一个特定功能码作为“地址声明帧”的功能码,其ID的地址段填入模块的当前地址,且“地址声明帧”的数据内容包含有各模块唯一的识别码,这个识别码可以是序列号码或者流水号码等可以区分每个模块的一串号码,并以识别码的大小作为地址分配的优先级,识别码越小优先级越高,识别码越大,优先级越低。
[0044]本专利技术中,所述S3中,判断自身当前地址和其它模块当前地址是否重复后,若重复则进入S4流程,若没有重复则当前地址保持不变进入S6流程。
[0045]本专利技术中,所述S4中,若自身优先级高,则当前地址保持不变,若自身优先级低则当前地址+1作为新地址,判断当前地址是否发生变化,如果发本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种Can总线通讯地址自动竞争分配算法,其特征在于:具体包括以下步骤:S1、各模块发送“地址请求帧”;S2、各模块收到其它模块发送的“地址请求帧”后回复“地址声明帧”;S3、各模块收到对方发送的“地址声明帧”后解析帧数据取出其它模块的的当前地址和识别码,判断自身当前地址和其它模块当前地址是否重复;S4、各模块依次与重复地址的其它模块比较识别码的优先级;S5、以新的地址发送“地址请求帧”再次进入S2流程;S6、等待其他模块的“地址请求帧”,并判断地址分配是否超时2秒,若超时2秒则进入S7流程;S7、以当前地址作为最终分配的地址,进入正常通信,开始周期发送正常数据报文。2.根据权利要求1所述的一种Can总线通讯地址自动竞争分配算法,其特征在于:所述S1中,所谓“地址请求帧”是在ID中的功能码段填入特定的功能码作为“地址请求帧”的功能码。3.根据权利要求2所述的一种Can总线通讯地址自动竞争分配算法,其特征在于:所述ID的地址段填入模块的当前地址。4.根据权利要求1所述的一种Can总线通讯地址自动竞争分配算法,其特征在于:所述S2中,所谓“地址声明帧”也是用另外一个特定功能码作为“地址声明帧”的功能码,其ID的地址段填入模块的当前地址,且“地址声明帧”的数...

【专利技术属性】
技术研发人员:周伟斌卢小聪莫明熙
申请(专利权)人:厦门拓宝科技有限公司
类型:发明
国别省市:

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

1