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 PDF

Info

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
Application number
DE201010016257
Other languages
German (de)
Inventor
Bernd Edlinger
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Softing AG
Original Assignee
Softing AG
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Softing AG filed Critical Softing AG
Priority to DE201010016257 priority Critical patent/DE102010016257A1/en
Publication of DE102010016257A1 publication Critical patent/DE102010016257A1/en
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Abstract

The method involves receiving a new firmware data file at a field programmable gate array (FPGA) (10). The file comprises a hardware identifier, which characterizes a circuit configuration and is attached to a source of a firmware. The hardware identifier is verified in relation to a comparison identifier that is stored in the FPGA. The hardware identifier comprises a manufacturer identifier and/or revision number. The new firmware data file is accepted and stored in processor units (12, 14) i.e. FPGA units. The new firmware data file is rejected in dependent upon the result of verification. An independent claim is also included for a firmware updatable system that comprises an interface.

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 US 6,360,362 B1 am Beispiel einer Digitalkamera beschrieben: Der Kamerahersteller ordnet seinen Digitalkameras Revisionsnummern zu, denen jeweils eine oder mehrere Firmware-Kennungen entsprechen. Zum Aktualisieren einer Firmware wird die Kamera über eine proprietäre Schnittstelle an ein Host-System, beispielsweise den Personalcomputer eines Anwenders, angeschlossen. Das Host-System fragt über die Schnittstelle die Revisionsnummer der angeschlossenen Kamera ab und wählt selbsttätig die dazu passende Firmware aus, die nachfolgend über die Schnittstelle an die Kamera übertragen wird und dort die vorhergehende Firmware-Datei ersetzt.One such verification method is in the patent US 6,360,362 B1 described using the example of a digital camera: The camera manufacturer assigns its digital cameras revision numbers, each of which corresponds to one or more firmware identifiers. To update a firmware, the camera is connected via a proprietary interface to a host system, such as a user's personal computer. The host system queries the revision number of the connected camera via the interface and automatically selects the appropriate firmware, which is subsequently transmitted to the camera via the interface, where it replaces the previous firmware file.

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 US 6,360,362 B1 vorgeschlagene Lösung gegen Benutzerfehler beim Firmware-Update nur unzureichend. Die Schwäche des Verfahrens erkennt man, wenn man annimmt, dass der Kamerahersteller seine Verifikationssoftware an zwei weitere Kamerahersteller lizenziert, die nichts voneinander wissen, wie es in der Praxis oft geschieht. Beide Lizenznehmer werden jeweils ein eigenes Kameramodell entwickeln und für diese Hardware jeweils unabhängig voneinander Revisionsnummern vergeben. Es besteht daher die Gefahr, dass eine Kamera des ersten Lizenznehmers an das Host-Programm des zweiten Lizenznehmers angeschlossen und daher irrtümlich mit der Firmware des zweiten Lizenznehmers aktualisiert wird, zum Beispiel mit der Firmware, welche der zweite Lizenznehmer unter derselben Kamerarevisionsnummer für seine eigenen Kameras vorsieht. Der Bootloader deckt bei der Prüfung diese Fehlkonfiguration möglicherweise nicht auf, so dass die vorhergehende Firmware durch eine nicht kompatible Firmware des falschen Herstellers ersetzt wird und die Kamera gegebenenfalls unbrauchbar wird.On the other hand, that protects in the US 6,360,362 B1 proposed solution against user error in the firmware update only insufficient. The weakness of the procedure can be seen by assuming that the camera manufacturer licenses its verification software to two other camera manufacturers who know nothing about each other, as often happens in practice. Both licensees will each develop their own camera model and assign revision numbers independently of each other for this hardware. There is therefore the risk that a camera of the first licensee is connected to the host program of the second licensee and therefore erroneously updated with the firmware of the second licensee, for example, the firmware, which the second licensee under the same camera vision number for his own cameras provides. The bootloader may not uncover this misconfiguration during testing, so the previous firmware will be replaced by incompatible firmware from the wrong manufacturer and the camera may become unusable.

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 US 2009/0064125 A1 und US 2009/0247124 A1 beschrieben. Solche Verfahren setzen eine individuelle Kennung für jedes Anwendersystem und daher eine aufwändige Kennungsverwaltung voraus.A firmware update method of matching a firmware identifier to a hardware identifier that identifies or authenticates an individual computer user system is described in the application notes US 2009/0064125 A1 and US 2009/0247124 A1 described. Such methods require an individual identifier for each user system and therefore a complex identifier management.

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 independent claims 1 and 6 and by the system having the features of claim 8. The dependent claims relate to preferred embodiments.

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:

1 ein FPGA zeigt, welches das erfindungsgemäße Verfahren implementiert; und 1 shows an FPGA implementing the method according to the invention; and

2 an einem Beispiel den Aufbau und die Komponenten eines Firmware-Fileformats mit Hardwarekennung illustriert. 2 illustrated by an example the structure and the components of a firmware file format with hardware identifier.

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 1 gezeigte FPGA 10 umfasst eine erste programmierbare Prozessoreinheit 12 und eine zweite programmierbare Prozessoreinheit 14. Die Erfindung ist jedoch nicht darauf beschränkt und kann ebensogut in Systemen eingesetzt werden, welche nur ein programmierbares Bauelement oder mehr als zwei programmierbare Bauelemente umfassen.This in 1 shown FPGA 10 includes a first programmable processor unit 12 and a second programmable processor unit 14 , However, the invention is not so limited and may equally well be used in systems that include only one programmable device or more than two programmable devices.

Die erste Prozessoreinheit 12 steuert über eine erste Schnittstelle 16 einen ersten Anwendungsprozess, während die zweite Prozessoreinheit 14 über eine zweite Schnittstelle 18 einen (eventuell davon unabhängigen) zweiten Anwendungsprozess steuert. Beispielsweise kann über die erste Schnittstelle 16 das FPGA 10 mit einem Ethernet-Netzwerk kommunizieren, über die zweite Schnittstelle 18 dagegen mit einem Feldbus-System. Das gezeigte FPGA umfasst darüber hinaus weitere Komponenten wie einen gemeinsam genutzten Arbeitsspeicher RAM 20, ein Prüfelement 22 sowie einen nicht-flüchtigen Speicher 24 und gegebenenfalls weitere (in der Darstellung der 1 nicht gezeigte) Bauelemente. Die elektrische Verschaltung zwischen den einzelnen Bauelementen des FPGA 10 ist in 1 durch Doppelpfeile symbolisiert: Ein Doppelpfeil zwischen zwei Bauelementen zeigt an, dass diese beiden Bauelemente über eine elektrische Verbindung direkt miteinander verbunden sind.The first processor unit 12 controls via a first interface 16 a first application process while the second processor unit 14 via a second interface 18 controls a (possibly independent) second application process. For example, over the first interface 16 the FPGA 10 communicate with an Ethernet network via the second interface 18 in contrast, with a fieldbus system. The FPGA shown also includes other components such as a shared RAM RAM 20 , a test element 22 and a non-volatile memory 24 and optionally further (in the representation of 1 not shown) components. The electrical connection between the individual components of the FPGA 10 is in 1 symbolized by double arrows: A double arrow between two components indicates that these two components are connected directly to each other via an electrical connection.

Sowohl die erste Prozessoreinheit 12 als auch die zweite Prozessoreinheit 14 werden mit systemspezifischer Firmware betrieben, im gezeigten Beispiel mit Firmware zur Steuerung der Ethernet- bzw. Feldbus-Kommunikation. Regelmäßig wird es nötig sein, die Firmware der ersten Prozessoreinheit 12 zu aktualisieren, um das FPGA 10 an sich ändernde Anforderungen oder Weiterentwicklungen des Ethernet-Protokolls anzupassen. Auch die Firmware der zweiten Prozessoreinheit 14 muss in der Praxis von Zeit zu Zeit aktualisiert werden, um Änderungen im Feldbussystem Rechnung zu tragen.Both the first processor unit 12 as well as the second processor unit 14 are operated with system-specific firmware, in the example shown with firmware for controlling the Ethernet or fieldbus communication. Regularly it will be necessary, the firmware of the first processor unit 12 to upgrade to the FPGA 10 to adapt to changing requirements or further developments of the Ethernet protocol. Also the firmware of the second processor unit 14 must be updated from time to time in practice to accommodate changes in the fieldbus system.

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 12 entwickelt und getestet sein mag, aber die Verschaltung der ersten Prozessoreinheit 12 im FPGA 10 nur ungenügend berücksichtigt, so dass die Kommunikation mit der zweiten Prozessoreinheit 14, deren Firmware nicht aktualisiert wird, nach der Aktualisierung gestört ist. Auch dadurch kann das FPGA 10 unbrauchbar werden.Even if this problem is met by careful documentation or careful examination of the firmware version prior to the update, the result is the same difficulties and dangers arising from the fact that the new firmware for the first programmable processor unit 12 developed and tested, but the interconnection of the first processor unit 12 in the FPGA 10 only insufficiently taken into account, so that the communication with the second processor unit 14 whose firmware is not updated after the upgrade is disturbed. This also allows the FPGA 10 become useless.

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 10 gespeicherten Vergleichskennung verglichen werden kann.The invention addresses these problems in the embodiment shown by a Firmware file format, which includes a system identifier and / or a manufacturer identifier, prior to the update with a corresponding, in the FPGA 10 stored comparison identifier can be compared.

Die Kennung kann beispielsweise eine Gerätekennung für die erste Prozessoreinheit 12 und/oder eine Gerätekennung für die zweite Prozessoreinheit 14 umfassen, welche vor dem Aktualisieren mit einer entsprechenden, im FPGA 10 gespeicherten Vergleichskennung verglichen werden. Auf diese Weise lässt sich beispielsweise verhindern, dass für die erste Prozessoreinheit 12 bestimmte Firmware versehentlich auf die zweite Prozessoreinheit 14 gespielt wird, oder umgekehrt.The identifier may, for example, a device identifier for the first processor unit 12 and / or a device identifier for the second processor unit 14 include, which before updating with a corresponding, in the FPGA 10 stored comparison identifier are compared. In this way, it is possible, for example, to prevent that for the first processor unit 12 certain firmware inadvertently on the second processor unit 14 is played, or vice versa.

Die Kennung kann auch die Schaltungskonfiguration des FPGA 10 einschließlich einiger oder aller Bauelemente des FPGA 10 und ihrer Verschaltung kennzeichnen. Durch einen Vergleich mit einer entsprechenden, im FPGA 10 gespeicherten Vergleichskennung lässt sich sicherstellen, dass die neue Firmware-Datei nicht nur an die erste Prozessoreinheit 12 bzw. zweite Prozessoreinheit 14 angepasst ist, sondern mit dem FPGA insgesamt systemkompatibel ist. Auf diese Weise lassen sich durch Firmware-Aktualisierungen hervorgerufene Fehlfunktionen beim Betrieb des FPGA 10 wirksam ausschließen.The identifier may also reflect the circuit configuration of the FPGA 10 including some or all components of the FPGA 10 and their interconnection. By comparison with a corresponding, in the FPGA 10 saved comparison identifier can be sure that the new firmware file not only to the first processor unit 12 or second processor unit 14 adapted, but with the FPGA is overall system compatible. In this way, firmware updates can cause malfunctions in the operation of the FPGA 10 effectively exclude.

Eine solche Kennung kann weltweit eindeutig sein und vom Hersteller des FPGA 10 zugewiesen werden. Setzt derselbe oder ein anderer Hersteller das FPGA 10 zusammen mit weiteren Komponenten in einem größeren System ein, kann auch diesem größeren System nach dem gleichen Muster bzw. Schema eine eigene Hardware-Kennung zugewiesen werden, welche dann die Vergleichsbasis für eine Überprüfung der Systemkompatibilität bei einer Firmware-Aktualisierung des erweiterten Systems bildet. Auf diese Weise kann einem zusammengesetzten System eine Vergleichskennung zur Firmware-Aktualisierung zugewiesen werden, welche die Schaltungskonfiguration des Gesamtsystems kennzeichnet und im Gesamtsystem abgespeichert ist.Such an identifier can be unique worldwide and from the manufacturer of the FPGA 10 be assigned to. The same or another manufacturer sets the FPGA 10 along with other components in a larger system, this larger system can also be assigned a separate hardware identifier according to the same pattern, which then forms the basis of comparison for system compatibility checking in a firmware update of the enhanced system. In this way, a composite system for the firmware update can be assigned to a composite system, which identifies the circuit configuration of the entire system and stored in the overall system.

Ein auf das FPGA 10 zugeschnittenes Firmware-Fileformat ist beispielhaft und schematisch in der Darstellung der 2 gezeigt. Die Metadaten sind jeweils durch dick umrandete Kästen dargestellt. Die Anzahl und die Länge der unterschiedlichen Firmware-Anteile und ihre genaue Codierung sind in weiten Grenzen frei und richten sich allein nach der Anwendung und der Konfiguration des Zielsystems, beispielsweise des FPGA 10.One on the FPGA 10 Tailored firmware file format is exemplary and schematic in the representation of 2 shown. The metadata are each represented by thick-bordered boxes. The number and length of the different firmware components and their exact coding are free within wide limits and depend solely on the application and configuration of the target system, such as the FPGA 10 ,

Ein erster Block 26 und ein zweiter Block 28 umfassen den Firmware-Typ bzw. eine Beschreibung oder Versionsnummer. In einem dritten Block 30 ist eine Hardware-Kennung codiert. Sie kann die erste Prozessoreinheit 12 und die zweite Prozessoreinheit 14 sowie weitere Systemkomponenten eines FPGA 10 kennzeichnen, eventuell einschließlich der Schaltungskonfiguration. Die Hardware-Kennung in Block 30 kann auch das FPGA 10 insgesamt kennzeichnen. Das Firmware-Fileformat kann darüber hinaus für jede programmierbare Komponente des Systems eine eigene Firmware vorsehen, die gegebenenfalls komprimiert und/oder verschlüsselt sein kann, beispielsweise in Block 34 für die erste programmierbare Prozessoreinheit 12 und in Block 36 für die zweite programmierbare Prozessoreinheit 14. Optional kann die Firmware auch ein Zertifikat des Firmware-Herstellers umfassen, wie in Block 38 gezeigt.A first block 26 and a second block 28 include the firmware type or a description or version number. In a third block 30 is a hardware identifier coded. It can be the first processor unit 12 and the second processor unit 14 as well as other system components of an FPGA 10 possibly including the circuit configuration. The hardware identifier in block 30 can also use the FPGA 10 overall. The firmware file format may also provide for each programmable component of the system its own firmware, which may be compressed and / or encrypted, for example in block 34 for the first programmable processor unit 12 and in block 36 for the second programmable processor unit 14 , Optionally, the firmware may also include a certificate from the firmware manufacturer, as in block 38 shown.

Die Kennung in Block 30 erlaubt einen Vergleich mit einer entsprechenden, in dem FPGA 10 gespeicherten Vergleichskennung zur Überprüfung der Systemkompatibilität. Vorzugsweise ist die Vergleichskennung Teil der so genannten Factory-Programmierung, so dass sie gegen unbeabsichtigte Löschung oder Änderung geschützt ist.The identifier in block 30 allows comparison with a corresponding one in the FPGA 10 stored comparison identifier for checking the system compatibility. Preferably, the comparison identifier is part of the so-called factory programming, so that it is protected against unintentional deletion or modification.

In der gezeigten Ausführungsform ist die Vergleichskennung in einem EEPROM 24 gespeichert. Eine über die erste Schnittstelle 16 oder die zweite Schnittstelle 18 am FPGA 10 empfangene neue Firmware-Datei wird zunächst im Prüfelement 22 zwischengespeichert. Anschließend wird für den Vergleich die Vergleichskennung aus dem nicht-flüchtigen Speicher 24 in das Prüfelement 22 geladen. Durch Vergleich der Firmware-Kennung gegen die Vergleichskennung überprüft das Prüfelement 22 die Systemkompatibilität der neuen Firmware-Datei.In the embodiment shown, the comparison identifier is in an EEPROM 24 saved. One over the first interface 16 or the second interface 18 at the FPGA 10 received new firmware file is first in the test element 22 cached. Subsequently, for the comparison, the comparison identifier from the non-volatile memory 24 in the test element 22 loaded. By comparing the firmware identifier against the comparison identifier, the test element checks 22 the system compatibility of the new firmware file.

Die Kennung in Block 30 kann auch eine Liste mehrerer verschiedener Hardware-Kennungen umfassen, die unterschiedliche Systemkonfigurationen kennzeichnen, für die Firmware geeignet ist. Das Prüfen erfolgt dann beispielsweise durch sukzessiven Vergleich der Hardware-Kennungen mit der im System gespeicherten Vergleichskennung, bis eine Übereinstimmung gefunden wird.The identifier in block 30 may also include a list of several different hardware identifiers that identify different system configurations for which firmware is appropriate. The checking then takes place, for example, by successive comparison of the hardware identifiers with the comparison identifier stored in the system until a match is found.

Alternativ kann das Prüfelement 22 durch sukzessiven Vergleich auch überprüfen, ob die Firmware-Kennung in Block 30 in einer der Vergleichskennung zugeordneten Tabelle oder Liste von Kennungen, welche zu dem FPGA 10 kompatible Firmware-Kennungen umfassen, enthalten ist.Alternatively, the test element 22 by successive comparison also check if the firmware identifier in block 30 in a table associated with the comparison identifier or list of identifiers associated with the FPGA 10 include compatible firmware identifiers.

Erst wenn die Überprüfung in dem Prüfelement 22 eine systemkompatible Firmware anzeigt, wird die neue Firmware-Datei akzeptiert und die erste Prozessoreinheit 12 und/oder die zweite Prozessoreinheit 14 mit der entsprechenden neuen Firmware aktualisiert. Das Löschen der vorhergehenden Firmware-Datei erfolgt dabei nur im Falle des vorherigen Akzeptierens der neuen Firmware-Datei im Prüfelement 22.Only when the review in the test element 22 Displays a system-compatible firmware, the new firmware file is accepted and the first processor unit 12 and / or the second processor unit 14 updated with the corresponding new firmware. The previous firmware file will only be deleted in the case of the previous one Accept the new firmware file in the test item 22 ,

Ergibt das Prüfen der Kennung im Prüfelement 22, dass die neue Firmware-Datei keine bekannte Kennung aufweist oder nicht systemkompatibel ist, wird die neue Firmware-Datei zurückgewiesen. In diesem Fall wird die bisherige Firmware in der ersten Prozessoreinheit 12 und/oder der zweiten Prozessoreinheit 14 nicht durch die neue Firmware-Datei ersetzt. Dadurch wird wirkungsvoll vermieden, dass das System irrtümlicherweise oder absichtlich mit einer nicht systemkompatiblen Firmware aktualisiert wird.Returns the check of the ID in the test element 22 that the new firmware file does not have a known identifier or is not system compatible, the new firmware file will be rejected. In this case, the previous firmware in the first processor unit 12 and / or the second processor unit 14 not replaced by the new firmware file. This effectively prevents the system from being erroneously or intentionally updated with non-system-compatible firmware.

Wird beim Prüfen der Kennung im Prüfelement 22 eine Zeitschranke überschritten, kann der Prüfvorgang abgebrochen und die neue Firmware-Datei zurückgewiesen werden. Alternativ kann das FPGA 10 auch so eingerichtet sein, dass im Fall einer Zeitüberschreibung im Prüfelement 22 die erste Prozessoreinheit 12 und/oder die zweite Prozessoreinheit 14 die Factory-Programmierung aus dem nicht-flüchtigen Speicher 24 lädt.Will when checking the identifier in the test element 22 exceeded a time limit, the test process can be aborted and the new firmware file can be rejected. Alternatively, the FPGA 10 also be set up so that in case of a time override in the test element 22 the first processor unit 12 and / or the second processor unit 14 the factory programming from the non-volatile memory 24 invites.

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 for first processor unit 12
3636
Firmware-Image für zweite Prozessoreinheit 14 Firmware image for second 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)

Verfahren zum Aktualisieren einer Firmware eines Systems (10), welches wenigstens einen programmierbaren Baustein (12, 14) umfasst, mit nachfolgenden Schritten: Empfangen einer neuen Firmware-Datei, welche wenigstens eine einer Quelle der Firmware zugeordnete und/oder eine Schaltungskonfiguration kennzeichnende Kennung (30) umfasst, an dem System (10); Prüfen der Kennung (30) gegen wenigstens eine im System (10) gespeicherte Vergleichskennung, wobei das Prüfen in dem System (10) erfolgt; und Akzeptieren der neuen Firmware-Datei und Ablegen der neuen Firmware-Datei in dem programmierbaren Baustein (12, 14) oder Zurückweisen der neuen Firmware-Datei, in Abhängigkeit von einem Ergebnis des Prüfens.Method for updating a firmware of a system ( 10 ), which has at least one programmable component ( 12 . 14 ), comprising the following steps: receiving a new firmware file which contains at least one identifier assigned to a source of the firmware and / or a circuit configuration ( 30 ), on the system ( 10 ); Checking the ID ( 30 ) against at least one in the system ( 10 stored comparison identifier, wherein the checking in the system ( 10 ) he follows; and accept the new firmware file and place the new firmware file in the programmable device ( 12 . 14 ) or rejecting the new firmware file, depending on a result of the check. Verfahren nach Anspruch 1, bei welchem die Firmware-Datei mehrere Kennungen umfasst und das Prüfen das sukzessive Vergleichen wenigstens einer Teilmenge der mehreren Kennungen mit einer im System gespeicherten Vergleichskennung umfasst.The method of claim 1, wherein the firmware file comprises a plurality of identifiers, and the checking comprises successively comparing at least a subset of the plurality of identifiers with a comparison identifier stored in the system. Verfahren nach Anspruch 1 oder 2, bei welchem das Prüfen der Kennung (30) das Vergleichen der Kennung mit einer Mehrzahl im System (10) gespeicherter Vergleichskennungen umfasst.Method according to Claim 1 or 2, in which the checking of the identifier ( 30 ) comparing the identifier with a plurality in the system ( 10 ) stored comparison identifiers. Verfahren nach einem der vorangehenden Ansprüche mit dem Schritt des Löschens einer vorhergehenden Firmware-Datei aus dem programmierbaren Baustein (12, 14), wobei das Löschen nur im Falle des vorherigen Akzeptierens der neuen Firmware-Datei erfolgt.Method according to one of the preceding claims, comprising the step of deleting a preceding firmware file from the programmable component ( 12 . 14 ), with deletion only in case of previous acceptance of the new firmware file. Verfahren nach einem der vorangehenden Ansprüche, bei welchem die Kennung eine Herstellerkennung und/oder eine Revisionsnummer umfasst.Method according to one of the preceding claims, wherein the identifier comprises a manufacturer identifier and / or a revision number. Verfahren nach einem der vorangehenden Ansprüche, bei welchem vor dem Prüfen der Kennung (30) ein Prüfen des Datenformats der neuen Firmware-Datei erfolgt.Method according to one of the preceding claims, wherein before checking the identifier ( 30 ) the data format of the new firmware file is checked. Verfahren zum Zuweisen einer Vergleichskennung zur Firmware-Aktualisierung an ein zusammengesetztes System mit nachfolgenden Schritten: 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; Zuweisen einer Gesamtvergleichskennung an das Gesamtsystem; und Speichern der zugewiesenen Gesamtvergleichskennung im Gesamtsystem.A method for assigning a comparison identifier for firmware update to a composite system, comprising the steps of: 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, the comparison identifier being associated with a source of firmware and / or featuring a circuit configuration of the individual system; Assigning a total comparison identifier to the overall system; and Save the assigned overall comparison identifier in the overall system. Verfahren nach Anspruch 7, bei welchem die Gesamtvergleichskennung die Schaltungskonfiguration des Gesamtsystems kennzeichnet.The method of claim 7, wherein the overall comparison identifier identifies the circuit configuration of the overall system. Mit einer Firmware aktualisierbares System (10) mit: einer Schnittstelle (16, 18) zum Empfangen einer Firmware-Datei; einem programmierbaren Baustein (12, 14), in welchem die Firmware-Datei ablegbar ist; einem Speicher (24), welcher zum Speichern wenigstens einer Vergleichskennung eingerichtet ist, wobei die Vergleichskennung einer Quelle der Firmware zugeordnet ist und/oder eine Schaltungskonfiguration des Systems (10) kennzeichnet; und einem Prüfelement (22), welches dazu eingerichtet ist, die Vergleichskennung gegen wenigstens eine Kennung (30) der Firmware-Datei zu prüfen.With a firmware updatable system ( 10 ) with: an interface ( 16 . 18 ) for receiving a firmware file; a programmable device ( 12 . 14 ) in which the firmware file can be stored; a memory ( 24 ) arranged to store at least one comparison identifier, the comparison identifier being associated with a source of the firmware and / or a circuit configuration of the system ( 10 ); and a test element ( 22 ), which is set up, the comparison identifier against at least one identifier ( 30 ) to check the firmware file. System (10) nach Anspruch 9 mit wenigstens zwei programmierbaren Bausteinen (12, 14) und einem Speicher (24), welcher zum Speichern einer Gesamtvergleichskennung eingerichtet ist, wobei die Gesamtvergleichskennung eine Schaltungskonfiguration des Systems (10) kennzeichnet.System ( 10 ) according to claim 9 with at least two programmable components ( 12 . 14 ) and a memory ( 24 ) arranged to store a total comparison identifier, the overall comparison identifier being a circuit configuration of the system ( 10 ). Field Programmable Gate Array (10) mit einem System nach einem der Ansprüche 9 oder 10.Field Programmable Gate Array ( 10 ) with a system according to one of claims 9 or 10.
DE201010016257 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 Withdrawn DE102010016257A1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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