这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » STM32F的全球唯一ID的应用

共7条 1/1 1 跳转至

STM32F的全球唯一ID的应用

院士
2013-09-23 21:09:34     打赏

STM32F系列的MCU提供了号称全球唯一ID的96位序列号。大家都用这个序列号做了哪些应用呢?


从官方文档RM0008文档里我们看到其主要应用于以下几个方面:

1、用来作为序列号(终端应用或出厂标识记录);
2、用来作为密码,在编写闪存时,将此唯一标识与软件加解密算法结合使用,提高代码在闪存存储器内的安全性;
3、用来激活带安全机制的自举过程;



这里也提供一个简单的读取例程,供大家参考:

static Int32U CpuID[3];


void GetCpuID(void)
{

CpuID[0]=*(Int32U*)(0x1ffff7e8);
CpuID[1]=*(Int32U*)(0x1ffff7ec);
CpuID[2]=*(Int32U*)(0x1ffff7f0);

}

希望大家勇跃回帖啊~~


根据沙发 jackwang 提供的信息,在论坛下载频道 http://share.eepw.com.cn/share/download/id/61614 提供了MCU-ISP工具软件的下载。感谢 四弦 童鞋上传。




关键词: STM32F     唯一     UniqueID          示例    

院士
2013-09-23 21:20:30     打赏
2楼

奉献一个:

利用STM32F唯一96bit序列号实现反拷贝加密的源代码公开

 

//---------------------------------------------------------------------------
#include <windows.h>
#pragma argsused
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fwdreason, LPVOID lpvReserved)
{
return 1;
}
//---------------------------------------------------------------------------
//本示例代码用BCB5编写,很容易移植到VC++等编译环境
//导出函数mcuisp_AntiCopy,mcuisp.exe将调用mcuisp_AntiCopy函数来实现反拷贝功能
extern "C" __declspec(dllexport) int __stdcall mcuisp_AntiCopy(
unsigned char *buf, //FLASH内容存储缓冲
DWORD buflen, //FLASH代码长度(字节)
DWORD startaddress, //FLASH的地址偏移,STM32F一般为0x08000000
unsigned char const *inbuf, //前12字节为96bit的芯片序列号
DWORD inputbuflen //序列号信息的长度
);
//--
int __stdcall mcuisp_AntiCopy(
unsigned char *buf, //FLASH内容存储缓冲
DWORD buflen, //FLASH代码长度(字节)
DWORD startaddress, //FLASH的地址偏移,STM32F一般为0x08000000
unsigned char const *inbuf, //前12字节为96bit的芯片序列号
DWORD inputbuflen //序列号信息的长度
)
{
//mcuisp_AntiCopy根据FLASH内容和芯片序列号,经过运算后,修改FLASH内容
//本例中,简单的把序列号拷贝到0x08010000的位置
//可以在STM32的代码中比对0x08010000和0x1ffff7e8的内容,相符才正常运行
//实际应用中,可以采取比较复杂的算法
memcpy(buf+0x10000,inbuf,12);
return 0;
};

上述DLL与mcuisp配合,即可实现STM32F AntiCopy功能。
由于算法由用户自己把握,自由发挥,可最大限度保护用户的代码。


院士
2013-09-23 21:21:44     打赏
3楼
还不是有个ISP的软件在读器件信息时可以识别出IC型号?

院士
2013-09-23 21:28:10     打赏
4楼
平时下载STM32的程序都使用ST官方的下载器,原来MCUISP软件还提供了开放的API可以供调用。迅速转战MCUISP。

院士
2013-09-23 22:49:18     打赏
5楼

刚刚查了一下其它型号的全球唯一地址所在的flash地址

其中stm32L系列的与上面提到不同,分别为:

0x1FF80050,0x1FF80054与0x1FF80064 




高工
2013-09-23 23:04:49     打赏
6楼

如果多个设备都采用这个U,并采用北向接口至统一管理系统,就可以进行设备管理了。

无论是在线更新还是远程数据采集,很有玩头。


高工
2013-09-23 23:13:01     打赏
7楼
有点迷糊,再看一遍。

共7条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]