打印

请问怎么简单的给设备生成一个唯一的ID

[复制链接]
5343|26
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ckc1119|  楼主 | 2017-11-20 17:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
ckc1119|  楼主 | 2017-11-20 17:34 | 只看该作者
希望有人来给点意见

使用特权

评论回复
板凳
liyikuan| | 2017-11-20 19:48 | 只看该作者
1711201947

使用特权

评论回复
地板
mohanwei| | 2017-11-20 20:16 | 只看该作者
简单,能联网的,自己做一个分配ID服务器;设备第一次上电后,判断Flash里存储ID的区域值非法,自动从电脑下载一个新ID

不能联网的话,用烧录器自动产生一个若干字节长度的递增的ID,存放到Flash末尾即可

使用特权

评论回复
5
雪山飞狐D| | 2017-11-20 20:41 | 只看该作者
   有一些CPU比如STM32里面自带ID寄存器

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
ckc1119 + 1
6
PPDDPPDD1234| | 2017-11-20 20:41 | 只看该作者
这个很简单,第一个00001,第二个00002,就这么简单,别想太复杂了。
当然,实在闲的无聊,用当前时间为种子计算出一个超级复杂的数也可以。

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
ckc1119 + 1
7
computer00| | 2017-11-20 21:19 | 只看该作者
如果ID足够长的话,可以考虑用UUID。

使用特权

评论回复
8
linqing171| | 2017-11-20 21:51 | 只看该作者
使用数据库的自增。
产品流水号+订单流水号+机台分配的流水号区段。
要是找不到一个能单线程控制的地方,只能是按区段分配了。
年月日时分秒毫秒  或者 uuid那种规则用起来不方便。

使用特权

评论回复
9
chunyang| | 2017-11-20 22:12 | 只看该作者
很多固化器都支持写入ID,在程序存储器中定义一个ID地址,固化器会累加写入。

使用特权

评论回复
10
ckc1119|  楼主 | 2017-11-20 22:32 | 只看该作者
mohanwei 发表于 2017-11-20 20:16
简单,能联网的,自己做一个分配ID服务器;设备第一次上电后,判断Flash里存储ID的区域值非法,自动从电脑 ...

恩,最好就是这样,先记下,谢谢

使用特权

评论回复
11
ckc1119|  楼主 | 2017-11-20 22:33 | 只看该作者
雪山飞狐D 发表于 2017-11-20 20:41
有一些CPU比如STM32里面自带ID寄存器

恩,我看看,谢谢

使用特权

评论回复
12
ckc1119|  楼主 | 2017-11-20 22:34 | 只看该作者
PPDDPPDD1234 发表于 2017-11-20 20:41
这个很简单,第一个00001,第二个00002,就这么简单,别想太复杂了。
当然,实在闲的无聊,用当前时间为种 ...

谢谢,是像楼上说的那样,在烧录器里设置,写在flash最后么?

使用特权

评论回复
13
香水橙| | 2017-11-20 22:37 | 只看该作者
用时间最简单,而且肯定不重复,还可以追溯

使用特权

评论回复
14
ckc1119|  楼主 | 2017-11-20 22:38 | 只看该作者
computer00 发表于 2017-11-20 21:19
如果ID足够长的话,可以考虑用UUID。

圈哥,好像很复杂的样子啊。没涉及过

使用特权

评论回复
15
ckc1119|  楼主 | 2017-11-20 23:46 | 只看该作者
香水橙 发表于 2017-11-20 22:37
用时间最简单,而且肯定不重复,还可以追溯

怎么方便保存呢,保存在哪呢

使用特权

评论回复
16
chunyang| | 2017-11-20 23:52 | 只看该作者
ckc1119 发表于 2017-11-20 23:46
怎么方便保存呢,保存在哪呢

如果系统有实时时钟并有可写入的非易失存储器,那么可以在第一次运行时或根据专门的指令读取时钟值并保存为ID。固化器也可能有支持该功能的,但不如支持累加ID的多。

使用特权

评论回复
17
香水橙| | 2017-11-21 08:41 | 只看该作者
ckc1119 发表于 2017-11-20 23:46
怎么方便保存呢,保存在哪呢

只要有RTC,每次需要时直接读取当前时间,生产ID。

使用特权

评论回复
18
freeelectron| | 2017-11-21 09:00 | 只看该作者
MCU的话,直接用唯一ID

使用特权

评论回复
19
xmar| | 2017-11-21 09:10 | 只看该作者
本帖最后由 xmar 于 2017-11-21 09:12 编辑

比如依次输入00001 ~ 99999序号,然后加密出一个伪随机数做唯一ID。(唯一ID解密就得到序号。)

使用特权

评论回复
20
PPDDPPDD1234| | 2017-11-21 12:36 | 只看该作者
ckc1119 发表于 2017-11-20 22:34
谢谢,是像楼上说的那样,在烧录器里设置,写在flash最后么?

写哪里随便。
大家一般习惯于写尾部。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

78

帖子

1

粉丝