通常是否可以唯一地识别单个MCU(用于许可目的)(没有可用的MAC地址)

时间:2013-03-11 17:05:10

标签: embedded 68hc12

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

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

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

我的问题是:MCU通常是否具有与之相关的唯一标识符 - 类似于MAC地址 - 可以通过软件获取,因为固件被刻录到这些设备中?

3 个答案:

答案 0 :(得分:5)

有些人这样做,有些则没有,但并非适用于所有制造商的所有设备。

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

答案 1 :(得分:2)

并不是很多,因为对于制造商来说这是一件很痛苦的事情 - 虽然正如评论中指出的那样,它在基于Cortex的新部件中越来越受欢迎 - 痛苦必须值得!

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

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

答案 2 :(得分:2)

HCS12没有内置的此类功能。但是请注意,它有一个寄存器PARTID用于“哪个S12导出我,其中硅掩模?”

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