IustitiaeのBlog
首页项目归档照片墙音乐说说笔记关于
封面
📓 笔记/📁 嵌入式/有关嵌入式产品编号烧录的必要性和相关流程

有关嵌入式产品编号烧录的必要性和相关流程

2026-07-07 13:59:01

嵌入式产品的“产品编号”是什么?

嵌入式产品的产品编号通常指一个或多个用于标识设备身份的编号,常见的有:

  • 硬件型号编号(Model Number / Product ID):表示产品型号,如 “SLB-001A”,用于区分不同硬件版本。
  • 序列号(Serial Number):每台设备唯一的标识,如 “SN20260315001”,用于生产追溯、售后、授权控制。
  • 固件版本号:标识当前烧录的软件版本,常与产品编号配合使用。
  • 客户定制的物料码:根据企业编码规则生成的唯一字符串。

这些编号的共同目的是唯一标识设备、便于生产管理、售后服务和软件授权。

通常需要存储到 Flash(或其他非易失存储器)中,但不是写在“代码”里,而是放在 Flash 的特定区域。

✅ 为什么需要存储到 Flash?

  • 设备断电后序列号不丢失。
  • 程序运行时可以读取,用于界面显示、网络上报、授权验证等。
  • 生产时每个设备写入不同的序列号,不能硬编码在固件中。

❌ 为什么不直接写死在代码里?

  • 代码是通用的,同一个固件会烧录到所有设备,不能包含唯一值。
  • 如果硬编码,每个设备都需要编译不同固件,效率极低且易出错。

常见的存储方案

存储位置 适用 场景特点

MCU 内部 Flash 独立区域(如最后几页) 低成本、无外部存储器 需占用部分 Flash,注意擦写寿命和代码分区

外部 EEPROM / Data Flash 需要频繁修改或寿命要求高 可靠性好,读写方便

电子标签(如 RFID、NFC) 需要物理标识和电子读取结合 非接触式,常用于防伪

安全芯片(如 ATECC508A) 需要高安全性、防克隆 序列号不可篡改,支持加密认证

OTP / eFuse(一次性写入区) 永久不变、防篡改 烧录后不可修改,适合唯一 ID




在程序里如何使用?

1. 写入(生产时操作)

通常由生产线工具(烧录工装)完成,流程如下:

  • 通过串口、USB 或 SWD 发送写序列号命令。
  • 程序收到指令后,将序列号写入 Flash 预留区。
  • 写入后添加校验(如 CRC),防止损坏。
  • 最后置标志位表示序列号已写,防止重复写入。

示例 Flash 地址划分:

0x08000000 - 0x0803FFFF : 应用程序代码 (256 KB)
0x08040000 - 0x0805FFFF : 用户数据区 (128 KB,用于存序列号、参数)

2. 读取(运行时调用)

在初始化时从固定地址读出序列号,校验通过后使用。

const char* get_serial_number(void) {
    return (const char*)FLASH_SERIAL_NUMBER_ADDR;
}

3.安全注意事项

  • 序列号写入区应设置读保护,防止被外部直接读出。
  • 重要产品序列号可配合数字签名,防止伪造。
  • 使用 OTP 区域可保证不可更改,但需提前规划。

整体生产流程

  1. 开发阶段
    编写通用固件,代码中预留一个“产品信息区域”(如内部 Flash 的末尾扇区,或外部 EEPROM)。固件启动时会检查该区域是否已有有效编号。
  2. 生产烧录
    将同一个固件烧录到所有设备(通过 SWD、串口 ISP 等方式),此时产品信息区域是空的(全 0xFF 或未初始化)。
  3. 生产写入编号
    设备上电,固件检测到产品信息区域无效(空白),自动进入“等待写入编号”模式。
    产线工人/自动化系统通过串口、USB 或专用测试点向设备发送一条指令,包含唯一的序列号。
    固件收到后,将序列号写入 Flash 数据区,并校验成功,同时设置一个“已写入”标志。
    写入完成后,设备重启或自动进入正常工作模式。
  4. 正常运行
    设备再次上电时,固件从 Flash 数据区读取序列号,用于显示、上报、授权等。

avatar

Iustitiae

在代码、单片机,电机控制模拟间穿梭的普通人。近期正埋头于 freerots学习。

2026年7月

一
二
三
四
五
六
日
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

Recent Records

比较器基础——输出级、输入范围与颤振的解决之道

2026-08-03 12:00:00

MOS管基础——从电压控制的电子开关到电源开关与防反接

2026-08-03 12:00:00

三极管基础——从小电流撬动大电流的放大器到电子开关

2026-07-29 12:00:00