Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
DEVICE FOR CAPTURING AND PROCESSING A MEASUREMENT VALUE OF A SENSOR IN A MOTOR VEHICLE
Document Type and Number:
WIPO Patent Application WO/2022/042950
Kind Code:
A1
Abstract:
The invention relates to a device for capturing and processing a measurement value of a sensor in a motor vehicle; wherein at least one sensor (10) captures at least one measurement value (Ub, Ib) of a stored energy source (12); wherein at least one computing apparatus (11) is provided, which determines at least one output value (50) of the stored energy source (12) on the basis of the at least one measurement value (Ub, Ib); wherein the computing apparatus (11) comprises at least one main memory (30); wherein the main memory (30) comprises at least one static memory area (44) and at least one additional memory area (54); wherein the memory area (44) is designed to store specific data (49, 50), more particularly safety-relevant data, namely the output value (50) and/or at least one variable (49) required for determining the output value; and wherein the additional memory area (54) is designed for the mirrored storage of data (49, 50) contained in the main memory (44).

Inventors:
KUN BALAZS (HU)
GYURKO PETER (HU)
NAGY DANIEL DOMONKOS (HU)
BALOG TAMAS (HU)
KARDON SEBESTYEN ANDRAS (HU)
MEDVE NORBERT (HU)
BALOG ATTILA (HU)
HORVATH ISTVAN (HU)
STEFFEN ROLAND (DE)
Application Number:
PCT/EP2021/070275
Publication Date:
March 03, 2022
Filing Date:
July 20, 2021
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
BOSCH GMBH ROBERT (DE)
International Classes:
G01D21/00; G01D3/08; G01R31/36; H01M10/48; H02J7/00
Domestic Patent References:
WO2015135729A12015-09-17
Foreign References:
CN109143091A2019-01-04
DE202007016235U12009-04-16
DE112018006191T52020-08-13
DE102017219241A12019-05-02
EP3270171A12018-01-17
DE10361465A12005-08-11
EP1271170B12009-12-23
Download PDF:
Claims:
Ansprüche

1. Vorrichtung zur Erfassung und Verarbeitung einer Messgröße eines Sensors in einem Kraftfahrzeug, wobei zumindest ein Sensor (10) zumindest eine Messgröße (Ub, Ib) eines Energiespeichers (12) erfasst, wobei zumindest eine eine Recheneinrichtung (11) vorgesehen ist, die unter Verwendung der zumindest einen Messgröße (Ub, Ib) zumindest eine Ausgangsgröße (50) des Energiespeichers (12) ermittelt, wobei die Recheneinrichtung (11) zumindest einen Arbeitsspeicher (30) umfasst, dadurch gekennzeichnet, dass der Arbeitsspeicher (30) zumindest einen statischen Speicherbereich (44) und zumindest einen weiteren Speicherbereich (54) umfasst, wobei der Speicherbereich (44) so ausgebildet ist, um bestimmte insbesondere sicherheitsrelevante Daten (49,50), nämlich die Ausgangsgröße (50) und/oder zumindest eine für die Ermittlung der Ausgangsgröße benötigte Variable (49), abzulegen, wobei der weitere Speicherbereich (54) so ausgebildet ist, um in dem Arbeitsspeicher (44) befindliche Daten (49,50) gespiegelt abzulegen.

2. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, dass der Arbeitsspeicher (30) zumindest einen dritten statischen Speicherbereich (34) umfasst für insbesondere nicht sicherheitsrelevante Daten (39,40), nämlich unter Verwendung der zumindest einen Messgröße (Ub, Ib) ermittelte weitere Ausgangsgröße (40) und/oder zumindest eine für die Ermittlung der weiteren Ausgangsgröße (40) benötigte Variable (39).

3. Vorrichtung nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass zumindest eine Speicherschutzeinrichtung (32) vorgesehen ist, die einen Vergleich durchführt von zumindest Teilen der in dem Speicherbereich (44) abgelegten Daten (49,50) mit zumindest entsprechenden Teilen der in dem weiteren Speicherbereich (54) gespiegelt abgelegten Daten (49‘, Vorrichtung nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass bei fehlender Übereinstimmung der verglichenen Teile der Daten zumindest ein Fehlereintrag generiert ist und/oder eine weitere Operation wie beispielsweise ein Speichern von Daten (49,50) in dem Speicherbereich (44) und/oder ein Inkrementieren und/oder ein Dekrementieren von Daten unterbunden ist. Vorrichtung nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Speicherschutzeinrichtung (32) den Vergleich zyklisch und/oder vor einer Aktualisierung der Daten (49,50) durchführt. Vorrichtung nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass der Vergleich auf einem Vergleich einzelner Daten wie beispielsweise Ausgangsgröße (50) und/oder Variable (49) oder auf dem Vergleich zumindest eines Blocks, der mehrere Daten wie Ausgangsgröße (50) und/oder Variablen (49) umfasst, beruht. Vorrichtung nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass der Sensor (10) zumindest ein Messelement wie beispielsweise einen Meßwiderstand (13) und/oder einen Analog-Digitalwandler (15) umfasst. Vorrichtung nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass zur Ermittlung sicherheitsrelevanter Daten (49,50) wie beispielsweise eine insbesondere gefilterte Spannung (Ub) des Energiespeichers (12) und/oder ein insbesondere gefilterter Strom (Ib) des Energiespeichers (12) und/oder ein Innenwiderstand (Ri) des Energiespeichers (12) und/oder eine Fehlerinformation betreffend eines im Sensor (10) vorgesehenen Analog-Digital-Wandlers zumindest eine Softwarekomponente (48) verwendet ist, welche einem hohen Sicherheitsstandard, wie beispielsweise ASIL B, genügt. Vorrichtung nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass zur Ermittlung nicht sicherheitsrelevanter Daten (39,40) wie beispielsweise eine Kapazität des Energiespeichers (12) und/oder ein Ladezustand (SOC) des Energiespeichers (12) und/oder ein Ruhestrom des Energiespeichers (12) zumindest eine Softwarekomponente (38) verwendet ist, welche einem geringeren Sicherheitsstandard, wie beispielsweise QM, genügt. Vorrichtung nach einem der vorhergehenden Ansprüche, dadurch gekenn- zeichnet, dass zur Ermittlung einer Speicheradresse zur gespiegelten Ablage von Daten (49‘,50‘) im weiteren Speicherbereich (54) eine Speicheradresse der zu spiegelnden Daten (49,50) mit einem festen Offset versehen wird. Vorrichtung nach einem der vorhergehenden Ansprüche, dadurch gekenn- zeichnet, dass eine Ausführung der Softwarekomponente (48) erst nach erfolgreich durchgeführtem Vergleich durch die Speicherschutzeinrichtung (32) erfolgt.

Description:
Beschreibung

Titel

Vorrichtung zur Erfassung und Verarbeitung einer Messgröße eines Sensors in einem Kraftfahrzeug

Die Erfindung betrifft eine Vorrichtung zur Erfassung und Verarbeitung einer Messgröße eines Sensors in einem Kraftfahrzeug nach der Gattung unabhängigen Anspruchs.

Stand der Technik

Aus der EP 1271170 Bl sind ein Verfahren und eine Vorrichtung zur Batteriezustandserkennung bekannt. Es werden Aussagen über einen Batteriezustand mittels eines ersten Batteriezustandserkennungssystems gewonnen, wobei bei fehlerhaftem Betrieb oder bei einem Ausfall des ersten Batteriezustandserkennungssystems Aussagen über den Batteriezustand mittels eines zweiten Batteriezustandserkennungssystems gewonnen werden, wobei das erste Batteriezustandserkennungssystem Aussagen über den Batteriezustand unter Verwendung einer Strommessung und unter zusätzlicher Verwendung einer Temperaturmessung ermittelt.

Das Fahrzeugbordnetz hat die Aufgabe, die elektrischen Verbraucher mit Energie zu versorgen. Fällt die Energieversorgung aufgrund eines Fehlers bzw. Alterung im Bordnetz bzw. in einer Bordnetzkomponente in heutigen Fahrzeugen aus, so entfallen wichtige Funktionen, wie die Servolenkung. Da die Lenkfähigkeit des Fahrzeugs nicht beeinträchtigt, sondern nur schwergängig wird, ist der Ausfall des Bordnetzes in heutigen in Serie befindlichen Fahrzeugen allgemein akzeptiert, da der Fahrer als Rückfallebene zur Verfügung steht. Zur Erhöhung der Verfügbarkeit wurden zweikanalige Bordnetz-Strukturen wie beispielsweise in der WO 2015/135729 Al vorgeschlagen. Diese werden benötigt, um Systeme für den hoch- oder vollautomatischen Fährbetrieb fehlertolerant zu versorgen.

Der Erfindung liegt die Aufgabe zugrunde, die Zuverlässigkeit des Gesamtsystems weiter zu erhöhen. Diese Aufgabe wird gelöst durch die Merkmale des unabhängigen Anspruchs.

Offenbarung der Erfindung

Dadurch dass der Arbeitsspeicher zumindest einen statischen Speicherbereich und zumindest einen weiteren Speicherbereich umfasst, wobei der Speicherbereich so ausgebildet ist, um bestimmte insbesondere sicherheitsrelevante Daten, nämlich die Ausgangsgröße und/oder zumindest eine für die Ermittlung der Ausgangsgröße benötigte Variable, abzulegen, wobei der weitere Speicherbereich so ausgebildet ist, um in dem Arbeitsspeicher befindliche Daten gespiegelt abzulegen, kann die Sicherheit des Gesamtsystems weiter erhöht werden. Gerade Speicherkorrumptionen, hervorgerufen durch Softwarekomponenten mit niedrigerer Sicherheitsstufe, können unterbunden bzw. reduziert werden. Damit könnte eine Zertifizierung der Vorrichtung auf ASIL-Level erreicht werden. Gerade sicherheitsrelevante Ausgangssignale des Sensors, die für weitere sicherheitsrelevante Komponenten beispielsweise für das autonome Fahren verwendet werden, werden insbesondere durch das redundante Ablegen in unterschiedlichen Speicherbereichen nicht verfälscht bzw. eine Verfälschung könnte leichter detektiert werden und zu entsprechenden Gegenmaßnahmen führen.

In einer zweckmäßigen Weiterbildung ist vorgesehen, dass der Arbeitsspeicher zumindest einen dritten statischen Speicherbereich umfasst für insbesondere nicht sicherheitsrelevante Daten, nämlich unter Verwendung der zumindest einen Messgröße ermittelte weitere Ausgangsgröße und/oder zumindest eine für die Ermittlung der weiteren Ausgangsgröße benötigte Variable. Gerade durch die getrennte Behandlung von Softwarekomponenten unterschiedlicher Sicherheitsniveaus (beispielsweise QM - ASIL B) wird eine eventuelle gegenseitige Beeinflussung reduziert und damit die Fehleranfälligkeit gesenkt. ln einer zweckmäßigen Weiterbildung ist zumindest eine Speicherschutzeinrichtung vorgesehen ist, die einen Vergleich durchführt von zumindest Teilen der in dem Speicherbereich abgelegten Daten mit zumindest entsprechenden Teilen der in dem weiteren Speicherbereich gespiegelt abgelegten Daten. Damit wird in besonders einfacher Art und Weise eine mögliche Korrumption der Daten festgestellt. Gegenmaßnahmen wie beispielsweise die Überführung des Sensors in einen sicheren Zustand sowie das Unterdrücken einer Weiterverarbeitung eventuell korrumpierter Ausgangssignale erhöhen die Sicherheit weiter.

In einer zweckmäßigen Weiterbildung ist vorgesehen, dass bei fehlender Übereinstimmung der verglichenen Teile der Daten zumindest ein Fehlereintrag generiert ist und/oder eine weitere Operation wie beispielsweise ein Speichern von Daten in dem Speicherbereich und/oder ein Inkrementieren und/oder ein Dekre- mentieren von Daten unterbunden ist. Damit wird sichergestellt, dass keine falschen Werte in dem sicherheitsrelevanten Speicherbereich eingetragen werden bzw. weiterverarbeitet werden.

In einer zweckmäßigen Weiterbildung führt die Speicherschutzeinrichtung den Vergleich zyklisch und/oder vor einer Aktualisierung der Daten durch. Damit wird eine ständige Überprüfung insbesondere innerhalb einer Fehlertoleranzzeit möglich. Außerdem wird sichergestellt, dass keine falschen Daten abgespeichert werden.

In einer zweckmäßigen Weiterbildung beruht der Vergleich auf einem Vergleich einzelner Daten wie beispielsweise Ausgangsgröße und/oder Variable oder auf dem Vergleich zumindest eines Blocks, der mehrere Daten wie Ausgangsgröße und/oder Variablen umfasst. Vergleiche auf Variabienbasis stellen eine besonders hohe Sicherheit bei der Erkennung einer Speicherkorrumption dar. Ein blockweiser Vergleich eignet sich insbesondere für Softwarekomponenten, die später erstellt bzw. nachträglich in der Software aufgenommen wurden und erhöht die Sicherheit für diese Konstellation weiter.

In einer zweckmäßigen Weiterbildung umfasst der Sensor zumindest ein Messelement wie beispielsweise einen Messwiderstand und/oder einen Analog- Digitalwandler. Gerade für diese Anordnung können durch eine entsprechende Überwachung der Signalverarbeitung bzw. auch des Analog-Digital-Wandlers Fehler vermieden werden.

In einer zweckmäßigen Weiterbildung ist vorgesehen, dass zur Ermittlung sicherheitsrelevanter Daten wie beispielsweise eine insbesondere gefilterte Spannung des Energiespeichers und/oder ein insbesondere gefilterter Strom des Energiespeichers und/oder ein Innenwiderstand des Energiespeichers und/oder eine Fehlerinformation betreffend eines im Sensor vorgesehenen Analog-Digital- Wandlers zumindest eine Softwarekomponente verwendet ist, welche einem hohen Sicherheitsstandard, wie beispielsweise ASIL B, genügt. Gerade diese Größen werden beispielsweise im Kontext des autonomen Fahrens benötigt, um Aussagen hinsichtlich der Zuverlässigkeit des Energiespeichers in die gewählte Fahrstrategie einfließen zu lassen.

In einer zweckmäßigen Weiterbildung ist vorgesehen, dass zur Ermittlung nicht sicherheitsrelevanter Daten wie beispielsweise eine Kapazität des Energiespeichers und/oder ein Ladezustand des Energiespeichers und/oder ein Ruhestrom des Energiespeichers zumindest eine Softwarekomponente verwendet ist, welche einem geringeren Sicherheitsstandard, wie beispielsweise QM, genügt. Durch eine entsprechende Differenzierung kann die Rechenleistung der Recheneinheit reduziert werden, da nun geringere Sicherheitsanforderungen an bestimmte Größen zu stellen sind.

In einer zweckmäßigen Weiterbildung ist vorgesehen, dass zur Ermittlung einer Speicheradresse zur gespiegelten Ablage von Daten im weiteren Speicherbereich eine Speicheradresse der zu spiegelnden Daten mit einem festen Offset versehen wird. Damit lässt sich in besonders einfacher Art und Weise das Handling der zu spiegelnden und zu vergleichenden Daten umsetzen.

In einer zweckmäßigen Weiterbildung ist vorgesehen, dass eine Ausführung der Softwarekomponente erst nach erfolgreich durchgeführtem Vergleich durch die Speicherschutzeinrichtung erfolgt. Damit werden bei korrumpierten Daten unnötige Rechenschritte unterbunden. Weitere zweckmäßige Weiterbildungen ergeben sich aus weiteren abhängigen Ansprüchen und aus der Beschreibung.

Kurze Beschreibung der Zeichnungen

Es zeigen

Figur 1 ein Blockschaltbild eines Sensors zur Erfassung einer Messgröße,

Figur 2 eine genauere Darstellung des Sensors bzw. der zugehörigen Recheneinrichtung,

Figur 3 ein Flussdiagramm zur Durchführung eines Vergleichs sowie

Figur 4 ein Flussdiagramm zur Durchführung einer Speicheroperation.

Ausführungsformen der Erfindung

Die Erfindung ist anhand von Ausführungsformen in den Zeichnungen schematisch dargestellt und wird nachfolgend unter Bezugnahme auf die Zeichnungen ausführlich beschrieben.

Beispielhaft ist in dem Ausführungsbeispiel als möglicher Energiespeicher 12 eine Batterie bzw. Akkumulator beschrieben. Alternativ können jedoch andere für diese Aufgabenstellung geeignete Energiespeicher beispielsweise auf induktiver oder kapazitiver Basis, Brennstoffzellen, Kondensatoren oder Ähnliches gleichermaßen Verwendung finden.

Ein Sensor 10, insbesondere ein Batteriesensor, erfasst bestimmte Messgrößen eines Energiespeichers 12 wie beispielsweise die Spannung Ub und/oder den Strom Ib und/oder die Temperatur Tb. Hierzu ist ein Messelement, beispielhaft ein Messwiderstand 13, vorgesehen. Die gemessenen analogen Größen (Ub, Ib, Tb) werden über einen Analog-Digital-Wandler digitalisiert und an eine Recheneinrichtung 11 weitergeleitet. Die Recheneinrichtung 11 umfasst beispielsweise eine Zustandserkennung 14, insbesondere eine Batteriezustandserkennung, und einen Arbeitsspeicher 30. Unter Verwendung der zugeführten Messgrößen (Ub, Ib, Tb) und eines hinterlegten Modells des Energiespeichers 12 werden relevante Kenngrößen des Energiespeichers 12 wie beispielsweise der Innenwiderstand Ri (insbesondere Batterieinnenwiderstand), Ladezustand (SOC) und gegebenenfalls weitere Größen wie beispielsweise State of Health (SOH), State of Function (SOF) oder Ähnliches bestimmt. Weiterhin verarbeitet die Recheneinrichtung 11 die gemessenen Größen beispielsweise durch entsprechende Signalverarbeitungsalgorithmen, Filter oder Ähnliches. Die Ausgangsgrößen 50 der Recheneinrichtung 11 können beispielsweise über ein Kommunikationssystem 16, beispielsweise ein Bussystem wie ein LIN-Bus oder Ähnliches, an ein Steuergerät 18 weitergeleitet werden. In diesem Steuergerät 18 können beispielsweise entsprechende Energiemanagement- Funktionen wie beispielsweise Freigabe eines Start- Stop-Systems oder Ähnliches realisiert sein. Der Sensor 10 kann beispielsweise in einer Polklemme integriert sein, welche an einem Pol des Energiespeichers 12, vorzugsweise einem Batteriepol angebracht wird. Der Sensor 10 ist sowohl mit der Fahrzeugmasse auch mit dem Plus-Potenzial des Energiespeichers 12 verbunden.

Um ein höheres funktionales Sicherheitsniveau zu erreichen, wird eine Einrichtung vorgeschlagen, die insbesondere Speicherinterferenzen zwischen den Softwarekomponenten 38, 48 verhindert oder zumindest reduziert. Das wird erreicht durch das Vorsehen einer Speicherschutzeinrichtung 32 sowie das Festlegen unterschiedlicher Speicherbereiche 34, 44, 54 des Arbeitsspeichers 30 (RAM), der Bestandteil der Recheneinrichtung 11 des Sensors 10 ist. Beispielhaft dargestellt umfasst die Recheneinrichtung 11 bzw. der Sensor 10 zumindest eine Softwarekomponente 38 mit vorzugsweise niedrigerem Sicherheitsniveau (beispielsweise QM). Außerdem umfasst die Recheneinrichtung 11 bzw. der Sensor 10 eine Softwarekomponente 48 mit vorzugsweise höherem Sicherheitsniveau (beispielsweise ASIL B). Die Softwarekomponenten 38,48 können wiederum weitere Softwarekomponenten 38.1, 38.2 bzw. 48.1 ,48.2 umfassen. Weiterhin umfasst der Arbeitsspeicher 30 einen dynamischen Bereich in Form eines sogenannten Stacks (Stapelspeicher) 31. Der Stack 31 kann sowohl von Softwarekomponenten 38, 48 mit niedrigerem oder höherem Sicherheitsniveau ge- nutzt werden. Die Speicherbereiche 34, 44, 54 sind Bestandteile des statischen Bereichs des Arbeitsspeichers 30.

Die Softwarekomponente 38 mit vorzugsweise niedrigerem Sicherheitsniveau greift zur Ermittlung einer Ausgangsgröße 40 auf eine oder mehrere Variablen 39 zurück. Diese eine oder mehreren Variablen 39 und/oder die Ausgangsgröße 40 der Softwarekomponente 38 mit vorzugsweise niedrigerem Sicherheitsniveau werden in einem speziellen Speicherbereich 34 abgelegt.

Die Softwarekomponente 48 mit vorzugsweise höherem Sicherheitsniveau greift zur Ermittlung einer Ausgangsgröße 50 auf eine oder mehrere Variablen 49 zurück. Diese eine oder mehreren Variablen 49 und/oder die Ausgangsgröße(n) 50 der Softwarekomponente 48 mit vorzugsweise höherem Sicherheitsniveau werden in dem speziellen Speicherbereich 44 abgelegt.

Weiterhin ist ein weiterer Speicherbereich 54 des Arbeitsspeichers 30 reserviert zur Spiegelung des Speicherbereichs 44 bzw. zur Ablage der in dem Speicherbereich 44 abgelegten Variablen 49 und/oder Ausgangsgröße 50 der zugehörigen Softwarekomponente 48. Die gespiegelten Daten des Speicherbereichs 44, die in dem Speicherbereich 54 abgelegt sind, werden mit 49‘ bzw. 50‘ in Figur 2 bezeichnet. Eine Speicherschutzeinrichtung 32 übernimmt die Verwaltung insbesondere des Speicherbereichs 54 zur Ablage bzw. Spiegelung der Variable(n) 49 bzw. Ausgangsgröße(n) 50 sowie zur entsprechenden Verifikation (Vergleich) einer Übereinstimmung der Daten 49,50 wie im Speicherbereich 44 abgelegt mit den Daten 49‘, 50‘, die in dem Speicherbereich 54 abgelegt sind. Nach der Initialisierung des Arbeitsspeichers 30 während des Startvorgangs wird eine komplette Speicheroperation durchgeführt, in der der Inhalt des Speicherbereichs 44 in den Speicherbereich 54 gespiegelt wird.

Im Sensor 10 zur Erfassung und Ermittlung bestimmter Kenngrößen des Energiespeichers 12 sind beispielsweise unterschiedliche Softwarekomponenten 48.1, 48.2 hinterlegt, die unter Verwendung der entsprechenden Variablen 49 die jeweiligen Ausgangsgrößen 50 ermitteln. Hierbei kann es sich bei den entsprechenden Ausgangsgrößen 50 um einen Strom Ib, insbesondere gefiltert Strom Ib des Energiespeichers 12 und/oder eine Spannung Ub, insbesondere um eine ge- filtert Spannung Ub, am Energiespeicher 12 und/oder eine Temperatur Tb am Energiespeicher 12 und/oder ein Innenwiderstand Ri des Energiespeichers 12 und/oder um ein Fehlersignal eines Kanals des Analog-Digital-Wandlers 15, insbesondere für den Spannungskanal und/oder für den Stromkanal, handeln. Es handelt sich insbesondere um solche Ausgangsgrößen 50, welche solche Kenngrößen des Energiespeichers 12 beschreiben, die eine hohe Zuverlässigkeit aufweisen müssen, insbesondere indem sie als Eingangsgrößen für Komponenten mit hohen Sicherheitsanforderungen, wie sie beispielsweise für das autonome Fahren oder Ähnliches verwendet werden, dienen.

Im vorliegenden Sensor 10 zur Erfassung und Ermittlung bestimmter Kenngrößen des Energiespeichers 12 sind beispielsweise unterschiedliche Softwarekomponenten 38.1, 38.2 mit geringeren Sicherheitsanforderungen hinterlegt, die unter Verwendung der entsprechenden Variablen 39 die jeweiligen Ausgangsgrößen 40 ermitteln. Hierbei kann es sich bei den entsprechenden Ausgangsgrößen 40 um eine Sulfatierung, ein Ladezustand SOC des Energiespeichers 12, eine Kapazität des Energiespeichers 12 und/oder einen Ruhestrom des Energiespeichers 12 oder ähnliche Kenngrößen des Energiespeichers 12 handeln. Es sind insbesondere solche Ausgangsgrößen 50, welche solche Kenngrößen des Energiespeichers 12 beschreiben, die zwar beispielsweise für Diagnose- oder Informationszwecke interessant sind, jedoch keine hohe Zuverlässigkeit aufweisen müssen, insbesondere indem sie nicht als Eingangsgrößen für Komponenten mit hohen Sicherheitsanforderungen, wie sie beispielsweise für das autonome Fahren oder Ähnliches verwendet werden, dienen.

Beispielhaft wird eine Softwarekomponente 48 beschrieben, die eine Strommessung und Filterung durch den Sensor 10 und somit als Ausgangsgröße 50 einen Strom Ib des Energiespeichers 12 liefert. Beispielsweise über den Messwiderstand 13, der im Sensor 10 integriert ist, und den Analog-Digital-Wandler 15 wird ein Stromwert abgegriffen und im Stack 31 als zugehörige Variable abgelegt. Eine Speicherschutz-Operation ist nicht erforderlich, da lediglich eine Schreiboperation für den Stack 31 bzw. das Auslesen des Registers des Analog-Digital- Wandlers 15 vorgenommen wurde. Anschließend wird eine Kalibrierung für die im Stack 31 abgelegte Variable wie oben beschrieben durchgeführt unter Verwendung eines Verstärkungsfaktors und eines Offsetwertes. Verstärkungsfaktor und Offsetwert werden als Variable 49 im sicherheitsrelevanten Speicherbereich 44 abgelegt. Hierbei ist eine Speicherschutzoperation vorgesehen, da beispielsweise ein FIFO-Speicher des sicherheitsrelevanten statischen Speicherbereichs 44 beschrieben wird. Das Lesen des FIFO-Index (Speicheradresse) selbst benötigt keine Speicherschutzeinheit.

Der kalibrierte Stromwert wird beispielsweise in den FIFO-Puffer im statischen sicherheitsrelevanten Speicherbereich 44 geschoben entsprechend dem aktuellen FIFO-Index (Speicheradresse). Der entsprechende aktuelle FIFO-Index (Speicheradresse) wird ebenfalls in dem sicherheitsrelevanten Speicherbereich 44 neben dem kalibrierten Stromwert Ib (als Ausgangsgröße 50) abgelegt. Wiederum führt die Speicherschutzeinrichtung 32 die entsprechenden Schutzoperationen durch.

Beispielhaft wird eine Softwarekomponente 48 beschrieben, die eine Stromfilterungs-Sequenz beschreibt. Zunächst wird der Stromstatus und/oder Strom Ib als Variable in den Stack 31 eingelesen. Da der Stack 31 beschrieben und der statische Speicherbereich 44 ausgelesen wird, ist die Speicherschutzeinrichtung 32 nicht aktiv. Diese Werte gehen in ein Signalfilter. Die ausgegebene Ausgangsgröße, nämlich der gefilterte Stromwert, wird in dem statischen sicherheitsrelevanten Speicherbereich 44 abgespeichert. Für diese Operation wird wieder die Speicherschutzeinrichtung 32 (Durchführung eines Vergleichs) aktiviert.

Beispielhaft erfolgt in einer weiteren Softwarekomponente 48 die Verarbeitung des Stromwerts. Hierzu wird der kalibrierte Stromwert aus dem statischen sicherheitsrelevanten Speicherbereich 44 ausgelesen und gelangt als Variable in den Stack 31 entsprechend einer bestimmten Stack-Adresse. Eine Speicherschutzoperation (Vergleich) ist hierbei nicht erforderlich, da lediglich Leseoperationen des sicherheitsrelevanten Speicherbereichs 44 durchgeführt werden. Die Stackadresse wird in dem Speicherbereich 44 abgelegt. Deshalb ist eine Speicherschutz-Operation erforderlich. Der Stromwert wird im Stack 31 verarbeitet abgespeichert. Der dort abgelegte Stromwert wird als Ausgangswert 50 im stati- sehen sicherheitsrelevanten Speicherbereich 44 abgespeichert unter Durchführung der Speicherschutzoperation.

Für die Realisierung der Speicherschutzeinrichtung 32 gibt es unterschiedliche Möglichkeiten. Zum einen können bestimmte Hardware- Komponenten vorgesehen werden, die selbst die Speicherschutzeinrichtung 32 enthalten. Alternativ kann die Speicherschutzeinrichtung 32 realisiert werden durch die Implementierung einer bestimmten Software-Architektur. Diese Softwarearchitektur stellt sicher, dass keine Interferenzen beim Speicherzugriff auftreten. Eine spezielle Software- Komponente wird jedoch nicht benötigt. Alternativ kann die Speicherschutzeinrichtung 32 durch eine spezielle Software- Komponente realisiert werden. Diese Software- Komponente läuft während ihrer Nutzung zyklisch in einem anwenderspezifischen Schaltkreis (ASIC) des Sensors 10 und überwacht insbesondere die RAM-Bereiche bzw. Speicherbereiche 44,54 der Software- Komponenten 48.

Die Speicherschutzeinrichtung 32 ist in der Lage, Software bzw. Softwarekomponenten 38,48 unterschiedlichen Sicherheitsniveaus (beispielsweise Softwarekomponenten 38 mit niedrigem Sicherheitsniveau nach QM; bzw. Softwarekomponenten 48 mit hohem Sicherheitsniveau wie beispielsweise nach ASIL- B erstellt entsprechend ISO 26262) zu erkennen bzw. differenziert zu behandeln. Die Speicherschutzeinrichtung 32 ist beispielsweise in der Lage, QM- Softwarekomponenten, ASIL B- Softwarekomponenten mit den zugehörigen Variablen 39, 49 bzw. Ausgangsgrößen 40, 50 zu identifizieren. Hierbei werden insbesondere Softwarekomponenten 38 mit niedrigerem Sicherheitsniveau (QM) erkannt, die den Speicherinhalt von mit höherem Sicherheitsniveau (beispielsweise ASIL B) bewerteten Softwarekomponenten 48 beschädigen könnten und im Fall einer Beschädigung bzw. Verfälschung des Speicherinhalts innerhalb einer bestimmten Zeitspanne in einen sicheren Zustand überführt werden können. Dies wird durch die dezidierte Zuordnung bestimmter Speicherbereiche 34 bzw. 44 für unterschiedliche Softwarekomponenten 38 zw. 48 wie oben beschrieben behoben.

Softwarekomponenten 48 mit einem höheren Sicherheitsniveau (beispielsweise ASIL B) werden unter Einhaltung eines strengen Prozesses entwickelt, der sicherstellt, dass insbesondere keine Speicherinterferenzen verursacht werden. Unterschiedliche Mechanismen können Ursache für Korrumption sein. So könnte beispielsweise ein unbeabsichtigter bzw. unerwünschter Speicherzugriff durch eine Referenzierung des Variabiennamens oder der Adresse einer Komponente 48 mit höherem Sicherheitsniveau erfolgen. Zur Behebung dieses Problems kann der Zugriff über Variablen-Namen durch eine Begrenzung der Sichtbarkeit der Variablen vermieden werden. Der Zugriff über die Adresse erfolgt durch die Verwendung eines falschen Werts als Adresse oder aufgrund einer Durchführung einer falschen Pointer-Arithmetik bezogen auf eine Adresse.

Die unterschiedlich adressierbaren Speicherbereiche 34, 44, 54 weisen einen Unterschied in der Verwundbarkeit gegen unberechtigten Zugriff über die Adresse auf.

Nachfolgend werden Maßnahmen zur Ermittlung einer Speicherkorrumption beschrieben. Bei einem statischen Speicherschutz basiert die Erkennung einer Speicherkorrumption auf einer Duplizierung eines Speicherinhalts des Speicherbereichs 44, insbesondere eines sicherheitsrelevanten Speicherinhalts in Form der Variablen 49 und/oder der Ausgangsgrößen 50. So wird insbesondere der Speicherbereich 34 für Softwarekomponenten 38 mit niedrigerem Sicherheitsniveau (QM) von einem Speicherbereich 44, auf den die Softwarekomponente 48 mit höherem Sicherheitsniveau (ASIL B) zugreift, getrennt. Entsprechend wird ein Speicherbereich 54 als zu dem Arbeitsspeicherbereich 44 gespiegelter Bereich für die Softwarekomponente(n) 48 mit höherem Sicherheitsniveau vorgesehen. Dadurch wird ein redundantes Abbild des Speicherberichs 44 bezüglich statischer Variablen 49 und/oder Ausgangsgröße(n) in einem gespiegelten Bereich 54 (Variable(n) 49‘ und/oder Ausgangsgröße(n) 50‘) sichergestellt. Ein entsprechender Speicherbereich 54 soll verfügbar sein für ein Spiegeln bzw. Duplizieren eines Bereichs des Arbeitsspeichers 44 für die Softwarekomponenten 48 mit höherem Sicherheitsniveau, insbesondere eines solchen Speicherbereichs 44, in dem sicherheitsrelevante Daten abgelegt werden. Anschließend wird die Konsistenz zwischen dem entsprechenden Bereich des Arbeitsspeichers 44 und dem gespiegelten Speicherbereich 54 überprüft, beispielsweise durch regelmäßige Vergleiche mit einer Periodizität, die kürzer ist als die Fehlertoleranzzeit und insbesondere vor einer Modifizierung des Speicherbereichs 54. So wird zumindest ein Bereich des Arbeitsspeichers 44 der Komponente 48 mit höherem Sicherheitsniveau gespiegelt in den Speicherbereich 54, nachdem der Speicherbereich 44 modifiziert wurde, und/oder bevor die Softwarekomponente 38 mit niedrigerem Sicherheitsniveau (QM) ausgeführt wurde.

Die Konsistenzprüfung (Vergleich) erfolgt, indem der Inhalt des entsprechend ausgebildeten Bereichs des Arbeitsspeichers 44 verglichen wird mit dem zugehörigen Inhalt des Speicherbereichs 54. Das Layout des Bereichs des Arbeitsspeicherbereichs 44 und des Arbeitsspeicherbereichs 54 ist identisch. Hierbei können die einzelnen abgespeicherten Werte bzw. Daten (Variable(n) 49, Ausgangsgröße^) 50) des Speicherbereichs 44 mit den zugehörigen Werten bzw. Daten (Variable(n) 49‘, Ausgangsgröße(n) 50‘) des Speicherbereichs 54 verglichen werden. Oder es können komplette Blöcke, die mehrere Variable(n) 49, 49‘ bzw. Ausgangsgröße(n) 50, 50‘ in den unterschiedlichen Bereichen 44,54 jeweils miteinander komplett verglichen werden.

Sofern ein korrumpierter Speicherbereich 44 detektiert wurde (keine Übereinstimmung der verglichenen Daten), wechselt der Sensor 10 in den sicheren Zustand. Die Konsistenz der Speicheradressen wird mit einer vorgegebenen Periodizität überprüft und/oder insbesondere vor jeder Modifikation und/oder bevor eines entsprechenden Zugriffs. Die Periodizität der Überprüfung kann so gewählt werden, dass die Fehlertoleranzzeit, die je nach individuellen Anforderungen vorgegeben werden kann, eingehalten wird.

Alternativ könnte eine unterschiedliche Vorgehensweise danach ausgerichtet werden, von wem die Software bzw. der Softwarecode erstellt wurde. So könnte die Software vom Ersteller auf Konsistenz überprüft werden und die Spiegelung auf Variablen-Level erfolgen, also nur bestimmte Teile könnten gespiegelt werden.

Anhand Figur 3 werden die verschiedenen Schritte für die Vergleichsoperation zwischen den Daten bzw. Werten des Speicherbereichs 44 und des gespiegelten Speicherbereichs 54 dargestellt. Zunächst wird die Bestimmungsadresse ermittelt, Schritt 101. Dies erfolgt beispielsweise unter Verwendung eines festen Offsets zwischen der ursprünglichen Adresse im Speicherbereich 44 und derjenigen im gespiegelten Speicherbereich 54. In der Abfrage 102 wird überprüft, ob der Bestimmungswert (Variable 49‘ und/oder Ausgangsgröße 50‘) des gespiegelten Speicherbereichs 54 übereinstimmt mit dem Quellenwert (Variable 49 und/oder Ausgangsgröße 50) des Speicherbereichs 44. Bei einer Abweichung schließt sich Schritt 103 an. Dann wird die entsprechende Adresse des korrumpierten Speicherbereichs 44 gespeichert (Schritt 103) und eine Fehler-Information generiert (Schritt 104). Anschließend endet die Vergleichsoperation. Gegebenenfalls wird der Sensor 10 in einen sicheren Zustand überführt.

In Figur 4 sind die verschiedenen Schritte für eine Speicheroperation gezeigt. Die Speicheroperation startet mit der in Figur 3 beschriebenen Vergleichsoperation. Sofern die Vergleichsoperation erfolgreich durchlaufen wurde, dann wird der neue abzuspeichernde Wert (Variable 49 und/oder Ausgangsgröße 50) als zugehöriger neuer Quellwert in dem Speicherbereich 44 abgelegt (Schritt 105), die Zieladresse in dem gespiegelten Speicherbereich 56 (beispielsweise durch einen definierten Offset gegenüber der Speicheradresse im Speicherbereich 44) ermittelt (Schritt 106) und der aktualisierte Wert (als Variable 49‘ und/oder Ausgangsgröße 50‘) in dem gespiegelten Speicherbereich 54 abgelegt, Schritt 107. Damit ist die Speicheroperation beendet.

Ähnlich wie die Speicheroperation kann eine Inkrementierungsoperation durchgeführt werden, nachdem die Vergleichsoperation wie in Figur 3 gezeigt erfolgreich durchlaufen wurde. Anschließend wird die zugehörige Variable in dem Speicherbereich 44 inkrementiert und nach Ermittlung der Speicheradresse des gespiegelten Speicherbereichs 54 auch dort abgelegt. Die Speicheradresse des gespiegelten Speicherbereichs 54 kann beispielsweise wiederum durch einen feststehenden Offset auf die ursprüngliche Speicheradresse des Speicherbereichs 44 ermittelt werden.

Ähnlich wie die Speicheroperation kann eine Dekrementierungsoperation durchgeführt werden, nachdem die Vergleichsoperation wie in Figur 3 gezeigt erfolgreich durchlaufen wurde. Anschließend wird die zugehörige Variable in dem Speicherbereich 44 dekrementiert und nach Ermittlung der Speicheradresse des gespiegelten Speicherbereichs 54 auch dort abgelegt. Die Speicheradresse des gespiegelten Speicherbereichs 54 kann beispielsweise wiederum durch einen feststehenden Offset auf die ursprüngliche Speicheradresse des Speicherbereichs 44 ermittelt werden.

Die beschriebenen Funktionen Vergleichen, Speichern, Inkrementieren, Dekre- mentieren könnten beispielsweise für für Softwarekomponenten 38,48 zum Einsatz kommen, die beispielsweise intern bzw. vorab erstellt wurden im Gegensatz zu weiteren beispielsweise von Dritten bzw. später hinzugefügten Softwarekomponenten. Für diese (intern bzw. vorab erstellten) Komponenten 38,48 können die beschriebenen Funktionen basierend auf den einzelnen Variablen 49 bzw. Ausgangsgrößen 50 durchgeführt werden. Hierzu können entsprechende Makros angewendet werden, in denen insbesondere statische (selbst erstellte) Variab- lenwerte modifiziert werden. In diesem Fall erfolgt zuerst die Vergleichsoperation und anschließend die neue Wertzuordnung. Im Fall einer Leseaktion von statischen Variablen ist kein spezieller Speicherschutz erforderlich, da bei einer späteren Modifikation eines variablen Werts eine eventuell stattgefundene Korrump- tion identifiziert wird. Je nach Datengröße oder Datenart der Variablen 49 und/oder Ausgangsgrößen 50 können unterschiedliche Schnittstellen bzw. Makros implementiert werden.

Es gibt bestimmte statische Variablen 49 und/oder Ausgangsgrößen 50 (insbesondere intern bzw. vorab erstellt), die seltener aktualisiert werden als eine sogenannte Fehlertoleranzzeit. Um eine mögliche Speicherkorrumption innerhalb der Fehlertoleranzzeit für solche Variablen 49 und/oder Ausgangsgrößen 50 zu identifizieren, erfolgt ein zusätzlicher Vergleich, der häufiger durchgeführt wird als die Fehlertoleranzzeit neben einer ohnehin üblichen Überprüfung bei einer Aktualisierung der entsprechenden Variablen 49 und/oder Ausgangsgröße 50. So kann beispielsweise der sicherheitsrelevante Speicherbereich 44 über eine bestimmte Speichergröße in Blöcke aufgeteilt werden, wobei Vergleiche der entsprechend festgelegten Blöcke des Speicherbereichs 44 mit den zugehörigen Blöcken des gespiegelten Speicherbereichs 54 zyklisch durchgeführt werden. So kann beispielsweise das gesamte statische Variablen-Set verglichen werden innerhalb der Fehlertoleranzzeit. Zur Ermittlung der zugehörigen Adressen der zu vergleichenden Blöcke wird überprüft, ob die Anfangsadresse sowie die Blockgröße innerhalb des zulässigen Speicherbereichs 44 bzw. 54 liegen, bzw. es werden nur solche Blöcke überprüft, die innerhalb des entsprechenden Speicherbereichs 44,54 liegen.

Bei Softwarekomponenten 48, die von Dritten erstellt wurden, ist davon auszugehen, dass die entsprechenden Source-Files nicht modifiziert werden können, sodass die zuvor beschriebene variabienbasierten Schutzmechanismen in dieser Form nicht angewendet werden können. Vielmehr erfolgt in diesem Fall eine blockweise Überprüfung von Blöcken, die in dem sicherheitsrelevanten Speicherbereich 44 und gespiegelt auch in dem Speicherbereich 54 abgelegt sind. Blöcke können definiert und erkannt werden durch die Startadresse und die Blockgröße als Eingangsgrößen für die nachfolgenden Funktionen. Vor dem Aufruf einer solchen (von Dritten erstellten oder generierten) Softwarekomponente 48 wird die Block-Vergleichsoperation parametrisiert durchgeführt mit dem entsprechenden statischen Speicherblock. Nach einem erfolgreichen Vergleich (die verglichenen Blöcke im sicherheitsrelevanten Speicherbereich 44 und im Speicherbereich 54 jeweils gespiegelt abgespeichert stimmen überein) wird die zugehörige Softwarekomponente 48 ausgeführt. Anschließend kann eine Kopierfunktion für den entsprechenden Block durchgeführt werden, parametrisiert mit dem jeweils relevanten statischen Speicherblock. Hierzu wird an die Speicherschutzeinrichtung 32 beispielsweise die Startadresse des Blocks und die Blockgröße übermittelt, über die der beschriebene Blockvergleich für den identifizierten Block durchgeführt wird. Gegebenenfalls erfolgt eine Fehlerbehandlung. Bei einer Übereinstimmung wird der Aufruf der entsprechenden Softwarekomponente 48 zugelassen, die ihrerseits wieder auf den entsprechenden Block beispielsweise im Rahmen einer Kopierfunktion zugreifen kann. Der Vergleich basierend auf Blöcken erfolgt für einen oder mehrere Blöcke ähnlich wie in Verbindung mit Figur 3 für die Variablen 49 und/oder Ausgangsgrößen 50 beschrieben, nur anstelle auf Variabienbasis auf Blockbasis.

Die im sicherheitsrelevanten Speicherbereich 44 abgelegten Werte (beispielsweise mehrere Variablen 49 und/oder Ausgangsgrößen 50), die zu einem Block gehören, werden erforderlichenfalls im Block in den gespiegelten Speicherbereich 54 kopiert. Die Zieladresse des Speicherbereichs 54 wird beispielsweise ermittelt über einen fixen Offset auf die Speicheradresse des Speicherbereichs 44. Nach dem entsprechenden Abspeichern wird beispielsweise die Zieladresse des Speicherbereichs 44 und/oder des Speicherbereichs 54 inkrementiert, sodass die zugehörige Operation für den nächsten zu kopierenden Block durchgeführt werden kann, bis alle Blöcke entsprechend gespiegelt wurden.

Die hohe Anzahl an redundanten Speicher- und Vergleichs-Operationen kann eine hohe Belastung der Recheneinheit zufolge haben und zu einem wachsenden Speicherbedarf (ROM) führen. Durch die folgenden Optionen kann die Rechenleistung reduziert werden. Zum einen kann die Periodizität der regulären Überprüfung angepasst werden. Zum einen könnte die Überprüfung in einem Makro programmiert werden, was zwar einen höheren Speicherbedarf (ROM) zur Folge hätte, jedoch geringere Rechenleistung benötigt. Die Ausführung könnte basierend auf der Funktion erfolgen, was zwar höhere Rechenleistung, jedoch geringeren Speicherbedarf nach sich zöge. Alternativ könnte die Funktion zumindest zeitweise deaktiviert werden.

Um Anfälligkeiten des Stacks 31 zu minimieren, könnte das entsprechende Layout einfach gehalten werden. So soll die Abfolge einfach gehalten werden. Es werden nur Interrupts von Komponenten 48 mit höherem Sicherheitsniveau zugelassen. Softwarekomponenten 38 mit niedrigerem Sicherheitsniveau werden nur aufgerufen von Komponenten 48 mit höherem Sicherheitsniveau bzw. zugehörigem Betriebssystem bzw. die Programme springen dorthin wieder zurück. Das Betriebssystem verwendet keine Stack-Variablen bis zum Aufruf der Softwarekomponente 38 mit niedrigerem Sicherheitsniveau. Die Funktionen der Softwarekomponente 38 mit niedrigerem Sicherheitsniveau, die durch das Betriebssystem aufgerufen werden, umfassen keine Rücksprungswerte. Es wird nur ein einziger Stack 31 benutzt. Die Daten im Stack 31 werden jedoch dann überprüft, wenn eine entsprechende Anweisung erfolgt. In der überwiegenden Anzahl der Fälle werden entsprechende Werte zu Hardware-Ausnahmen führen, die eine Überleitung in den sicheren Zustand zur Folge haben.

Werden Programme der Komponenten 38 mit niedrigerem Sicherheitsniveau ausgeführt, enthält der Programmspeicher bzw. Stack 31 keine Daten, die von Komponenten 48 mit höherem Sicherheitsniveau verwendet werden. Die beschriebene Vorrichtung eignet sich insbesondere für die Erhöhung der Zuverlässigkeit des Gesamtsystems insbesondere für das autonome Fahren, an das besonders strenge Sicherheitsanforderungen für die beteiligten Komponenten gestellt werden. Die Verwendung ist jedoch hierauf nicht eingeschränkt.