DE102022212057A1 - Method for analyzing functional paths for an embedded system, data processing device, computer program and computer-readable data carrier - Google Patents

Method for analyzing functional paths for an embedded system, data processing device, computer program and computer-readable data carrier Download PDF

Info

Publication number
DE102022212057A1
DE102022212057A1 DE102022212057.4A DE102022212057A DE102022212057A1 DE 102022212057 A1 DE102022212057 A1 DE 102022212057A1 DE 102022212057 A DE102022212057 A DE 102022212057A DE 102022212057 A1 DE102022212057 A1 DE 102022212057A1
Authority
DE
Germany
Prior art keywords
functional
electronic component
path
computer
analysis
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
DE102022212057.4A
Other languages
German (de)
Inventor
Matthias Glück
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.)
Volkswagen AG
Original Assignee
Volkswagen AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Volkswagen AG filed Critical Volkswagen AG
Priority to DE102022212057.4A priority Critical patent/DE102022212057A1/en
Publication of DE102022212057A1 publication Critical patent/DE102022212057A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

Die Erfindung betrifft ein Verfahren zur Analyse von funktionalen Pfaden (A-F; D-E) für ein eingebettetes System (10), welches mindestens einen Funktionsblock (12) aufweist, welcher eine Software-Komponente (14) und eine Elektronik-Komponente (16) aufweist.Es ist vorgesehen, dass eine Hardware-Modell-Beschreibung des Funktionsblocks (12) in einer Hardware-Beschreibungssprache unter Verwendung eines erzeugten Software-Komponenten-Modells der Software-Komponente (14) und eines erzeugten Elektronik-Komponenten-Modells der Elektronik-Komponente (16) erzeugt wird. Die Hardware-Modell-Beschreibung erlaubt eine vollumfängliche Pfadanalyse inklusive einer Timinganalyse eines Software- und Elektronik-Komponenten (14, 16) umfassenden Funktionsblocks (12).The invention relates to a method for analyzing functional paths (A-F; D-E) for an embedded system (10) which has at least one functional block (12) which has a software component (14) and an electronic component (16). It is provided that a hardware model description of the functional block (12) is generated in a hardware description language using a generated software component model of the software component (14) and a generated electronic component model of the electronic component (16). The hardware model description allows a comprehensive path analysis including a timing analysis of a functional block (12) comprising software and electronic components (14, 16).

Description

Die Erfindung betrifft ein Verfahren zur Analyse von funktionalen Pfaden, insbesondere von funktionalen Sicherheitspfaden, für ein eingebettetes System, eine Vorrichtung zur Datenverarbeitung, ein Computerprogramm und einen computerlesbaren Datenträger. Vorzugsweise umfasst das eingebettete System ein Steuergerät eines Kraftfahrzeugs, bevorzugt eines selbstlenkenden Kraftfahrzeugs.The invention relates to a method for analyzing functional paths, in particular functional safety paths, for an embedded system, a data processing device, a computer program and a computer-readable data carrier. The embedded system preferably comprises a control unit of a motor vehicle, preferably a self-driving motor vehicle.

Eingebettete Systeme bestehen typischerweise aus Hardware und Software, welche in ein komplexes technisches System eingebettet sind, so zum Beispiel Steuergeräte in Kraftfahrzeugen. Derartige eingebettete Systeme können in dem technischen System verschiedene Steuerungs-, Regelungs- und Datenverarbeitungsaufgaben übernehmen.Embedded systems typically consist of hardware and software that are embedded in a complex technical system, such as control units in motor vehicles. Such embedded systems can perform various control, regulation and data processing tasks in the technical system.

Steuergeräte in modernen Kraftfahrzeugen wachsen überproportional in der Komplexität. Im Gegensatz zu konventionellen Fahrzeugen, bei welchen der Fahrer des Fahrzeugs auf einen Ausfall einer Komponente reagieren kann, um Schlimmeres zu verhindern, besteht eine derartige Möglichkeit beim autonomen Fahren nicht. So sind insbesondere im Umfeld der autonomen Fahrzeuge zunehmend mehr Sicherheitsrelevanz und tiefgreifende Softwarestrukturen in der Absicherung, der Sicherheit gemäß ASIL-Level (Automotive Safety Integrity Level) im Sinne der funktionalen Sicherheitsentwicklung nach ISO 26262-2018, erforderlich.Control units in modern motor vehicles are growing disproportionately in complexity. In contrast to conventional vehicles, where the driver of the vehicle can react to a component failure to prevent something worse from happening, this is not possible with autonomous driving. In the area of autonomous vehicles in particular, increasing safety relevance and in-depth software structures are required to ensure safety in accordance with ASIL level (Automotive Safety Integrity Level) in the sense of functional safety development according to ISO 26262-2018.

Die ISO 26262 („Road vehicles - Functional safety“) ist eine ISO-Norm für sicherheitsrelevante elektronische Systeme und deren Software in Kraftfahrzeugen. Rein mechanische Systeme oder auf mechanische Systeme zurückführende Probleme sind von der ISO 26262 nicht umfasst. Die ISO 26262 definiert ein Vorgehensmodell zusammen mit geforderten Aktivitäten und Arbeitsprodukten („work products“) sowie anzuwendenden Methoden in Entwicklung und Produktion. In der Entwicklung einer Fahrzeugkomponente werden daher schon heute mehrere zehntausend Anforderungen und Architekturelemente definiert, die erfüllt werden müssen.ISO 26262 ("Road vehicles - Functional safety") is an ISO standard for safety-relevant electronic systems and their software in motor vehicles. Purely mechanical systems or problems that can be traced back to mechanical systems are not covered by ISO 26262. ISO 26262 defines a process model together with required activities and work products as well as methods to be used in development and production. In the development of a vehicle component, tens of thousands of requirements and architecture elements are therefore already defined that must be met.

Bei der Entwicklung findet üblicherweise das sogenannte „V-Modell“ Anwendung. Das V-Modell ist ein lineares Vorgehensmodell im Projektmanagement, das ein Projekt in fest definierte Phasen untergliedert. Es werden Testphasen ergänzt, die den jeweiligen Entwicklungsphasen gegenübergestellt sind. Somit werden in der Entwicklung nicht nur Systemarchitektur oder Komponentenspezifikationen erstellt, sondern auch die dazugehörenden Tests. Dies stellt sicher, dass sowohl die einzelnen Komponenten als auch das Gesamtsystem getestet sind und wie gewünscht funktionieren.The so-called "V-model" is usually used in development. The V-model is a linear process model in project management that divides a project into clearly defined phases. Test phases are added that are compared to the respective development phases. This means that not only system architecture or component specifications are created in development, but also the associated tests. This ensures that both the individual components and the overall system are tested and function as desired.

Mit der heutigen Technik werden entsprechend viele Tests gemacht, um die Sicherheit des Produktes oder der Komponente zu überprüfen. Dabei ist ein Test aber immer nur ein statischer Auszug über die Zeit im Suchraum. Die Durchführung eines vollständigen Tests ist in den meisten Fällen unmöglich oder schlichtweg nicht wirtschaftlich, da nicht unendlich viel Zeit und unendlich viele Testkapazitäten vorhanden sind, um einen vollständigen Test durchzuführen.With today's technology, a large number of tests are carried out to check the safety of the product or component. However, a test is always only a static extract over time in the search space. In most cases, carrying out a complete test is impossible or simply not economical, as there is not an infinite amount of time and an infinite amount of testing capacity to carry out a complete test.

So beschreibt das Dokument US 2019/0324422 A1 eine Lösung, die darauf abzielt, auf „weiche Fehler“ („soft errors“) zurückführbare Fehlfunktionen eines Steuergeräts zu verhindern. Weiche Fehler sind danach Fehler, deren Ursache ein Fehler im Wert eines Datums oder eines Signals ist, das von einer oder mehreren Komponenten (oder Blöcken) des Systems erzeugt wird, die aber nicht das Ergebnis eines Fehlers oder Defekts der zugrunde liegenden Komponente oder des Systems sind, wie ein Defekt, ein Rauschen, eine elektromagnetische Interferenz, Teilchenstrahlung oder ein vorrübergehender Fehler.The document describes US 2019/0324422 A1 a solution aimed at preventing malfunctions of a control unit that can be traced back to "soft errors". Soft errors are errors that are caused by an error in the value of a data item or a signal generated by one or more components (or blocks) of the system, but are not the result of an error or defect in the underlying component or system, such as a defect, noise, electromagnetic interference, particle radiation or a transient error.

Es hat sich jedoch herausgestellt, dass selbst bei größter Sorgfalt das Auftreten von Fehlern in der Entwicklung und Absicherung von Produkten und Komponenten nicht ausgeschlossen ist. Zudem bedingt der Umstand, dass ein vollständiger Test nicht möglich ist, ein unerwünschtes Restrisiko.However, it has been shown that even with the greatest care, the occurrence of errors in the development and validation of products and components cannot be ruled out. In addition, the fact that a complete test is not possible creates an undesirable residual risk.

Der Erfindung liegt nun die Aufgabe zugrunde, ein Verfahren zu entwickeln, welches ein Fehlerrisiko in der Entwicklung und Absicherung von Produkten und Komponenten reduziert.The invention is based on the object of developing a method which reduces the risk of errors in the development and validation of products and components.

Die erfindungsgemäße Aufgabe wird gelöst durch ein Verfahren zur Analyse von funktionalen Pfaden für ein eingebettetes System, eine Vorrichtung zur Datenverarbeitung, ein Computerprogramm und einen computerlesbaren Datenträger gemäß den unabhängigen Patentansprüchen. Bevorzugte Weiterbildungen sind Gegenstand der jeweils rückbezogenen Unteransprüche.The object according to the invention is achieved by a method for analyzing functional paths for an embedded system, a device for data processing, a computer program and a computer-readable data carrier according to the independent patent claims. Preferred developments are the subject of the respective dependent claims.

Ein erster Aspekt betrifft ein Verfahren zur Analyse von funktionalen Pfaden, insbesondere von funktionalen Sicherheitspfaden, für ein eingebettetes System. Das eingebettete System weist mindestens einen Funktionsblock auf, welcher mindestens eine Software-Komponente und mindestens eine Elektronik-Komponente umfasst. Das eingebettete System übernimmt bevorzugt Steuerungs-, Regelungs- und/oder Datenverarbeitungsaufgaben von sicherheitsrelevanten Komponenten und/oder Produkten.A first aspect relates to a method for analyzing functional paths, in particular functional safety paths, for an embedded system. The embedded system has at least one functional block, which comprises at least one software component and at least one electronic component. The embedded system preferably takes over control, regulation and/or data processing tasks of safety-relevant components and/or products.

In einem Verfahrensschritt wird ein Software-Komponenten-Modell von der Software-Komponente basierend auf einer kombinatorischen Logik und einem logischen Speicherelement erzeugt. Basierend auf einer weiteren kombinatorischen Logik und einem weiteren logischen Speicherelement wird ein Elektronik-Komponenten-Modell von der Elektronik-Komponente erzeugt. Ferner werden Ausführungszeiten von der Software-Komponente und der Elektronik-Komponente erhalten. In einem weiteren Schritt wird basierend auf dem Software-Komponenten-Modell, dem Elektronik-Komponenten-Modell und den erhaltenen Ausführungszeiten eine Hardware-Modell-Beschreibung des Funktionsblocks in einer Hardware-Beschreibungssprache erzeugt. Unter Verwendung der erzeugten Hardware-Modell-Beschreibung des Funktionsblocks wird eine Pfadanalyse, vorzugweise eine Sicherheitspfadanalyse, durchgeführt.In a process step, a software component model is created from the software component based on a combinatorial logic and a logical storage element. Based on further combinatorial logic and a further logical storage element, an electronic component model is generated from the electronic component. Furthermore, execution times are obtained from the software component and the electronic component. In a further step, a hardware model description of the functional block is generated in a hardware description language based on the software component model, the electronic component model and the obtained execution times. Using the generated hardware model description of the functional block, a path analysis, preferably a safety path analysis, is carried out.

Das erfindungsgemäße Verfahren eröffnet eine Möglichkeit, mittels Pfadanalyse über die Konstruktion des Produktes oder der Komponente eine Aussage auf die Vollständigkeit und Korrektheit der in dem Funktionsblock vorhandenen Pfade, insbesondere der sicherheitsrelevanten Pfade (safety paths), gegenüber einer vorgegebenen Spezifikation zu treffen. Die vorgegebene Spezifikation ist beispielsweise in der linken Seite des eingangs genannten V-Modells enthalten und umfasst bevorzugt die in der ISO 26262 genannten sicherheitsrelevanten Anforderungen und Architekturelemente der funktionalen Sicherheitsentwicklung.The method according to the invention opens up the possibility of using path analysis to make a statement about the completeness and correctness of the paths present in the functional block, in particular the safety-relevant paths, compared to a given specification via the design of the product or component. The given specification is contained, for example, in the left-hand side of the V-model mentioned at the beginning and preferably includes the safety-relevant requirements and architectural elements of functional safety development mentioned in ISO 26262.

Dadurch, dass sowohl die Software- als auch die Elektronik-Komponente in der Hardware-Modell-Beschreibung des Funktionsblocks abgebildet werden und in einer Hardware-Beschreibungssprache vorliegen, kann die Gesamt-Software inklusive Elektronik einer vollständigen Pfadanalyse mittels an sich bekannter Werkzeuge und Methodiken, die für das Umfeld einer Hardware-Beschreibungssprache programmiert sind, unterzogen werden. Somit kann mindestens ein im Funktionsblock enthaltener funktionaler Pfad ausgegeben und überprüft werden. Bevorzugt werden eine Vielzahl oder alle der im Funktionsblock enthaltene funktionale Pfade ausgegeben und/oder geprüft. Dies erlaubt es, einen in mathematischer Hinsicht vollständigen Gegenbeweis (gemäß rechter Seite des V-Modells) zu erbringen. Somit kann mitunter das im Stand der Technik auftretende Restrisiko der endlichen Testreihen ausgeräumt werden. Die aus der Pfadanalyse gewonnenen Erkenntnisse können zur Überarbeitung der linken Seite des V-Modells (Anforderungen und Architekturelemente) einfließen, um die Sicherheit des Produktes oder der Komponente zu erhöhen und zu verbessern. Die bekannten modellbasierten Entwicklungen, wie zum Beispiel Werkzeuge von Mathworks Matlab/Simulink®, dSpace Toolkette® oder Ansys SCADE®, bieten diese Möglichkeiten nicht. Die bekannten Lösungen fokussieren sich lediglich auf die Modellierung von funktionalen Inhalten und kommen über die Komplexitätsklasse bezüglich der Analyse einer einzelnen dedizierten Software-Komponente nicht hinaus. Mit anderen Worten ermöglicht das erfindungsgemäße Verfahren eine tiefergehende Analyse von funktionalen Sicherheitspfaden in den Produkten und Komponenten, um auf Vollständigkeit hinzuweisen. Damit lässt sich die Vertrautheit (Confidence in Anlehnung der ISO 26262) erhöhen. Ferner ist das Verfahren in der Lage, mehrere sicherheitsrelevante Auslöser und Reaktionen zu analysieren und Mehrfachfehler aufzudecken. Somit lassen sich Fehlerverdeckungen oder auch Fehlerprioritäten prüfen.Because both the software and the electronic components are mapped in the hardware model description of the functional block and are available in a hardware description language, the entire software, including electronics, can be subjected to a complete path analysis using known tools and methodologies that are programmed for the environment of a hardware description language. This means that at least one functional path contained in the functional block can be output and checked. Preferably, a large number or all of the functional paths contained in the functional block are output and/or checked. This makes it possible to provide a mathematically complete counter-proof (according to the right-hand side of the V-model). This can sometimes eliminate the residual risk of the finite test series that occurs in the state of the art. The findings from the path analysis can be used to revise the left-hand side of the V-model (requirements and architecture elements) in order to increase and improve the safety of the product or component. The known model-based developments, such as tools from Mathworks Matlab/Simulink®, dSpace Toolkette® or Ansys SCADE®, do not offer these options. The known solutions focus only on the modeling of functional content and do not go beyond the complexity class with regard to the analysis of a single dedicated software component. In other words, the method according to the invention enables a more in-depth analysis of functional safety paths in the products and components in order to indicate completeness. This increases familiarity (confidence based on ISO 26262). The method is also able to analyze several safety-relevant triggers and reactions and to uncover multiple errors. This makes it possible to check error concealment or error priorities.

Ein Funktionsblock stellt bevorzugt eine Kapsel für Daten und Algorithmen dar, der eine oder mehrere Funktionalitäten des eingebetteten Systems bereitstellen kann. Die Algorithmen wandeln dabei die Eingangssignale in Abhängigkeit der internen Daten in Ausgangssignale um. Die Elektronik-Komponente umfasst bevorzugt ein elektronisches System zur Vorverarbeitung der Eingangssignale und ein elektronisches System zur Regelung und Ausgabe der Ausgangssignale, beispielsweise eines Ansteuerungssignals für einen Aktuator. Die Software-Komponente umfasst bevorzugt einen oder mehrere Algorithmen zur Umwandlung der Eingangssignale in die Ausgangssignale. Die Software-Komponente weist bevorzugt einen oder mehrere Befehle oder eine Abfolge von Befehlen auf, wobei ein Befehl eine einzelne Anweisung eines Programms sein kann, wie ein Speicherzugriff, eine Berechnung (Addition, Multiplikation, et cetera), eine Zuweisung, ein Vergleich zwischen zwei Werten oder dergleichen, die von einem eingebetteten System ausgeführt werden kann.A functional block preferably represents a capsule for data and algorithms that can provide one or more functionalities of the embedded system. The algorithms convert the input signals into output signals depending on the internal data. The electronic component preferably comprises an electronic system for preprocessing the input signals and an electronic system for controlling and outputting the output signals, for example a control signal for an actuator. The software component preferably comprises one or more algorithms for converting the input signals into the output signals. The software component preferably has one or more commands or a sequence of commands, where a command can be a single instruction of a program, such as a memory access, a calculation (addition, multiplication, etc.), an assignment, a comparison between two values or the like that can be carried out by an embedded system.

Das eingebettete System ist nicht auf einen Funktionsblock beschränkt. Bevorzugt umfasst das eingebettete System eine Vielzahl von Funktionsblöcken. Diese sind ebenfalls bevorzugt zu einem sogenannten Composite-Funktion-Block zusammengebaut, um komplexere Anforderungen zu realisieren. Bevorzugt wird eine Hardware-Modell-Beschreibung in einer Hardware-Beschreibungssprache für jeden Funktionsblock analog erzeugt. Ferner kann der Funktionsblock oder die Vielzahl von Funktionsblöcken auch eine Vielzahl von Software-Komponenten und/oder Elektronik-Komponenten aufweisen, um komplexere Anforderungen zu realisieren. Die Software-Komponente und/oder die Elektronik-Komponente können einen oder mehrere Eingangswerte und einen oder mehrere Ausgangswerte haben. Bevorzugt wird hierbei für jede Software- und/oder Elektronik-Komponente ein entsprechendes Software- und/oder Elektronik-Komponenten-Modell erzeugt und für das Erzeugen der Hardware-Modell-Beschreibung herangezogen.The embedded system is not limited to one function block. Preferably, the embedded system comprises a plurality of function blocks. These are also preferably assembled into a so-called composite function block in order to implement more complex requirements. Preferably, a hardware model description is generated analogously in a hardware description language for each function block. Furthermore, the function block or the plurality of function blocks can also have a plurality of software components and/or electronic components in order to implement more complex requirements. The software component and/or the electronic component can have one or more input values and one or more output values. Preferably, a corresponding software and/or electronic component model is generated for each software and/or electronic component and used to generate the hardware model description.

Das Software-Komponenten-Modell und/oder Elektronik-Komponenten-Modell stellen bevorzugt eine Abbildung oder Modellierung der Software-Komponente und/oder der Elektronik-Komponente in einer Hardware-Beschreibungssprache dar. Die Abbildung oder Modellierung der Software-Komponente gibt die Logik der Abfolge von Befehlen der Software-Komponente basierend auf einer kombinatorischen Logik und einem logischen Speicherelement wieder. Die Abbildung oder Modellierung der Elektronik-Komponente gibt die Prozesse der Vorverarbeitung der Eingangssignale (beispielsweise Filtern) und der Verarbeitung und Ausgabe der Ausgangssignale (beispielsweise Regelungssignale) der Elektronik-Komponente basierend auf einer weiteren kombinatorischen Logik und einem weiteren logischen Speicherelement wieder. Das Software-Komponenten-Modell und das Elektronik-Komponenten-Modell können grundsätzlich von einem Computer gelesen und bearbeitet werden.The software component model and/or electronic component model preferably represent a mapping or modeling of the software component and/or the electronic component in a hardware description language. The mapping or modeling of the software component represents the logic of the sequence of commands of the software component based on a combinatorial logic and a logical storage element. The mapping or modeling of the electronic component represents the processes of preprocessing the input signals (for example filtering) and processing and outputting the output signals (for example control signals) of the electronic component based on another combinatorial logic and another logical storage element. The software component model and the electronic component model can in principle be read and edited by a computer.

Eine kombinatorische Logik ist bevorzugt eine Menge an logischen Verknüpfungen (AND, OR, NOT, NAND, NOR, XOR, et cetera) zwischen Eingangswerten, die an einer Eingangskomponente der kombinatorischen Logik erhalten werden, und Ausgangswerten, die an einer Ausgangskomponente bereitgestellt werden. Die Eingangswerte entsprechen beispielsweise den an die Software-Komponente übergebenen Werten, wenn diese auf dem eingebetteten System ausgeführt wird, und die Ausgangswerte den durch die Software-Komponente berechneten Werten.A combinatorial logic is preferably a set of logical operations (AND, OR, NOT, NAND, NOR, XOR, etc.) between input values obtained at an input component of the combinatorial logic and output values provided at an output component. The input values correspond, for example, to the values passed to the software component when it is executed on the embedded system, and the output values correspond to the values calculated by the software component.

Ein logisches Speicherelement ist bevorzugt ein Latch, ein Flipflop oder dergleichen. Dadurch kann ein Speichern der Ausgangswerte modelliert werden, um eine Übergabe von Werten oder einen Datenaustausch zwischen den Elektronik- und/oder Software-Komponenten wiederzugeben.A logical storage element is preferably a latch, a flip-flop or the like. This makes it possible to model the storage of the output values in order to reflect a transfer of values or a data exchange between the electronic and/or software components.

In bevorzugter Ausgestaltung ist vorgesehen, dass die Pfadanalyse unter Verwendung eines Werkzeugs für Timing- und Pfadanalysen durchgeführt wird. Beispiele für entsprechende Werkzeuge sind Synopsys Primetime® oder Design Compiler®. Durch die Verwendung bereits bekannter Werkzeuge kann die Pfadanalyse einfach durchgeführt werden. Derartige Werkzeuge sind beispielsweise dazu eingerichtet, Pfade und Laufzeiten zu analysieren, beispielsweise inhaltliche Strukturanalysen durchzuführen, um einen Vergleich mit einer Spezifikation zu ermöglichen.In a preferred embodiment, the path analysis is carried out using a tool for timing and path analysis. Examples of such tools are Synopsys Primetime® or Design Compiler®. The path analysis can be carried out easily by using already known tools. Such tools are designed, for example, to analyze paths and runtimes, for example to carry out content-related structural analyses in order to enable a comparison with a specification.

In weiterer bevorzugter Ausgestaltung ist vorgesehen, dass bei der Durchführung der Pfadanalyse mittels einer inhaltlichen Strukturanalyse und einer vorgegebenen Spezifikation überprüft wird, ob ein in dem vorhandenen Funktionsblock enthaltener funktionaler Pfad eine der vorgegebenen Spezifikationen erfüllt. Vorzugsweise wird überprüft, ob eine Vielzahl oder alle in dem vorhandenen Funktionsblock enthaltenen funktionalen Pfade sämtliche der vorgegebenen Spezifikationen erfüllen. Wird eine vorgegebene Spezifikation (zum Beispiel gemäß ISO 26262) nicht erfüllt, das heißt, ist in dem Funktionsblock kein der vorgegebenen Spezifikation entsprechender funktionaler Pfad enthalten, so besteht eine Designlücke oder ein Fehler in dem Produkt oder in der Komponente. Bevorzugt wird in diesem Fall eine Fehlermeldung ausgegeben, insbesondere mit der Mitteilung, dass der vorgegebene funktionale Pfad nicht existent ist. Dies dient der Überprüfung, ob die vorgesehenen Sicherheitsanforderungen, wie es beispielsweise die ISO 26262 verlangt, erfüllt sind oder nicht.In a further preferred embodiment, when carrying out the path analysis, a content structure analysis and a predefined specification are used to check whether a functional path contained in the existing functional block meets one of the predefined specifications. Preferably, a check is carried out to see whether a large number or all of the functional paths contained in the existing functional block meet all of the predefined specifications. If a predefined specification (for example according to ISO 26262) is not met, i.e. if the functional block does not contain a functional path corresponding to the predefined specification, there is a design gap or an error in the product or component. In this case, an error message is preferably issued, in particular with the message that the predefined functional path does not exist. This serves to check whether the intended safety requirements, as required by ISO 26262, for example, are met or not.

In weiterer bevorzugter Ausgestaltung ist vorgesehen, dass bei der Durchführung der Pfadanalyse mittels einer inhaltlichen Strukturanalyse und einer vorgegebenen Spezifikation überprüft wird, ob der Funktionsblock eine Anzahl von funktionalen Pfaden pro vorgegebener Spezifikation von zwei oder mehr umfasst. Wird eine entsprechende Anzahl von zwei oder mehr gefunden, wird vorzugsweise eine Fehlermeldung ausgegeben, insbesondere mit der Mitteilung, dass eine Anzahl von funktionalen Pfaden pro vorgegebener Spezifikation von zwei oder mehr existent ist. Üblicherweise wird bei der Entwicklung von Produkten oder Komponenten ein funktionaler Pfad pro vorgegebener Spezifikation konstruiert. Sind mehr als ein funktionaler Pfad pro vorgegebener Spezifikation in dem Funktionsblock vorhanden, so gibt es funktionale Pfade, die nicht der Spezifikation entsprechen. Dies stellt ein sogenanntes Overengineering-Beispiel dar. Overengineering stellt einen signifikanten Kostentreiber in der Entwicklung dar und erhöht zudem unnötig die Komplexität eines Produktes oder einer Komponente. Ferner ist die Gefahr von Sicherheitslücken (funktionsrelevante Sicherheit als auch Cyber-Security) gesteigert.In a further preferred embodiment, when carrying out the path analysis, a content structure analysis and a given specification are used to check whether the function block includes a number of functional paths per given specification of two or more. If a corresponding number of two or more is found, an error message is preferably issued, in particular with the message that a number of functional paths per given specification of two or more exists. Usually, when developing products or components, one functional path is constructed per given specification. If there is more than one functional path per given specification in the function block, there are functional paths that do not correspond to the specification. This is a so-called overengineering example. Overengineering represents a significant cost driver in development and also unnecessarily increases the complexity of a product or component. Furthermore, the risk of security gaps (functional security as well as cyber security) is increased.

In weiterer bevorzugter Ausgestaltung ist vorgesehen, dass bei der Durchführung der Pfadanalyse mittels einer inhaltlichen Strukturanalyse und einer vorgegebenen Spezifikation überprüft wird, ob alle der in der vorgegebenen Spezifikation vorgesehenen funktionalen Pfade in dem Funktionsblock vorhanden sind. Dies dient, wie bereits ausgeführt, der Überprüfung, ob die vorgesehenen Sicherheitsanforderungen, wie es beispielsweise die ISO 26262 verlangt, erfüllt sind oder nicht.In a further preferred embodiment, when carrying out the path analysis, a content-related structural analysis and a given specification are used to check whether all of the functional paths provided for in the given specification are present in the function block. As already explained, this serves to check whether the intended safety requirements, as required by ISO 26262, for example, are met or not.

In weiterer bevorzugter Ausgestaltung ist vorgesehen, dass bei der Durchführung der Pfadanalyse mittels einer Timinganalyse überprüft wird, ob eine der Ausführungszeiten eine vorgegebene Spezifikationszeit über- oder unterschreitet. Im Falle der Überschreitung der Spezifikationszeit wird bevorzugt eine Fehlermeldung ausgegeben, insbesondere mit der Mitteilung, dass die betreffende Ausführungszeit überschritten wurde. Im Falle der Unterschreitung der Spezifikationszeit wird bevorzugt eine In-Ordnung-Meldung ausgegeben, insbesondere mit der Mitteilung, dass die betreffende Ausführungszeit nicht überschritten wurde. Damit lässt sich überprüfen, ob Reaktionen innerhalb von vorgegebenen Zeiten erfolgen. Ist dies nicht der Fall, kann dies zu einer sicherheitsrelevanten Fehlfunktion oder zu einem zu späten Handeln des Systems führen. Insofern dient die Timinganalyse der Überprüfung, ob die vorgesehenen Sicherheitsanforderungen, wie es beispielsweise die ISO 26262 verlangt, erfüllt sind oder nicht. Eine Ausführungszeit einer Software- und/oder Elektronik-Komponente ist bevorzugt eine Zeitdauer, die die Software- und/oder Elektronik-Komponente auf einem eingebetteten System benötigt, um alle Befehle abgearbeitet zu haben und einen Ausgangswert bereitzustellen.In a further preferred embodiment, when carrying out the path analysis, a timing analysis is used to check whether one of the execution times exceeds or falls short of a given specification time. If the specification time is exceeded, before an error message is preferably issued, in particular with the message that the relevant execution time has been exceeded. If the specification time is not met, an OK message is preferably issued, in particular with the message that the relevant execution time has not been exceeded. This can be used to check whether reactions occur within specified times. If this is not the case, this can lead to a safety-relevant malfunction or to the system reacting too late. In this respect, timing analysis is used to check whether the specified safety requirements, as required by ISO 26262, for example, are met or not. The execution time of a software and/or electronic component is preferably a period of time that the software and/or electronic component on an embedded system needs to process all commands and provide an output value.

In weiterer bevorzugter Ausgestaltung ist vorgesehen, dass als Eingangs- und/oder Ausgangswerte des Funktionsblocks Sensorwerte und/oder Businformationen verwendet werden. Beispiele für Bussysteme sind Can, CanFD, Flexray, Lin oder Ethernet. Folglich ist das Verfahren auf eine Vielzahl von unterschiedlichen eingebetteten Systemen anwendbar. Ferner umfasst das eingebettete System einen oder eine Vielzahl von Aktuatoren, welche durch das Ausgangssignal des Funktionsblocks angesteuert werden können.In a further preferred embodiment, sensor values and/or bus information are used as input and/or output values of the function block. Examples of bus systems are Can, CanFD, Flexray, Lin or Ethernet. Consequently, the method can be applied to a large number of different embedded systems. Furthermore, the embedded system comprises one or a large number of actuators which can be controlled by the output signal of the function block.

Das oben genannte eingebettete System, zum Beispiel ein Steuergerät für ein Kraftfahrzeug, ist bevorzugt durch elektrische oder elektronische Bauteile oder Komponenten (Hardware) oder durch Firmware (ASIC) implementiert. Das eingebettete System kann ein FPGA (Field Programmable Gate Array), ein DSP (digitaler Signalprozessor) oder dergleichen aufweisen. Zusätzlich oder alternativ wird die Funktionalität des Steuergeräts beim Ausführen eines geeigneten Programms (Software) verwirklicht. Ebenfalls bevorzugt ist das eingebettete System durch eine Kombination von Hardware, Firmware und/oder Software verwirklicht. Beispielsweise sind einzelne Komponenten des eingebetteten Systems zum Bereitstellen einzelner Funktionalitäten als separat integrierter Schaltkreis ausgebildet oder auf einem gemeinsamen integrierten Schaltkreis angeordnet.The above-mentioned embedded system, for example a control unit for a motor vehicle, is preferably implemented by electrical or electronic parts or components (hardware) or by firmware (ASIC). The embedded system can have an FPGA (Field Programmable Gate Array), a DSP (digital signal processor) or the like. Additionally or alternatively, the functionality of the control unit is implemented when executing a suitable program (software). The embedded system is also preferably implemented by a combination of hardware, firmware and/or software. For example, individual components of the embedded system are designed as a separate integrated circuit to provide individual functionalities or are arranged on a common integrated circuit.

Die einzelnen Komponenten des eingebetteten Systems sind ferner bevorzugt als ein oder mehrere Prozesse ausgebildet, die auf einem oder mehreren Prozessoren in einem oder mehreren elektronischen Rechengeräten laufen und beim Ausführen von einem oder mehreren Computerprogrammen erzeugt werden. Die Rechengeräte sind dabei bevorzugt dazu ausgebildet, mit anderen Komponenten, beispielsweise einem Kommunikationssystem, zusammenzuarbeiten, um die hierin beschriebenen Funktionalitäten zu verwirklichen. Die Anweisungen der Computerprogramme sind dabei bevorzugt in einem Speicher abgelegt, wie beispielsweise einem RAM-Element. Die Computerprogramme können jedoch auch in einem nicht-flüchtigen Speichermedium, wie beispielsweise einer CD-ROM, einem Flash-Speicher oder dergleichen, abgelegt sein.The individual components of the embedded system are also preferably designed as one or more processes that run on one or more processors in one or more electronic computing devices and are generated when executing one or more computer programs. The computing devices are preferably designed to work together with other components, for example a communications system, in order to implement the functionalities described herein. The instructions of the computer programs are preferably stored in a memory, such as a RAM element. However, the computer programs can also be stored in a non-volatile storage medium, such as a CD-ROM, a flash memory or the like.

Dem Fachmann ist ferner ersichtlich, dass die Funktionalitäten von mehreren Recheneinheiten (Datenverarbeitungsgeräten) kombiniert oder in einem einzigen Gerät kombiniert sein können oder dass die Funktionalität von einem bestimmten Datenverarbeitungsgerät auf eine Vielzahl von Geräten verteilt vorliegen kann, um die Funktionalität des eingebetteten Systems zu verwirklichen.It will also be apparent to those skilled in the art that the functionalities of multiple computing units (data processing devices) may be combined or combined in a single device, or that the functionality of a particular data processing device may be distributed across a plurality of devices to implement the functionality of the embedded system.

Ein weiterer Aspekt betrifft eine Vorrichtung zur Datenverarbeitung, umfassend Mittel zur Ausführung der Schritte des erfindungsgemäßen Verfahrens, insbesondere eines Verfahrens zur Analyse von funktionalen Pfaden für ein eingebettetes System. Die Vorrichtung zur Datenverarbeitung ist bevorzugt ein Computer, ein Server, ein Rechnerverbund, beispielsweise ein Computercluster oder eine Cloud, oder dergleichen. Das Mittel ist bevorzugt ein Prozessor, ein Speicherelement, ein elektronischer Schaltkreis oder eine elektronische Komponente, die typischerweise eingesetzt wird, um die hierin beschriebenen Funktion auszuführen.A further aspect relates to a device for data processing, comprising means for carrying out the steps of the method according to the invention, in particular a method for analyzing functional paths for an embedded system. The device for data processing is preferably a computer, a server, a computer network, for example a computer cluster or a cloud, or the like. The means is preferably a processor, a memory element, an electronic circuit or an electronic component that is typically used to carry out the function described herein.

Ein weiterer Aspekt betrifft ein Computerprogramm, umfassend Befehle, die bei der Ausführung des Programms durch einen Computer, wie beispielsweise ein eingebettetes System, zum Beispiel ein Steuergerät für ein Kraftfahrzeug, dieses veranlassen, das erfindungsgemäße Verfahren, insbesondere ein Verfahren zur Analyse von funktionalen Pfaden für ein eingebettetes System, durchzuführen. Das Programm wird bevorzugt auf einem Computer, einem Server, einem Rechnerverbund und/oder in einer Cloud ausgeführt. Der obengenannte Computer kann daher allgemein als Vorrichtung zur Datenverarbeitung aufgefasst werden. In manchen Ausführungsbeispielen, insbesondere bei denen das Computerprogramm auf einem Rechnerverbund ausgeführt wird, werden Schritte des hierin beschriebenen Verfahrens bevorzugt parallel ausgeführt. Dann wird eine höhere Komplexitätsanalyse durch parallele Berechnungen erreicht.A further aspect relates to a computer program comprising instructions which, when the program is executed by a computer, such as an embedded system, for example a control unit for a motor vehicle, cause the computer to carry out the method according to the invention, in particular a method for analyzing functional paths for an embedded system. The program is preferably executed on a computer, a server, a computer network and/or in a cloud. The above-mentioned computer can therefore generally be understood as a device for data processing. In some embodiments, in particular in which the computer program is executed on a computer network, steps of the method described herein are preferably executed in parallel. A higher complexity analysis is then achieved through parallel calculations.

Ein weiterer Aspekt betrifft einen computerlesbaren Datenträger, auf dem das erfindungsgemäße Computerprogramm gespeichert ist. Ein computerlesbarer Datenträger ist bevorzugt ein Halbleiterspeicher, eine magnetische Festplatte, ein optischer Speicher (wie eine DVD et cetera) oder dergleichen.A further aspect relates to a computer-readable data carrier on which the computer program according to the invention is stored. A computer-readable data carrier is preferably a semiconductor memory, a magnetic hard disk, a optical storage (like a DVD etc.) or the like.

Weitere bevorzugte Ausgestaltungen der Erfindung ergeben sich aus den übrigen, in den Unteransprüchen genannten Merkmalen.Further preferred embodiments of the invention emerge from the remaining features mentioned in the subclaims.

Die verschiedenen in dieser Anmeldung genannten Ausführungsformen der Erfindung sind, sofern im Einzelfall nicht anders ausgeführt, mit Vorteil miteinander kombinierbar.The various embodiments of the invention mentioned in this application can be advantageously combined with one another, unless stated otherwise in individual cases.

Die Erfindung wird nachfolgend in Ausführungsbeispielen anhand der zugehörigen Zeichnungen erläutert. Es zeigen:

  • 1 eine schematische Darstellung eines eingebetteten Systems;
  • 2 eine schematische Darstellung des Verfahrens gemäß einer Durchführungsform und
  • 3 eine schematische Darstellung einer Vorrichtung gemäß einer Ausführungsform.
The invention is explained below in exemplary embodiments with reference to the accompanying drawings. They show:
  • 1 a schematic representation of an embedded system;
  • 2 a schematic representation of the method according to one embodiment and
  • 3 a schematic representation of a device according to an embodiment.

1 zeigt eine schematische Darstellung eines eingebetteten Systems 10. In diesem Ausführungsbeispiel handelt es sich bei dem eingebetteten System 10 um ein Steuergerät für ein Kraftfahrzeug. Das eingebettete System 10 übernimmt Steuerungs-, Regelungs- und Datenverarbeitungsaufgaben in dem Kraftfahrzeug. Allerdings ist die Erfindung nicht darauf beschränkt. Vielmehr ist die Erfindung auch transportierbar auf andere Industrien, wie Schiffbau, Flugindustrie, Raumfahrt, Medizin, Atomindustrie und dergleichen. 1 shows a schematic representation of an embedded system 10. In this embodiment, the embedded system 10 is a control unit for a motor vehicle. The embedded system 10 takes over control, regulation and data processing tasks in the motor vehicle. However, the invention is not limited to this. Rather, the invention can also be transported to other industries, such as shipbuilding, aviation, aerospace, medicine, nuclear industry and the like.

Das eingebettete System 10 umfasst einen Funktionsblock 12, der wiederum drei Software-Komponenten 14 und zwei Elektronik-Komponenten 16 aufweist. Der Funktionsblock 12 empfängt als Eingangssignal Sensorwerte von einem Sensor 18 des Kraftfahrzeugs. Die Sensorwerte werden in der ersten Elektronik-Komponente 16 vorverarbeitet, beispielsweise gefiltert. Unter Verwendung der Software-Komponenten 14 werden die Sensorwerte ausgewertet, beispielsweise umgewandelt, und ein entsprechendes durch die zweite Elektronik-Komponente 16 erzeugtes Ansteuerungssignal als Ausgangssignal des Funktionsblocks 12 an einen Aktuator 20 ausgegeben. Die zweite Elektronik-Komponente 16 ist eine Leistungselektronik zur Regelung des Aktuators 20. Der Aktuator 20 ist beispielsweise ein elektrischer Motor, der eine Bremse des Kraftfahrzeugs, eine Lenkung des Kraftfahrzeugs oder dergleichen gemäß dem Ausgangssignal des Funktionsblocks 12 betätigt.The embedded system 10 comprises a functional block 12, which in turn has three software components 14 and two electronic components 16. The functional block 12 receives sensor values from a sensor 18 of the motor vehicle as an input signal. The sensor values are preprocessed, for example filtered, in the first electronic component 16. Using the software components 14, the sensor values are evaluated, for example converted, and a corresponding control signal generated by the second electronic component 16 is output to an actuator 20 as an output signal of the functional block 12. The second electronic component 16 is power electronics for controlling the actuator 20. The actuator 20 is, for example, an electric motor that actuates a brake of the motor vehicle, a steering of the motor vehicle or the like according to the output signal of the functional block 12.

Wie in 1 dargestellt, ergeben sich die beispielhaft dargestellten Pfade A bis F in dem Funktionsblock 12. Das erfindungsgemäße Verfahren soll möglichst verständlich anhand der gering gewählten Anzahl an Pfaden A bis F erläutert werden, ohne darauf beschränkt zu sein. Der nicht näher bezeichnete Pfeil von dem Sensor 18 zu dem Funktionsblock 12, genauer gesagt zu der ersten Elektronik-Komponente 16, verdeutlicht eine Übermittlung der durch den Sensor 18 erfassten Sensorwerte als Eingangssignal für den Funktionsblock 12. Ab der ersten elektronischen Komponente 16 sind der Übersichtlichkeit halber lediglich zwei funktionale Pfade A-F und D-F eingezeichnet. Es ist allerdings offensichtlich, dass moderne Steuergeräte zehntausende von funktionalen Pfaden, eine Vielzahl von Sensoren 18 und Bussystemen, die den Funktionsblock mit Eingangssignalen versorgen, und eine Vielzahl Aktuatoren zur Steuerung verschiedenster Funktionen des Kraftfahrzeugs, die durch Ausgangssignale des Funktionsblockes 12 angesteuert werden, umfassen können.As in 1 shown, the paths A to F shown as examples result in the function block 12. The method according to the invention should be explained as clearly as possible using the small number of paths A to F selected, without being limited to this. The arrow (not shown in more detail) from the sensor 18 to the function block 12, more precisely to the first electronic component 16, illustrates a transmission of the sensor values recorded by the sensor 18 as an input signal for the function block 12. From the first electronic component 16 onwards, only two functional paths AF and DF are shown for the sake of clarity. However, it is obvious that modern control units can comprise tens of thousands of functional paths, a large number of sensors 18 and bus systems that supply the function block with input signals, and a large number of actuators for controlling a wide variety of functions of the motor vehicle, which are controlled by output signals from the function block 12.

Der erste funktionale Pfad A-F führt über eine erste und zweite Software-Komponente 14 zu der zweiten Elektronik-Komponente 16 und von dort zum Aktuator 20. Der Pfad A-F entspricht beispielsweise einer regulären Steuerung des Aktuators 20 durch das Steuergerät in Abhängigkeit der erfassten Sensorwerte durch den Sensor 18. Die erste Software-Komponente 14 empfängt die vorverarbeiteten Sensorwerte von der ersten Elektronik-Komponente 16 (Pfad A). Die empfangenen Sensorwerte werden dann von der ersten Software-Komponente 14 ausgewertet und das Ergebnis der Auswertung an die zweite Software-Komponente 14 übergeben (Pfad B). Die zweite Software-Komponente 14 ermittelt eine zu initiierende Reaktion auf das Ergebnis der Auswertung und übergibt die Informationen über die gewünschte Reaktion an die zweite Elektronik-Komponente 16 (Pfad C). Die zweite Elektronik-Komponente 16 erstellt und übermittelt ein Ansteuerungssignal, welches den Aktuator 20 derart regelt, dass die gewünschte Reaktion umgesetzt wird, an den Aktuator 20 (Pfad F).The first functional path A-F leads via a first and second software component 14 to the second electronic component 16 and from there to the actuator 20. The path A-F corresponds, for example, to a regular control of the actuator 20 by the control unit depending on the sensor values recorded by the sensor 18. The first software component 14 receives the preprocessed sensor values from the first electronic component 16 (path A). The received sensor values are then evaluated by the first software component 14 and the result of the evaluation is passed on to the second software component 14 (path B). The second software component 14 determines a reaction to be initiated based on the result of the evaluation and passes the information about the desired reaction to the second electronic component 16 (path C). The second electronic component 16 creates and transmits a control signal, which regulates the actuator 20 in such a way that the desired reaction is implemented, to the actuator 20 (path F).

Der zweite funktionale Pfad D-F führt über eine dritte Software-Komponente 14 zu der zweiten Elektronik-Komponente 16 und von dort zum Aktuator 20. Der Pfad D-F entspricht beispielsweise einem funktionalen Sicherheitspfad, welcher bei Vorliegen von vorgegebenen Situationen, die beispielsweise anhand der Sensorwerte des Sensor 18 erkennbar sind, eine gegenwärtige Ansteuerung des Aktuators 20 verhindern soll. Die dritte Software-Komponente 14 empfängt hierzu die vorverarbeiteten Sensorwerte von der ersten Elektronik-Komponente 16 (Pfad D) und ermittelt, ob ein gegenwärtiger Sensorwertgradient einen Schwellenwert überschreitet. Ist dies der Fall, so übergibt die dritte Software-Komponente 14 ein Signal zur Deaktivierung der zweiten Elektronik-Komponente 16 an diese (Pfad E). Durch dieses Signal wird dann eine Ansteuerung des Aktuators 20 über Pfad F verhindert.The second functional path D-F leads via a third software component 14 to the second electronic component 16 and from there to the actuator 20. The path D-F corresponds, for example, to a functional safety path which is intended to prevent the actuator 20 from being activated at any given time in the event of predetermined situations which can be identified, for example, from the sensor values of the sensor 18. The third software component 14 receives the preprocessed sensor values from the first electronic component 16 (path D) and determines whether a current sensor value gradient exceeds a threshold value. If this is the case, the third software component 14 transmits a signal to deactivate the second electronic component 16 (path E). This signal then prevents the actuator 20 from being activated via path F.

2 zeigt eine schematische Darstellung eines Verfahrens gemäß einer Durchführungsform. Das Verfahren ist zur Analyse von funktionalen Pfaden, beispielsweise den funktionalen Sicherheitspfaden A-F; D-E wie in 1 dargestellt, für ein eingebettetes System 10 geeignet. Bei dem eingebetteten System 10 handelt es sich vorzugsweise um das in 1 beschriebene Steuergerät für ein Kraftfahrzeug. 2 shows a schematic representation of a method according to an embodiment. The method is for the analysis of functional paths, for example the functional safety paths AF; DE as in 1 shown, suitable for an embedded system 10. The embedded system 10 is preferably the one in 1 described control unit for a motor vehicle.

Gemäß einem ersten Verfahrensschritt 50 wird ein Software-Komponenten-Modell von den Software-Komponenten 14 basierend auf einer kombinatorischen Logik und einem logischen Speicherelement erzeugt.According to a first method step 50, a software component model is generated from the software components 14 based on a combinatorial logic and a logical storage element.

In einem zweiten Verfahrensschritt 52 wird ein Elektronik-Komponenten-Modell von den Elektronik-Komponenten 16 basierend auf einer weiteren kombinatorischen Logik und einem weiteren logischen Speicherelement erzeugt.In a second method step 52, an electronic component model of the electronic components 16 is generated based on a further combinatorial logic and a further logical storage element.

Gemäß einem dritten Verfahrensschritt 54 werden Ausführungszeiten von den Software-Komponenten 14 und den Elektronik-Komponenten 16 erhalten.According to a third method step 54, execution times are obtained from the software components 14 and the electronic components 16.

In einem vierten Verfahrensschritt 56 erfolgt ein Erzeugen einer Hardware-Modell-Beschreibung des Funktionsblocks 12 in einer Hardware-Beschreibungssprache basierend auf den Software-Komponenten-Modellen, den Elektronik-Komponenten-Modellen und den erhaltenen Ausführungszeiten.In a fourth method step 56, a hardware model description of the functional block 12 is generated in a hardware description language based on the software component models, the electronic component models and the obtained execution times.

Folglich wird eine Pfadanalyse unter Verwendung der erzeugten Hardware-Modell-Beschreibung des Funktionsblocks 12 durchgeführt (Verfahrensschritt 58).Consequently, a path analysis is performed using the generated hardware model description of the functional block 12 (method step 58).

Da die Hardware-Modell-Beschreibung des Funktionsblocks 12 in einer Hardware-Beschreibungssprache vorliegt, kann unter Verwendung von an sich bekannten Werkzeugen für Timing- und Pfadanalysen, wie Synopsys Primetime® oder Design Compiler®, eine Pfadanalyse über die Gesamtsoftware inklusive der Elektronik durchgeführt werden. Anhand der Pfadanalyse wird beispielsweise überprüft, ob es einen sicherheitsrelevanten Pfad von der ersten Elektronik-Komponente 16 zu dem Aktuator 20 gibt, der den Pfad F auf Null setzt, also keine Aktuator-Aktivität, was beispielsweise einem Sicherheitszustand im Fehlerfall entspricht. Das Werkzeug für Timing- und Pfadanalysen würde im Beispiel der 1 die beiden funktionellen Sicherheitspfade A-F und D-F ausgegeben. Unter Verwendung einer inhaltlichen Strukturanalyse kann das Werkzeug ferner angeben, ob beide Pfade A-F und D-F tatsächlich den Pfad F auf Null setzen können. Durch Vergleich mit einer vorgegebenen Spezifikation, beispielsweise der ISO-Norm 26262, kann nun überprüft werden, ob die beiden Pfade A-F und D-F der Spezifikation entsprechen. Soll gemäß Spezifikation beispielsweise nur ein Pfad bestehen, der den Pfad F auf Null setzen kann, und wird unter Verwendung des Werkzeugs ermittelt, dass beide Pfade A-F und D-F mit dieser Funktion ausgestattet sind, so wäre ein funktionaler Pfad gefunden, der nicht nach Spezifikation wäre. Dies wäre ein Beispiel von Overengineering.Since the hardware model description of the function block 12 is available in a hardware description language, a path analysis can be carried out on the entire software including the electronics using known tools for timing and path analyses, such as Synopsys Primetime® or Design Compiler®. The path analysis is used, for example, to check whether there is a safety-relevant path from the first electronic component 16 to the actuator 20 that sets the path F to zero, i.e. no actuator activity, which corresponds, for example, to a safety state in the event of an error. The tool for timing and path analyses would be 1 the two functional safety paths AF and DF are output. Using a content structure analysis, the tool can also indicate whether both paths AF and DF can actually set path F to zero. By comparing with a given specification, for example ISO standard 26262, it can now be checked whether the two paths AF and DF correspond to the specification. If, for example, the specification states that there should only be one path that can set path F to zero, and it is determined using the tool that both paths AF and DF are equipped with this function, a functional path would be found that would not be according to the specification. This would be an example of overengineering.

Ferner lässt sich mittels der Pfadanalyse auch ermitteln, ob der Funktionsblock 12 sämtliche funktionalen Sicherheitspfade aufweist, die gemäß Spezifikation enthalten sein sollen. Stünde in der Spezifikation, dass in dem in 1 gezeigten Beispiel ebenfalls ein Pfad A-E gefordert ist, so würde das Werkzeug diesen Pfad nicht finden und mitteilen, dass der Pfad nicht existent ist. Folglich wäre eine Designlücke oder ein Fehler in dem Produkt oder in der Komponente gefunden.Furthermore, the path analysis can also be used to determine whether the function block 12 contains all the functional safety paths that should be included according to the specification. If the specification states that in the 1 If a path AE is also required in the example shown, the tool would not find this path and would report that the path does not exist. Consequently, a design gap or a defect in the product or component would be found.

Da in der Hardware-Modell-Beschreibung ferner die Ausführungszeiten der Software- und Elektronik-Komponenten 14, 16 enthalten sind, kann unter Verwendung des Werkzeugs ferner überprüft werden, ob die Reaktion des Aktuators 20 innerhalb einer vorgegebenen Spezifikationszeit nach Eingang der Sensorwerte erfolgt. Beispielsweise könnte eine Reaktionszeit von 20 ms durch die Spezifikation vorgegeben sein, wenn ein gegenwärtiger Sensorwertgradient den oben beschriebenen Schwellenwert übersteigt. Somit lässt sich mittels des Werkzeugs ebenfalls verifizieren, ob die in der Spezifikation geforderten Spezifikationszeiten eingehalten werden.Since the hardware model description also contains the execution times of the software and electronic components 14, 16, the tool can also be used to check whether the reaction of the actuator 20 occurs within a predetermined specification time after receipt of the sensor values. For example, a reaction time of 20 ms could be specified by the specification if a current sensor value gradient exceeds the threshold value described above. The tool can therefore also be used to verify whether the specification times required in the specification are adhered to.

3 zeigt eine schematische Darstellung einer Vorrichtung zu Datenverarbeitung 100 gemäß einer Ausführungsform. Die Vorrichtung 100 ist ein Computer. Ein Computerprogramm 102 ist auf einem computerlesbaren Datenträger 104 gespeichert. Das Computerprogramm 102 enthält Befehle, die bei der Ausführung des Computerprogramms 102 durch die Vorrichtung zur Datenverarbeitung 100 diese veranlassen, das hierin beschriebene Verfahren auszuführen. 3 shows a schematic representation of a data processing device 100 according to an embodiment. The device 100 is a computer. A computer program 102 is stored on a computer-readable data carrier 104. The computer program 102 contains instructions which, when the computer program 102 is executed by the data processing device 100, cause it to carry out the method described herein.

BezugszeichenlisteList of reference symbols

1010
eingebettetes Systemembedded system
1212
FunktionsblockFunction block
1414
Software-KomponenteSoftware component
1616
Elektronik-KomponenteElectronic component
1818
Sensorsensor
2020
AktuatorActuator
5050
erster Verfahrensschrittfirst procedural step
5252
zweiter Verfahrensschrittsecond process step
5454
dritter Verfahrensschrittthird procedural step
5656
vierter Verfahrensschrittfourth procedural step
5858
fünfter Verfahrensschrittfifth procedural step
100100
Vorrichtung zur DatenverarbeitungDevice for data processing
102102
Computerprogrammcomputer program
104104
computerlesbarer Datenträger computer-readable data carrier
A - FA - F
PfadePaths

ZITATE ENTHALTEN IN DER BESCHREIBUNGQUOTES INCLUDED IN THE DESCRIPTION

Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.This list of documents listed by the applicant was generated automatically and is included solely for the better information of the reader. The list is not part of the German patent or utility model application. The DPMA accepts no liability for any errors or omissions.

Zitierte PatentliteraturCited patent literature

  • US 20190324422 A1 [0007]US 20190324422 A1 [0007]

Claims (10)

Verfahren zur Analyse von funktionalen Pfaden (A-F; D-E), insbesondere von funktionalen Sicherheitspfaden, für ein eingebettetes System (10), welches mindestens einen Funktionsblock (12) aufweist, welcher mindestens eine Software-Komponente (14) und mindestens eine Elektronik-Komponente (16) aufweist, welches die Verfahrensschritte umfasst: Erzeugen (50) eines Software-Komponenten-Modells von der Software-Komponente (14) basierend auf einer kombinatorischen Logik und einem logischen Speicherelement, Erzeugen (52) eines Elektronik-Komponenten-Modells von der Elektronik-Komponente (16) basierend auf einer weiteren kombinatorischen Logik und einem weiteren logischen Speicherelement, Erhalten (54) von Ausführungszeiten von der Software-Komponente (14) und der Elektronik-Komponente (16), Erzeugen (56) einer Hardware-Modell-Beschreibung des Funktionsblocks (12) in einer Hardware-Beschreibungssprache basierend auf dem Software-Komponenten-Modell, dem Elektronik-Komponenten-Modell und den erhaltenen Ausführungszeiten, und Durchführen (58) einer Pfadanalyse unter Verwendung der erzeugten Hardware-Modell-Beschreibung des Funktionsblocks (12).Method for analyzing functional paths (A-F; D-E), in particular functional safety paths, for an embedded system (10) which has at least one functional block (12) which has at least one software component (14) and at least one electronic component (16), which comprises the method steps: Generating (50) a software component model of the software component (14) based on a combinatorial logic and a logical storage element, generating (52) an electronic component model of the electronic component (16) based on another combinatorial logic and another logical storage element, Obtaining (54) execution times from the software component (14) and the electronic component (16), Generating (56) a hardware model description of the functional block (12) in a hardware description language based on the software component model, the electronic component model and the obtained execution times, and Performing (58) a path analysis using the generated hardware model description of the functional block (12). Verfahren nach Anspruch 1, wobei die Pfadanalyse unter Verwendung eines Werkzeugs für Timing- und Pfadanalysen durchgeführt wird.Procedure according to Claim 1 , where the path analysis is performed using a timing and path analysis tool. Verfahren nach Anspruch 1 oder 2, wobei bei der Durchführung der Pfadanalyse mittels einer inhaltlichen Strukturanalyse und einer vorgegebenen Spezifikation überprüft wird, ob ein in dem vorhandenen Funktionsblock (12) enthaltener funktionaler Pfad (A-F; D-E) eine der vorgegebenen Spezifikationen erfüllt.Procedure according to Claim 1 or 2 , wherein when carrying out the path analysis, it is checked by means of a content structure analysis and a predetermined specification whether a functional path (AF; DE) contained in the existing functional block (12) fulfills one of the predetermined specifications. Verfahren nach einem der vorangehenden Ansprüche, wobei bei der Durchführung der Pfadanalyse mittels einer inhaltlichen Strukturanalyse und einer vorgegebenen Spezifikation überprüft wird, ob der Funktionsblock (12) eine Anzahl von funktionalen Pfaden (A-F; D-E) pro vorgegebener Spezifikation von zwei oder mehr umfasst.Method according to one of the preceding claims, wherein when carrying out the path analysis, it is checked by means of a content structure analysis and a predetermined specification whether the functional block (12) comprises a number of functional paths (A-F; D-E) per predetermined specification of two or more. Verfahren nach einem der vorangehenden Ansprüche, wobei bei der Durchführung der Pfadanalyse mittels einer inhaltlichen Strukturanalyse und einer vorgegebenen Spezifikation überprüft wird, ob alle der in der vorgegebenen Spezifikation vorgesehenen funktionalen Pfade in dem Funktionsblock (12) vorhanden sind.Method according to one of the preceding claims, wherein when carrying out the path analysis, it is checked by means of a content structure analysis and a predetermined specification whether all of the functional paths provided in the predetermined specification are present in the functional block (12). Verfahren nach einem der vorangehenden Ansprüche, wobei bei der Durchführung der Pfadanalyse mittels einer Timinganalyse überprüft wird, ob eine der Ausführungszeiten eine vorgegebene Spezifikationszeit über- oder unterschreitet.Method according to one of the preceding claims, wherein when carrying out the path analysis, a timing analysis is used to check whether one of the execution times exceeds or falls short of a predetermined specification time. Verfahren nach einem der vorangehenden Ansprüche, wobei als Eingangs- und/oder Ausgangswerte des Funktionsblocks (12) Sensorwerte und/oder Businformationen verwendet werden.Method according to one of the preceding claims, wherein sensor values and/or bus information are used as input and/or output values of the function block (12). Vorrichtung zur Datenverarbeitung (100), umfassend Mittel zur Ausführung der Schritte des Verfahrens nach einem der vorangehenden Ansprüche.Data processing device (100) comprising means for carrying out the steps of the method according to one of the preceding claims. Computerprogramm (102), umfassend Befehle, die bei der Ausführung des Programms durch einen Computer diesen veranlassen, das Verfahren nach einem der Ansprüche 1 bis 7 auszuführen.Computer program (102) comprising instructions which, when the program is executed by a computer, cause the computer to carry out the method according to one of the Claims 1 until 7 to execute. Computerlesbarer Datenträger (104), auf dem das Computerprogramm (102) nach Anspruch 9 gespeichert ist.Computer-readable data carrier (104) on which the computer program (102) according to Claim 9 is stored.
DE102022212057.4A 2022-11-14 2022-11-14 Method for analyzing functional paths for an embedded system, data processing device, computer program and computer-readable data carrier Pending DE102022212057A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102022212057.4A DE102022212057A1 (en) 2022-11-14 2022-11-14 Method for analyzing functional paths for an embedded system, data processing device, computer program and computer-readable data carrier

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102022212057.4A DE102022212057A1 (en) 2022-11-14 2022-11-14 Method for analyzing functional paths for an embedded system, data processing device, computer program and computer-readable data carrier

Publications (1)

Publication Number Publication Date
DE102022212057A1 true DE102022212057A1 (en) 2024-05-16

Family

ID=91023673

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022212057.4A Pending DE102022212057A1 (en) 2022-11-14 2022-11-14 Method for analyzing functional paths for an embedded system, data processing device, computer program and computer-readable data carrier

Country Status (1)

Country Link
DE (1) DE102022212057A1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190324422A1 (en) 2019-06-29 2019-10-24 Intel Corporation Functional safety controls based on soft error information

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190324422A1 (en) 2019-06-29 2019-10-24 Intel Corporation Functional safety controls based on soft error information

Similar Documents

Publication Publication Date Title
EP2685382B1 (en) Method and device for producing and testing a control device program
EP3709166B1 (en) Method and system for secure signal manipulation for testing integrated security functionalities
EP3451202B1 (en) Method for generating a model of a technical system which can be run on a test device and a test device
DE102019124018A1 (en) Method for optimizing tests of control systems for automated vehicle dynamics systems
WO2021058223A1 (en) Method for applying automated driving functions efficiently and in a simulated manner
EP3983897B1 (en) Method for ensuring and maintaining the function of a complete safety-critical system
WO2018206146A2 (en) Method for the computer-aided, automated verification of requirements
EP2902905B1 (en) Method for checking the processing of software
DE102022212057A1 (en) Method for analyzing functional paths for an embedded system, data processing device, computer program and computer-readable data carrier
DE102022212058A1 (en) Method for checking functional paths for an embedded system, data processing device, computer program and computer-readable data carrier
DE10328059A1 (en) Method and device for monitoring a distributed system
DE102017214610B4 (en) Method for checking at least one vehicle function and testing device
EP3173928B1 (en) Method and device for checking a component error tree
DE102020102996A1 (en) Process for an integrated design for the modeling, simulation and testing of a real-time architecture within a model-based system and software development
EP3933593A1 (en) Method and computer program for testing a technical system
WO2007065585A1 (en) Diagnostic method and diagnostic device for the function-oriented diagnosis of a system comprising interconnected components
DE102013226872A1 (en) Method for operating a control unit of a motor vehicle and control unit for a motor vehicle
DE102011011224A1 (en) Control unit system
DE102010042574A1 (en) Method for operating microcontroller of automobile, involves interrupting specific functions by mechanism such that functions are executed without interference from execution of other functions
DE10312557B4 (en) Method for checking the functional safety of electronic systems of a vehicle
DE102010014720A1 (en) Method for verifying code of target program used for software for automotive electronics for engine, involves comparing output test variables corresponding to each program section of target program and program code
DE102016120934A1 (en) Optimized generation of total netlist and bitstream
DE102022208087A1 (en) Method for checking processing of user data
DE102020118479A1 (en) Method for enabling automatic evaluation of a current software security status and data processing device
WO2024175581A1 (en) Method and device for visualising debug data of a complex data processing network

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication