你好!
每个微控制器上是否有唯一的序列号?
用户手册将我指向 DeviceID 寄存器"SYSCTLDID 0/1 ("每个微控制器由 DID0寄存器中的 CLASS 域和 DID1寄存器中的 PARTNO 域的组合值共同标识")。
但它们都在不同的 TIVGA 上显示相同的内容:-(
此致、
Tobi
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
你好!
每个微控制器上是否有唯一的序列号?
用户手册将我指向 DeviceID 寄存器"SYSCTLDID 0/1 ("每个微控制器由 DID0寄存器中的 CLASS 域和 DID1寄存器中的 PARTNO 域的组合值共同标识")。
但它们都在不同的 TIVGA 上显示相同的内容:-(
此致、
Tobi
[报价用户="user4295749"]每个微控制器上是否有唯一的序列号?
不、没有。
有几种可能的解决方案-多个传感器和通信器件附带 UID、可用于识别您的电路板。 如果您的项目中的任何一个项目都没有、或者您想要为您的所有项目实现"通用"、您可能希望仅为此目的选择 IC。
我们使用来自 Atmel 的低成本 I2C EEPROM、具有唯一的128位序列号 AT24。
此致
布鲁诺
[引用 USER="Bruno Saraiva"]我们使用 Atmel 的低成本 I2C EEPROM,具有唯一的128位序列号 AT24。[/引用]
对于某些项目、如果 EEPROM 不用于其他项目、即使这样也可能"太贵"。
一个常见的替代方法是在已知地址的闪存(代码部分)中嵌入一个 ID、并将其初始化为零。
然后、固件文件(hex、SREC、bin)在编程之前用编号在每个器件的该地址进行修补。
[引用用户="f m"]对于某些项目、即使这种情况也可能"太贵"
当然。 在产品设计中从未有完美的解决方案...
这些 IC 的成本为每件0.20 ~美元-除了上拉电阻外、基本无需在其周围使用其他组件。 我认为、任何"足够重要、值得拥有唯一序列号"的产品都应该能够承担此类额外成本。
如果您的任务是获得某种"内部序列号"、那么您的解决方案是很好的。 不能保证在错过、复位、不正确完成等补丁时电路板唯一可见 但是、如果这是可以接受的、那么我建议更复杂的解决方案-假设产品与外部世界有某种通信-新产品将触发中央服务器 ID 请求、这是一个终身一次的过程、分配 ID。 可能"如果此类数字无效、固件不允许完整产品正常工作"、从而阻止电路板的"副本"以某种方式发送到市场。
实际上、我们的一个电路板使用这两种组合:它具有唯一的硬件 ID、并且在电路板首次运行时有一个"自动注册"过程将此地址存储到我们的服务器-这在以后允许复杂的产品跟踪。 大哥?
[引用 USER="Bruno Saraiva">这些 IC 的成本~ 0.20美元一件-除了上拉电阻外、它周围基本上不需要其他组件。 我认为、任何"足够重要、足以获得唯一序列号"的产品都应该能够承担此类额外成本。[/报价]
最后一句话肯定是正确的。 我已经看到了长达一小时的会议、大约为1美分或2美分、但关于数量超过100、000 p.a.的设备 TM4C 等 Cortex M4通常不用于此类器件。
但还有另一个问题。 在生产过程中、还没有固件、JTAG 或 ROM 引导加载程序也没有通过串行总线使用任意地址写入任意值的例程(如果是 I2C)。
这样、您就可以再次修补 hex 文件、并在首次 MCU 启动时编写 ID。
实际上、我已经在几个场合看到过这种方法的使用、一次 是针对基于 ROM 的 MAC 地址。 此外、检索唯一的 ID/编号通常与数据库事务(获取和标记为已使用)相关联。