Wie Steven sagte, sind in PICs zur Herstellungszeit keine eindeutigen Seriennummern eingebaut. Lassen Sie uns klarstellen, dass es sich um eine Zahl handelt, die zwischen zwei Chips des identischen Modells variieren würde.
In die meisten PICs ist eine Chip-ID codiert. Dies kann von einem PIC-Programmierer gelesen werden, um den PIC-Typ zu bestimmen, mit dem er verbunden ist. Soweit ich das beurteilen kann, haben nur die 12-Bit-Core-PICs keine solche Chip-ID. Alle anderen PIC können elektrisch identifiziert werden, obwohl es eine ganze Reihe unterschiedlicher Möglichkeiten gibt, sie in den Programmiermodus zu versetzen und dann die Chip-ID auszulesen. PIC-Programmiersoftware, die einen beliebigen PIC identifizieren kann, ist nicht trivial.
Wenn Sie wirklich Seriennummer gemeint haben, muss diese nach der Produktion in das Teil programmiert werden. Das haben wir schon oft gemacht. Während des Produktionstestprozesses, wenn die Firmware in den PIC programmiert ist, richten Sie sie so ein, dass sie auch eine eindeutige Seriennummer erhält und diese ebenfalls programmiert. Eine einfache Möglichkeit besteht darin, mit einer HEX-Masterdatei zu beginnen, die von den Firmware-Tools erstellt wurde. Diese enthält eine leere Seriennummer. Sie schreiben ein kleines Programm, das je nach Strategie eine neue Seriennummer abruft, die HEX-Masterdatei liest, die leere durch die neue Seriennummer ersetzt und eine temporäre HEX-Datei ausgibt. Die temporäre HEX-Datei wird zum Programmieren des Teils verwendet und dann gelöscht.
Für eine bessere Robustheit speichern Sie den Status der Seriennummer im EEPROM in der Produktionsvorrichtung und nicht in einer Datenträgerdatei. Das System fragt die Vorrichtung nach einer neuen Nummer, und diese Vorrichtung ist so ausgelegt, dass sie niemals zweimal dieselbe Nummer ausgibt. Wenn der zugewiesene Seriennummernbereich erschöpft ist, funktioniert er nicht mehr. Dies ist besonders nützlich, wenn Sie einen Remote-Hersteller für Gebäudeeinheiten haben. Auf diese Weise wird auch der Seriennummernbereich nicht zurückgesetzt, wenn etwas auf dem Computer durcheinander gebracht und aus dem Backup wiederhergestellt wird. Ja, das ist tatsächlich passiert.
Wenn die Seriennummer von außen gelesen werden soll, sind die Benutzer-ID-Speicherorte, über die die meisten PICs verfügen, möglicherweise der geeignete Speicherort. Diese unterscheiden sich vom allgemeinen Programmspeicher oder EEPROM dadurch, dass sie auch dann gelesen werden können, wenn der Chip durch Code geschützt ist.
Wenn Sie Ihre PICs vom Microchip oder einem Distributor programmieren lassen, können Sie sie normalerweise auf irgendeine Weise serialisieren lassen. Die werkseitige Programmierung gilt jedoch nur für ausgereifte Produkte mit hohem Volumen. Wenn Sie glauben, dass Sie die Firmware regelmäßig aktualisieren, verwenden Sie keine werkseitige Programmierung. Die Vorlaufzeiten sind lang und Sie werden mit alten Versionen in der Pipeline stecken bleiben. Ihr Gerät muss ohnehin nach dem Bau getestet werden, sodass das Hinzufügen eines Schrittes zum Programmieren des PIC normalerweise nur eine geringe zusätzliche Belastung darstellt.