DE102019106796A1 - Verfahren und System zur unterbrechungsfreien Verteilung und/oder Änderung von Software in vernetzten Steuereinrichtungen - Google Patents

Verfahren und System zur unterbrechungsfreien Verteilung und/oder Änderung von Software in vernetzten Steuereinrichtungen Download PDF

Info

Publication number
DE102019106796A1
DE102019106796A1 DE102019106796.0A DE102019106796A DE102019106796A1 DE 102019106796 A1 DE102019106796 A1 DE 102019106796A1 DE 102019106796 A DE102019106796 A DE 102019106796A DE 102019106796 A1 DE102019106796 A1 DE 102019106796A1
Authority
DE
Germany
Prior art keywords
software
control device
memory
data
volatile
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.)
Pending
Application number
DE102019106796.0A
Other languages
English (en)
Inventor
Philipp Jungklaß
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.)
IAV GmbH Ingenieurgesellschaft Auto und Verkehr
Original Assignee
IAV GmbH Ingenieurgesellschaft Auto und Verkehr
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 IAV GmbH Ingenieurgesellschaft Auto und Verkehr filed Critical IAV GmbH Ingenieurgesellschaft Auto und Verkehr
Priority to DE102019106796.0A priority Critical patent/DE102019106796A1/de
Publication of DE102019106796A1 publication Critical patent/DE102019106796A1/de
Pending 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
    • G06F8/656Updates while running

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

Das erfindungsgemäße Verfahren ermöglicht die Verteilung und/oder Änderung der Software von Steuereinrichtungen (200) im laufenden Betrieb und ohne Unterbrechung der Prozesse, Aufgaben und Funktionen, die die Steuereinrichtung (200) ausführt. Durch effektives Speichermanagement werden auf betroffenen Speichern (211, 214, 221, 224, 250, 260) Reservespeicherbereiche (213B, 216B, 223B, 226B, 255, 256, 265, 266) vorgehalten, auf welche Daten der geänderten Software parallel zum Betrieb der Steuereinrichtung (200) übertragen werden. Die benötigte Zeit für eine Softwareaktualisierung solcherart ist abhängig von der Hardwarearchitektur der betreffenden Steuereinrichtung (200), insbesondere von dem Verhältnis der Anzahl der Recheneinheiten (210, 220) und der Reservespeicherbereiche (213B, 216B, 223B, 226B, 255, 256, 265, 266). Je mehr Reservespeicher vorgehalten werden, umso mehr Recheneinheiten (210, 220) der Steuereinrichtung (200) können simultan aktualisiert werden, jedoch muss auch entsprechend mehr Speicherplatz zur Verfügung gestellt werden, der im Fall der Softwareaktualisierung Verwendung findet. Unabhängig davon wird durch das erfindungsgemäße Verfahren unter Einsatz leicht erhöhter Speicher- und Rechenkapazität eine Möglichkeit geschaffen, die Software von Steuereinrichtungen (200) zu ändern, ohne einen Bootloader zu verwenden oder den laufenden Betrieb zu beeinträchtigen.

Description

  • Technisches Gebiet
  • Die vorliegende Erfindung betrifft ein Verfahren zur unterbrechungsfreien Verteilung und/oder Änderung der Software einer vernetzten Steuereinrichtung, insbesondere von Mikrocontrollern gemäß dem Patentanspruch 1 sowie ein System zur Ausführung des Verfahrens gemäß dem Patentanspruch 8.
  • Stand der Technik
  • Steuereinrichtungen oder Steuergeräte sind in nahezu allen technischen Systemen und Vorrichtungen vorhanden. Sie dienen dabei der Steuerung und Regelung technischer Anwendungen. Die Steuereinrichtungen weisen in ihrer grundlegenden Struktur einen allgemeinen Aufbau auf, der aus Mikrocontrollern oder Prozessoren besteht, welche Recheneinheiten umfassen wie Prozessorkerne, die für die Berechnung und Ausführung von Aufgaben und Funktionen verantwortlich sind. Dafür erforderlicher Programmcode und Daten sind in flüchtigen Speichern, wie RAM-Speicher und nichtflüchtigen Speichern, wie Flashspeicher hinterlegt, die mit den Recheneinheiten über ein Kommunikationssystem verbunden sind. Über das Kommunikationssystem oder auch den Kommunikationskanal können die Recheneinheiten lesend und schreibend auf die Speicher zugreifen und somit Daten und Informationen austauschen. Typischerweise umfassen beschriebene Steuereinrichtungen weiterhin eine oder mehrere Informations- und Datenaustauschschnittstellen, die ebenfalls an das Kommunikationssystem angebunden sind und den Daten- und Informationsaustausch zu externen Systemen ermöglichen. Besteht ein Erfordernis, den vorhandenen Programmcode und/oder die Daten oder mit anderen Worten die Software einer Steuereinrichtung zu ändern, muss diese ausgeschaltet, mit einem Bootloader neugestartet, die Speicher mit der geänderten Software beschrieben und gegebenenfalls wiederholt neugestartet werden. Je nach Leistung und Rechengeschwindigkeit der Steuereinrichtung, Art und Rate der Datenübertragung sowie Komplexität und Architektur des Systems ist der Betrieb der Steuereinrichtung daher für eine bestimmte Zeitspanne unterbrochen. Aus Aspekten der Sicherheit, Echtzeitfähigkeit, aber auch Komfort und weiteren Anforderungen ist diese Zeitspanne so gering wie möglich zu halten oder für einige Anwendungen sogar komplett zu vermeiden. Daher stehen diese Anforderungen im Konflikt mit permanenter Qualitätskontrolle sowie Produkt- oder Prozessoptimierung, sodass ein Erfordernis zur Änderung der Software einer Steuereinrichtung, bezogen auf ihre Einsatzzeit und ihren Arbeitsumfang, häufig auftreten kann. Um diesen Anforderungen gerecht zu werden, existieren im Stand der Technik Ansätze, um die Zeitspanne der Unterbrechung von Steuereinrichtungen während der Änderung ihrer Software zu minimieren.
    Im Wesentlichen stellt eine Kombination aus effizientem Speichermanagement sowie optimierter Datenübertragung den Lösungsansatz für die beschriebenen Anforderungen dar. Die Verwendung von vorgehaltenen Speichern als Reserve in Verbindung mit mobiler Datenübertragung hat sich hierbei im aktuellen Stand der Technik etabliert.
    In der Patentschrift US2018196656A1 wird ein Verfahren zum Softwareupdate von Steuereinrichtungen eines Kraftfahrzeuges beschrieben, wobei die Speicher der Steuereinrichtung in primäre und sekundäre Speicheranteile aufgeteilt sind. Hierbei stellen die primären Speicheranteile aktive Speicher und die sekundären Speicheranteile inaktive Speicher dar. Die Steuereinrichtung wird mit einer Software betrieben, die in den aktiven Speichern gelagert ist. Im Fall des Erfordernisses einer Softwareänderung kann die erforderliche Software über eine mobile Datenverbindung bzw. OTA („over the air“) auf die inaktiven Speicher übertragen werden. Für die Updateinstallation muss das Steuergerät dann neugestartet werden, wobei die aktuelle Software von den aktiven Speichern gelöscht und die geänderte Software von den inaktiven Speichern in die aktiven Speicher geschrieben wird. Somit ist der Schritt der Datenübertragung von der Zeitspanne der Unterbrechung der Steuereinrichtung entkoppelt. Dennoch besteht die Notwendigkeit, die Steuereinrichtung neu zu starten, wobei das Kraftfahrzeug einen definierten Zustand annehmen muss. Typischerweise bezieht sich dieser Zustand auf die Zündungsstellung des Motorsteuergerätes. Kraftfahrzeuge werden anwendungsgemäß diskontinuierlich betrieben, sodass der Neustart der Steuereinrichtung beispielsweise nach Abstellen des Kraftfahrzeuges erfolgen kann und somit lediglich bedingt dessen Betrieb beeinträchtigt. Nachteilig ist weiterhin, dass der gesamte notwendige Speicher doppelt verfügbar sein muss, um ein Softwareupdate nach solcherart durchführen zu können. Die beschriebene Kombination aus OTA-Datenübertragung und Reservespeichern ist insbesondere für stationäre Anwendungen vorteilhaft, welche in der Art und Weise diskontinuierlich betrieben werden, dass ein Neustart mittels Bootloader oder eine längere Unterbrechung des Betriebes der Steuereinrichtung keinen für den Endanwender wahrnehmbaren Einfluss hat, wie zum Beispiel bei lot-Anwendungen („internet of things“). So ist in der Patentschrift US2018046452A1 ein Verfahren zur OTA-Softwareaktualisierung für eine Steuereinrichtung eines Garagentoröffners offenbart, wobei ebenfalls zwei identische Speicher für die Software bereitgestellt sind. Hierbei wird einer als primärer/aktiver Speicher und der andere als sekundärer/inaktiver Speicher behandelt, sodass eine aktuelle Software auf dem aktiven Speicher gelagert ist. Eine geänderte Software kann nunmehr auf den inaktiven Speicher über eine OTA-Anwendung übertragen werden. Während eines betriebsbedingten Neustarts der Steuereinrichtung startet ein Bootloader und die Steuereinrichtung startet mit der Software vom inaktiven Speicher, wobei der aktive Speicher zum inaktiven Speicher wird und der inaktive Speicher zum aktiven Speicher wird.
  • Die dargestellten Prinzipien zur Aktualisierung der Software von Steuereinrichtungen eignen sich jedoch vorzugsweise nur für Systeme, die diskontinuierlich betrieben werden und bei denen ein Neustart oder eine zeitlich begrenzte Unterbrechung des Betriebs keine nachteilige Auswirkung auf die technische Anwendung aufweist. Im Gegensatz dazu existieren Anwendungen mit hohen Anforderungen an Sicherheit, Echtzeitfähigkeit und kontinuierlichen Betrieb. Beispielsweise kann eine Steuereinrichtung für ein Verkehrsleitsystem die Anforderung aufweisen, kontinuierlich über die gesamte Lebensdauer des Systems in Betrieb zu sein. Eine Unterbrechung des Betriebs aufgrund einer Softwareaktualisierung ist somit nicht akzeptabel, dieses Problem wird jedoch durch den aktuellen Stand der Technik nicht gelöst.
  • Aufgabe der Erfindung
  • Die Aufgabe der vorliegenden Erfindung besteht daher in der Bereitstellung eines Verfahrens zur unterbrechungsfreien Verteilung und/oder Änderung von Software einer Steuereinrichtung, insbesondere von Mikrocontrollern, wobei die Verwendung eines Bootloaders oder ein Neustart der Steuereinrichtung entfällt und wobei durch effizientes Speichermanagement die Echtzeitanforderung und somit die funktionale Sicherheit gewährleistet wird sowie eines Systems zur Anwendung des Verfahrens.
  • Lösung der Aufgabe
  • Die Aufgabe wird durch ein Verfahren gemäß dem Patentanspruch 1 und ein System gemäß dem Patentanspruch 8 zur unterbrechungsfreien Softwareaktualisierung einer Steuereinrichtung gelöst.
  • Darstellung und Vorteile der Erfindung
  • Die vorliegende Erfindung offenbart ein Verfahren zur unterbrechungsfreien Verteilung und/oder Änderung von Software, oder mit anderen Worten zur Softwareaktualisierung, in vernetzten Steuereinrichtungen und ein System zur Ausführung des Verfahrens. Die Intention des erfindungsgemäßen Verfahrens besteht in der Veränderung von Programmen und Daten von Steuereinrichtungen, während diese im Betrieb sind und ohne, dass eine Beeinflussung oder Unterbrechung des Betriebes erfolgt. Dies wird durch ein effizientes Speichermanagement erreicht, wobei in jedem Speicherelement der Steuereinrichtung Reservespeicherbereiche angeordnet sind, die parallel zum laufenden Betrieb der Steuereinrichtung beschrieben werden können. Im Grunde genommen wird durch das erfindungsgemäße Verfahren Rechen- und Speicherkapazität zu Ungunsten der maximalen Speicherfähigkeit, jedoch zu Gunsten von unterbrechungsfreiem Dauerbetrieb und funktionaler Sicherheit von Steuereinrichtungen vorgehalten. Das erfindungsgemäße Verfahren kann auf sämtliche Systeme angewendet werden, die einen wie nachfolgend beschriebenen prinzipiellen Aufbau aufweisen. Es ist dabei jedoch nicht ausschließlich auf die in der Beschreibung aufgeführten Systeme und Ausführungsbeispiele beschränkt. Zum besseren Verständnis und als Unterstützung zur Beschreibung wird sich zunächst auf folgende Abbildungen bezogen:
    • 1: System zur Anwendung des erfindungsgemäßen Verfahrens zur unterbrechungsfreien Softwareaktualisierung in vernetzten Steuereinrichtungen;
    • 2: allgemeine Ausführung des Speichermanagements einer Steuereinrichtung zur Ausführung des erfindungsgemäßen Verfahrens.
  • Das erfindungsgemäße Verfahren bezieht sich auf Steuereinrichtungen, die in einer uneingeschränkten Anzahl und Art an Anwendungen eingesetzt werden können. Die Art der Anwendung wird dabei durch die auf der jeweiligen Steuereinrichtung ausgeführten Software bestimmt, die durch den entsprechenden Programmierer oder Softwarearchitekt eingerichtet ist. Die Art der Anwendung und/oder der Aufbau und Inhalt der auf der Steuereinrichtung ausgeführten Software beeinflusst jedoch das offenbarte erfindungsgemäße Verfahren nicht. Vielmehr soll hierdurch das nahezu uneingeschränkte Anwendungsgebiet des erfindungsgemäßen Verfahrens verdeutlicht werden. Bezugnehmend auf das in 1 dargestellte System zur Anwendung des erfindungsgemäßen Verfahrens ist der potentielle Einsatzbereich veranschaulicht. In abstrakter Betrachtungsweise beinhaltet das System (100) drei unterschiedliche Arten von Komponenten. So ist das Vorhandensein von mindestens einer externen Plattform als erste Art der Komponenten erforderlich, umfassend, jedoch nicht beschränkt auf mobile Rechensysteme (110), stationäre Server (120) oder digitale Sammelspeicher (130). Die externen Plattformen dienen vorrangig der zentralen Verwaltung der zugehörigen Steuereinrichtungen, insbesondere der Speicherung, Bereitstellung und Verteilung von Software. Die zweite Art von Komponenten bezieht sich auf die Endanwendungen, in welchen die Steuereinrichtungen die zentrale Steuerung und Regelung sämtlicher oder anteiliger Aufgaben und Funktionen innehaben. Endanwendungen können beispielsweise jegliche Art von Kraftfahrzeugen (160), mobilen Endgeräten (170) oder stationären Endgeräten (180) sein und/oder jede weitere technische Anwendung, bei welchen Steuereinrichtungen Steuer- und/oder Regelungs- und/oder Berechnungsaufgaben und/oder jede weitere Art von Aufgaben übernehmen. Die dritte Art von Komponenten umfasst sämtliche Vorrichtungen, welche in der Art konfiguriert sind, einen Daten- und/oder Informationsaustausch zwischen externen Plattformen und Steuereinrichtungen herzustellen und/oder aufrecht zu erhalten. Dazu zählen beispielsweise stationäre (150) und mobile (140) Datenübertragungseinheiten. Stationäre Datenübertragungseinheiten (150) können Sender von Radiowellen, lokalen oder drahtlosen Netzwerken, Bluetooth oder jede andere Art von Vorrichtungen zum Senden und Empfangen von Daten und Informationen sein. Mobile Datenübertragungseinheiten (140) erfüllen die gleichen Funktionen wie stationäre Datenübertragungseinheiten (150), stehen jedoch mit zusätzlichen Vorrichtungen in Verbindung, sodass diese ortsveränderlich platziert und bewegt werden können. Dabei handelt es sich beispielsweise um Satelliten, Kraftfahrzeuge, Flugzeuge, Schiffe, Drohnen oder jegliche weiteren ausführbaren technischen Einrichtungen. Sämtliche Komponenten sind untereinander oder mit einer zielgerichteten Datenverbindung miteinander vernetzt. Als Beispiel für mögliche Vernetzungen sind gestrichelte Linienverbindungen zwischen den Komponenten dargestellt (190).
    In einer Ausführungsform ist eine Software auf einem stationären Server (120) gelagert und eine Steuereinrichtung einer stationären Endanwendung (180) benötigt eine Softwareaktualisierung. Die dafür erforderlichen Daten werden nunmehr über Leitungen zu einer stationären Datenübertragungseinheit (150), beispielweise einem Sendemast übertragen, von diesem drahtlos an eine mobile Datenübertragungseinheit (140) weitergeleitet, beispielsweise ein Satellit, sowie von dieser an die stationäre Endanwendung (180) gesendet. In der Steuereinrichtung der Endanwendung (180) wird nunmehr der erfindungsgemäße Softwareaktualisierungsprozess ausgeführt.
    In einer weiteren Ausführungsform wird zu einem gegebenen Zeitpunkt ein Softwareupdate von einem zentralen Server (120) aus auf einen digitalen Sammelspeicher (130), beispielsweise ein Cloudspeicher für Mobilfunkempfangsgeräte eines bestimmten Mobilfunkanbieters, geladen und zu einem späteren Zeitpunkt, beispielsweise nach einer Freigabe der Software, von diesem über die vernetzten Datenverbindungen (190) auf die mobilen Endgeräte (170), beispielsweise Mobiltelefone, Tablets oder sonstige mobile Rechner übertragen sowie der Softwareaktualisierungsprozess in den Steuereinrichtungen ausgeführt.
    In einer weiteren Ausführungsform wird eine neue Softwareversion eines Kraftfahrzeugherstellers ausgerollt und von einem zentralen Server (120) über die vernetzten Datenverbindungen (190) auf sämtliche erforderlichen Kraftfahrzeugsteuergeräte (160) übertragen, ohne, dass diese Kraftfahrzeuge eine Werkstatt oder sonstige Einrichtung des Herstellers zum Zweck einer manuellen Softwareaktualisierung aufsuchen müssen.
    In einer weiteren Ausführungsform, wobei während der Entwicklung von Kraftfahrzeugen zu Testzwecken verschiedene Softwareversionen unmittelbar aufeinanderfolgend getestet oder verglichen werden müssen und sich beispielsweise Zustände oder Temperaturen von Komponenten des Kraftfahrzeuges (160) nicht ändern sollen wird die Softwareversion durch ein mobiles Rechensystem (110), wie einen Laptop, über eine lokale Datenverbindung vom Beifahrer, der sich im in Betrieb befindlichen Kraftfahrzeug (160) befindet, an die Steuereinrichtung des Kraftfahrzeuges (160) übertragen.
    Generell werden durch das erfindungsgemäße Verfahren jegliche Systeme unterstützt, die Software auf jeder Art von externen Plattformen speichern und über jede Art von Datenverbindungen auf jede Art von Endanwendungen übertragen, sofern die betroffenen Steuereinrichtungen mindestens den folgend beschriebenen prinzipiellen Aufbau aufweisen.
  • Der Kern des Systems (100) zur Ausführung des erfindungsgemäßen Verfahrens besteht, bezugnehmend auf 2, in dem erfindungsgemäßen Speichermanagement der Steuereinrichtungen (200) der Endanwendungen. Eine Steuereinrichtung (200) zur Ausführung des erfindungsgemäßen Verfahrens umfasst wenigstens eine Recheneinheit (210, 220).
    In einer Ausführungsform sind die Steuereinrichtungen (200) Steuergeräte und/oder Mikrocontroller, sowie die Recheneinheiten (210, 220) Prozessoren und/oder Prozessorkerne. Eine detaillierte Unterscheidung zwischen Steuergerät und Mikrocontroller sowie zwischen Prozessor und Prozessorkernen ist zur Ausführung des erfindungsgemäßen Verfahrens nicht notwendig. Viel mehr variieren die Begrifflichkeiten mit der Hardwarearchitektur und/oder die Grenzen in Aufbau und Definition sind fließend. Die Recheneinheiten (210, 220) sind so konfiguriert, dass sie Aufgaben und Funktionen ausführen sowie Berechnungen durchführen und somit die Funktionalität der Steuereinrichtung (200) gewährleisten. Aufgabenteile oder - pakete, Berechnungen oder das Ausführen von Funktionen oder mit anderen Worten sogenannte „Tasks“ werden in den Recheneinheiten (210, 220) getaktet bearbeitet und in unterschiedlichen Intervallen wiederholt.
    In einer Ausführungsform entsprechen die Intervalle 10ms, 100ms oder 1000ms, sodass einige Tasks alle 10ms, andere alle 100ms und wieder andere alle 1000ms ausgeführt werden. Unterschiedliche Tasks können hierbei priorisiert werden. Tasks, welche hohen Anforderungen genügen müssen, wie beispielsweise funktionaler Sicherheit und/oder Echtzeitfähigkeit oder welche eine hohe Dynamik in ihren Ausgabewerten aufweisen, sind typischerweise höher getaktet und werden somit öfter ausgeführt als Tasks, welche eine niedrigere Priorität zugeordnet bekommen haben oder eine niedrige Dynamik in ihren Ausgabewerten aufweisen. Weiterhin ist jede Aufteilung der Intervalle und jede andere Art der Zuweisung der Tasks möglich.
    Die Steuereinrichtung (200) umfasst mindestens einen flüchtigen (211, 212, 214, 215, 221, 222, 224, 225, 260) sowie mindestens einen nichtflüchtigen Speicher (250), wobei die Speicher als lokale oder globale Speicher angeordnet sein können. Typischerweise sind lokale flüchtige Speicher (211, 212, 214, 215, 221, 222, 224, 225) unmittelbar an den Recheneinheiten (210, 220) angeordnet, sodass diese einen direkten und somit in Bezug auf die Zugriffsgeschwindigkeit schnellsten Zugriff auf die lokalen Speicher innehaben. Globale flüchtige (260) und globale nichtflüchtige Speicher (250) sind über ein Kommunikationsnetzwerk (280) mit den Recheneinheiten (210, 220), sämtlichen Speichern und weiteren Komponenten der Steuereinrichtung (200) verbunden.
    In einer Ausführungsform sind die lokalen flüchtigen Speicher (211, 212, 214, 215, 221, 222, 224, 225) in den jeweiligen Recheneinheiten (210, 220) zugeordnete lokale Daten-RAM (211, 221), lokale Programm-RAM (214, 224), lokale Daten-Caches (212, 222) sowie lokale Programm-Caches (215, 225) unterteilt. So kann beispielsweise eine erste Recheneinheit (210) unmittelbar auf ihren eigenen Daten-RAM (211), Programm-RAM (214) sowie auf den DatenCache (212) und den Programm-Cache (215) zugreifen. Der Zugriff der ersten Recheneinheit (210) auf globale Speicher (250, 260) sowie die lokalen flüchtigen Speicher (221, 222, 224, 225) einer weiteren Recheneinheit (220) erfolgt nunmehr über das Kommunikationssystem (280).
    In einer weiteren Ausführungsform sind globale nichtflüchtige Speicher Festspeicher, wie FlashSpeicher oder EEPROM-Speicher. Generell ist jedoch jede Art von nichtflüchtigen Speichern anwendbar. In einer weiteren Ausführungsform ist das Kommunikationssystem ein Bussystem. Jede weitere Art von Kommunikationssystemen, welche einen Daten- und Informationsaustausch zwischen Recheneinheiten (210, 220) und globalen Speichern (250, 260) erlaubt, kann hierbei angewendet werden.
    Die Steuereinrichtung (200) umfasst weiterhin mindestens eine Informations- und Datenaustauschschnittstelle (270), die so konfiguriert ist, Informationen und Daten zu externen Plattformen (110, 120, 130) zu senden und von diesen zu empfangen.
    Durch das erfindungsgemäße Speichermanagement sind nunmehr die lokalen flüchtigen Speicher, wie Daten- und Programm-RAM (211, 214, 221, 224) vorteilhaft in mindestens zwei Speicherbereiche unterteilt. Wenigstens je ein Speicherbereich der lokalen flüchtigen Speicher ist der aktuellen Software zugeordnet und gilt als aktiver Speicherbereich der lokalen flüchtigen Speicher (213A, 216A, 223A, 226A). Wenigstens je ein weiterer Speicherbereich der lokalen flüchtigen Speicher wird als inaktiver Speicherbereich der lokalen flüchtigen Speicher (213B, 216B, 223B, 226B) behandelt. Die globalen flüchtigen und nichtflüchtigen Speicher (250, 260) sind in mindestens einen Speicherbereich für jede Recheneinheit, die die aktiven Speicherbereiche der globalen Speicher (251, 252, 261, 262) darstellen, und mindestens je einen zusätzlichen Speicherbereich, die die inaktiven Speicherbereiche der globalen Speicher (255, 256, 265, 266) darstellen, unterteilt. Inaktive Speicherbereiche bilden die Reservespeicherbereiche, die im erfindungsgemäßen Verfahren dazu verwendet werden, um eine unterbrechungsfreie Softwareaktualisierung der Steuereinrichtung (200) durchzuführen. Zu Beginn des erfindungsgemäßen Verfahrens steht eine Software auf einer externen Plattform zur Verfügung, die zur Software, mit der eine Steuereinrichtung einer Endanwendung betrieben wird, unterschiedlich ist und/oder es besteht ein Erfordernis, die aktuelle Software einer Steuereinrichtung zu ändern oder diese auf der Steuereinrichtung zu installieren. Hierfür ist die Steuereinrichtung in der Lage, über ihre Informations- und Datenaustauschschnittstelle Kontakt zu der externen Plattform aufzunehmen und/oder zu halten sowie Informationen bezüglich einer Anforderung zur Softwareaktualisierung mit dieser auszutauschen. In einer Ausführungsform sendet die externe Plattform Informationen bezüglich des Vorhandenseins einer neuen Version der Software an die Steuereinrichtung. Die Steuereinrichtung startet aufgrund dessen einen erfindungsgemäßen Softwareaktualisierungsprozess. In einer weiteren vorteilhaften Ausführung ist ein Abfragevorgang im Programmcode der Recheneinheiten der Steuereinrichtung implementiert, sodass die Steuereinrichtung zyklisch über die Informations- und Datenaustauschschnittstellen die externe Plattform bezüglich des Vorhandenseins einer Software und/oder einer Anforderung zur Änderung der Software abfragt, sodass die Steuereinrichtung bei positiver Antwort den erfindungsgemäßen Softwareaktualisierungsprozess startet. In einer weiteren erfindungsgemäß vorteilhaften Ausführung ist der erfindungsgemäße Softwareaktualisierungsprozess im Programmcode der Recheneinheiten implementiert und läuft kontinuierlich und parallel zum laufenden Betrieb der Steuereinrichtung ab. Wenn der erfindungsgemäße Softwareaktualisierungsprozess gestartet ist, werden Einheiten bestimmt, bei denen die Softwareaktualisierung noch aussteht. Diese Einheiten umfassen Recheneinheiten sowie lokale und/oder globale Speicherbereiche. Je nach Aufbau der Steuereinrichtung des erfindungsgemäßen Systems, wobei die Steuereinrichtung mehr als eine Recheneinheit umfasst, können unter Umständen nicht alle Recheneinheiten simultan eine Änderung der Software erfahren. Dementsprechend ist es erforderlich, zu Beginn des erfindungsgemäßen Softwareaktualisierungsprozesses oder jeweils nach vollständiger Aktualisierung der Software einer Recheneinheit jene Recheneinheiten zu bestimmen, die dem Softwareaktualisierungsprozess noch ausstehend sind. Während einer Softwareaktualisierung werden lokale und globale Speicher mit Daten beschrieben. Aufgrund der Arbeitsweise von Recheneinheiten, wobei verschiedene Aufgaben und Aufgabenpakete in unterschiedlichen Takten wiederholt werden, sowie wegen begrenzter Speicherkapazitäten können Daten oder Datenpakete häufig nur anteilig oder blockweise geschrieben werden. In dem Fall läuft der erfindungsgemäße Softwareaktualisierungsprozess in Schleifen wiederholt ab. Bei jedem Durchlauf ist daher zu überprüfen, welcher Rest an zu übertragenden Daten noch besteht, sodass in diesem Schritt der Bestimmung der Einheiten, auf welche eine Softwareaktualisierung angewendet werden soll, die entsprechenden Speicher getestet werden. In einer Ausführungsform erfolgt die Bestimmung der Einheiten, auf welche eine Softwareaktualisierung angewendet werden soll durch einen Abgleich der Softwareversionen zwischen den Einheiten und der Software, die auf der externen Plattform bereitsteht. In einer weiteren Ausführungsform erfolgt die Bestimmung durch einen Checksummenabgleich, wobei die Software auf den Speichern mit der Software auf der externen Plattform verglichen wird oder in die Speicher geschriebene Daten auf Vollständigkeit überprüft werden. Je nach Bestimmung der Einheiten werden durch die Steuereinrichtung Daten von der externen Plattform angefordert. Die Datenanforderung kann hierbei aus einer Statusinformation, einem Zwischenstand oder aus dem Ergebnis des Checksummenabgleiches bestehen. Jede weitere Information, welche durch die externe Plattform nach solcherart interpretiert werden kann, um erforderliche Daten zu senden, kann angewendet werden. In einer möglichen Ausführungsform sendet die externe Plattform ihre Daten kontinuierlich, wobei eine Datenanforderung durch die Steuereinrichtung entfällt. Die externe Plattform überträgt nunmehr entsprechende Daten über die Datenverbindungen und die Informations- und Datenaustauschschnittstellen auf die Steuereinrichtung. In einer Ausführungsform werden die Daten über das Kommunikationsnetzwerk direkt in die Zielspeicher geschrieben. In einer weiteren Ausführungsform werden die Daten zunächst in einem flüchtigen Empfangsspeicher empfangen und anschließend von diesem ausgehend durch das Kommunikationsnetzwerk verteilt. Erfindungsgemäß vorteilhaft wird im Softwareaktualisierungsprozess zwischen der Aktualisierung von flüchtigen und nichtflüchtigen Speichern unterschieden. Das Beschreiben der flüchtigen Speicher kann bedingt durch die Funktionsweise aktueller Recheneinheiten, welche in Steuereinrichtungen des erfindungsgemäßen Systems zur Anwendung kommen, in beliebig viele Datenpakete unterteilt werden oder zu schreibende Datenpakete können beliebig klein sein. Erfindungsgemäß vorteilhaft wird in die flüchtigen Speicher der Steuereinrichtung daher nur dann geschrieben, wenn sich die Steuereinrichtung im Leerlauf befindet. Als Leerlauf gilt der Zustand, in dem eine Steuereinrichtung keine Aufgabe oder Funktion bearbeitet. Sie ergibt sich bspw. in den Recheneinheiten aufgrund der unterschiedlichen Intervalle, in denen Aufgaben ausgeführt werden, insbesondere in den freien Zeitabschnitt zwischen zwei Intervallen. Ebenso kann sich eine Steuereinheit aufgrund geringer Auslastung im Leerlauf befinden oder Leerlaufzeiten können im Programmcode vorgesehen sein. Befindet sich eine Steuereinrichtung zu einem Zeitpunkt nicht im Leerlauf, werden vorteilhaft keine Daten für den Softwareaktualisierungsprozess geschrieben und die Steuereinrichtung ist in normalem Betrieb mit der aktuellen Software, die in den aktiven Speichern gelagert ist. Erfindungsgemäß vorteilhaft werden die Daten für den Softwareaktualisierungsprozess lediglich im Leerlauf der Steuereinrichtung sowie ausschließlich in die Reservespeicherbereiche geschrieben, während die Steuereinrichtung zeitgleich mit den aktiven Speicherbereichen in Betrieb ist. Dieser Schreibvorgang ist zeitlich unbegrenzt, sodass erfindungsgemäß vorteilhaft der Betrieb der Steuereinrichtung durch die Aktualisierung unbeeinträchtigt bleibt. In einer alternativen Ausführungsform ist im Programmcode der Recheneinheiten Rechenzeit für die Aktualisierung der flüchtigen Speicherbereiche vorgesehen. Die erforderliche Zeit für die Aktualisierung der flüchtigen Speicherbereiche ist somit in vorteilhafter Art und Weise bestimmbar. Jedoch wird hierbei Rechenkapazität von der Recheneinheit vorgehalten, welche nur während einer Softwareaktualisierung effektiv genutzt werden kann.
    Nichtflüchtige Speicher sind Festspeicher, die funktionsbedingt ausschließlich blockweise beschrieben werden können, wobei keine Unterbrechung vorliegen darf. Mit anderen Worten muss das blockweise Schreiben von Daten in nichtflüchtige Speicher innerhalb der dafür vorgesehenen Intervalle in der Recheneinheit geschehen. Aus diesem Grund wird erfindungsgemäß Rechenzeit für die Aktualisierung nichtflüchtiger Speicher vorgehalten. Dadurch wird zwar Rechenkapazität für den Softwareaktualisierungsprozess reserviert, erfindungsgemäß vorteilhaft wird der laufende Betrieb der jeweiligen Recheneinheit und somit der Steuereinrichtung jedoch nicht unterbrochen. Zur Aktualisierung der nichtflüchtigen Speicher werden die erforderlichen Daten erfindungsgemäß vorteilhaft in die Reservespeicherbereiche der nichtflüchtigen Speicher geschrieben.
  • In einer vorteilhaften Ausführungsform läuft das Beschreiben der flüchtigen und nichtflüchtigen Speicher parallel ab. In einer alternativen Ausführungsform ist das Beschreiben von flüchtigen und nichtflüchtigen Speichern gestaffelt, sodass jede beliebige Reihenfolge ausgeführt werden kann. Nach jedem Schreibvorgang kann überprüft werden, ob die zu schreibenden Daten vollständig in die entsprechenden Reservespeicherbereiche übertragen sind. Im Fall der Vollständigkeit der Daten werden diese auf Fehler überprüft. In einer Ausführungsform wird die Vollständigkeit und/oder die Fehlerfreiheit des Schreibvorgangs durch Abgleich von Checksummen getestet. Jede andere Art und Weise, Vollständigkeit und Fehlerfreiheit von in Speicher geschriebenen Daten zu überprüfen, kann hierbei Anwendung finden. Wenn ein Fehler detektiert wird, wird eine Fehlermeldung über die Informations- und Datenaustauschschnittstelle an die externe Plattform gesendet. Der erfindungsgemäße Softwareaktualisierungsprozess kann hierbei mit erneuter Datenübertragung wiederholt durchlaufen werden. Somit werden zufällig auftretende Fehler kompensiert. Sollte ein systematischer Fehler vorliegen, kann eine Anzahl definiert werden, die der Softwareaktualisierungsprozess in einem Fehlerfall wiederholen darf. In einer Ausführungsform ist diese Anzahl auf drei Durchgänge für den selben Fehlerfall festgelegt. Alternativ kann jede Anzahl an Wiederholdurchläufen angewendet werden. Dabei ist jedoch zu beachten, dass der Softwareaktualisierungsprozess mitunter Rechenkapazität der Steuereinrichtung vorhält und somit deren Rechenleistung beeinträchtigen kann. Mit dem Überschreiten der festgelegten Anzahl an Fehlerfällen kann der Softwareaktualisierungsprozess abgebrochen werden und gegebenenfalls eine abschließende Statusinformation als Fehlerbericht an die externe Plattform gesendet werden. In vorteilhafter Art und Weise ist die Steuereinrichtung im Fehlerfall des Softwareaktualisierungsprozesses ununterbrochen in Betrieb mit der vorherigen Software aus den aktiven Speichern. Bei Fehlerfreiheit wird nunmehr überprüft, ob sämtliche geforderten Einheiten aktualisiert sind. Daher wird bei noch ausstehender Softwareaktualisierung von weiteren Einheiten der erfindungsgemäße Softwareaktualisierungsprozess mit der Bestimmung entsprechender Einheiten wiederholt. Die Einheiten beziehen sich hierbei insbesondere auf Daten und Datenpakete für Recheneinheiten, die im aktuellen Durchlauf des Softwareaktualisierungsprozesses aktualisiert werden. Sind die vorhandenen Reservespeicherbereiche in den flüchtigen und nichtflüchtigen Speichern vollständig beschrieben, sodass die aktualisierte Software auf diesen Speichern ausgeführt werden kann, erfolgt die Speicherseitenumschaltung. Hierbei werden zu einem Zeitpunkt die aktiven Speicherbereiche sämtlicher Speicher, für welche die Software aktualisiert wurde, auf inaktiv und die neu beschriebenen Reservespeicherbereiche auf aktiv geschaltet. Somit greifen die Recheneinheiten nunmehr auf die Speicherbereiche mit der aktualisierten Software zu. Zuletzt werden durch die Recheneinheiten in den zuvor verwendeten Speicherbereichen berechnete Zwischenwerte von diesen in die neuen Speicherbereiche kopiert, sodass die Recheneinheiten mit aktualisierter Software und aktuellen Werten weiter rechnen können. Mit der Speicherseitenumschaltung ist auch der Softwareaktualisierungsprozess für die entsprechenden Recheneinheiten erfolgreich abgeschlossen. In einer Ausführungsform, in der eine Steuereinrichtung zwei Recheneinheiten sowie je einen aktiven und einen passiven Speicherbereich auf jedem Speicher aufweist, kann aufgrund des einzelnen Reservespeicherbereichs lediglich eine Recheneinheit simultan aktualisiert werden. Mit anderen Worten muss der Softwareaktualisierungsprozess zweimal durchlaufen werden. In einer alternativen Ausführungsform, in der eine Steuereinrichtung zwei Recheneinheiten sowie je einen aktiven und zwei passive Speicherbereiche auf jedem Speicher aufweist, können die beiden Recheneinheiten simultan aktualisiert werden. Generell bestimmt die Anzahl der in den flüchtigen und nichtflüchtigen Speichern vorhandenen Reservespeicherbereiche die Anzahl an Speichern und Recheneinheiten, die simultan beschrieben werden können. Daher wird in einem vorläufig letzten Schritt überprüft, ob sämtliche Recheneinheiten aktualisiert sind. Ist dies nicht der Fall, beginnt der erfindungsgemäße Softwareaktualisierungsprozess erneut mit der Bestimmung der noch zu aktualisierenden Recheneinheiten. Sind sämtliche Recheneinheiten aktualisiert, ist die Steuereinrichtung mit der aktualisierten Software in Betrieb und hat dabei in vorteilhafter Art und Weise ihren laufenden Betrieb nicht unterbrochen. Zum Abschluss des erfindungsgemäßen Verfahrens kann eine Statusinformation über eine erfolgreiche Aktualisierung der Software der Steuereinrichtung an die externe Plattform gesendet werden. Das erfindungsgemäße Verfahren ermöglicht die Verteilung und/oder Änderung der Software von Steuereinrichtungen im laufenden Betrieb und ohne Unterbrechung der Prozesse, Aufgaben und Funktionen, die die Steuereinrichtung ausführt. Durch effektives Speichermanagement werden auf betroffenen Speichern Reservespeicherbereiche vorgehalten, auf welche Daten der geänderten Software parallel zum Betrieb der Steuereinrichtung übertragen werden. Die benötigte Zeit für eine Softwareaktualisierung solcherart ist abhängig von der Hardwarearchitektur der betreffenden Steuereinrichtung, insbesondere von dem Verhältnis der Anzahl der Recheneinheiten und der Reservespeicherbereiche. Je mehr Reservespeicher vorgehalten werden, umso mehr Recheneinheiten der Steuereinrichtung können simultan aktualisiert werden, jedoch muss auch entsprechend mehr Speicherplatz zur Verfügung gestellt werden, der im Fall der Softwareaktualisierung Verwendung findet. Je nach Softwarearchitektur kann die Anzahl der Reservespeicherbereiche kleiner sein, als die der zu aktualisierenden Recheneinheiten, insofern die Steuereinrichtung mit unterschiedlichen Softwareversionen auf unterschiedlichen Recheneinheiten betrieben werden kann. Unabhängig davon wird durch das erfindungsgemäße Verfahren unter Einsatz leicht erhöhter Speicher- und Rechenkapazität eine Möglichkeit geschaffen, die Software von Steuereinrichtungen zu ändern, ohne einen Bootloader zu verwenden oder den laufenden Betrieb zu unterbrechen.
  • Ausführungsbeispiel
  • Weitere Merkmale, Anwendungsmöglichkeiten und Vorteile der Erfindung ergeben sich aus der nachfolgenden Beschreibung von Ausführungsbeispielen der Erfindung unter Bezugnahme auf die schematisch dargestellten Zeichnungen. Hierbei zeigen:
    • 3: Speichermanagement einer Steuereinrichtung des erfindungsgemäßen Systems als Singlecoreprozessor, umfassend einen Reservespeicherbereich pro Speicher;
    • 4: Ablauf des erfindungsgemäßen Verfahrens;
    • 5: Ablauf des erfindungsgemäßen Softwareaktualisierungsprozesses;
    • 6: Speichermanagement einer Steuereinrichtung des erfindungsgemäßen Systems als Quadcoreprozessor, umfassend zwei Reservespeicherbereiche pro Speicher.
  • In 3 ist das Speichermanagement einer Steuereinrichtung veranschaulicht, die hardwareseitig den minimalen Anforderungen zur Ausführung des erfindungsgemäßen Verfahrens genügt. Die Steuereinrichtung (300) umfasst eine Recheneinheit (310), an der jeweils ein flüchtiger lokaler Datenspeicher (311), Datencache (312), Programmspeicher (314) sowie Programmcache (315) angeordnet ist. Die Steuereinrichtung (300) umfasst weiterhin einen globalen nichtflüchtigen Speicher (350), einen globalen flüchtigen Speicher (360), eine Informations- und Datenaustauschschnittstelle (370) sowie ein Kommunikationsnetzwerk (380), welches die genannten Komponenten vernetzt und einen Informations- und Datenaustausch unter ihnen ermöglicht.
    In einem Ausführungsbeispiel ist die Steuereinrichtung (300) ein Mikrocontroller mit Singlecoreprozessor, wobei die Recheneinheit (310) einen Prozessorkern darstellt, welcher einen lokalen Daten-RAM (311), Datencache (312), Programm-RAM (314) sowie Programmcache (315) umfasst. Der globale nichtflüchtige Speicher ist ein Flashspeicher (350) und der globale flüchtige Speicher ist ein Daten-RAM (360). Das Kommunikationsnetzwerk ist ein internes Bussystem (380).
    Die flüchtigen und nichtflüchtigen Speicher (311, 314, 350, 360) der Steuereinrichtung (300) sind jeweils in zwei Speicherbereiche unterteilt, sodass jeder Speicher (311, 314, 350, 360) einen aktiven Speicherbereich (313A, 316A, 351, 361) aufweist, welche der Recheneinheit (310) zugeordnet sind und auf welchen die aktuelle Software gelagert ist, sowie einen inaktiven Speicherbereich (313B, 316B, 355, 365), welche als Reservespeicherbereiche fungieren. Während des erfindungsgemäßen Softwareaktualisierungsprozesses werden nunmehr in Leerlauftasks der Steuereinrichtung (300) die Reservespeicherbereiche der flüchtigen Speicher (313B, 316B, 365) mit den Daten der neuen oder zu verteilenden Software beschrieben. Gleichzeitig werden in den entsprechend im Programmcode vorgesehenen Tasks die Daten der neuen oder zu verteilenden Software blockweise in den Reservespeicher des nichtflüchtigen Speichers (355) geschrieben. Nach den Schritten des Überprüfens der Fehlerfreiheit und Vollständigkeit der Datenübertragung, der Speicherseitenumschaltung sowie dem Kopieren der Zwischenwerte ist der erfindungsgemäße Softwareaktualisierungsprozess abgeschlossen. In der Anwendung von Singlecoreprozessoren ist das Verhältnis von aktiven zu passiven Speicherbereichen dahingehend vorteilhaft, dass für jede Recheneinheit ein Reservespeicherbereich vorhanden ist, sodass die ganze Steuereinrichtung simultan aktualisiert werden kann. Im Fall, dass die aktiven und passiven Speicherbereiche nahezu die gleiche Größenordnung der Speicherkapazität aufweisen, wird jedoch ungefähr die Hälfte der Speicherkapazität für den Softwareaktualisierungsprozess vorgehalten.
    In 4 ist eine Ausführung des Prozessablaufs des erfindungsgemäßen Verfahrens veranschaulicht. Das erfindungsgemäße Verfahren für eine Softwareaktualisierung (400) von vernetzten Steuereinrichtungen beginnt mit dem Zustand, dass eine Softwareversion, ein Update oder andere Daten auf einer externen Plattform angeordnet sind (410) sowie, dass eine Anforderung vorhanden ist, die Softwareversion, das Update oder die anderen Daten auf die Steuereinrichtungen zu übertragen, sodass diese unter Verwendung dieser Daten in Betrieb gehen und einen laufenden Betrieb dabei nicht unterbrechen. In einem ersten Schritt des erfindungsgemäßen Verfahrens werden dazu benötigte Informationen zwischen der externen Plattform und der Steuereinrichtung kommuniziert (420). Im Anschluss an eine erfolgreiche Kommunikation bezüglich der Anforderung einer Aktualisierung entsprechender Software, Update oder Daten sowie bezüglich der dafür erforderlichen Daten wird der erfindungsgemäße Softwareaktualisierungsprozess gestartet (430). Der Start des Softwareaktualisierungsprozesses ist im dargestellten Flussdiagramm des Verfahrensablaufes sinnbildlich zu verstehen, da der Softwareaktualisierungsprozess (440) auch parallel zum oder kontinuierlich während des laufenden Betriebs der Steuereinrichtung ablaufen kann. Nach erfolgreicher Beendigung des Softwareaktualisierungsprozesses (440) wird eine Erfolgsmeldung zwischen der Steuereinrichtung und der externen Plattform kommuniziert (450), sodass der Softwareaktualisierungsprozess (440) somit abgeschlossen ist (460). Bezugnehmend auf das in 5 dargestellte Flussdiagramm bezüglich des Ablaufes des erfindungsgemäßen Softwareaktualisierungsprozesses (500) wird dieser im Folgenden detailliert betrachtet. In abstrakter Art und Weise dargestellt, beginnt der erfindungsgemäße Softwareaktualisierungsprozess (500) in dem Zustand, dass dieser durch das erfindungsgemäße Verfahren (400) gestartet wurde (510). In einem ersten Schritt werden die zu aktualisierenden Einheiten ausgewählt oder bestimmt (511). In einem Ausführungsbeispiel, in welchem die Anzahl der Recheneinheiten der betreffenden Steuereinrichtung größer als die Anzahl der vorhandenen Reservespeicherbereiche auf den flüchtigen und nichtflüchtigen Speichern ist, wird ermittelt, welche Recheneinheiten und die dazugehörigen Speicherbereiche aktualisiert werden sollen. Weiterhin wird generell bestimmt, welche Daten, Datenanteile oder Datenpakete in den folgenden Schritten übertragen und installiert werden sollen. In einem weiteren Schritt werden die benötigten Daten, welche sich auf der externen Plattform befinden, von der Steuereinrichtung angefordert (512). In einem weiteren Schritt werden die erforderlichen Daten von der externen Plattform auf die Steuereinrichtung, vorzugsweise in einen dafür bereitgestellten flüchtigen Empfangsspeicher, übertragen (513). Entsprechend werden die Daten von den Zielspeicherbereichen oder von dem Empfangsspeicher empfangen (514). Erfindungsgemäß wird die Steuereinrichtung und/oder die betroffene Recheneinheit auf Leerlauf überprüft (520), sodass während des Leerlaufs die Daten direkt oder ausgehend vom Empfangsspeicher in die Reservespeicherbereiche der flüchtigen Speicher geschrieben werden (523), solange bis die Daten vollständig in die Reservespeicherbereiche übertragen sind (524). In einer vorteilhaften Ausführungsform entfällt eine aktive Überprüfung der Steuereinrichtung auf Leerlauf und die betroffene Recheneinheit führt stetig Softwareaktualisierungsaufgaben aus, insofern sie sich im Leerlauf befindet und entsprechende Aufgaben vorhanden sind. Dieser Vorgang ist zeitlich unbegrenzt, sodass wenn sich die Steuereinrichtung nicht im Leerlauf befindet, diese ihre aktuellen Aufgaben, Prozesse und Funktionen unter Verwendung der vorherigen Software aus den noch aktiven Speicherbereichen der flüchtigen Speicherbereiche ausführt (521). Erfindungsgemäß vorteilhaft bleibt die Steuereinrichtung während des Aktualisierungsvorgangs der flüchtigen Reservespeicherbereiche ununterbrochen in Betrieb (522). Erfindungsgemäß werden in einem weiteren Schritt, der vor, nach oder parallel zum Aktualisierungsvorgang der flüchtigen Speicher (523) erfolgen kann, die erforderlichen Daten in die Reservespeicher der nichtflüchtigen Speicher geschrieben (530), wobei dies funktionsbedingt und blockweise in dafür im Programmcode vorgehaltener Rechenzeit geschieht, da nichtflüchtige Speicher ihre Daten nicht anteilig mit Unterbrechungen speichern können. Die Aktualisierung der Reservespeicherbereiche der nichtflüchtigen Speicher erfolgt ebenfalls solange, bis die verfügbaren Daten vollständig übertragen sind (531). Sind die verfügbaren Daten vollständig in die entsprechenden Reservespeicherbereiche geschrieben, wird in einem weiteren Schritt überprüft, ob die geschriebenen Daten fehlerfrei sind (540). Sind sie es nicht, wird er aktuelle Durchlauf des Softwareaktualisierungsprozesses (500) mit dem erneuten Übertragen der Daten wiederholt (513) und es wird eine Fehlermeldung an die externe Plattform gesendet (541). Unter definierten Abbruchbedingungen, beispielsweise, wenn die Prozessdurchläufe eine bestimmte Anzahl an Fehlversuchen überschritten haben, wird der Softwareaktualisierungsprozess (500) abgebrochen (542). Bei Fehlerfreiheit wird zunächst überprüft, ob sämtliche erforderliche Daten in die Reservespeicherbereiche geschrieben sind (550). Ist dies nicht der Fall, wird der Softwareaktualisierungsprozess wiederholt mit erneuter Bestimmung noch ausstehender Einheiten (511). Sind die Reservespeicherbereiche vollständig aktualisiert, werden die Speicherseiten umgeschaltet (551), Zwischenwerte in die neuen aktiven Speicherbereiche kopiert (552) sowie überprüft, ob sämtliche Recheneinheiten mit ihren zugehörigen Speicherbereichen aktualisiert worden sind (553). Ist dies nicht der Fall, beginnt der Softwareaktualisierungsprozess erneut mit der Bestimmung zu übertragender Daten für die noch ausstehenden Recheneinheiten (511). Sind sämtliche Recheneinheiten und deren zugehörige Speicherbereiche aktualisiert, befindet sich die Steuereinrichtung weiterhin ununterbrochen im Betrieb mit der aktualisierten Software (560).
    In 6 ist das Speichermanagement einer weiteren Steuereinrichtung veranschaulicht. Die Steuereinrichtung (600) umfasst vier Recheneinheiten (610, 620, 630, 640), an denen jeweils ein flüchtiger lokaler Datenspeicher (611, 621, 631, 641), Datencache (612, 622, 632, 642), Programmspeicher (614, 624, 634 ,644) sowie Programmcache (615, 625, 635, 645) angeordnet ist. Die Steuereinrichtung (600) umfasst weiterhin einen globalen nichtflüchtigen Speicher (650), einen globalen flüchtigen Speicher (660), eine Informations- und Datenaustauschschnittstelle (670) sowie ein Kommunikationsnetzwerk (680), welches die genannten Komponenten vernetzt und einen Informations- und Datenaustausch unter ihnen ermöglicht.
    In einem Ausführungsbeispiel ist die Steuereinrichtung (600) ein Mikrocontroller mit Quadcoreprozessor, wobei die Recheneinheiten (610, 620, 630, 640) die Prozessorkerne darstellen, welche einen lokalen Daten-RAM (611, 621, 631, 641), Datencache (612, 622, 632, 642), Programm-RAM (614, 624, 634 ,644) sowie Programmcache (615, 625, 635, 645) umfassen. Der globale nichtflüchtige Speicher ist ein Flashspeicher (650) und der globale flüchtige Speicher ist ein Daten-RAM (660). Das Kommunikationsnetzwerk ist ein internes Bussystem (680). Die flüchtigen lokalen Speicher (611, 621, 631, 641, 614, 624, 634 ,644) der Recheneinheiten (610, 620, 630, 640) sind jeweils in zwei Speicherbereiche unterteilt, sodass jeder flüchtige lokale Speicher einen aktiven Speicherbereich (613A, 623A, 633A, 643A, 616A, 626A, 636A, 646A) aufweist, welche den Recheneinheiten (610, 620, 630, 640) zugeordnet sind und auf welchen die aktuelle Software gelagert ist, sowie einen inaktiven Speicherbereich (6133B, 623B, 633B, 643B, 616B, 626B, 636B, 646B), welche als Reservespeicherbereiche fungieren. Die globalen Speicher (650, 660) sind jeweils in vier aktive Speicherbereiche (651, 652, 653, 654, 661, 662, 663, 664) und in zwei inaktive Speicherbereiche (655, 656, 665, 666) unterteilt. Somit ist auf den globalen Speichern für jede Recheneinheit jeweils ein aktiver Speicherbereich und zusätzlich zwei Reservespeicherbereiche angeordnet. Während des erfindungsgemäßen Softwareaktualisierungsprozesses werden nunmehr in Leerlauftasks der Steuereinrichtung (600) zunächst die Reservespeicherbereiche der flüchtigen Speicher (613B, 623B, 665, 666) der ersten beiden Recheneinheiten (610, 620) mit den Daten der neuen oder zu verteilenden Software beschrieben. Gleichzeitig werden in den entsprechend im Programmcode vorgesehenen Tasks die Daten der neuen oder zu verteilenden Software blockweise in die Reservespeicher (655, 656) des nichtflüchtigen Speichers (650) geschrieben, solange bis, bezugnehmend auf 5, sämtliche Elemente der erforderlichen Daten vollständig übertragen sind (550). Nach den Schritten des Überprüfens der Fehlerfreiheit (540) und Vollständigkeit der Datenübertragung (550), der Speicherseitenumschaltung (551) sowie dem Kopieren der Zwischenwerte (552) ist der erste Durchlauf des Softwareaktualisierungsprozesses (500) abgeschlossen und die Steuereinrichtung (600) ist auf den ersten beiden Recheneinheiten (610, 620) mit der aktualisierten Software in Betrieb. Die Überprüfung der Vollständigkeit der Softwareaktualisierung sämtlicher Recheneinheiten und der zugehörigen Speicherbereiche (553) ergibt nunmehr jedoch, dass der Softwareaktualisierungsprozess (500) einen weiteren Durchlauf ausführen muss. Entsprechend wird ein zweiter Durchlauf zur Aktualisierung der letzten beiden Recheneinheiten (630, 640), beginnend mit der Bestimmung erforderlicher Elemente (511), durchgeführt. In einem Ausführungsbeispiel, in welchem eine Steuereinrichtung (600) nach 6 aufgebaut ist, wobei jedoch nur jeweils ein Reservespeicherbereich (655, 665) auf den globalen Speichern angeordnet ist, muss der Softwareaktualisierungsprozess (500) viermalig durchgeführt werden.
  • Bezugszeichenliste
  • 100
    System zur Anwendung des Verfahrens
    110
    mobiles Rechensystem
    120
    stationärer Server
    130
    digitaler Sammelspeicher
    140
    mobile Datenübertragungseinheit
    150
    stationäre Datenübertragungseinheit
    160
    Fahrzeug
    170
    mobiles Endgerät
    180
    stationäre Endanwendung
    190
    Daten- und Informationsverbindungen
    200, 300, 600
    Steuereinrichtung
    210, 220, 310, 610, 620, 630, 640
    Recheneinheit
    211, 221, 311, 611, 621, 631, 641
    flüchtiger lokaler Datenspeicher
    212, 222, 312, 612, 622, 632, 642
    flüchtiger lokaler Datencache
    213A, 223A, 313A, 613A, 623A, 633A, 643A
    aktiver Datenspeicherbereich flüchtiger lokaler Datenspeicher
    213B, 223B, 313B, 6313B, 623B, 633B, 643B
    passiver Datenspeicherbereich flüchtiger lokaler Datenspeicher
    214, 224, 314, 614, 624, 634 ,644
    flüchtiger lokaler Programmspeicher
    215, 225, 315, 615, 625, 635, 645
    flüchtiger lokaler Programmcache
    216A, 226A, 316A, 616A, 626A, 636A, 646A
    aktiver Programmspeicherbereich flüchtiger lokaler Programmspeicher
    216B, 226B, 316B, 616B, 626B, 636B, 646B
    passiver Programmspeicherbereich flüchtiger lokaler Programmspeicher
    250, 350, 650
    globaler nichtflüchtiger Speicher
    251, 252, 351, 651, 652, 653, 654
    aktiver Speicherbereich globaler nichtflüchtiger Speicher
    255, 256, 355, 655, 656
    passiver Speicherbereich globaler nichtflüchtiger Speicher
    260, 360, 660
    globaler flüchtiger Speicher
    261, 262, 361, 661, 662, 663, 664
    aktiver Speicherbereich globaler flüchtiger Speicher
    265, 266, 365, 665, 666
    passiver Speicherbereich globaler flüchtiger Speicher
    270, 370, 670
    Informations- und Datenaustauschschnittstelle
    280, 380, 680
    Kommunikationsnetzwerk
    400
    Verfahren zur Softwareaktualisierung
    410
    Softwareversion auf externer Plattform vorhanden
    420
    Anforderung für Softwareaktualisierung senden/empfangen
    430
    Softwareaktualisierung starten
    440
    Softwareaktualisierungsprozess
    450
    Erfolgsmeldung senden/empfangen
    460
    Softwareversion aktualisiert
    500
    Softwareaktualisierungsprozess
    510
    Softwareaktualisierungsprozess gestartet
    511
    zu aktualisierende Einheiten auswählen
    512
    Daten von externer Plattform anfordern
    513
    Daten von externer Plattform übertragen
    514
    Daten von externer Plattform empfangen
    520
    Arbeitseinheit im Leerlaufprozess?
    521
    aktuelle Aufgaben ausführen
    522
    Arbeitseinheit im Betrieb mit aktueller Software
    523
    Daten in Reservespeicherbereiche flüchtige Speicher schreiben
    524
    Daten vollständig geschrieben?
    530
    Daten in Reservespeicherbereiche nichtflüchtige Speicher schreiben
    531
    Daten vollständig geschrieben?
    540
    Daten fehlerfrei?
    541
    Fehlermeldung senden
    542
    Softwareaktualisierungsprozess abbrechen
    550
    Sämtliche Elemente aktualisiert?
    551
    Speicherseiten umschalten
    552
    Zwischenwerte kopieren
    553
    Sämtliche Recheneinheiten aktualisiert?
    560
    Steuereinrichtung mit aktualisierter Software in Betrieb
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • 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.
  • Zitierte Patentliteratur
    • US 2018196656 A1 [0002]

Claims (10)

  1. Verfahren zur unterbrechungsfreien Verteilung und/oder Änderung von Software in vernetzten Steuereinrichtungen, umfassend die Schritte - Austauschen von Informationen zwischen mindestens einer Steuereinrichtung und mindestens einer externen Plattform bezüglich einer Anforderung zur Änderung der Software (410, 420, 430); - Bestimmen von Einheiten, auf welche eine Software verteilt oder bei denen eine Software geändert werden soll (511); - Anfordern erforderlicher Daten zur Verteilung oder Veränderung der Software für die bestimmten Einheiten (512); - Übertragen von Daten von mindestens einer externen Plattform auf mindestens einer Steuereinrichtung (513, 514); - Ausführung eines Softwareaktualisierungsprozesses (440); - Senden einer Statusinformation über eine erfolgreich abgeschlossene Verteilung und/oder Änderung der Software von mindestens einer Steuereinrichtung an mindestens eine externe Plattform (450); dadurch gekennzeichnet, dass der Softwareaktualisierungsprozess (440) die Schritte - Speichern von Daten auf mindestens einem inaktiven Speicherbereich von mindestens einem flüchtigen Speicher der Steuereinrichtung, immer dann, wenn die Steuereinrichtung eine Leerlaufaufgabe ausführt (520, 523, 524), sodass die Steuereinrichtung in der Ausführung ihrer Aufgaben unbeeinflusst bleibt (521, 522); - Speichern von Daten auf mindestens einem inaktiven Speicherbereich von mindestens einem nichtflüchtigen Speicher der Steuereinrichtung, während dafür in der Steuereinrichtung vorgesehenen Rechenzeit, sodass die Steuereinrichtung in der Ausführung ihrer Aufgaben unbeeinflusst bleibt (530, 531); - Überprüfen der gespeicherten Daten auf Fehler (540), sodass im Fehlerfall das Verfahren mit erneutem Übertragen der Daten (513) wiederholt durchlaufen wird und/oder eine Fehlermeldung an die externe Plattform gesendet wird (541) und/oder das Verfahren abgebrochen wird (542); - Überprüfen, ob das Speichern von Daten für die Einheiten vollständig ist (550), sodass bei Unvollständigkeit das Verfahren bei erneutem Bestimmen von Einheiten, auf die eine Software verteilt oder bei denen die Software geändert werden soll, wiederholt wird (511); - Umschalten der inaktiven Speicherbereiche der flüchtigen und nichtflüchtigen Speicher auf aktiv und gleichzeitiges Umschalten der zugehörigen aktiven Speicherbereiche der flüchtigen und nichtflüchtigen Speicher auf inaktiv (551), sodass die Steuereinrichtung mit der zugeteilten oder veränderten Software betrieben wird; - Kopieren von berechneten Zwischenwerten und Ergebnissen in die auf aktiv umgeschalteten Speicherbereiche (552); - Überprüfen, ob weitere Einheiten zur Verteilung und/oder Änderung der Software ausstehend sind (553), sodass bei Notwendigkeit, Software auf weitere Einheiten zu verteilen und/oder deren Software zu ändern, das Verfahren bei erneutem Bestimmen von Einheiten auf die eine Software verteilt oder bei denen die Software geändert werden soll, wiederholt wird (511) umfasst.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass eine Anforderung zur Änderung der Software zyklisch durch die Steuereinrichtung von der externen Plattform abgefragt wird und/oder von der externen Plattform an die Steuereinrichtung gesendet wird.
  3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass die Einheiten vollständige Daten und/oder Datenpakete und/oder Teile von Datenpaketen sind, die die Software für die Recheneinheiten abbilden oder, dass die Einheiten Recheneinheiten sind sowie, dass das Bestimmen dieser Einheiten, auf die die Software verteilt oder bei denen die Software geändert werden soll, durch einen Abgleich von Checksummen erfolgt.
  4. Verfahren nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass die von einer externen Plattform übertragenen Daten auf eine Steuereinrichtung in mindestens einem flüchtigen Empfangsspeicher gespeichert werden sowie, dass die Daten ausgehend von dem Empfangsspeicher in die inaktiven Speicherbereiche geschrieben werden.
  5. Verfahren nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass das Überprüfen der gespeicherten Daten auf Fehler und/oder auf Vollständigkeit durch einen Abgleich von Checksummen erfolgt.
  6. Verfahren nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass der wiederholte Durchlauf des Verfahrens im Fehlerfall auf eine definierte Anzahl begrenzt ist.
  7. Verfahren nach Anspruch 6, dadurch gekennzeichnet, dass die definierte Anzahl 3 ist.
  8. System zur Ausführung einer unterbrechungsfreien Verteilung und/oder Änderung von Software in vernetzten Steuereinrichtungen, gekennzeichnet durch eine Steuereinrichtung, die mit zumindest einer externen Plattform vernetzt ist, umfassend: - mindestens eine Informations- und Datenaustauschschnittstelle, die in der Art konfiguriert ist, dass ein Austausch von Informationen und Daten zwischen der Steuereinrichtung und der externen Plattform ausgeführt wird; - mindestens eine Recheneinheit, die Aufgaben und Funktionen der Steuereinrichtung verarbeitet und/oder ausführt; - mindestens einen flüchtigen Speicher sowie mindestens einen nichtflüchtigen Speicher, wobei die flüchtigen und nichtflüchtigen Speicher jeweils in mindestens zwei Speicherbereiche aufgeteilt sind, sodass auf jedem flüchtigen und nicht flüchtigen Speicher mindestens ein Speicherbereich für jede Recheneinheit sowie mindestens ein zusätzlicher Speicherbereich angeordnet ist, die in der Art konfiguriert sind, dass den Recheneinheiten Speicherbereiche auf den flüchtigen und nichtflüchtigen Speichern zugeordnet sind, auf denen aktuelle Daten und Programmcodes oder mit anderen Worten die aktuelle Software gespeichert ist und die die aktiven Speicherbereiche bilden, wobei auf jedem flüchtigen und nichtflüchtigen Speicher mindestens ein Speicherbereich angeordnet ist, dem keine Recheneinheit zugeordnet ist, wobei diese Speicherbereiche als Reservespeicherbereiche ausgeführt sind und die inaktiven Speicherbereiche bilden; - mindestens ein Kommunikationssystem, wodurch zwischen der Informations- und Datenaustauschschnittstelle, den Recheneinheiten sowie sämtlichen Speichern Informationen und/oder Daten übertragen werden.
  9. System nach Anspruch 8, dadurch gekennzeichnet, dass Steuereinrichtungen Steuergeräte und/oder Mikrocontroller, Recheneinheiten Prozessoren und/oder Prozessorkerne, flüchtige Speicher RAM-Speicher, nichtflüchtige Speicher Flashspeicher sowie Kommunikationssysteme interne Bussysteme sind.
  10. System nach Anspruch 9, dadurch gekennzeichnet, dass RAM-Speicher in prozessor- und/oder prozessorkerninterne und in globale Speicher unterteilt sind.
DE102019106796.0A 2019-03-18 2019-03-18 Verfahren und System zur unterbrechungsfreien Verteilung und/oder Änderung von Software in vernetzten Steuereinrichtungen Pending DE102019106796A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102019106796.0A DE102019106796A1 (de) 2019-03-18 2019-03-18 Verfahren und System zur unterbrechungsfreien Verteilung und/oder Änderung von Software in vernetzten Steuereinrichtungen

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102019106796.0A DE102019106796A1 (de) 2019-03-18 2019-03-18 Verfahren und System zur unterbrechungsfreien Verteilung und/oder Änderung von Software in vernetzten Steuereinrichtungen

Publications (1)

Publication Number Publication Date
DE102019106796A1 true DE102019106796A1 (de) 2020-09-24

Family

ID=72334161

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019106796.0A Pending DE102019106796A1 (de) 2019-03-18 2019-03-18 Verfahren und System zur unterbrechungsfreien Verteilung und/oder Änderung von Software in vernetzten Steuereinrichtungen

Country Status (1)

Country Link
DE (1) DE102019106796A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210357338A1 (en) * 2020-05-12 2021-11-18 Francesco E. DeAngelis Dual memory secure digital (sd) card and system and method for wirelessly and automatically updating data in host computer using dual memory sd card

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210357338A1 (en) * 2020-05-12 2021-11-18 Francesco E. DeAngelis Dual memory secure digital (sd) card and system and method for wirelessly and automatically updating data in host computer using dual memory sd card
US11593282B2 (en) * 2020-05-12 2023-02-28 Francesco E. DeAngelis Dual memory secure digital (SD) card and system and method for wirelessly and automatically updating data in host computer using dual memory SD card

Similar Documents

Publication Publication Date Title
DE102019109672A1 (de) Rückgängigmachung nach einem teilausfall in mehreren elektronischen steuergeräten mittels over-the-air-updates
DE112010003554B4 (de) Symmetrische Direktmigration von Virtuellen Maschinen
DE102011075776A1 (de) Verfahren und System zum Aktualisieren eines gemeinsam genutzten Speichers
DE10315490A1 (de) Verfahren und System zum Wechsel zwischen zwei oder mehreren Firmwareabbildungen auf einer Hostvorrichtung
DE112018001894T5 (de) Steuervorrichtung, Übertragungsverfahren und Computerprogramm
DE102017123252A1 (de) Softwareaktualisierungsverfahren und -vorrichtung für Fahrzeug
WO2013171122A2 (de) Funktional erweiterbares fahrzeugsteuergerät und verfahren zum ergänzen der funktionalität eines fahrzeugsteuergeräts
DE102017204625A1 (de) Softwarekomponentenzuweisungssystem für ein fahrzeug
EP3929740A1 (de) Verfahren zur orchestrierung einer container-basierten anwendung auf einem endgerät
DE102015107654A1 (de) Dienst und System zum Unterstützen eines kohärenten Datenzugriffs auf einem Multicore-Controller
DE102019106796A1 (de) Verfahren und System zur unterbrechungsfreien Verteilung und/oder Änderung von Software in vernetzten Steuereinrichtungen
EP0799441A1 (de) Verfahren zur steuerung von technischen vorgängen
DE102017220526A1 (de) Verfahren und Vorrichtung zur Aktualisierung von Software
DE102016201769A1 (de) Verfahren zum Aktualisieren von Software eines Steuergerätes, vorzugsweise für ein Kraftfahrzeug
DE102023112746A1 (de) Elektronische steuervorrichtung, softwareaktualisierungsverfahren, softwareaktualisierungsprogramm und elektronisches steuersystem
DE102022113922A1 (de) Ota-master, system, verfahren, nicht-transitorisches speichermedium und fahrzeug
WO2017178211A1 (de) Verfahren zum betreiben eines steuergeräts für ein fahrzeug, steuergerät, betriebssystem, kraftfahrzeug
WO2020099023A2 (de) Steuergerät für eine fahrzeugkomponente, kit umfassend ein steuergerät und eine testereinrichtung, fahrzeug, verfahren zum aktualisieren eines steuergeräts und computerlesbares speichermedium
EP1665031A2 (de) Verfahren zur installation einer programmkomponente
DE102017100118A1 (de) Skalierbares Steuersystem für ein Kraftfahrzeug
DE102022110251A1 (de) Ota-master, center, system, verfahren, nicht-transitorisches speichermedium und fahrzeug
DE102022111514A1 (de) Ota-center, aktualisierungs-verwaltungsverfahren, nicht-transitorisches speichermedium, ota-master und aktualisierungs-steuerungsverfahren
WO2022194417A1 (de) Computerimplementiertes verfahren und vorrichtung zur automatisierten aktualisierung einer kommunikationseinheit einer steuereinheit eines fahrzeugs
DE112020001541T5 (de) Informationsverarbeitungsvorrichtung, beweglicher gegenstand und informationsverarbeitungsverfahren
DE102020105613A1 (de) Echtzeit-steuersystem für ein fahrzeug und verfahren zur ausführung der steuerung des fahrzeugs über das echtzeit-steuerungssystem

Legal Events

Date Code Title Description
R012 Request for examination validly filed