金南京 发表于 2024-3-27 13:02:22

各位大神请教:芯片的ID号读取最简单的方法

各位大神请教:
            姚总的ID号加密很好,但是量产时要读每个芯片的ID号,
那么芯片的ID号读取最简单的方法是什么样的,我的做法是先下个
程序在烧录完后会有个号,我就把它当成全球唯一ID号,然后输入
到项目发布文件中,再从新烧录;这样我觉得很麻烦,肯定有更优
的方法,请大神赐教!{:4_196:}{:4_201:}


                                 单片机界的:空(白)懒得(付)出(没)脑子

神农鼎 发表于 2024-3-31 17:18:16

社区闲人 发表于 2024-3-27 13:33
我也是采用这个方法,没觉得有多麻烦。
你这是没有量的做法,
下面是全自动的只烧录一次程序,
脱机工具也支持










ID号加密是根据用户所设定的算法对ID号的7个字节进行分别运算,每种加密算法最多可以进行4次
不同的运算,运算符不分优先级,从前到后依次进行4次运算,对于同一个加密算法,ID号的7个字节是
分别使用此算法进行运算,运算完成后会得到加密后的7个字节,在下载用户代码时,加密后的7个字节
会自动写入到用户所指定的FLASH中
例如:
当前芯片内部的ID号为 : 01H 02H 03H 04H 05H 06H 07H
选择的加密算法为         : <<1, +2, *3, ^4
设定的存储地址为         : 0x1000
经加密运算后的ID号为:08H 16H 1CH 1AH 20H 2EH 34H
下载程序过程中,加密的ID号会被写入到FLASH的0x1000~0x1006地址中
08H写入到0x1000, 16H写入到0x1001, 1CH写入到0x1002, 1AH写入到0x1003, 20H写入到0x1004,
2EH写入到0x1005, 34H写入到0x1006

目前版本提供两种加密方式,可将ID号使用两种不同的方式加密后写入到不同的地址中每种加密方式
中可进行4步运算,每一步运算可选择下面的7种运算方法:
+ : 加法运算- : 减法运算* : 乘法运算/ : 除法运算
<<: 左移运算>>: 右移运算^ : 异或运算

对于运算操作数,只接受10进制数的输入,有效的数据为0~255,超出范围的数,高位会被自动舍弃.
例如输入257(102H),则实际参加运算的术为2(02H)
所有的运算都是基于单字节的,高低字节之间不会产生进位和借位,即低字节运算后如果产生进位
或借位将直接舍弃,而不参与高字节的运算

例如:
如果ID号为       : 01 02 03 04 ff fe fd
加密方式为       : "+255, +0, +0, +0"
则加密后的数据为 : 00 01 02 03 fe fd fc

注意事项:
若是将ID号加密和程序加密后传输这两种功能结合起来同时使用时,则必须在原代码加密前,将需
要写入加密ID号的地址空间预留为FF,然后在对程序文件进行加密(若下载时需要将HEX空白区域
填充为00时,也需要执行此操作将区域保留)
例如:
    我现在需要将ID号加密后写入到程序空间1000H开始的地址,那么我必须在我的源代码中,
    将1000H~1006H这7个字节保留,并定义为FFH(不能为00H)


传统加密的笑话, STC对加密的延申发展,放心的【远程升级】,视频讲解 - 程序加密后传输/发布项目程序/USB-ISP下载/远程升级/ID号加密 - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)





社区闲人 发表于 2024-3-27 13:33:44

我也是采用这个方法,没觉得有多麻烦。

21cnsound 发表于 2024-3-27 14:52:23

先下个程序在烧录完后会有个号--------STC-ISP“检测”应该也可以得到这个ID号吧?

soma 发表于 2024-3-27 15:25:39

视频里面不是有讲吗

金南京 发表于 2024-3-27 15:48:20

谢谢各位!

金南京 发表于 2024-3-27 15:48:58

我也是想讨个巧

国学芯用 发表于 2024-3-27 16:01:32

从chipid读出来,程序里调用就行了

_奶咖君_ 发表于 2024-3-27 16:12:35

21cnsound 发表于 2024-3-27 14:52
先下个程序在烧录完后会有个号--------STC-ISP“检测”应该也可以得到这个ID号吧? ...

刚才试了一下 只是 检测MCU选项 不会出现这个 芯片出厂序列号,,

_奶咖君_ 发表于 2024-3-27 17:37:33

21cnsound 发表于 2024-3-27 14:52
先下个程序在烧录完后会有个号--------STC-ISP“检测”应该也可以得到这个ID号吧? ...

嗯嗯 说的没错,,感觉可以提提建议了{:4_165:}

社区闲人 发表于 2024-3-27 18:09:55

楼上的提议很糟糕,这样别人也可以轻易获得ID值。
页: [1] 2 3
查看完整版本: 各位大神请教:芯片的ID号读取最简单的方法