Answers:
没有
可能,但我不知道需要多少数量,即,如果他们要为数十种设备做到这一点,就可以了。我们总是至少有1000个零件的批次。就像使用软件进行预编程一样,但是您指出应该在哪个位置对唯一ID进行编程。您需要提供起始ID和格式(BCD,二进制,LSD / MSD首先,...)。
请注意,该编号位于常规程序存储器中,如果您擦除要重新编程的部件,该编号将被删除。
编辑
控制器最经常在芯片级上没有这个原因的原因是它很昂贵:编程是通过激光完成的,这是一个额外的生产步骤。批量编程的微控制器可以很容易地使用软件对唯一的ID进行编程,这不需要额外的步骤。
另一种选择是像Maxim DS2411这样的SSN(硅序列号)。这些也是激光编程的,因此也不便宜,但是您避免了额外的物流步骤,因为在这些步骤中总会出问题。我知道会发生。
(另一编辑) Mike建议使用MAC地址芯片作为替代。这些是在具有写保护的设备的一部分中编程的具有唯一ID(MAC地址在全球范围内唯一)的EEPROM。该部分的其余部分可以用作普通EEPROM,例如用于存储设备参数。EEPROM似乎比SSN便宜很多,但具有相同的功能。
另请参阅
分配唯一的每板地址的方法
正如史蒂文所说,PIC在制造时没有内置唯一的序列号。清楚一点,我们所谈论的数字在相同模型的两个芯片之间会有所不同。
大多数PIC的确有编码的芯片ID。PIC程序员可以读取此信息,以确定它所连接的PIC类型。据我所知,只有12位核心PIC没有这样的芯片ID。所有其他PIC都可以通过电方式识别,尽管有许多不同的方式必须将它们置于编程模式,然后才能读取芯片ID。可以识别任意PIC的PIC编程器软件并非易事。
如果您确实要输入序列号,则必须在生产后将其编程到零件中。我们已经做了很多次了。在生产测试过程中,将固件编程到PIC中时,可以将其设置为也获得唯一的序列号和程序。一种简单的方法是从固件工具生成的主HEX文件开始。它包含一个空白的序列号。您编写了一个小程序,该程序根据您的策略是什么,都将获取一个新的序列号,读取主HEX文件,将新的序列号替换为空白序列,然后写出一个临时的HEX文件。临时HEX文件用于对零件进行编程,然后删除。
为了获得更好的鲁棒性,可以将序列号状态存储在生产夹具中的EEPROM中,而不是存储在磁盘文件中。系统会向夹具询问新的号码,并且该夹具的设计绝不会给相同的号码两次。当辅助序列号范围用尽时,它拒绝工作。如果您有一个远程制造商构建单元,这将特别有用。这样,如果他们弄乱了计算机上的某些内容并从备份中还原,它也不会重置序列号范围。是的,这实际上已经发生了。
如果要从外部读取序列号,则大多数PIC拥有的用户ID位置可能是存储它的合适位置。它们与通用程序存储器或EEPROM的不同之处在于,即使芯片受到代码保护,也可以读取它们。
如果您让PIC由Microchip或分销商编程,则通常可以以某种方式对其进行序列化。但是,工厂编程仅适用于成熟的大批量产品。如果您认为将定期升级固件,请不要使用工厂编程。交货期很长,您将无法使用旧版本。无论如何,您的设备在构建之后都必须进行测试,因此添加步骤以对PIC进行编程通常几乎没有额外的负担。
在最终制造期间,使用Microchip唯一标识符或MUI对PIC16(L)F15324 / 44器件分别进行7位编码。不能通过批量擦除命令或任何其他用户可访问的方式擦除MUI。此功能允许在需要此功能的应用程序中对Microchip Technology器件进行制造跟踪。应用程序制造商还可以将其用于许多需要未经验证的唯一标识的功能,例如:
- 跟踪设备
- 唯一的序列号。MUI由九个程序字组成。
编辑