Gibt es Systeme in Großserienfertigung, mit denen eine eindeutige Seriennummer in die Firmware oder ein freier Speicherplatz für jede durchgehende Leiterplatte programmiert werden kann?
Ich habe festgestellt, dass die FDA beschlossen hat, es für Medizinprodukte durchzusetzen. Ist dies jedoch einfach zu bewerkstelligen oder muss ein eigener Herstellungsprozess entwickelt werden?
Antworten:
Die meisten Produktionsprogrammierer sind in der Lage, eine eindeutige Seriennummer in den programmierten Speicher einzufügen, ein Vorgang, der normalerweise als Serialisierung bezeichnet wird . Dies ist ein Ausschnitt des Serialisierungsbildschirms eines alten Dataman-Programmiergeräts.
quelle
serialization
Dies 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. Hatte ein bekannter Anbieter dies nicht nur einmal, sondern zweimal hintereinander falsch verstanden, bevor er schließlich zugab, dass sein Programmierer für das betreffende Teil nicht über mehrere Bytes serialisieren konnte. Es endete damit, ihnen eine eindeutige Datei für jeden Wert des höherwertigen Bytes zu senden, für die sie jeweils einen eindeutigen 256-teiligen Programmierauftrag ausführten, der die niedrigere serialisierte. Für das nächste Design haben wir einen kundenspezifischen Programmierer gebaut.Möglicherweise fragen Sie nach einer reinen Softwarelösung, aber wenn Sie in der Lage sind, Ihrem Board einen billigen IC hinzuzufügen, können Sie einen Chip mit der Silicon-Seriennummer verwenden.
Dies sind winzige ROM-Chips, bei denen jedes Gerät eine eindeutige Binärzahl enthält. Beispiele sind der DS2401 (1-Draht-Bus) und der DS28CM00 (I2C) von Maxim, die eine eindeutige 48-Bit-Nummer haben.
Die Nummer ist einzigartig unter allen ICs, die von diesem Hersteller aus dieser Teilenummer hergestellt wurden. Es ist offensichtlich nicht einzigartig unter allen SSN-Chips, die von jedem auf der Welt hergestellt werden. Aber sie machen es sehr einfach, ein Gerät für Ihr Board auszuwählen und wissen, dass jedes Board, das jemals hergestellt wurde, eine andere und eindeutige Nummer davon liest.
quelle
ja sicher, wie erwähnt sind mac adressen offensichtlich, normalerweise in einem flash / eeprom neben dem mac, wenn es sich um ein separates teil handelt, oder in einem flash / eeprom an einer anderen stelle. Wichtige Produktdaten (Seriennummer der Karte usw.) können in einem separaten EEPROM oder Flash oder auf demselben Gerät gespeichert werden, auf dem auch andere Firmware gespeichert ist.
In Situationen, in denen beispielsweise vor Ort 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. Sie müssen dies also entweder mit Schreibschutzfunktionen beheben des Flash-Geräts (Setzen der VPD in die Bank / den Bereich und Sperren dieses Bereichs) und nicht notwendigerweise Veröffentlichen / Dokumentieren des Freigebens des Schreibschutzstifts und / oder einer anderen Lösung, sodass Sie die VPD in mfg und programmieren können Lassen Sie es dann ansonsten verriegelt (ein Ziehen nach unten / oben nach Bedarf, dann wenn während / um ICT programmiert, kann dieses Gerät es in die andere Richtung ziehen).
Es ist wahrscheinlich häufiger als Sie denken, dass Medizin nur eine sehr sehr kleine Gruppe von Leuten ist, die dies tun würden. Vielleicht keine Fernsehfernbedienung, aber wahrscheinlich eine Maus oder Tastatur und sicherlich ein Handy usw.
Wenn ein Aufkleber auch auf der Platine verwendet wird, weist diese möglicherweise einen Barcode auf, sodass das Gerät oder der Bediener während der Herstellung den Barcode, die Baugruppendrehzahl usw. scannen und dem VPD für diese Platine hinzufügen kann.
quelle
Es ist gut möglich und machbar, eindeutige Codes für jedes Produkt zu haben. Eine Möglichkeit wäre, ein Software-Programmiersystem zu haben, das die Firmware-Identifikationsnummer für jedes programmierte Gerät nacheinander ändert. Bei einigen Systemen ist dies einfach zu bewerkstelligen. Einige Mikrocontroller verfügen beispielsweise über einen reservierten EEPROM-Speicherort 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 für Dallas Semi (jetzt Maxim Integrated) ( DS2401 ). Dieses Gerät gibt Ihnen eine Seriennummer und Sie werden garantiert, dass es einzigartig sein wird. Diese Seriennummer kann verwendet werden, um eine eindeutige Adresse für ein bestimmtes Produkt abzuleiten.
quelle
Serienmäßig hergestellte Netzwerkkarten haben ihre Seriennummern in Form einer Hardware-Adresse (MAC-Adresse), die während der Herstellung in ihr Flash / EEPROM programmiert wird.
Während Seriennummern, die als Aufkleber auf dem Produktgehäuse angebracht sind, entfernt oder erneut angebracht werden können, bietet das Einbrennen der Seriennummer 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 zu verfolgen, welches Gerät genau für die medizinische Diagnose oder Operation verwendet wurde.
quelle
Vor ungefähr 10 Jahren befand ich mich mit einer Medizinproduktefirmware, die ich für einen meiner Kunden entwickelt hatte, in einer ähnlichen Situation. Dies war ein Gerät der Klasse 2, das die Messlatte höher legte. Die Produktionsmengen lagen bei Hunderten.
Wir konnten keinen Standardprogrammierer finden, der Seriennummern automatisch oder halbautomatisch schreiben konnte. Wir haben eine Problemumgehung durchgeführt. Wir hatten eine werkseitige Firmware, die zum Kalibrieren und Testen verwendet wurde. Diese werkseitige Firmware kommunizierte mit dem Rest der Testausrüstung über eine serielle Schnittstelle. Im Rahmen dieses Tests würden wir die Seriennummer herunterladen, die im EEPROM des Mikrocontrollers gespeichert war. (Die werkseitige Firmware wurde von der Feldfirmware überschrieben.)
quelle
SEGGER-Produktionsprogrammierer unterstützen das Flashen eindeutiger Seriennummern in MCUs.
quelle
Wenn Sie dafür viele Optionen haben (einige sind aus dieser Antwort hervorgegangen) ):
quelle
Wenn Sie Zugriff auf ein gutes Hardware-RNG und 16 Byte zusätzlichen permanenten Speicher haben, müssen Sie beim ersten Start eine v4-GUID generieren und speichern. Sie können die Firmware während der von Ihnen ausgeführten Nachprogrammierungstests auf seriell sichern. Es ist nicht sequentiell, aber das spielt für die meisten Anwendungen keine Rolle.
quelle
Wenn die Verwendung eines RFID- oder Smart-Tags auf jeder Leiterplatte den Anforderungen entspricht, ist dies die einfachste Methode zur Implementierung - unter Ihrer Kontrolle.
quelle