本申请涉及can通信领域,尤其涉及一种基于can通信的节点地址分配方法及装置。
背景技术:
1、基于控制器局域网总线(controller area network,can)的通信中,通常会涉及到数量众多的同一种类型的设备(又称节点)的部署。为了区分这些众多的can设备,需要为每个设备分配设备地址或身份标识(identity,id)。然而,目前如何高效地为can设备分配地址是一个尚未解决的问题。
技术实现思路
1、本申请实施例提供了一种基于can通信的节点地址分配方法及装置,可以将can节点的序列号(serial number,sn)码在哈希表中的哈希地址作为其can通信地址,有助于提高can地址分配的可靠性和效率。
2、第一方面,本申请实施例提供了一种基于can通信的节点地址分配方法,方法应用于分配节点,包括:
3、将目标节点的sn码插入哈希列表中,得到sn码的哈希地址;
4、将sn码的哈希地址作为目标节点的can通信地址。
5、可选的,将目标节点的sn码插入哈希列表中,得到sn码的哈希地址包括:
6、判断目标节点是否已分配过can通信地址;
7、若目标节点未分配过地址,则计算目标节点的sn码的哈希地址;
8、在哈希列表中查询目标节点的sn码的哈希地址或can通信地址;
9、若哈希列表中不存在目标节点的sn码的哈希地址或can通信地址,则将目标节点的sn码的哈希地址或can通信地址插入哈希列表中。
10、可选的,在将目标节点的sn码插入哈希列表中,得到sn码的哈希地址之前,方法还包括:
11、接收目标节点发送的sn码。
12、可选的,sn码承载于目标节点的拓展帧,目标节点的can通信地址承载于拓展帧的拓展id。
13、可选的,sn码的发出时间基于目标节点上电后的第一延迟时间确定,第一延迟时间的秒数为第一随机数,第一延迟时间的毫秒数为第二随机数,第一随机数和第二随机数由随机数发生函数生成。
14、可选的,该方法还包括:
15、将目标节点的can通信地址作为目标节点的拓展帧的拓展id。
16、可选的,该方法还包括:
17、将哈希列表中目标节点的can通信地址对应的第一计数值设置为初始值,第一计数值用于确定目标节点是否掉线,第一计数值随着时间递减,若第一计数值递减为0,则表示目标节点掉线。
18、第二方面,本申请实施例提供了一种电子设备,该电子设备基于can通信,该电子设备包括第一处理单元,用于:
19、将目标节点的sn码插入哈希列表中,得到sn码的哈希地址;
20、将sn码的哈希地址作为目标节点的can通信地址。
21、可选的,第一处理单元包括:
22、第一判断单元,用于判断目标节点是否已分配过can通信地址;
23、第一计算单元,用于在目标节点未分配过地址时,计算目标节点的sn码的哈希地址;
24、第一查询单元,用于在哈希列表中查询目标节点的sn码的哈希地址或can通信地址;
25、第一插入单元,用于在哈希列表中不存在目标节点的sn码的哈希地址或can通信地址时,则将目标节点的sn码的哈希地址或can通信地址插入哈希列表中。
26、可选的,第一处理单元还用于:
27、在将目标节点的sn码插入哈希列表中,得到sn码的哈希地址之前,接收目标节点发送的sn码。
28、可选的,sn码承载于目标节点的拓展帧,目标节点的can通信地址承载于拓展帧的拓展id。
29、可选的,sn码的发出时间基于目标节点上电后的第一延迟时间确定,第一延迟时间的秒数为第一随机数,第一延迟时间的毫秒数为第二随机数,第一随机数和第二随机数由随机数发生函数生成。
30、可选的,第一处理单元还用于:
31、将目标节点的can通信地址作为目标节点的拓展帧的拓展id。
32、可选的,第一处理单元还用于:
33、将哈希列表中目标节点的can通信地址对应的第一计数值设置为初始值,第一计数值用于确定目标节点是否掉线,第一计数值随着时间递减,若第一计数值递减为0,则表示目标节点掉线。
34、第三方面,本申请实施例提供了一种电子装置,包括存储器、至少一个处理器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时实现如上述第一方面中任一项所述的方法。
35、第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面中任一项所述的方法。
36、第五方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行上述第一方面中任一项所述的方法。
37、基于本申请,可以将can节点的sn码在哈希表中的哈希地址作为其can通信地址,有助于提高can地址分配的可靠性和效率。
1.一种基于控制器局域网总线can通信的节点地址分配方法,其特征在于,所述方法应用于分配节点,包括:
2.根据权利要求1所述的方法,其特征在于,所述将目标节点的sn码插入哈希列表中,得到所述sn码的哈希地址包括:
3.根据权利要求2所述的方法,其特征在于,在所述将目标节点的sn码插入哈希列表中,得到所述sn码的哈希地址之前,所述方法还包括:
4.根据权利要求3所述的方法,其特征在于,所述sn码承载于所述目标节点的拓展帧,所述目标节点的can通信地址承载于所述拓展帧的拓展id。
5.根据权利要求3或4所述的方法,其特征在于,所述sn码的发出时间基于所述目标节点上电后的第一延迟时间确定,所述第一延迟时间的秒数为第一随机数,所述第一延迟时间的毫秒数为第二随机数,所述第一随机数和所述第二随机数由随机数发生函数生成。
6.根据权利要求2所述的方法,其特征在于,所述方法还包括:
7.根据权利要求3或6所述的方法,其特征在于,所述方法还包括:
8.一种电子设备,其特征在于,所述电子设备基于can通信,所述电子设备包括第一处理单元,用于:
9.一种电子装置,包括存储器、至少一个处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7中任一项所述的方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的方法。
