1

我被要求增强 MCU 的固件安装程序(特别是飞思卡尔 MC9S12E64 - 虽然我不知道这是否重要)。

增强安装的目的是限制固件可以安装的次数。似乎最好的方法是在固件安装期间唯一标识正在使用的特定 MCU,以便在中央数据库中进行跟踪。

如果 MCU 有 MAC 地址,这似乎是可行的。不幸的是,这些 MCU 没有网络接口,因此没有 MAC 地址。翻阅上述 MCU 的手册,我找不到 MCU 唯一标识符的指示。

我的问题是:MCU 通常是否具有与它们相关联的唯一标识符 - 类似于 MAC 地址 - 当固件被烧入这些设备时,可以通过软件获得?

4

3 回答 3

5

有些会,有些不会,并非所有制造商的所有设备都可以这样做。

一种解决方案是将您自己的唯一标识符编程到制造时可用的任何非易失性存储中。另一种方法是包含一个设备,例如Ramtron 的 F-RAM 串行存储器,它提供唯一的序列号以及非易失性存储器。许多(可能更便宜)串行 EEPROM 设备也包括唯一 ID 或 MAC(示例

于 2013-03-11T17:35:20.507 回答
2

没有多少人这样做,因为制造商这样做很痛苦——尽管正如评论中所指出的,它在基于 Cortex 的较新部件中变得越来越流行——这种痛苦一定是值得的!

您可以添加一个外部设备,例如 Dallas/Maxim Onewire 序列号芯片。当然,没有什么可以阻止您的用户修改板子以使他们都报告相同的 ID,以便他们可以多次安装它......

或者在制造设备时将您自己的 ID 编程到闪存中,并锁定设备,使其无法(轻松)通过调试界面进行更改。

于 2013-03-12T10:35:12.787 回答
2

HCS12 没有内置这样的功能。但是请注意,它有一个寄存器 PARTID,用于“我是哪个 S12 衍生物,哪个硅掩模?”

您需要做的是编写您自己的闪存编程算法来跟踪内部写入次数,但在这种情况下您必须修改程序。不幸的是,您使用的是 E64,它不仅缺少合适的片上 EEPROM,而且只有 1 个闪存库。这意味着写下这个“内部序列号”的代码必须从 RAM 中执行。飞思卡尔网站上有一个应用说明。

于 2013-03-12T15:53:25.253 回答