一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于CAN通讯的地址自识别方法、装置、介质及电子设备与流程

2023-01-02 14:47:02 来源:中国专利 TAG:

基于can通讯的地址自识别方法、装置、介质及电子设备
技术领域
1.本技术涉及数据处理技术领域,特别涉及基于can通讯的地址自识别方法、装置、介质及电子设备。


背景技术:

2.地址自识别算法是基于多设备自动识别地址的手段。具体的,多个设备自动完成通讯,根据对多个设备的地址序号排出互相的通讯地址,由地址最小或最大的做主机,来统一管理所有的设备,不依赖上位机或者监控。由于基于控制器域网(controller area network, can)通讯的多个设备的地址序号需要人工进行设置,来达到设备的地址序号唯一性。但是,上述人工设置地址序号方式具有工作量大、耗时且易出错等缺点。
3.can通讯传输在其短距离稳定性、车载级别的抗扰性、全双工的模式上优势很大,很多领域都在普遍应用。但是,can通讯中各设备的地址序号无法自动设置。具体的,can通讯中各设备之间的传输报文包括身份标识号码(identity document,id)域和数据域。其中id域用来做命令字控制,数据域用于传输内容,数据域仅包括8字节,导致超过8字节的长字节数据需要分多帧报文传输。然而,在基于can通讯的地址自识别领域,因为can总线上有多个设备,每个设备多帧的id域格式是一致的,即各设备无法识别各帧报文是哪个设备发出的,所以各设备无法通过识别多帧报文,来确定超过8字节的地址序号。因此,can通讯中无法基于多个设备的唯一识别号(超过8字节),来自动确定各设备的地址序号。
4.因此,需要提供一种基于can通讯的地址自识别方法、装置、介质及电子设备,可以基于单帧can报文传输,来自动确定can通讯中各设备的地址序号。


技术实现要素:

5.本技术实施例提供了一种基于can通讯的地址自识别方法、装置、介质及电子设备,通过将各设备的唯一识别码转化为满足can报文中数据域的字节数的辅助识别号,使得各设备基于所有设备的辅助识别号确定各设备的地址序号。实现了基于can通讯中自动确定各设备的地址序号,避免人工设置地址序号方式造成的工作量大等问题。
6.第一方面,本技术实施例提供了一种基于can通讯的地址自识别方法,该方法包括:获取目标设备的唯一识别码;所述目标设备为多个设备中的任一设备;基于can报文中数据域的字节数,从所述目标设备的所述唯一识别码中确定所述目标设备的辅助识别号;所述唯一识别码的字节数大于所述数据域的字节数;获取所述多个设备中其他设备所确定的辅助识别号;并基于所述多个设备的所述辅助识别号,确定所述多个设备中各设备的地址序号。
7.一些可选的实施例中,基于can报文中数据域的字节数,从所述目标设备的所述唯一识别码中确定所述目标设备的辅助识别号,包括:
基于can报文中数据域的字节数,从所述目标设备的所述唯一识别码中选取预设位置的数字,得到所述目标设备的中间数字集;基于所述目标设备的所述中间数字集中各所选取数字在所述目标设备的所述唯一识别码中的顺序,从所述目标设备的所述中间数字集中确定所述目标设备的所述辅助识别号。
8.一些可选的实施例中,所述基于所述多个设备的所述辅助识别号,确定所述多个设备中各设备的地址序号,包括:判断所述多个设备的所述辅助识别号中是否有重复;若所述多个设备的所述辅助识别号中没有重复,则基于所述多个设备的所述辅助识别号,确定所述多个设备的地址序号。
9.一些可选的实施例中,所述方法还包括:若所述多个设备的所述辅助识别号中有重复,则基于重复的所述辅助识别号,确定所述多个设备中的n个更新设备;其中n为大于或等于2的整数;确定所述n个更新设备中至少n-1个目标更新设备;根据预设更新规则,从所述至少n-1个目标更新设备中各目标更新设备的所述唯一识别码中确定各所述目标更新设备的新中间数字集;基于各所述目标更新设备的所述新中间数字集中各所选取数字在各所述目标更新设备的唯一识别码中的顺序,从各所述目标更新设备的所述新中间数字集中确定各所述目标更新设备对应的更新后的辅助识别号;若所述至少n-1个目标更新设备的更新后的所述辅助识别号和所述多个设备中其他非目标更新设备的所述辅助识别号均不重复,则基于所述至少n-1个目标更新设备的更新后的所述辅助识别号和所述多个设备中其他非目标更新设备的所述辅助识别号,确定所述多个设备的所述地址序号。
10.一些可选的实施例中,所述方法还包括:在所述目标更新设备的数量为n-1时,若所述n-1个目标更新设备的更新后的所述辅助识别号和所述多个设备中其他非目标更新设备的所述辅助识别号重复,则根据所述预设更新规则,从所述n个更新设备中剩余设备的所述唯一识别码中确定所述n个更新设备中剩余设备的新中间数字集;基于所述n个更新设备中剩余设备的所述新中间数字集中所选取数字在所述n个更新设备中剩余设备的唯一识别码中的顺序,从所述n个更新设备中剩余设备的所述新中间数字集中确定所述n个更新设备中剩余设备对应的更新后的辅助识别号;若所述n个更新设备的更新后的所述辅助识别号和所述多个设备中其他非更新设备的所述辅助识别号均不重复,则基于所述至少n个目标更新设备的更新后的所述辅助识别号和所述多个设备中其他非更新设备的所述辅助识别号,确定所述多个设备的所述地址序号。
11.一些可选的实施例中,基于所述多个设备的所述辅助识别号,确定所述多个设备中各设备的地址序号,包括:基于所述多个设备的所述辅助识别号,对所述多个设备进行排序;根据所述多个设备中各设备的顺序,确定所述多个设备中各设备的所述地址序
号。
12.一些可选的实施例中,所述can报文中数据域还包括模式域和时间域中的至少一项;所述模式域具有第一预设字节数,用于标识所述目标设备中芯片的功能模块;所述时间域具有第二预设字节数,用于标识所述目标设备的上电时间。
13.一些可选的实施例中,所述唯一识别码为通用唯一识别码(universally unique identifier,uuid)或设备出厂标号;所述通用唯一识别码和所述设备出厂标号均预先存储在所述目标设备。
14.第二方面,本技术实施例提供了一种基于can通讯的地址自识别装置,该装置包括:获取模块,用于获取目标设备的唯一识别码;所述目标设备为多个设备中的任一设备;第一确定模块,用于基于can报文中数据域的字节数,从所述目标设备的所述唯一识别码中确定所述目标设备的辅助识别号;所述唯一识别码的字节数大于所述数据域的字节数;第二确定模块,用于获取所述多个设备中其他设备所确定的辅助识别号;并基于所述多个设备的所述辅助识别号,确定所述多个设备中各设备的地址序号。
15.一些可选的实施例中,第一确定模块,包括:数字集确定模块,用于基于can报文中数据域的字节数,从所述目标设备的所述唯一识别码中选取预设位置的数字,得到所述目标设备的中间数字集;地址确定模块,用于基于所述目标设备的所述中间数字集中各所选取数字在所述目标设备的所述唯一识别码中的顺序,从所述目标设备的所述中间数字集中确定所述目标设备的所述辅助识别号。
16.一些可选的实施例中,所述第二确定模块,包括:重复判断模块,用于判断所述多个设备的所述辅助识别号中是否有重复;第三确定模块,用于若所述多个设备的所述辅助识别号中没有重复,则基于所述多个设备的所述辅助识别号,确定所述多个设备的所述地址序号。
17.一些可选的实施例中,所述装置还包括:更新设备确定模块,用于若所述多个设备的所述辅助识别号中有重复,则基于重复的所述辅助识别号,确定所述多个设备中的n个更新设备;其中n为大于或等于2的整数;目标设备确定模块,用于确定所述n个更新设备中至少n-1个目标更新设备;第一更新子模块,用于根据预设更新规则,从所述至少n-1个目标更新设备中各目标更新设备的所述唯一识别码中确定各所述目标更新设备的新中间数字集;第二更新子模块,用于基于各所述目标更新设备的所述新中间数字集中各所选取数字在各所述目标更新设备的唯一识别码中的顺序,从各所述目标更新设备的所述新中间数字集中确定各所述目标更新设备对应的更新后的辅助识别号;第四确定模块,用于若所述至少n-1个目标更新设备的更新后的所述辅助识别号和所述多个设备中其他非目标更新设备的所述辅助识别号均不重复,则基于所述至少n-1个目标更新设备的更新后的所述辅助识别号和所述多个设备中其他非目标更新设备的所述辅助识别号,确定所述多个设备的所述地址序号。
18.一些可选的实施例中,所述装置还包括:第三更新子模块,用于在所述目标更新设备的数量为n-1时,若所述n-1个目标更新设备的更新后的所述辅助识别号和所述多个设备中其他非目标更新设备的所述辅助识别号重复,则根据所述预设更新规则,从所述n个更新设备中剩余设备的所述唯一识别码中确定所述n个更新设备中剩余设备的新中间数字集;第四更新子模块,用于基于所述n个更新设备中剩余设备的所述新中间数字集中所选取数字在所述n个更新设备中剩余设备的唯一识别码中的顺序,从所述n个更新设备中剩余设备的所述新中间数字集中确定所述n个更新设备中剩余设备对应的更新后的辅助识别号;第五确定模块,用于若所述n个更新设备的更新后的所述辅助识别号和所述多个设备中其他非更新设备的所述辅助识别号均不重复,则基于所述至少n个目标更新设备的更新后的所述辅助识别号和所述多个设备中其他非更新设备的所述辅助识别号,确定所述多个设备的所述地址序号。
19.一些可选的实施例中,第二确定模块,包括:排序模块,用于基于所述多个设备的所述辅助识别号,对所述多个设备进行排序;顺序标号模块,用于根据所述多个设备中各设备的顺序,确定所述多个设备中各设备的所述地址序号。
20.第三方面,本技术实施例提供了一种计算机存储介质,所述计算机存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或至少一段程序由处理器加载并执行上述基于can通讯的地址自识别方法。
21.第四方面,本技术实施例提供了一种电子设备,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由所述处理器加载并执行上述基于can通讯的地址自识别方法。
22.本技术通过获取目标设备的唯一识别码;所述目标设备为多个设备中的任一设备;基于can报文中数据域的字节数,从所述目标设备的所述唯一识别码中确定所述目标设备的辅助识别号;所述唯一识别码的字节数大于所述数据域的字节数;获取所述多个设备中其他设备所确定的辅助识别号;并基于所述多个设备的所述辅助识别号,确定所述多个设备中各设备的地址序号。如此通过将各设备的唯一识别码转化为满足can报文中数据域的字节数的辅助识别号,使得各设备基于所有设备的辅助识别号确定各设备的地址序号。实现了基于can通讯中自动确定各设备的地址序号,避免人工设置地址序号方式造成的工作量大等问题。
附图说明
23.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
24.图1是本技术实施例提供的一种基于can通讯的地址自识别方法的应用场景图;图2是本技术实施例提供的一种基于can通讯的地址自识别方法的流程示意图;
图3是本技术实施例提供的一种基于can报文的示意图;图4是本技术实施例提供的一种基于can通讯的地址自识别方法中确定地址序号的流程示意图;图5是本技术实施例提供的一种确定地址序号的示意图;图6是本技术实施例提供的一种基于can通讯的地址自识别方法中更新辅助识别号的流程示意图;图7是本技术实施例提供的另一种基于can通讯的地址自识别方法中更新辅助识别号的流程示意图;图8是本技术实施例提供的一种设备进行地址自识别的示意图;图9是本技术实施例提供的一种基于can通讯的地址自识别装置的结构示意图;图10是本技术实施例提供的一种用于实现基于can通讯的地址自识别方法的电子设备的硬件结构框图。
具体实施方式
25.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
26.此处所称的“一个实施例”或“实施例”是指可包含于本发明至少一个实现方式中的特定特征、结构或特性。在本发明的描述中,需要理解的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
27.首先对基于can通讯的地址自识别方法的应用场景进行举例介绍。请参阅图1,图1是本技术实施例提供的一种基于can通讯的地址自识别方法的应用场景图。如图1所示,通常can通讯中包括多个设备,如图1中的设备1、设备2等设备。多个设备之间通过can报文通讯。其中,各设备的地址序号无法自动设置。
28.具体的,can报文id域和数据域。其中id域用来做命令字控制,数据域用于传输内容,但是数据域仅包括8字节,导致超过8字节的长字节数据需要分多帧can报文传输。因为每个设备所发出的多帧can报文的id域格式是一致的,即各设备无法确定所接收的各帧can报文是哪个设备发出的,所以各设备无法通过识别多帧can报文,来确定超过8字节的地址序号。而各设备的唯一识别号通常超过8字节,因此,can通讯中无法基于多个设备的唯一识别号,来自动确定各设备的地址序号。但是在设备的数量较多的情况下,通过人工设置地址序号方式具有工作量大、耗时且易出错等缺点。
29.为了解决上述问题,本技术提供一种基于can通讯的地址自识别方法,具体的,本技术通过获取目标设备的唯一识别码;所述目标设备为多个设备中的任一设备;基于can报
文中数据域的字节数,从所述目标设备的所述唯一识别码中确定所述目标设备的辅助识别号;所述唯一识别码的字节数大于所述数据域的字节数;获取所述多个设备中其他设备所确定的辅助识别号;并基于所述多个设备的所述辅助识别号,确定所述多个设备中各设备的地址序号。如此通过将各设备的唯一识别码转化为满足can报文中数据域的字节数的辅助识别号,各设备通过can报文传输其辅助识别号于其他设备,如此各设备基于所有设备的辅助识别号确定各设备的地址序号。实现了基于多个设备的唯一识别号(大于数据域的字节数),来自动确定各设备的地址序号。避免人工设置地址序号方式造成的工作量大、耗时且易出错等问题。
30.以下介绍本技术一种基于can通讯的地址自识别方法的具体实施例,图2是本技术实施例提供的一种基于can通讯的地址自识别方法的流程示意图;本说明书提供了如实施例或流程图的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或服务器产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。具体的如图2所示,该方法可以包括:s202:获取目标设备的唯一识别码;所述目标设备为多个设备中的任一设备。
31.例如,目标设备为图1所示的设备1。
32.s204:基于can报文中数据域的字节数,从所述目标设备的所述唯一识别码中确定所述目标设备的辅助识别号;所述唯一识别码的字节数大于所述数据域的字节数。
33.具体的,图3是本技术实施例提供的一种基于can报文的示意图,如图3所示,can报文中数据域的字节数为8字节(即8byte),确定辅助标识号的字节数为7字节。
34.上述设备可以设置多个接口,各接口连接于设备内芯片中不同功能模块;为了区别各设备中不同功能模块,一些可选的实施例中,can报文中数据域还包括具有第一预设字节数的模式域;所述模式域用于标识所述目标设备中芯片的功能模块。如此,通过识别can报文中数据域所包含的模式域数据,确定设备中发送can报文的功能模块。
35.例如,如图3所示,can报文中数据域中包括具有第一预设字节数为1(即1byte)的模式域,模式域用于标识所述目标设备中芯片的功能模块,即模式域用于在一个设备上实现多路输出地址的模式。具体的,例如,上述模式域数据为单序号,设备1中芯片包含功能模块1和功能模块2,设备1中功能模块1和功能模块2向其他设备发送的can报文中模式域数据分别为“1”和“3”,即设备2通过识别can报文中模式域数据确定设备1中发送can报文的功能模块。
36.图4是本技术实施例提供的一种基于can通讯的地址自识别方法中确定地址序号的流程示意图,一些可选的实施例中,上述步骤s204中基于can报文中数据域的字节数,从所述目标设备的所述唯一识别码中确定所述目标设备的辅助识别号,包括图4所示的如下步骤:s402:基于can报文中数据域的字节数,从所述目标设备的所述唯一识别码中选取预设位置的数字,得到所述目标设备的中间数字集。
37.例如,图5是本技术实施例提供的一种确定地址序号的示意图。如图5所示,针对目标设备的唯一识别码(即图中的uuid)为12字节数,预设位置为图中idx=0时,所以“1”对应
位置即为该目标设备的唯一识别码的预设位置。例如,唯一识别码为“123456789123”,根据idx=0时的预设位置,选取得到的数字包括1、3、5、7、8、9、2。
38.s404:基于所述目标设备的所述中间数字集中各所选取数字在所述目标设备的所述唯一识别码中的顺序,从所述目标设备的所述中间数字集中确定所述目标设备的所述辅助识别号。
39.例如,根据上述选取得到的数字1、3、5、7、8、9、2,在唯一识别码中位数依次降低,则确定该目标设备的辅助识别号为“1357892”。
40.s206:获取所述多个设备中其他设备所确定的辅助识别号;并基于所述多个设备的所述辅助识别号,确定所述多个设备中各设备的地址序号。
41.一些可选的实施例中,步骤s206中基于所述多个设备的所述辅助识别号,确定所述多个设备中各设备的地址序号,包括:基于所述多个设备的所述辅助识别号,对所述多个设备进行排序;根据所述多个设备中各设备的顺序,确定所述多个设备中各设备的所述地址序号。
42.具体的,各设备的辅助识别号有大小区别,对多个设备的辅助识别号进行大小排序,进而确定多个设备中各设备的所述地址序号。例如,设备1的辅助识别号为“1357892”,设备2的辅助识别号为“1234567”,因为“1357892”大于“1234567”,则可以设置设备1的地址序号为1,设备2的地址序号为2。
43.一些可选的实施例中,所述唯一识别码为通用唯一识别码或设备出厂标号;所述通用唯一识别码和所述设备出厂标号均预先存储在所述目标设备。
44.通常通用唯一识别码和设备出厂标号通常大于8字节。通用唯一识别码通常存储在设备中芯片中,设备出厂标号可以在设备出厂时录入设备中芯片。若不将通用唯一识别码和设备出厂标号转换为辅助识别号,无法在can通讯中基于通用唯一识别码和设备出厂标号进行自动地址自识别。通过本技术的实施例,可以将设备出厂标号转换为辅助识别号,然后基于设备辅助识别号进行自动地址自识别。
45.可以理解的是,本实施例中,通用唯一识别码和设备出厂标号仅为唯一识别码示例,本技术中唯一识别码可以是存储于目标设备中的任意编码,在此不作限制。
46.为了避免采用重复的辅助识别号确定地址序号。图6是本技术实施例提供的一种基于can通讯的地址自识别方法中更新辅助识别号的流程示意图,一些可选的实施例中,上述步骤s206中所述基于所述多个设备的所述辅助识别号,确定所述多个设备中各设备的地址序号,包括图6所示的如下步骤:s601:判断所述多个设备的所述辅助识别号中是否有重复。
47.s602:若所述多个设备的所述辅助识别号中没有重复,则基于所述多个设备的所述辅助识别号,确定所述多个设备的地址序号。
48.本实施例中,在确定辅助识别号不重复的情况下,基于多个设备的辅助识别号进行排序并确定各设备的地址序号。保证各设备之间的地址序号是不同的,使得各设备之间通过地址序号进行识别,进而保证各设备之间通讯的正确性。
49.一些可选的实施例中,上述方法还包括图6所示的如下步骤:s603:若所述多个设备的所述辅助识别号中有重复,则基于重复的所述辅助识别
号,确定所述多个设备中的n个更新设备;其中n为大于或等于2的整数。
50.例如,设备1和设备2的辅助识别号重复。则确定设备1和设备2为更新设备。
51.s604:确定所述n个更新设备中至少n-1个目标更新设备。
52.为了保证各重复的设备之间不发生辅助识别号的重复,针对发生辅助识别号重复的n个更新设备中至少n-1个设备进行辅助识别号的更新。例如,属于更新设备的设备1和设备2(即n=2),确定设备1和/或设备2为目标更新设备。
53.具体的,可以基于n个更新设备上电的时间,确定上电时间较晚的n-1个更新设备均为目标更新设备。可以理解的是,上电较晚的设备通常获取其他设备的辅助识别号的次数较少,即辅助识别号对比的次数就少,更新辅助识别号的可能性就小,则上电较晚的设备与其他设备的辅助识别号重复的概率就增大。如,设备若是刚上电,则该设备并未与其他设备的辅助识别号进行对比,但是其他设备中各设备之间的辅助识别号已经进行更新来避免重复。如此,该刚上电设备的辅助识别号重复时,可以仅更新该刚上电设备,避免同时更新两个设备导致计算资源浪费。若多个设备同时上电,例如,通过设备之间的上电时间差未达到一定时间阈值,确定多个设备同时上电,则各设备均为第一次获取和比较其他设备的辅助识别号。可以确定n个更新设备均为目标更新设备。
54.上述n-1个目标更新设备基于n个更新设备的上电时间来确定。一些可选的实施例中,can报文中数据域包括具有第二预设字节数的时间域;所述时间域用于标识所述目标设备的上电时间。
55.例如,第二预设字节数为1,上述模式域的第一预设字节数1,数据域字节数为8;辅助识别号的字节数为6。若设备1、设备2和设备3发生辅助识别号重复,则根据设备1、设备2和设备3的can报文中时间域的数据,确定三个设备上电时间的先后顺序,如确定设备1最先上电,则确定设备2和设备3进行更新辅助识别号。
56.本实施例中,各设备所发送的can报文中数据域所包含的时间域表征了其设备的上电时间。使得各设备基于其他设备所发送的can报文,确定各设备的上电时间。如此基于n个更新设备的上电时间确定n-1个目标更新设备。
57.s605:根据预设更新规则,从所述至少n-1个目标更新设备中各目标更新设备的所述唯一识别码中确定各所述目标更新设备的新中间数字集。
58.具体的,预设更新规则用于表征各设备如何在已选取过的位置(已确定辅助识别号)的基础上进行新位置选取。例如,如图5所示,图中idx=1
‑ꢀ
idx=n时,“1”对应的位置均为所选取的位置,可以基于idx=1
‑ꢀ
idx=n逐次选取位置,确定更新的辅助识别号,直至不重复。例如,唯一识别码为“123456789123”,idx=1时,确定新中间数字集“1、3、4、5、8、9、2”。
59.s606:基于各所述目标更新设备的所述新中间数字集中各所选取数字在各所述目标更新设备的唯一识别码中的顺序,从各所述目标更新设备的所述新中间数字集中确定各所述目标更新设备对应的更新后的辅助识别号。
60.例如,基于上述新中间数字集“1、3、4、5、8、9、2”,确定更新后的辅助识别号为“1345892”。
61.s607:若所述至少n-1个目标更新设备的更新后的所述辅助识别号和所述多个设备中其他非目标更新设备的所述辅助识别号均不重复,则基于所述至少n-1个目标更新设备的更新后的所述辅助识别号和所述多个设备中其他非目标更新设备的所述辅助识别号,
确定所述多个设备的所述地址序号。
62.通过上述实施例,在多个目标设备中n个更新设备的辅助识别号发生重复的情况下,更新n个更新设备中至少n-1个目标更新设备的辅助识别号。如此,解决了多个设备之间的辅助识别号发生重复的问题。更新至少部分发生辅助识别号重复的设备的辅助识别号,直至多个设备的辅助识别号不重复,则基于多个设备的辅助识别号进行大小排序,以确定多个设备的地址序号。保证各设备的地址序号的唯一性。
63.为了进一步保证发生辅助识别号重复的更新设备能够克服辅助识识别号重复的问题,并减少所需更新的更新设备,可以设置更新设备更新的顺序。图7是本技术实施例提供的另一种基于can通讯的地址自识别方法中更新辅助识别号的流程示意图,一些可选的实施例中,上述方法还包括图7所示的如下步骤:s608:在所述目标更新设备的数量为n-1时,若所述n-1个目标更新设备的更新后的所述辅助识别号和所述多个设备中其他非目标更新设备的所述辅助识别号重复,则根据所述预设更新规则,从所述n个更新设备中剩余设备的所述唯一识别码中确定所述n个更新设备中剩余设备的新中间数字集。
64.s609:基于所述n个更新设备中剩余设备的所述新中间数字集中所选取数字在所述n个更新设备中剩余设备的唯一识别码中的顺序,从所述n个更新设备中剩余设备的所述新中间数字集中确定所述n个更新设备中剩余设备对应的更新后的辅助识别号。
65.具体的,剩余设备即为n个更新设备中剩余的一个非目标更新设备。在n-1个目标更新设备的辅助识别号至少一次更新后,多次获取的辅助识别号仍然会有重复,再对剩余设备进行辅助识别号的更新。
66.s610:若所述n个更新设备的更新后的所述辅助识别号和所述多个设备中其他非更新设备的所述辅助识别号均不重复,则基于所述至少n个目标更新设备的更新后的所述辅助识别号和所述多个设备中其他非更新设备的所述辅助识别号,确定所述多个设备的所述地址序号。
67.上述实施例中,针对发生辅助识别号重复的更新设备为了克服辅助识识别号重复的问题,来更新其辅助识别号,通过优先对n个更新设备中的n-1个目标更新设备进行更新,若仍无法克服重复的问题,针对剩余设备进行辅助识别号更新,如此,避免直接对n各更新设备进行更新,减少所需更新的更新设备,减少计算资源。
68.本技术提供一种基于can通讯中一设备进行基于can通讯的地址自识别方法的示意图。图8是本技术实施例提供的一种设备进行地址自识别的示意图,具体步骤如下:s801:启动。
69.例如,设备1上电后,设备1中基于can通讯的地址自识别方法的程序启动。
70.s802:生成辅助识别号。
71.例如,设备1上电后直接基于上述图5所示的idx=0时的预设位置,从设备1的唯一识别号中确定中间数字集,并基于中间数字集中各数字在设备1的唯一识别号中的顺序,从设备1的中间数字集中确定设备1的辅助识别号。
72.s803:发送地址重排帧。
73.具体的,重排帧即为重新对辅助识别号进行排序的请求的帧报文。设备1确定了辅助识别号后,需要向其他设备发送重新对辅助识别号进行排序的请求。
74.s804:判断是否达到1s。
75.具体的,为了保证其他设备可以收到设备1的重排帧,可以在1s内连续多次发送重排帧。避免各设备重排帧在can总线上传输时丢失,导致其他设备无法获取重排帧。
76.当达到1s时进入步骤s805和步骤s806,向其他设备发送该设备的辅助识别号;收集其他设备的辅助识别号并排序。
77.s805:收集辅助识别号并排序。
78.具体的,每个设备可以获得(即收集)所有设备的辅助识别号,基于所有设备的辅助识别号进行排序,例如,基于大小对辅助识别号进行排序,确定各设备的地址序号。
79.执行步骤s805中收集到其他设备的辅助识别号时,可以进入步骤s809,判断其他设备的辅助识别号是否有重复。
80.s806:开始发送地址自识别帧。
81.具体的,设备1在发送完重排帧后,需要将其辅助识别号发送于其他设备,并收集其他设备的辅助识别号。其中其他设备在收到重排帧后会将各自的辅助识别号发送于各自以外的设备。
82.具体的,上述步骤s805和步骤s806是同步进行的。例如,设备1一直向外发送设备1的辅助识别号,同时收集其他设备的辅助识别号并排序。
83.s807:判断是否收到总线上的重排帧。
84.具体的,在设备1执行上述步骤s805和上述步骤s806向其他设备发送该设备的辅助识别号、收集辅助识别号并排序的过程中,判断是否有其他设备发送重排帧。例如,该重排帧为其他设备上电发送重排帧,或者其他设备判断出辅助识别号发生重复,并向发送重排帧。若接收到其他设备发送的重排帧,则进入步骤s808,清空接收到的其他设备的辅助识别号。若未接收到其他设备发送的重排帧,则进入步骤s806,发送地址自识别帧。
85.s808:清空接收到的其他设备的辅助识别号。
86.具体的,设备1清空接收到的其他设备的辅助识别号,以重新接收其他设备的辅助识别号。
87.s809:判断辅助识别号是否有重复。
88.具体的,若判断所收集的辅助识别号与设备1的辅助识别号不重复,则进入步骤s805,设备1继续收集辅助识别号并排序,确定各设备的地址序号。若判断所收集的辅助识别号与设备1的辅助识别号重复,则进入步骤s810,清空接收到的其他设备的辅助识别号。例如若设备1的辅助识别号与设备2的辅助识别号之间发生重复,则更新设备1和设备2的辅助识别号。
89.一些可选的实施例中,在步骤s809中添加“判断其上电时间是否达到预设时间”的步骤。若上电时间达到预设时间,且发生重复,进入步骤s805继续收集其他设备的辅助识别号;若上电时间未达到预设时间,且发生重复,进入步骤s810清空其他设备的辅助识别号,然后进入步骤s811,基于预设更新规则更新辅助识别号。例如,若通过步骤s809,设备2和设备1的辅助识别号发生重复,且设备2的上电时间达到预设时间,设备1的上电时间未达到预设时间,则仅设备1进行辅助识别号更新(设备1进入步骤s810),设备2进入步骤s805,进行收集其他设备的辅助识别号并排序。
90.一些可选的实施例中,若设备2和设备1的辅助识别号发生重复,基于各can报文中
数据域内的时间域数据确定设备1和设备2的上电时间差,在上电时间差超过一定时间阈值的情况下,基于上电较晚的设备进行辅助识别号的更新。例如,上述时间阈值为1分钟,设备2后上电。若设备2与设备1之间的上电时间间隔超过1分钟,则确定设备2进行辅助识别号更新;设备1确定设备2后上电,且上述时间间隔超过1分钟,则设备1确定设备1不进行辅助识别号更新。
91.s810:清空接收到的其他设备的辅助识别号。
92.具体的,设备1清空收集到的其他设备的辅助识别号,并进入步骤s811,更新设备1的辅助识别号。
93.s811:基于预设更新规则更新辅助识别号。
94.具体的,设备1基于预设更新规则,对设备1的辅助识别号进行更新,进入步骤s802,生成辅助识别号(更新后的辅助识别号)。
95.上述实施例中,can通讯中所有设备均包括上述图8所示的执行步骤,则最终各设备收集到所有设备不重复的辅助识别号,并基于不重复的识别号进行大小排序后,确定各设备的地址序号。如此各设备所确定所有设备的地址序号具有一致性,保证后续各设备之间的正常识别和通讯。
96.图9是本技术实施例提供的一种基于can通讯的地址自识别装置的结构示意图,如图9所示,该基于can通讯的地址自识别装置包括:获取模块,用于获取目标设备的唯一识别码;所述目标设备为多个设备中的任一设备;第一确定模块,用于基于can报文中数据域的字节数,从所述目标设备的所述唯一识别码中确定所述目标设备的辅助识别号;所述唯一识别码的字节数大于所述数据域的字节数;第二确定模块,用于获取所述多个设备中其他设备所确定的辅助识别号;并基于所述多个设备的所述辅助识别号,确定所述多个设备中各设备的地址序号。
97.一些可选的实施例中,第一确定模块,包括:数字集确定模块,用于基于can报文中数据域的字节数,从所述目标设备的所述唯一识别码中选取预设位置的数字,得到所述目标设备的中间数字集;地址确定模块,用于基于所述目标设备的所述中间数字集中各所选取数字在所述目标设备的所述唯一识别码中的顺序,从所述目标设备的所述中间数字集中确定所述目标设备的所述辅助识别号。
98.一些可选的实施例中,所述第二确定模块,包括:重复判断模块,用于判断所述多个设备的所述辅助识别号中是否有重复;第三确定模块,用于若所述多个设备的所述辅助识别号中没有重复,则基于所述多个设备的所述辅助识别号,确定所述多个设备的所述地址序号。
99.一些可选的实施例中,所述装置还包括:更新设备确定模块,用于若所述多个设备的所述辅助识别号中有重复,则基于重复的所述辅助识别号,确定所述多个设备中的n个更新设备;其中n为大于或等于2的整数;目标设备确定模块,用于确定所述n个更新设备中至少n-1个目标更新设备;第一更新子模块,用于根据预设更新规则,从所述至少n-1个目标更新设备中各目
标更新设备的所述唯一识别码中确定各所述目标更新设备的新中间数字集;第二更新子模块,用于基于各所述目标更新设备的所述新中间数字集中各所选取数字在各所述目标更新设备的唯一识别码中的顺序,从各所述目标更新设备的所述新中间数字集中确定各所述目标更新设备对应的更新后的辅助识别号;第四确定模块,用于若所述至少n-1个目标更新设备的更新后的所述辅助识别号和所述多个设备中其他非目标更新设备的所述辅助识别号均不重复,则基于所述至少n-1个目标更新设备的更新后的所述辅助识别号和所述多个设备中其他非目标更新设备的所述辅助识别号,确定所述多个设备的所述地址序号。
100.一些可选的实施例中,所述装置还包括:第三更新子模块,用于在所述目标更新设备的数量为n-1时,若所述n-1个目标更新设备的更新后的所述辅助识别号和所述多个设备中其他非目标更新设备的所述辅助识别号重复,则根据所述预设更新规则,从所述n个更新设备中剩余设备的所述唯一识别码中确定所述n个更新设备中剩余设备的新中间数字集;第四更新子模块,用于基于所述n个更新设备中剩余设备的所述新中间数字集中所选取数字在所述n个更新设备中剩余设备的唯一识别码中的顺序,从所述n个更新设备中剩余设备的所述新中间数字集中确定所述n个更新设备中剩余设备对应的更新后的辅助识别号;第五确定模块,用于若所述n个更新设备的更新后的所述辅助识别号和所述多个设备中其他非更新设备的所述辅助识别号均不重复,则基于所述至少n个目标更新设备的更新后的所述辅助识别号和所述多个设备中其他非更新设备的所述辅助识别号,确定所述多个设备的所述地址序号。
101.一些可选的实施例中,第二确定模块,包括:排序模块,用于基于所述多个设备的所述辅助识别号,对所述多个设备进行排序;顺序标号模块,用于根据所述多个设备中各设备的顺序,确定所述多个设备中各设备的所述地址序号。
102.本技术实施例中的装置与方法实施例基于同样地申请构思。
103.图10是本技术实施例提供的一种用于实现基于can通讯的地址自识别方法的电子设备的硬件结构框图。该电子设备可以是服务器,还可以是终端设备,其内部结构图可以如图10所示。如图10所示,该电子设备1000可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,cpu)1010(处理器1010可以包括但不限于微处理器mpu或可编程逻辑器件fpga等的处理装置)、用于存储数据的存储器1030,一个或一个以上存储应用程序1023或数据1022的存储介质1020(例如一个或一个以上海量存储设备)。其中,存储器1030和存储介质1020可以是短暂存储或持久存储。存储在存储介质1020的程序可以包括一个或一个以上模块,每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1010可以设置为与存储介质1020通信,在电子设备1000上执行存储介质1020中的一系列指令操作。电子设备1000还可以包括一个或一个以上电源1060,一个或一个以上有线或无线网络接口1050,一个或一个以上输入输出接口1040,和/或,一个或一个以上操作系统1021,例如windows,mac os,unix, linux,freebsd等等。
104.输入输出接口1040可以用于经由一个网络接收或者发送数据。上述的网络具体实
例可包括电子设备1000的通信供应商提供的无线网络。在一个实例中,输入输出接口1040包括一个网络适配器(network interface controller,nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,输入输出接口1040可以为射频(radio frequency,rf)模块,其用于通过无线方式与互联网进行通讯。
105.电源1060可以通过电源管理系统与处理器1010逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
106.本领域普通技术人员可以理解,图10所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,电子设备1000还可包括比图10中所示更多或者更少的组件,或者具有与图10所示不同的配置。
107.本技术的实施例还提供了一种计算机存储介质,计算机存储介质中存储有至少一条指令或至少一段程序,至少一条指令或至少一段程序由处理器加载并执行以实现上述的基于can通讯的地址自识别方法。
108.可选地,在本实施例中,上述存储介质可以位于计算机网络的多个网络服务器中的至少一个网络服务器。可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
109.本技术的实施例还提供了一种电子设备,电子设备至少包括处理器1010和存储器1030,存储器1030中存储有至少一条指令或至少一段程序,至少一条指令或至少一段程序由处理器1010加载并执行上述的基于can通讯的地址自识别方法。
110.由上述本技术提供的一种基于can通讯的地址自识别方法、装置、介质及电子设备的实施例可见,本技术通过获取目标设备的唯一识别码;所述目标设备为多个设备中的任一设备;基于can报文中数据域的字节数,从所述目标设备的所述唯一识别码中确定所述目标设备的辅助识别号;所述唯一识别码的字节数大于所述数据域的字节数;获取所述多个设备中其他设备所确定的辅助识别号;并基于所述多个设备的所述辅助识别号,确定所述多个设备中各设备的地址序号。如此通过将各设备的唯一识别码转化为满足can报文中数据域的字节数的辅助识别号,使得各设备基于所有设备的辅助识别号确定各设备的地址序号。实现了基于can通讯中自动确定各设备的地址序号,避免人工设置地址序号方式造成的工作量大等问题。
111.需要说明的是:上述本技术实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
112.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
113.本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件
来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
114.以上所述仅为本技术的较佳实施例,并不用以限制本技术,凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献