节省外设资源的唯一数字ID生成方法、系统、介质和设备技术方案

技术编号:39330370 阅读:5 留言:0更新日期:2023-11-12 16:06
本发明专利技术涉及压电驱动器通信技术领域,公开一种节省外设资源的唯一数字ID生成方法、系统、介质和设备,包括:获取驱动器程序并对程序进行编译,以更新程序的编译时间;提取所述编译时间中的时刻信息,根据所述时刻信息计算具有唯一性的编码数据;将所述编码数据作为随机数种子生成随机数,根据随机数交换所述编码数据中各位置上的数字使得编码数据中每个位置的数字出现概率相同,得到具有随机性和唯一性的编码数据并作为设备ID。本发明专利技术可以在保证生成的数字ID的唯一性的同时不占用MCU的外设资源。源。源。

【技术实现步骤摘要】
节省外设资源的唯一数字ID生成方法、系统、介质和设备


[0001]本专利技术涉及压电驱动器通信
,尤其是指一种节省外设资源的唯一数字ID生成方法、系统、介质和设备。

技术介绍

[0002]压电驱动器是通过使用压电材料的逆压电效应(包括横向效应和纵向效应)将电能转变为机械能或机械运动的器件。压电材料是受到压力作用时会在两端面间出现电压的晶体材料,常见的有压电陶瓷、聚合物双晶片等。在压电驱动器的实际应用中,一般都需要多个压电驱动器同时工作,此时的控制计算机需要同时与多个压电驱动器进行通信,需要每一个压电驱动器都具有一个具有唯一性的设备ID,例如数字ID;同时,为了方便进行区分,ID还要具有随机性。
[0003]现有技术中,数字ID的生成方法主要包括在主控微控制单元(Microcontroller Unit,MCU)的外部生成和在MCU内部自动生成两种。外部生成数字ID的方法相对简单,但是在生成后需要手动将每一个ID输入到主控MCU中,不仅降低了效率,而且存在误操作的风险。因此,由主控MCU内部生成数字ID的方法更适合应用于量产的工业应用中。在由主控MCU内部生成数字ID时,不同的压电驱动器对MCU有不同的要求,相对应地需要使用的MCU也不相同。但是,如果生成数字ID的方法占用了MCU的外设资源,就会导致无法适用所有MCU。
[0004]现有技术中,在MCU内部生成数字ID时需要在MCU内部产生随机数,对于没有硬件随机数发生器的MCU,在MCU内部产生随机数的方法一般有以下几种:第一种,使用MCU内部ADC模块读取的噪声值作为随机数;第二种,使用MCU的定时器模块,获取某一时刻程序的运行时间作为随机数;第三种,使用MCU的GPIO口读取用户交互信号产生的时间作为随机数,如按键按下;第四种,使用外部随机数发生器。但是,这些随机数的产生方法无法保证获取随机数具有绝对唯一性,比如通过ADC模块读取的噪声值,当读取大量的噪声值时,一定会有重复的噪声值出现;同时,这些方法还都需要额外占用MCU的外设资源,通用性不强。

技术实现思路

[0005]为此,本专利技术所要解决的技术问题在于克服现有技术中的不足,提供一种节省外设资源的唯一数字ID生成方法、系统、介质和设备,可以在保证生成的数字ID的唯一性的同时不占用MCU的外设资源。
[0006]为解决上述技术问题,本专利技术提供了一种节省外设资源的唯一数字ID生成方法,包括:
[0007]获取驱动器程序并对程序进行编译,以更新程序的编译时间;
[0008]提取所述编译时间中的时刻信息,根据所述时刻信息计算具有唯一性的编码数据;
[0009]将所述编码数据作为随机数种子生成随机数,根据随机数交换所述编码数据中各位置上的数字使得编码数据中每个位置的数字出现概率相同,得到具有随机性和唯一性的
编码数据并作为设备ID。
[0010]在本专利技术的一个实施例中,所述提取编译时间中的时刻信息,根据时刻信息计算具有唯一性的编码数据,具体为:
[0011]提取编译时间中的年、月、日、小时、分钟、秒,组合年、月、日、小时、分钟、秒得到与时间对应的具有唯一性的编码数据。
[0012]在本专利技术的一个实施例中,所述具有唯一性的编码数据的计算方法为:
[0013]ulDate=(YEAR%100)*60*60*24*31*12+MONTH*60*60*24*31+DAY*60*60*24+HOUR*60*60+MINUTE*60+SECOND,
[0014]其中,ulDate表示所述具有唯一性的编码数据,YEAR表示年份,MONTH表示月,DAY表示日,HOUR表示小时,MINUTE表示分钟,SECOND表示秒。
[0015]在本专利技术的一个实施例中,将所述编码数据作为随机数种子生成随机数,根据随机数交换所述编码数据中各位置上的数字,具体为:
[0016]以数组的形式顺序存放所述编码数据中的每个数字,将所述编码数据作为随机数种子生成一个取值范围为[0,N

1]的随机数X1,N表示数组的长度,将数组中下标为N

1的元素和下标为随机数X1的元素交换位置;
[0017]重新将所述编码数据作为随机数种子生成一个取值范围为[0,N

2]的随机数X2,将数组中下标为N

2的元素和下标为随机数X2的元素交换位置;
[0018]重复操作直到数组中的所有元素都交换完,得到具有随机性和唯一性的编码数据。
[0019]在本专利技术的一个实施例中,所述对程序进行编译,以更新程序的编译时间时,使用的宏定义为__DATE__和__TIME__。
[0020]本专利技术还提供了一种节省外设资源的唯一数字ID生成系统,包括:
[0021]编译模块,用于获取驱动器程序并对程序进行编译,以更新程序的编译时间;
[0022]编码数据生成模块,用于提取所述编译时间中的时刻信息,根据所述时刻信息计算具有唯一性的编码数据;
[0023]随机编码模块,用于将所述编码数据作为随机数种子生成随机数,根据随机数交换所述编码数据中各位置上的数字使得编码数据中每个位置的数字出现概率相同,得到具有随机性和唯一性的编码数据并作为设备ID。
[0024]在本专利技术的一个实施例中,所述编译模块为微控制单元。
[0025]本专利技术还提供了一种设备ID管理方法,包括:
[0026]使用如权利要求1

5任一项所述的节省外设资源的唯一数字ID生成方法生成设备ID,将设备ID存入Flash中;
[0027]当需要获取设备ID时,检查Flash中是否已经存有设备ID,如果已经存有,则直接读取Flash中的设备ID;如果Flash中未存有设备ID,则重新使用如权利要求1

5任一项所述的节省外设资源的唯一数字ID生成方法生成设备ID,并存入Flash中;
[0028]当需要修改设备ID时,通过外部输入新的设备ID,覆盖原Flash中存有的设备ID。
[0029]本专利技术还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现所述的节省外设资源的唯一数字ID生成方法。
[0030]本专利技术还提供了一种节省外设资源的唯一数字ID生成设备,包括存储器、处理器
和存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述的节省外设资源的唯一数字ID生成方法。
[0031]本专利技术的上述技术方案相比现有技术具有以下优点:
[0032]本专利技术通过编译时间生成具有唯一性的编码数据,并在此基础上通过随机交换增加编码数据的随机性,使得最终得到的设备ID兼具随机性和绝对的唯一性;本专利技术可以在MCU内部运行,生成过程不需要占用MCU的任何外设资源,通用性强。
附图说明
[0033]为了使本专利技术的内容更容易被清楚的理解,下面根据本发本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种节省外设资源的唯一数字ID生成方法,其特征在于,包括:获取驱动器程序并对程序进行编译,以更新程序的编译时间;提取所述编译时间中的时刻信息,根据所述时刻信息计算具有唯一性的编码数据;将所述编码数据作为随机数种子生成随机数,根据随机数交换所述编码数据中各位置上的数字使得编码数据中每个位置的数字出现概率相同,得到具有随机性和唯一性的编码数据并作为设备ID。2.根据权利要求1所述的节省外设资源的唯一数字ID生成方法,其特征在于:所述提取编译时间中的时刻信息,根据时刻信息计算具有唯一性的编码数据,具体为:提取编译时间中的年、月、日、小时、分钟、秒,组合年、月、日、小时、分钟、秒得到与时间对应的具有唯一性的编码数据。3.根据权利要求2所述的节省外设资源的唯一数字ID生成方法,其特征在于:所述具有唯一性的编码数据的计算方法为:ulDate=(YEAR%100)*60*60*24*31*12+MONTH*60*60*24*31+DAY*60*60*24+HOUR*60*60+MINUTE*60+SECOND,其中,ulDate表示所述具有唯一性的编码数据,YEAR表示年份,MONTH表示月,DAY表示日,HOUR表示小时,MINUTE表示分钟,SECOND表示秒。4.根据权利要求1所述的节省外设资源的唯一数字ID生成方法,其特征在于:将所述编码数据作为随机数种子生成随机数,根据随机数交换所述编码数据中各位置上的数字,具体为:以数组的形式顺序存放所述编码数据中的每个数字,将所述编码数据作为随机数种子生成一个取值范围为[0,N

1]的随机数X1,N表示数组的长度,将数组中下标为N

1的元素和下标为随机数X1的元素交换位置;重新将所述编码数据作为随机数种子生成一个取值范围为[0,N

2]的随机数X2,将数组中下标为N

2的元素和下标为随机数X2的元素交换位置;重复操作直到数组中的所有元素都交...

【专利技术属性】
技术研发人员:孙浩王纯配张雷英陈科纶
申请(专利权)人:纳特斯苏州科技有限公司
类型:发明
国别省市:

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

1