Gibt es in der Großserienfertigung Systeme, die es ermöglichen, eine eindeutige Seriennummer in die Firmware zu programmieren, oder einen freien Speicherplatz für jede durchkommende Leiterplatte?
Ich habe festgestellt, dass die FDA beschlossen hat, mit der Durchsetzung für medizinische Geräte zu beginnen, aber ist dies leicht zu bewerkstelligen, oder würde es die Entwicklung eines eigenen Herstellungsprozesses erfordern?
serialization
ist eine Möglichkeit, erfordert jedoch äußerste Sorgfalt, insbesondere wenn der Wertebereich eine Wortgrenze überschreitet. Wenn Sie die Programmierung auslagern, wird es noch kniffliger - wenn ein bekannter Anbieter dies nicht nur einmal, sondern zweimal hintereinander falsch gemacht hat, bevor er schließlich zugab, dass sein Programmierer für das betreffende Teil nicht über mehrere Bytes serialisieren konnte. Am Ende schickten sie ihnen eine eindeutige Datei für jeden Wert des höherwertigen Bytes, für die sie jeweils einen eindeutigen 256-teiligen Programmierjob ausführten, der das niedrigere serialisierte. Für das nächste Design haben wir einen benutzerdefinierten Programmierer gebaut.Sie fragen vielleicht nach einer reinen Softwarelösung, aber wenn Sie in der Lage sind, Ihrem Board einen billigen IC hinzuzufügen, können Sie einen „Silicon Serial Number“-Chip verwenden.
Dies sind winzige ROM-Chips, die jedes Gerät eine eindeutige Binärzahl enthält. Beispiele sind DS2401 (1-Draht-Bus) und DS28CM00 (I2C) von Maxim, die eine eindeutige 48-Bit-Nummer haben.
Die Nummer ist einzigartig unter allen ICs, die von diesem Hersteller mit dieser Teilenummer hergestellt werden. Es ist offensichtlich nicht einzigartig unter all den SSN-Chips, die von allen auf der Welt hergestellt werden. Aber sie machen es sehr einfach, ein Gerät für Ihr Board auszuwählen und zu wissen, dass jedes Board, das jemals hergestellt wurde, eine andere und eindeutige Nummer davon lesen wird.
Ja, sicher, wie erwähnt sind Mac-Adressen offensichtlich, normalerweise in einem Flash/EEPROM neben dem Mac, wenn es sich um einen separaten Teil handelt, oder in einem Flash/EEPROM an anderer Stelle. Wichtige Produktdaten (Seriennummer der Platine usw.) können in einem separaten EEPROM oder Flash oder in demselben Gerät gespeichert werden, das zum Speichern anderer Firmware verwendet wird.
Wenn Sie beispielsweise eine Situation haben, in der Feld-Upgrades der Firmware möglich sind, die Teil des Systemdesigns sind, möchten Sie nicht, dass die VPD-Daten gelöscht werden, wenn der Firmware-Flash gelöscht und neu programmiert wird, also müssen Sie dies lösen, indem Sie entweder Schreibschutzfunktionen verwenden des Flash-Geräts (das VPD in seine On-Bank/Bereich legen und diesen Bereich sperren) und nicht unbedingt öffentlich veröffentlichen/dokumentieren, wie man den Schreibschutz-Pin und/oder eine andere Lösung freigibt, so dass man das VPD in mfg und programmieren kann dann halten Sie es andernfalls gesperrt (ein Herunter-/Heraufziehen nach Bedarf, dann, wenn es während/um ICT herum programmiert ist, kann dieses Gerät es in die andere Richtung ziehen).
Es ist wahrscheinlich häufiger als Sie denken, Mediziner sind nur eine sehr sehr kleine Untergruppe von Leuten, die dies tun würden. Vielleicht keine Fernsehfernbedienung, aber wahrscheinlich eine Maus oder Tastatur und sicherlich ein Handy usw.
Wenn/wenn ein Aufkleber auch auf der Platine verwendet wird, kann es sein, dass er einen Barcode hat, sodass die Vorrichtung oder der Bediener während der Herstellung den Barcode, die Montagedrehzahl usw. scannen und dem VPD für diese Platine hinzufügen kann.
Eindeutige Codes für jedes Produkt zu haben, ist gut möglich und machbar. Eine Möglichkeit, dies zu tun, wäre ein Software-Programmiersystem, das die Firmware-Identifikationsnummer für jedes programmierte Gerät sequentiell ändert. Bei manchen Systemen ist dies einfach; Einige Mikrocontroller haben beispielsweise einen reservierten EEPROM-Speicherort speziell zum Speichern einer ID.
Eine andere Alternative wäre das Hinzufügen einer eindeutigen Hardware-ID. Ein Beispiel hierfür ist eine integrierte Silizium-Seriennummer-Schaltung von Dallas Semi (jetzt Maxim Integrated) ( DS2401 ). Dieses Gerät gibt Ihnen eine Seriennummer und Sie haben die Garantie, dass es einzigartig ist. Aus dieser Seriennummer kann auf eine eindeutige Adresse für ein bestimmtes Produkt geschlossen werden.
Massenproduzierte Netzwerkkarten haben ihre Seriennummern in Form von Hardware (MAC)-Adressen, die während der Herstellung in ihren Flash/EEPROM programmiert werden.
Während Seriennummern, die als Aufkleber auf dem Produktgehäuse angebracht sind, entfernt oder erneut angebracht werden können, bietet das Einbrennen von Seriennummern in die spezifische Platine eine weitere Möglichkeit, die Verwendung der Platine zu verfolgen; Höchstwahrscheinlich wird diese Seriennummer auch auf die medizinische Dokumentation gedruckt, um nachzuvollziehen, welches Gerät genau für die medizinische Diagnose oder Operation verwendet wurde.
...ist dies einfach zu bewerkstelligen oder müsste dafür ein eigener Fertigungsprozess entwickelt werden?
Vor etwa 10 Jahren war ich in einer ähnlichen Situation mit einer Medizingeräte-Firmware, die ich für einen meiner Kunden entwickelt habe. Dies war ein Gerät der Klasse 2, das die Messlatte höher gelegt hat. Die Produktionsmengen gingen in die Hunderte.
Wir konnten keinen handelsüblichen Programmierer finden, der Seriennummern automatisch oder halbautomatisch schreiben könnte. Wir haben eine Problemumgehung durchgeführt. Wir hatten eine Werksfirmware, die zum Kalibrieren und Testen verwendet wurde. Diese Werksfirmware kommunizierte mit dem Rest der Testausrüstung über eine serielle Schnittstelle. Als Teil dieses Tests würden wir die Seriennummer herunterladen, die im EEPROM des Mikrocontrollers gespeichert war. (Die Werks-Firmware wurde durch die Feld-Firmware überschrieben.)
SEGGER Produktionsprogrammierer unterstützen das Flashen eindeutiger Seriennummern in MCUs.
Wenn Sie viele Optionen dafür haben (einige aus dieser Antwort entnommen ):
Wenn Sie Zugriff auf einen guten Hardware-RNG und 16 Bytes zusätzlichen persistenten Speicher haben, besteht eine Möglichkeit, die Ihren Produktionsprozess nicht zu sehr ändert, darin, beim ersten Start eine v4-GUID zu generieren und zu speichern. Sie können die Firmware während der von Ihnen durchgeführten Nachprogrammierungstests auf seriell ausgeben lassen. Es ist nicht sequentiell, aber das spielt für die meisten Anwendungen keine Rolle.
Wenn die Verwendung eines RFID- oder Smart-Tags auf jeder Leiterplatte die Anforderung erfüllt, ist dies die einfachste Methode der Implementierung - unter Ihrer Kontrolle.
Dmitri Grigorjew
Jeroen3