本发明涉及can总线,具体为一种can总线通讯地址自动竞争分配算法。
背景技术:
1、can总线也称控制器局部网,是bosch公司为现代汽车应用领域推出的一种多主机局部网,由于其高性能、高可靠性、实时性等优点现已广泛应用于工业自动化、多种控制设备、交通工具、医疗仪器以及建筑、环境控制等众多部门。
2、bms(电池管理)测控模块,以及括充电桩,ups,模块式通讯电源等系统,他们的安装和维护中,需要对通模块间和模块与系统的通讯地址进行设置。设置方案的差别,对系统的维护运行便捷性和可靠性有重要影响。现有技术存在诸多缺点,具体如下:
3、1、专用主机给所有从机分配地址,要专门主机,系统框架复杂,成本高;
4、2、通过拨码开关设定地址,耗费人工,数量固定,系统扩容受限;
5、3、通过键盘或人机界面或电脑上位机设定地址,耗费人工,要求外接操作设备;
6、4、增加通讯仲裁线,利用通讯仲裁线进行仲裁分配地址,接线复杂,成本增加。
技术实现思路
1、针对现有技术的不足,本发明提供了一种can总线通讯地址自动竞争分配算法,解决了现有多模块系统通讯地址设置复杂,避免因通讯地址重复无法通讯的问题。
2、为实现以上目的,本发明通过以下技术方案予以实现:一种can总线通讯地址自动竞争分配算法,具体包括以下步骤:
3、s1、各模块发送“地址请求帧”;
4、s2、各模块收到其它模块发送的“地址请求帧”后回复“地址声明帧”;
5、s3、各模块收到对方发送的“地址声明帧”后解析帧数据取出其它模块的的当前地址和识别码,判断自身当前地址和其它模块当前地址是否重复;
6、s4、各模块依次与重复地址的其它模块比较识别码的优先级;
7、s5、以新的地址发送“地址请求帧”再次进入s2流程;
8、s6、等待其他模块的“地址请求帧”,并判断地址分配是否超时2秒,若超时2秒则进入s7流程;
9、s7、以当前地址作为最终分配的地址,进入正常通信,开始周期发送正常数据报文。
10、优选的,所述s1中,所谓“地址请求帧”是在id中的功能码段填入特定的功能码作为“地址请求帧”的功能码,其id的地址段填入模块的当前地址。
11、优选的,所述s2中,所谓“地址声明帧”也是用另外一个特定功能码作为“地址声明帧”的功能码,其id的地址段填入模块的当前地址,且“地址声明帧”的数据内容包含有各模块唯一的识别码,这个识别码可以是序列号码或者流水号码等可以区分每个模块的一串号码,并以识别码的大小作为地址分配的优先级,识别码越小优先级越高,识别码越大,优先级越低。
12、优选的,所述s3中,判断自身当前地址和其它模块当前地址是否重复后,若重复则进入s4流程,若没有重复则当前地址保持不变进入s6流程。
13、优选的,所述s4中,若自身优先级高,则当前地址保持不变,若自身优先级低则当前地址+1作为新地址,判断当前地址是否发生变化,如果发生变化进入s5流程,否则进入s6流程。
14、优选的,所述s7中,进入正常通信后,实时监控总线上其它模块发送的消息判断是否有使用相同地址的模块存在,若存在则进入s1流程。
15、有益效果
16、本发明提供了一种can总线通讯地址自动竞争分配算法。与现有技术相比具备以下有益效果:
17、(1)、该can总线通讯地址自动竞争分配算法,通过取消硬件拨码或键盘,或人机界面等方式设定地址,降低人工操作的复杂度,减少人为操作错误导致无法通讯的问题。
18、(2)、该can总线通讯地址自动竞争分配算法,通过实现不固定数量的并联设备的地址自动分配。
19、(3)、该can总线通讯地址自动竞争分配算法,通过实现无需系统下电,通讯线热插拔的地址自动分配。
1.一种can总线通讯地址自动竞争分配算法,其特征在于:具体包括以下步骤:
2.根据权利要求1所述的一种can总线通讯地址自动竞争分配算法,其特征在于:所述s1中,所谓“地址请求帧”是在id中的功能码段填入特定的功能码作为“地址请求帧”的功能码。
3.根据权利要求2所述的一种can总线通讯地址自动竞争分配算法,其特征在于:所述id的地址段填入模块的当前地址。
4.根据权利要求1所述的一种can总线通讯地址自动竞争分配算法,其特征在于:所述s2中,所谓“地址声明帧”也是用另外一个特定功能码作为“地址声明帧”的功能码,其id的地址段填入模块的当前地址,且“地址声明帧”的数据内容包含有各模块唯一的识别码。
5.根据权利要求4所述的一种can总线通讯地址自动竞争分配算法,其特征在于:所述识别码可以是序列号码或者流水号码等可以区分每个模块的一串号码,并以识别码的大小作为地址分配的优先级,识别码越小优先级越高,识别码越大,优先级越低。
6.根据权利要求1所述的一种can总线通讯地址自动竞争分配算法,其特征在于:所述s3中,判断自身当前地址和其它模块当前地址是否重复。
7.根据权利要求6所述的一种can总线通讯地址自动竞争分配算法,其特征在于:所述s3中,若重复则进入s4流程,若没有重复则当前地址保持不变进入s6流程。
8.根据权利要求1所述的一种can总线通讯地址自动竞争分配算法,其特征在于:所述s4中,若自身优先级高,则当前地址保持不变。
9.根据权利要求8所述的一种can总线通讯地址自动竞争分配算法,其特征在于:所述s4中,若自身优先级低则当前地址+1作为新地址,判断当前地址是否发生变化,如果发生变化进入s5流程,否则进入s6流程。
10.根据权利要求1所述的一种can总线通讯地址自动竞争分配算法,其特征在于:所述s7中,进入正常通信后,实时监控总线上其它模块发送的消息判断是否有使用相同地址的模块存在,若存在则进入s1流程。