DE102010016257A1 - Method for updating firmware of field programmable gate array utilized in e.g. programmable logical circuit for controlling industrial process, involves rejecting data file in dependent upon result of identifier verification - Google Patents
Method for updating firmware of field programmable gate array utilized in e.g. programmable logical circuit for controlling industrial process, involves rejecting data file in dependent upon result of identifier verification Download PDFInfo
- Publication number
- DE102010016257A1 DE102010016257A1 DE201010016257 DE102010016257A DE102010016257A1 DE 102010016257 A1 DE102010016257 A1 DE 102010016257A1 DE 201010016257 DE201010016257 DE 201010016257 DE 102010016257 A DE102010016257 A DE 102010016257A DE 102010016257 A1 DE102010016257 A1 DE 102010016257A1
- Authority
- DE
- Germany
- Prior art keywords
- identifier
- firmware
- comparison
- firmware file
- file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 title claims abstract description 32
- 230000001419 dependent effect Effects 0.000 title abstract description 3
- 238000012795 verification Methods 0.000 title abstract description 3
- 238000004519 manufacturing process Methods 0.000 title description 3
- 238000012360 testing method Methods 0.000 claims description 19
- 239000002131 composite material Substances 0.000 claims description 4
- 238000012217 deletion Methods 0.000 claims description 4
- 230000037430 deletion Effects 0.000 claims description 4
- 238000011161 development Methods 0.000 description 8
- 230000018109 developmental process Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 4
- 230000007257 malfunction Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- BUHVIAUBTBOHAG-FOYDDCNASA-N (2r,3r,4s,5r)-2-[6-[[2-(3,5-dimethoxyphenyl)-2-(2-methylphenyl)ethyl]amino]purin-9-yl]-5-(hydroxymethyl)oxolane-3,4-diol Chemical compound COC1=CC(OC)=CC(C(CNC=2C=3N=CN(C=3N=CN=2)[C@H]2[C@@H]([C@H](O)[C@@H](CO)O2)O)C=2C(=CC=CC=2)C)=C1 BUHVIAUBTBOHAG-FOYDDCNASA-N 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 239000000523 sample Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Abstract
Description
Gebiet der ErfindungField of the invention
Die vorliegende Erfindung bezieht sich auf Verfahren und Vorrichtungen zum Aktualisieren einer Firmware eines Systems mit wenigstens einem programmierbaren Baustein.The present invention relates to methods and apparatus for updating firmware of a system having at least one programmable device.
Stand der TechnikState of the art
Programmierbare logische Schaltungen, wie beispielsweise sogenannte FPGAs (Field Programmable Gate Arrays), werden in stetig zunehmendem Umfang sowohl zur Steuerung von Industrieprozessen als auch in der Haushaltselektronik eingesetzt. Ein Vorteil solcher programmierbaren Schaltungen liegt darin, dass sie durch Aktualisierung, ihrer Firmware an technischen Weiterentwicklungen teilhaben können, ohne dass die Hardware ersetzt werden muss.Programmable logic circuits, such as so-called FPGAs (Field Programmable Gate Arrays), are used to an ever increasing extent both for controlling industrial processes and in household electronics. One advantage of such programmable circuits is that by updating their firmware they can participate in technical advancements without having to replace the hardware.
Das Aktualisieren von Firmware ist allerdings in der Praxis keineswegs problem- und risikolos. Nach der Erfahrung kommt es sehr häufig vor, dass ein Anwender beim Aktualisieren versehentlich die bestehende Firmware-Datei des Systems durch eine inkompatible oder zumindest nicht vollständig kompatible neue Firmware-Datei ersetzt. Solche Fehler können sowohl auf Unachtsamkeiten des Anwenders als auch auf vertauschten Versionsnummern oder unvollständiger Dokumentation der Firmware oder der zugrundeliegenden Hardware beruhen.However, updating firmware is by no means problem-free and risk-free in practice. In the experience, it is very common for a user to inadvertently replace the existing firmware file of the system with an incompatible or at least not completely compatible new firmware file. Such errors may be due to carelessness of the user as well as to exchanged version numbers or incomplete documentation of the firmware or the underlying hardware.
Da Firmware-Dateien einander oft recht ähnlich sind, besteht die Gefahr, dass ein solcher Fehler beim Aktualisieren nicht bemerkt und die bisherige Firmwaredatei durch eine zur Hardware inkompatible neue Firmwaredatei ersetzt wird. Dadurch kann die Funktionsfähigkeit des Systems eingeschränkt oder aufgehoben werden. Besondere Gefahren drohen dann, wenn das mit einer nicht vollständig systemkompatiblen Firmware aktualisierte System nach der Aktualisierung zunächst störungsfrei zu arbeiten scheint, so dass der Anwender den Fehler nicht sofort bemerken kann, aber zu einem späteren Zeitpunkt in einer kritischen Situation versagt. Dies ist insbesondere deshalb gefährlich, weil mit Firmware programmierbare und aktualisierbare Schaltungen in großem Umfang auch in sicherheitskritischen Anwendungen, beispielsweise zur Regelung des Bremssystems von Kraftfahrzeugen oder für die Steuerung von Durchflussmessern in Kraftwerken, eingesetzt werden.Since firmware files are often quite similar to one another, there is a risk that such an error will not be noticed during the update and that the previous firmware file will be replaced by a new firmware file that is incompatible with the hardware. As a result, the functionality of the system can be restricted or canceled. Particular dangers threaten when the system updated with a not completely system-compatible firmware after the update seems to work without interruption, so that the user can not immediately notice the error, but fails later in a critical situation. This is particularly dangerous because firmware programmable and updateable circuits are also widely used in safety critical applications such as controlling the braking system of motor vehicles or controlling flowmeters in power plants.
Der Stand der Technik begegnet diesem Problem mit Aktualisierungsverfahren, bei denen vor dem Überschreiben der alten Firmware ein automatischer Abgleich zwischen einer Revisionsnummer des Systems und einer Revisionsnummer der neuen Firmware-Datei stattfindet, um deren Kompatibilität sicherzustellen. Dadurch kann vermieden werden, dass irrtümlicherweise eine falsche Firmware aufgespielt wird.The prior art addresses this problem with updating methods in which, before overwriting the old firmware, an automatic synchronization between a system revision number and a revision number of the new firmware file takes place to ensure compatibility. This can be avoided, that erroneously a wrong firmware is loaded.
Ein solches Verifikationsverfahren ist in der Patentschrift
Ein Nachteil einer solchen proprietären Lösung besteht aus Sicht des Anwenders zum einen darin, dass eine Firmware-Aktualisierung stets die Verbindung zu einem für den Revisionsvergleich ausgerüsteten und eingerichteten Host-Computer erfordert.A disadvantage of such a proprietary solution is, from the user's point of view, first, that a firmware update always requires connection to a host computer equipped and set up for revision comparison.
Zum anderen schützt die in der
Verfahren zur Firmware-Aktualisierung mit dem Abgleich einer Firmware-Kennung gegen eine Hardware-Kennung, welche ein individuelles Computeranwendersystem kennzeichnet oder authentifiziert, sind in den Anmeldeschriften
Vor dem Hintergrund des Standes der Technik liegt der vorliegenden Erfindung die Aufgabe zugrunde, ein verbessertes und vereinfachtes Verfahren und System zum Aktualisieren einer Firmware anzugeben, welches die vorgenannten Probleme vermeidet und eine zuverlässige Kompatibilitätsprüfung erlaubt. In view of the background of the prior art, it is an object of the present invention to provide an improved and simplified method and system for updating a firmware, which avoids the aforementioned problems and allows a reliable compatibility check.
Übersicht über die ErfindungOverview of the invention
Diese Aufgabe wird durch die erfindungsgemäßen Verfahren mit den Merkmalen der nebengeordneten Ansprüche 1 und 6 sowie durch das System mit den Merkmalen von Anspruch 8 gelöst. Die abhängigen Ansprüche beziehen sich auf bevorzugte Ausführungsformen.This object is achieved by the method according to the invention with the features of the
Ein erfindungsgemäßes Verfahren zum Aktualisieren einer Firmware eines Systems, welches wenigstens einen programmierbaren Baustein aufweist, umfasst den Schritt des Empfangens einer neuen Firmware-Datei, welche wenigstens eine einer Quelle der Firmware zugeordnete und/oder eine Schaltungskonfiguration kennzeichnende Kennung umfasst, an dem System, den Schritt des Prüfen der Kennung gegen wenigstens eine im System gespeicherte Vergleichskennung, wobei das Prüfen in dem System erfolgt, sowie den Schritt des Akzeptieren der neuen Firmware-Datei und des Ablegens der neuen Firmware-Datei in dem programmierbaren Baustein oder den Schritt des Zurückweisen der neuen Firmware-Datei, in Abhängigkeit von einem Ergebnis des Prüfens.An inventive method for updating a firmware of a system comprising at least one programmable device comprises the step of receiving at the system, the system, a new firmware file comprising at least one identifier associated with a source of the firmware and / or indicative of a circuit configuration A step of checking the identifier against at least one comparison identifier stored in the system, wherein the checking is performed in the system, and the step of accepting the new firmware file and placing the new firmware file in the programmable device or the step of rejecting the new one Firmware file, depending on a result of testing.
Indem die Kennung der Firmware-Datei einer Quelle der Firmware, beispielsweise einem Hersteller, zugeordnet ist oder eine Schaltungskonfiguration des Systems, zu der sie kompatibel ist, kennzeichnet, erlaubt sie eine zuverlässige Prüfüng der Systemkompatibilität. Insbesondere schließt die erfindungsgemäße Lösung Fehler bei der Kompatibilitätsprüfung, die sich daraus ergeben, dass unterschiedliche Hersteller oft identische Revisionsnummern verwenden, wirkungsvoll aus. Beispielsweise können weltweit eindeutige computerlesbare Hardware-Kennungen zugewiesen werden. Eine solche Kennung im Sinne der Erfindung ist vorzugsweise nicht ausschließlich eine herstellerspezifische Revisionsnummer (gleichwohl sie eine solche Revisionsnummer umfassen kann) und auch keine Seriennummer oder Authentifizierungskennung, welche ein individuelles System kennzeichnen, sondern umfasst eine Hersteller-Identifikation und/oder codiert den Schaltplan des Systems bzw. bildet den Schaltplan des Systems ab.By associating the firmware file identifier with a source of firmware, such as a manufacturer, or identifying a circuit configuration of the system to which it is compatible, it allows for reliable system compatibility testing. In particular, the solution according to the invention effectively excludes errors in the compatibility check which result from the fact that different manufacturers often use identical revision numbers. For example, unique computer-readable hardware identifiers can be assigned worldwide. Such an identifier within the meaning of the invention is preferably not exclusively a manufacturer-specific revision number (although it may comprise such a revision number) and also no serial number or authentication identifier, which identify an individual system, but includes a manufacturer identification and / or encodes the circuit diagram of the system or represents the circuit diagram of the system.
Indem das Prüfen der Kennung gegen eine im System gespeicherte Vergleichskennung in dem System erfolgt, wird eine vom Host-System unabhängige Kompatibilitätsprüfung ermöglicht und zudem wirkungsvoll sichergestellt, dass eine Firmware-Datei in dem System nicht ohne eine solche vorausgegangene Kompatibilitätsprüfung durch eine neue Firmware-Datei ersetzt wird.By checking the identifier against a system-stored comparison identifier in the system, a compatibility check independent of the host system is enabled and, in addition, effectively ensuring that a firmware file in the system will not be without such a previous compatibility check by a new firmware file is replaced.
Ein System im Sinne der Erfindung ist jede nach einem bestimmten Schaltplan verdrahtete Konfiguration von analogen und/oder digitalen Bausteinen, wobei wenigstens einer der Bausteine programmierbar ist. Bausteine eines solchen Systems können beispielsweise FPGAs, CPUs, RAM-Speicherbausteine und/oder Flash-Speicherbausteine sein. Ein System kann auch Subsysteme mit jeweils eigener CPU, RAM und/oder Flash-Bausteinen enthalten, die beispielsweise ein Rechnernetzwerk bilden.A system according to the invention is any configuration of analog and / or digital components wired according to a specific circuit diagram, wherein at least one of the components is programmable. The building blocks of such a system can be, for example, FPGAs, CPUs, RAM memory modules and / or flash memory modules. A system may also contain subsystems each with its own CPU, RAM and / or flash components that form, for example, a computer network.
Die im System gespeicherte Vergleichskennung kann, wie die Kennung der Firmware-Datei, eine Quelle der Firmware und/oder eine Schaltungskonfiguration des Systems kennzeichnen. Sofern das Prüfen der Kennung den Vergleich der Kennung mit der Vergleichskennung umfasst, können die Kennung und die Vergleichskennung einander weitgehend oder vollständig entsprechen. Es ist dann lediglich eine Konventionsfrage, welche der beiden im Sinne dieser Schrift als „Kennung” und welche als „Vergleichskennung” bezeichnet wird.The comparison identifier stored in the system, like the identifier of the firmware file, can identify a source of the firmware and / or a circuit configuration of the system. If the checking of the identifier comprises the comparison of the identifier with the comparison identifier, the identifier and the comparison identifier can correspond largely or completely to one another. It is then only a convention question, which of the two in the sense of this document as "identifier" and which is referred to as "comparison identifier".
Vorzugsweise umfasst die Firmware-Datei mehrere Kennungen und das Prüfen der Kennung das Vergleichen, insbesondere sukzessive Vergleichen, wenigstens einer Teilmenge der mehreren Kennungen mit einer im System gespeicherten Vergleichskennung. Die verschiedenen Kennungen können die unterschiedlichen Systemkonfigurationen und/oder Revisionen kennzeichnen, für welche die Firmware geeignet ist.Preferably, the firmware file comprises a plurality of identifiers and the checking of the identifier comprises comparing, in particular successively comparing, at least a subset of the plurality of identifiers with a comparison identifier stored in the system. The various identifiers may identify the different system configurations and / or revisions for which the firmware is appropriate.
In einer weiteren bevorzugten Ausführungsform umfasst das Prüfen der Kennung das Vergleichen der Kennung mit einer Mehrzahl im System gespeicherter Vergleichskennungen, beispielsweise mit einer Liste oder Tabelle von Vergleichskennungen. Dadurch lässt sich schnell und zuverlässig überprüfen, ob die neue Firmware-Datei mit dem System kompatibel ist.In a further preferred embodiment, the checking of the identifier comprises comparing the identifier with a plurality of comparison identifiers stored in the system, for example with a list or table of comparison identifiers. This makes it possible to check quickly and reliably whether the new firmware file is compatible with the system.
Das Prüfen der Kennung umfasst vorzugsweise das Laden der neuen Firmware und das Laden der Vergleichskennung und/oder einer vorhergehenden Firmware-Datei in ein Prüfelement. In dem Prüfelement kann auf diese Weise die Vergleichskennung gegen eine Kennung der Firmware-Datei geprüft werden.The checking of the identifier preferably comprises loading the new firmware and loading the comparison identifier and / or a previous firmware file into a test element. In the test element can be checked in this way, the comparison identifier against an identifier of the firmware file.
Die neue Firmware-Datei kann in einem nichtflüchtigen Speicher abgelegt werden, vorzugsweise in einem EEPROM (Electrically Erasable Programmable Read-Only Memory).The new firmware file can be stored in non-volatile memory, preferably in an EEPROM (Electrically Erasable Programmable Read-Only Memory).
In einer Weiterbildung umfasst das erfindungsgemäße Verfahren das Löschen einer vorhergehenden Firmware-Datei aus dem programmierbaren Baustein, wobei das Löschen nur im Falle des vorherigen Akzeptierens der neuen Firmware-Datei erfolgt. Durch das Überprüfen der Kennung vor dem Löschen der vorhergehenden Firmware-Datei wird sichergestellt, dass das System stets mit einer systemkompatiblen Firmware ausgerüstet ist, so dass Fehlfunktionen des Systems wirksam und effektiv vermieden werden. In a further development, the method according to the invention comprises the deletion of a preceding firmware file from the programmable module, wherein the deletion takes place only in the case of the previous acceptance of the new firmware file. Checking the ID before deleting the previous firmware file ensures that the system is always equipped with system-compatible firmware, effectively and effectively avoiding system malfunctions.
Das Verfahren kann in einer Weiterbildung der Erfindung auch das Überprüfen des erfolgreichen Ablegens der neuen Firmware-Datei und ggf. zusätzlich das Dokumentieren des erfolgreichen Ablegens durch eine Prüfnummer, beispielsweise eine sogenannte Magic-Nummer, umfassen.In one development of the invention, the method may also include checking the successful filing of the new firmware file and optionally additionally documenting the successful filing by a check number, for example a so-called magic number.
In einer bevorzugten Ausführung der Erfindung umfasst das System einen Speicher zum Speichern einer werkseitig voreingestellten Factory-Programmierung. In dem erfindungsgemäßen Verfahren wird für den Fall des Zurückweisens der neuen Firmware-Datei die Factory-Programmierung in den programmierbaren Baustein geladen. Auf diese Weise wird sichergestellt, dass das System bei fehlgeschlagener Aktualisierung in die systemkompatible Factory-Programmierung zurückfällt und einsatzfähig bleibt. In einem nachfolgenden Schritt kann dann die Aktualisierung des Systems mit einer anderen Firmware-Datei erneut versucht werden.In a preferred embodiment of the invention, the system includes memory for storing factory-preset factory programming. In the method according to the invention, in the case of the rejection of the new firmware file, the factory programming is loaded into the programmable module. This ensures that if the update fails, the system will fall back into system-compatible factory programming and remain operational. In a subsequent step, the system may be retried to update with a different firmware file.
In einer Weiterbildung der vorgenannten Ausführungsform umfasst das Verfahren einen Schritt des Überprüfens des erfolgreichen Ladens der Factory-Programmierung in den programmierbaren Baustein und ggf. zusätzlich das Dokumentieren des erfolgreichen Ladens der Factory-Programmierung durch eine Prüfnummer, beispielsweise durch eine sogenannte Magic-Nummer.In a development of the abovementioned embodiment, the method comprises a step of checking the successful loading of the factory programming into the programmable module and optionally additionally documenting the successful loading of the factory programming by a check number, for example by a so-called magic number.
In einer bevorzugten Ausführungsform erfolgt vor dem Prüfen der Kennung ein Prüfen des Datenformats der neuen Firmware-Datei. Ein Prüfen des Datenformats der neuen Firmware-Datei kann ein Grobraster darstellen, welches das schnelle Zurückweisen offensichtlich systeminkompatibler Firmware-Dateien ermöglicht, ohne dass ein Kennungsabgleich notwendig ist.In a preferred embodiment, before checking the identifier, the data format of the new firmware file is checked. Checking the data format of the new firmware file may represent a coarse grid that allows the fast rejection of obviously system incompatible firmware files without the need for tag matching.
In einer bevorzugten Ausführungsform umfasst die Kennung eine Herstellerkennung und/oder eine Revisionsnummer.In a preferred embodiment, the identifier comprises a manufacturer identifier and / or a revision number.
In einer Weiterbildung der Erfindung umfasst das Verfahren das Verbinden zweier Systeme, welche jeweils zumindest einen programmierbaren Baustein umfassen und in welchen jeweils zumindest eine Vergleichskennung nach einer der vorgenannten Ausführungsformen gespeichert ist, zu einem Gesamtsystem, sowie das Zuweisen einer Gesamtvergleichskennung an das Gesamtsystem und das Speichern der zugewiesenen Gesamtvergleichskennung im Gesamtsystem.In one development of the invention, the method comprises connecting two systems, which each comprise at least one programmable module and in which in each case at least one comparison identifier according to one of the aforementioned embodiments is stored, to form an overall system, and assigning an overall comparison identifier to the overall system and storing the assigned overall comparison identifier in the overall system.
Dadurch lässt sich auch beim Zusammensetzen mehrerer Teilsysteme zu einem Gesamtsystem eine gemeinsame Gesamtvergleichskennung zuweisen, welche eine zuverlässige Kompatibilitätsprüfung beim Aktualisieren des Gesamtsystems und/oder seiner Teilsysteme mit neuer Firmware ermöglicht.As a result, a common overall comparison identifier can also be assigned when assembling a plurality of subsystems to form an overall system, which enables a reliable compatibility check when updating the entire system and / or its subsystems with new firmware.
Das Verfahren zum Zuweisen einer Vergleichskennung zur Firmware-Aktualisierung an ein zusammengesetztes System ist ein unabhängiger Aspekt der Erfindung und umfasst das Verbinden mindestens zweier Einzelsysteme zu einem Gesamtsystem, wobei zumindest eines der Einzelsysteme zumindest einen programmierbaren Baustein umfasst und zumindest eine Vergleichskennung speichert, wobei die Vergleichskennung einer Quelle einer Firmware zugeordnet ist und/oder eine Schaltungskonfiguration des Einzelsystems kennzeichnet, sowie den Schritt des Zuweisens einer Gesamtvergleichskennung an das Gesamtsystem und den Schritt des Speicherns der zugewiesenen Gesamtvergleichskennung im Gesamtsystem.The method for assigning a comparison identifier for firmware updating to a composite system is an independent aspect of the invention and comprises connecting at least two individual systems to form an overall system, wherein at least one of the individual systems comprises at least one programmable module and stores at least one comparison identifier, wherein the comparison identifier is associated with a source of firmware and / or identifies a circuit configuration of the single system, and the step of assigning a total comparison identifier to the overall system and the step of storing the assigned overall comparison identifier in the overall system.
Insbesondere kann jedes der mindestens zwei Einzelsysteme einen programmierbaren Baustein umfassen.In particular, each of the at least two individual systems can comprise a programmable component.
Vorzugsweise kennzeichnet die Gesamtvergleichskennung die Schaltungskonfiguration des Gesamtsystems.The overall comparison identifier preferably identifies the circuit configuration of the overall system.
Die Erfindung umfasst auch ein mit einer Firmware aktualisierbares System mit einer Schnittstelle zum Empfangen einer Firmware-Datei, einem programmierbaren Baustein, in welchem die Firmware-Datei ablegbar ist, einem Speicher, welcher zum Speichern wenigstens einer Vergleichskennung eingerichtet ist, wobei die Vergleichskennung einer Quelle der Firmware zugeordnet ist und/oder eine Schaltungskonfiguration des Systems kennzeichnet, sowie mit einem Prüfelement, welches dazu eingerichtet ist, die Vergleichskennung gegen wenigstens eine Kennung der Firmware-Datei zu prüfen.The invention also includes a firmware updatable system having an interface for receiving a firmware file, a programmable device in which the firmware file is storable, a memory configured to store at least one comparison identifier, the comparison identifier of a source the firmware is assigned and / or a circuit configuration of the system is characterized, and with a test element which is adapted to check the comparison identifier against at least one identifier of the firmware file.
Wie vorstehend ausgeführt, bietet ein erfindungsgemäßes System einen wirksamen Schutz gegen das unbeabsichtigte oder beabsichtigte Aktualisieren des Systems mit inkompatibler Firmware und beugt dadurch Fehlfunktionen des Systems vor.As noted above, a system of the invention provides effective protection against inadvertent or intentional updating of the system with incompatible firmware, thereby preventing malfunction of the system.
In einer Weiterbildung der Erfindung umfasst das System wenigstens zwei programmierbare Bausteine und einen Speicher, welcher zum Speichern einer Gesamtvergleichskennung eingerichtet ist, wobei die Gesamtvergleichskennung eine Schaltungskonfiguration des Systems kennzeichnet.In one development of the invention, the system comprises at least two programmable components and a memory which is set up to store an overall comparison identifier. wherein the overall comparison identifier identifies a circuit configuration of the system.
Die Erfindung bezieht sich auch auf ein FPGA (Field Programmable Gate Array) mit einem System nach einer der vorgenannten Ausführungen.The invention also relates to an FPGA (Field Programmable Gate Array) with a system according to one of the aforementioned embodiments.
Detaillierte Beschreibung bevorzugter AusführungsformenDetailed description of preferred embodiments
Die Merkmale und zahlreiche Vorteile des erfindungsgemäßen Verfahrens und Systems zum Aktualisieren einer Firmware lassen sich am besten anhand einer detaillierten Beschreibung der anliegenden Zeichnungen verstehen, in denen:The features and numerous advantages of the method and system for updating firmware in accordance with the present invention are best understood by reference to a detailed description of the accompanying drawings, in which:
Nachfolgend wird die Erfindung am Beispiel eines FPGA (Field Programmable Gate Array) illustriert. Solche programmierbaren logischen Schaltungen werden in zunehmendem Umfang zur Steuerung von industriellen Prozessen ebenso wie in der Haushaltselektronik eingesetzt. Wichtige Anwendungsbeispiele sind Protokoll-Implementierungen für Teile des Ethernet-MAC-Lagers, die Codierung von digitalen Videosignalen, die Verschlüsselung von Daten oder Fehlerkorrekturverfahren. Besonders in Bereichen, in denen Algorithmen bzw. Protokolle einer raschen technischen Weiterentwicklung unterliegen, ist die Verwendung von FPGAs vorteilhaft, weil sie sich durch eine Aktualisierung ihrer Firmware verhältnismäßig einfach an Neuentwicklungen anpassen lassen, ohne dass die Hardware geändert werden muss.The invention is illustrated below using the example of an FPGA (Field Programmable Gate Array). Such programmable logic circuits are increasingly being used to control industrial processes as well as domestic electronics. Key application examples include protocol implementations for parts of the Ethernet MAC warehouse, digital video encoding, data encryption, and error correction procedures. Particularly in areas where algorithms or protocols are subject to rapid technical development, the use of FPGAs is advantageous because they can be relatively easily adapted to new developments by updating their firmware, without having to change the hardware.
Die Erfindung ist allerdings nicht auf FPGAs beschränkt, sondern lässt sich auf alle Systeme anwenden, welche wenigstens einen programmierbaren Baustein umfassen. Als System im Sinne der Erfindung kann jede nach einem vordefinierten Schaltplan verdrahtete Menge von analogen und/oder digitalen Bausteinen verstanden werden. Beispiele für Systeme sind programmierbare logische Schaltungen, aber auch technische Systeme, in denen solche Schaltungen Einsatz finden, wie beispielsweise Durchflussmesser in einem Kraftwerk oder das Bremssystem eines Kraftfahrzeugs oder auch das gesamte Kraftfahrzeug selbst.However, the invention is not limited to FPGAs, but can be applied to all systems comprising at least one programmable device. A system in the sense of the invention can be understood as any set of analog and / or digital components wired according to a predefined circuit diagram. Examples of systems are programmable logic circuits, but also technical systems in which such circuits are used, such as flow meters in a power plant or the braking system of a motor vehicle or even the entire motor vehicle itself.
Das in
Die erste Prozessoreinheit
Sowohl die erste Prozessoreinheit
Wie einleitend mit Bezug auf den Stand der Technik beschrieben, besteht bei solchen Firmware-Aktualisierungen die Gefahr, dass absichtlich oder unabsichtlich eine inkompatible Firmware aufgespielt wird, welche die Funktionsfähigkeit der Prozessoreinheiten und damit des Gesamtsystems beeinträchtigt.As described in the introduction with reference to the prior art, there is the risk with such firmware updates that intentionally or unintentionally an incompatible firmware is loaded, which impairs the functionality of the processor units and thus of the overall system.
Selbst wenn diesem Problem durch sorgfältige Dokumentation bzw. sorgfältige Prüfung der Firmware-Version vor der Aktualisierung Rechnung getragen wird, ergeben sich im Ergebnis die gleichen Schwierigkeiten und Gefahren daraus, dass die neue Firmware zwar für die erste programmierbare Prozessoreinheit
Die Erfindung begegnet diesen Problemen in der gezeigten Ausführungsform durch ein Firmware-Fileformat, welches eine Systemkennung und/oder eine Hersteller-Kennung umfasst, die vor der Aktualisierung mit einer entsprechenden, im FPGA
Die Kennung kann beispielsweise eine Gerätekennung für die erste Prozessoreinheit
Die Kennung kann auch die Schaltungskonfiguration des FPGA
Eine solche Kennung kann weltweit eindeutig sein und vom Hersteller des FPGA
Ein auf das FPGA
Ein erster Block
Die Kennung in Block
In der gezeigten Ausführungsform ist die Vergleichskennung in einem EEPROM
Die Kennung in Block
Alternativ kann das Prüfelement
Erst wenn die Überprüfung in dem Prüfelement
Ergibt das Prüfen der Kennung im Prüfelement
Wird beim Prüfen der Kennung im Prüfelement
Das erfolgreiche Ablegen der neuen Firmware-Datei oder das erfolgreiche Laden der Factory-Programmierung kann durch eine Prüfnummer, z. B. eine Magic-Nummer, angezeigt werden. Die Magic-Nummer wird erst dann geschrieben, wenn alle anderen Daten erfolgreich geschrieben wurden.The successful filing of the new firmware file or the successful loading of the factory programming can be confirmed by a test number, eg. As a magic number to be displayed. The magic number is not written until all other data has been successfully written.
Das beschriebene Verfahren zur Firmware-Aktualisierung kann über eine offene gemeinsame Programmierschnittstelle erfolgen und je nach Anwendung beispielsweise über ein HTTP-, TCP- oder FTP-Format realisiert sein.The described method for updating the firmware can take place via an open common programming interface and, depending on the application, be realized, for example, via an HTTP, TCP or FTP format.
BezugszeichenlisteLIST OF REFERENCE NUMBERS
- 1010
- FPGAFPGA
- 1212
- erste Prozessoreinheitfirst processor unit
- 1414
- zweite Prozessoreinheitsecond processor unit
- 1616
- erste Schnittstellefirst interface
- 1818
- zweite Schnittstellesecond interface
- 2020
- RAMR.A.M.
- 2222
- PrüfelementA probe
- 2424
- nichtflüchtiger Speichernon-volatile memory
- 2626
- Firmwaretypfirmware type
- 2828
- Firmwarebeschreibung und/oder VersionsnummerFirmware description and / or version number
- 3030
- Hardware-Kennung(en)Hardware identifier (s)
- 3232
- FPGA-FirmwareimageFPGA Firmware Image
- 3434
-
Firmware-Image für erste Prozessoreinheit
12 Firmware image forfirst processor unit 12 - 3636
-
Firmware-Image für zweite Prozessoreinheit
14 Firmware image forsecond processor unit 14 - 3838
- Zertifikat-BlockCertificate Block
ZITATE ENTHALTEN IN DER BESCHREIBUNG QUOTES INCLUDE IN THE DESCRIPTION
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.This list of the documents listed by the applicant has been generated automatically and is included solely for the better information of the reader. The list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions.
Zitierte PatentliteraturCited patent literature
- US 6360362 B1 [0006, 0008] US 6360362 B1 [0006, 0008]
- US 2009/0064125 A1 [0009] US 2009/0064125 A1 [0009]
- US 2009/0247124 A1 [0009] US 2009/0247124 A1 [0009]
Claims (11)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE201010016257 DE102010016257A1 (en) | 2010-03-31 | 2010-03-31 | Method for updating firmware of field programmable gate array utilized in e.g. programmable logical circuit for controlling industrial process, involves rejecting data file in dependent upon result of identifier verification |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE201010016257 DE102010016257A1 (en) | 2010-03-31 | 2010-03-31 | Method for updating firmware of field programmable gate array utilized in e.g. programmable logical circuit for controlling industrial process, involves rejecting data file in dependent upon result of identifier verification |
Publications (1)
Publication Number | Publication Date |
---|---|
DE102010016257A1 true DE102010016257A1 (en) | 2011-10-06 |
Family
ID=44650175
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE201010016257 Withdrawn DE102010016257A1 (en) | 2010-03-31 | 2010-03-31 | Method for updating firmware of field programmable gate array utilized in e.g. programmable logical circuit for controlling industrial process, involves rejecting data file in dependent upon result of identifier verification |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE102010016257A1 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AT513861A4 (en) * | 2013-03-06 | 2014-08-15 | Siemens Ag Oesterreich | A method of protection against misprogramming of a field programmable logic device |
CN110018854A (en) * | 2019-03-26 | 2019-07-16 | 联想(北京)有限公司 | A kind of firmware matching process, equipment and computer readable storage medium |
US11429720B2 (en) | 2015-07-23 | 2022-08-30 | Phoenix Contact Gmbh & Co. Kg | Method and system for firmware-updating a control device for process control |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6360362B1 (en) | 1998-02-20 | 2002-03-19 | Intel Corporation | Automatic update of camera firmware |
US20090064125A1 (en) | 2007-09-05 | 2009-03-05 | Microsoft Corporation | Secure Upgrade of Firmware Update in Constrained Memory |
US20090247124A1 (en) | 2008-03-04 | 2009-10-01 | Apple Inc. | Provisioning mobile devices based on a carrier profile |
-
2010
- 2010-03-31 DE DE201010016257 patent/DE102010016257A1/en not_active Withdrawn
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6360362B1 (en) | 1998-02-20 | 2002-03-19 | Intel Corporation | Automatic update of camera firmware |
US20090064125A1 (en) | 2007-09-05 | 2009-03-05 | Microsoft Corporation | Secure Upgrade of Firmware Update in Constrained Memory |
US20090247124A1 (en) | 2008-03-04 | 2009-10-01 | Apple Inc. | Provisioning mobile devices based on a carrier profile |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AT513861A4 (en) * | 2013-03-06 | 2014-08-15 | Siemens Ag Oesterreich | A method of protection against misprogramming of a field programmable logic device |
AT513861B1 (en) * | 2013-03-06 | 2014-08-15 | Siemens Ag Oesterreich | A method of protection against misprogramming of a field programmable logic device |
US11429720B2 (en) | 2015-07-23 | 2022-08-30 | Phoenix Contact Gmbh & Co. Kg | Method and system for firmware-updating a control device for process control |
CN110018854A (en) * | 2019-03-26 | 2019-07-16 | 联想(北京)有限公司 | A kind of firmware matching process, equipment and computer readable storage medium |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3326101B1 (en) | Method and system for firmware-updating a control device for process control | |
DE102005013285B4 (en) | Method of configuring a controller and controller | |
EP1639603A2 (en) | Method for updating software of an electronic control device by flash programming via a serial interface and corresponding automatic state machine | |
DE102006005365A1 (en) | Updating method for firmware of field devices e.g. measuring devices, involves connecting field devices to control unit by common data bus, where firmware is transmitted between all connected field devices by connecting one field device | |
DE102018214999A1 (en) | Device for securing diagnostic commands to a control unit and corresponding motor vehicle | |
EP2943748B1 (en) | Method and device for managing map data of a digital map for a navigation apparatus | |
EP3001310A1 (en) | Method and apparatus for updating firmware for components of an industrial automation system | |
EP3692424B1 (en) | Method for processing a software project | |
EP2326959B1 (en) | Method for activating functions of a tachograph | |
DE102010016257A1 (en) | Method for updating firmware of field programmable gate array utilized in e.g. programmable logical circuit for controlling industrial process, involves rejecting data file in dependent upon result of identifier verification | |
DE102009005902A1 (en) | Method for operating electrical device e.g. programming device, of communication system for processing electronic data, involves assigning data region to configuration data set through interface for processing by electrical device | |
EP2093639B1 (en) | Method of operating a numerical control | |
EP2811352A1 (en) | Method for processing an automation project by a plurality of processing stations | |
EP3830688B1 (en) | Updating of a domestic appliance | |
EP2646670B1 (en) | Method for reversibly coding an engine controller for a motor vehicle in manipulation-proof fashion, and engine controller | |
DE102019214922A1 (en) | Configuration procedure for a railway signal system and update system | |
DE102013111228A1 (en) | Procedure for electronic auditing | |
DE102019103985A1 (en) | System and method for transferring an operating software update to a safety-related device | |
DE102018202626A1 (en) | Method for the computer-aided parameterization of a technical system | |
DE102008004923B4 (en) | Method for updating a control sequence of a machine control system and device for carrying out the method | |
WO2009103728A1 (en) | Method and device for storing information data | |
DE102017001460A1 (en) | Electrical apparatus, in particular inverters or converters, and method for operating an electrical appliance | |
DE10130493B4 (en) | Method for enabling access to an electronic control unit | |
DE102018212295A1 (en) | Control device and method for operating a control device within a system | |
DE102015207713A1 (en) | Method and device for configuring a vehicle unit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R082 | Change of representative |
Representative=s name: BARDEHLE PAGENBERG PARTNERSCHAFT PATENTANWAELT, DE Representative=s name: BARDEHLE PAGENBERG PARTNERSCHAFT MBB PATENTANW, DE |
|
R005 | Application deemed withdrawn due to failure to request examination |