-
Die Erfindung betrifft ein Verfahren zum Ermitteln der Leistungsaufnahme eines programmierbaren Logikbausteins, ein Verfahren zum Entwerfen einer Konfiguration eines programmierbaren Logikbausteins, und eine Programmiervorrichtung zum Beschreiben eines programmierbaren Logikbausteins.
-
In vielen Gebieten der Technik werden Steuergeräte zur Regelung eines physikalischen Prozesses eingesetzt, wobei vorzugsweise zyklisch neue Messwerte eines oder mehrerer Sensoren erfasst und ein oder mehrere Aktuatoren basierend auf einem Vergleich der Messwerte mit Sollwerten angesteuert werden. Für einen schnellen Entwurf neuer Steuergeräte und/oder Regelalgorithmen kann auf einem bestehenden Steuergerät aufgesetzt werden und es können lediglich einzelne Funktionen ersetzt werden. Alternativ zu diesem unter dem Begriff Bypassing bekannten Vorgehen ist es auch möglich, anstelle eines Steuergeräts ein für den Reglerentwurf speziell angepasstes Rapid Control Prototyping System (abgekürzt RCP-System) im Fullpass-Betrieb mit den für die gewünschte Regelung erforderlichen Sensoren und Aktoren zu verbinden. Es sind RCP-Systeme erhältlich, die aufgrund ihrer kompakten Abmessungen und passiven Kühlung auch im Motorraum eines Kraftfahrzeugs eingesetzt werden können.
-
Für die Simulation und Regelung von Systemen mit hoher Dynamik werden in zunehmendem Umfang unter dem Begriff Field Programmable Gate Array (abgekürzt FPGA) bekannte programmierbare Logikbausteine eingesetzt. Ein programmierbarer Logikbaustein umfasst eine Vielzahl von Logikelementen und Verbindungselementen sowie eine Taktversorgung, welche mehrere Taktregionen umfassen kann. Die Logikelemente umfassen beispielsweise Register, Wahrheitstabellen (auch als Lookup-Table bzw. LUT bekannt), Addierer und Verzögerungseinheiten. Auch Frequenzgeneratoren und dedizierte Rechenbausteine z.B. für eine Multiplikation können vorhanden sein. Die Verbindungselemente umfassen zweckmäßigerweise Leiterbahnen unterschiedlicher Länge, welche z.B. auch Regionen des FPGA überspannen können, und schaltbare Verbindungen zwischen den Leiterbahnen und Logikelementen. Nach dem Einschalten der Spannungsversorgung wird der FPGA mit einem Bitstrom initialisiert, der zweckmäßigerweise für jedes Logikelement und jedes schaltbare Verbindungselement mindestens ein Bit enthält und somit eine für die jeweilige Anwendung maßgeschneiderte Schaltung ermöglicht. Durch die gute Anpassung an die jeweilige Anwendung und eine parallele Verarbeitung von Signalen können FPGAs auch schnell veränderliche Strecken zuverlässig regeln und werden zum Beispiel für die Ansteuerung von elektronisch kommutierten Synchronmaschinen verwendet.
-
Ein generelles Problem bei der Verwendung von programmierbaren Logikbausteinen besteht darin, dass die dynamische Leistungsaufnahme des FPGA wesentlich von der Konfiguration, also insbesondere dem ausgeführten Regler-Modell, und den Stimuli, also den an den Schnittstellen-Pins anliegenden Signalen, abhängig ist. Da Änderungen an den Schnittstellen-Pins durch den ganzen FPGA propagieren und zum mehrfachen Umschalten von Logikgattern während eines einzelnen Takts führen können, verursacht eine hohe Änderungsrate der Stimuli eine deutlich erhöhte Leistungsaufnahme des FPGA. Bei der Verwendung von FPGAs in einem RCP-System kann dies zu kritischen Folgen führen, wenn die resultierende Abwärme eine passive Kühlung überfordert oder die Stromversorgung überlastet.
-
Der Artikel „Dynamic Power Consumption in VirtexTM-II FPGA Family", von Li Shang et al., Proceedings of the ACM International Symposium on Field-Programmable Gate Arrays 2002, pp.157–164, beschreibt eine Analyse der dynamischen Leistungsaufnahme eines kommerziellen FPGAs, welche im Wesentlichen durch das Laden und Entladen der Kapazitäten der einzelnen Elemente des programmierbaren Logikbausteins und die Kurzschlussströme beim Schalten insbesondere von Inverter in den Registern verursacht wird. Es wird vorgeschlagen, die Leistungsaufnahme P anhand einer Formel P = 1 / 2V2f∑iCiUiSi zu ermitteln, wobei V die Versorgungsspannung, f die Taktfrequenz, Ci eine effektive Kapazität, Ui eine Ausnutzung und Si eine Schaltaktivität des betrachteten Elements i bezeichnet. Der Artikel stellt weiterhin ein mögliches Vorgehen zum Schätzen der Leistungsaufnahme basierend auf einer platzierten Netzliste der Konfiguration vor.
-
In der
US 7,810,058 B1 wird ein Verfahren zur Simulation eines Betriebs einer integrierten Schaltung beschrieben, bei dem eine effektive Kapazität für die verschiedenen Typen von programmierbaren Ressourcen der integrierten Schaltung ermittelt wird, bevor der entsprechende Baustein gefertigt wird. Aufbauend auf einer Netzliste werden eine geschaltete Kapazität des jeweiligen Typs von programmierbarer Ressource sowie eine parasitäre Leitungskapazität ermittelt und kombiniert. Für jeden Typ wird eine mittlere Umschaltfrequenz bestimmt und darauf aufbauend eine geschätzte Leistungsaufnahme der entworfenen integrierten Schaltung ermittelt. Somit kann frühzeitig eine Leistungsaufnahme einer integrierten Schaltung geschätzt werden.
-
Aus der
US 8,146,035 B1 ist ein Verfahren zur Schätzung der Leistungsaufnahme einer Schaltung anhand eines Entwurfs für die Schaltung bekannt. Eine Vielzahl von Beispielschaltungsentwürfen umfassend Schaltungselemente gemäß einer oder mehrerer Strukturschablonen wird simuliert, um Ausgangs-Umschaltraten für die Schaltungselemente zu ermitteln und eine Datenbank von Strukturschablonen und zugeordneten Gleichungen, welche die Ausgangs-Umschaltraten beschreiben, wird aufgebaut. Für eine Vielzahl von Schaltungselementen, aus welchen der Entwurf für die Schaltung aufgebaut ist, wird eine Übereinstimmung mit den in der Datenbank gespeicherten Strukturschablonen bestimmt und anhand der den Strukturschablonen zugeordneten Gleichungen eine jeweilige geschätzte Umschaltrate ermittelt. Basierend auf den geschätzten Umschaltraten der Schaltungselemente wird eine geschätzte Leistungsaufnahme der Schaltung bestimmt. Dies ermöglicht es, Strukturen mit einer deutlich von dem Durchschnitt abweichenden Umschaltfrequenz bei der Schätzung der Leistungsaufnahme zu berücksichtigen.
-
Hersteller von programmierbaren Logikbausteinen wie Xilinx und Altera stellen vielfach Programme zur Schätzung der Leistungsaufnahme ihrer FPGAs bereit. Während die Hersteller strukturelle Eigenschaften des programmierbaren Logikbausteins und Eigenschaften des verwendeten Fertigungsprozesses gut zu berücksichtigen vermögen, kann das dynamische Verhalten einer spezifischen Konfiguration unter anderem aufgrund vereinfachender Annahmen weiterhin nur mit einer begrenzten Genauigkeit beschrieben werden.
-
Vor diesem Hintergrund besteht die Aufgabe der Erfindung darin, ein Verfahren und eine Vorrichtung anzugeben, welche den Stand der Technik weiterbilden und vorzugsweise eine realistische Schätzung der dynamischen Leistungsaufnahme für den jeweiligen Anwendungsfall ermöglichen.
-
Die Aufgabe wird durch ein Verfahren zum Ermitteln der Leistungsaufnahme eines programmierbaren Logikbausteins mit den Merkmalen von Anspruch 1 und eine Programmiervorrichtung mit den Merkmalen von Anspruch 15 gelöst. Vorteilhafte Ausgestaltungen der Erfindung sind Gegenstand von abhängigen Unteransprüchen.
-
Erfindungsgemäß wird also ein Verfahren zum Ermitteln der Leistungsaufnahme eines programmierbaren Logikbausteins bereitgestellt, bei dem mindestens ein Konfigurations-Parameter nach Maßgabe der vorgegebenen Konfiguration und mindestens ein Baustein-Parameter nach Maßgabe des programmierbaren Logikbausteins bestimmt wird, wobei die vorgegebene Konfiguration so ausgestaltet ist, dass der programmierbaren Logik-Baustein über mindestens einen Schnittstellen-Pin Daten mit einer Recheneinheit austauscht und über mindestens einen Schnittstellen-Pin Daten von mindestens einer Signalquelle empfängt und/oder an mindestens einen Signalempfänger sendet, wobei mindestens eine Daten-Eigenschaft der zwischen der Recheneinheit und dem programmierbaren Logikbaustein ausgetauschten Daten ermittelt wird, wobei mindestens eine Signal-Eigenschaft der von der mindestens einen Signalquelle empfangenen und/oder an den mindestens einen Signalempfänger gesendeten Daten ermittelt wird, und wobei die Leistungsaufnahme in Abhängigkeit von dem mindestens einen Konfigurations-Parameter, dem mindestens einem Baustein-Parameter, der mindestens einen Daten-Eigenschaft und der mindestens einen Signal-Eigenschaft ermittelt wird.
-
Der mindestens eine Konfigurationsparameter, welcher nach Maßgabe der vorgegebenen Konfiguration bestimmt wird, kann zweckmäßigerweise die Anzahl in der aktuellen Konfiguration verwendeten Logikelemente angeben. Insbesondere kann es sich um eine relative Angabe der genutzten Fläche handeln. Unter einem Konfigurationsparameter ist also vorzugsweise ein die strukturellen Eigenschaften der vorgegebenen Konfiguration beschreibender Parameter zu verstehen.
-
Der mindestens eine Baustein-Parameter, welcher nach Maßgabe des programmierbaren Logikbausteins bestimmt wird, insbesondere anhand von einer Baustein-Kennzeichnung aus Informationen des Herstellers ermittelt wird, kann zweckmäßigerweise einen Leckstrom oder eine statische Leistungsaufnahme des verwendeten programmierbaren Logikbausteins angeben. Prinzipiell kann es sich auch um einen die Eigenschaften einer den programmierbaren Logikbausteins umfassenden Gesamtschaltung oder eines diese umschließenden Gehäuses beschreibenden Baustein-Parameter handeln, der insbesondere Kühleigenschaften wie einen Wärmewiderstand angibt.
-
Unter dem mindestens einen Schnittstellen-Pin ist insbesondere ein physikalischer Pin zu verstehen, der in einer Schaltung eingelötet wird und den programmierbaren Logikbaustein mit weiteren Schaltungsteilen verbindet. Es kann sich aber auch um ein direkt vor oder hinter einem Schnittstellen-Pin des programmierbaren Logikbausteins im Signalpfad angeordnetes Register oder einen Treiber eines Ausgangs handeln, das/der in der Konfiguration verwendet werden. Für ein erfindungsgemäßes Verfahren kann es vorgesehen sein, keinen physikalisch vorhandenen programmierbaren Logikbaustein zu verwenden, sondern die vorgegebene Konfiguration zu simulieren; in diesem Fall kann der Schnittstellen-Pin auch rein virtuell sein.
-
Bei der Recheneinheit kann es sich insbesondere um einen Mikrocontroller handeln, der gemeinsam mit dem programmierbaren Logikbaustein in einem Steuergerät angeordnet ist. Prinzipiell kann die Recheneinheit auch getrennt von dem programmierbaren Logikbaustein angeordnet und mit diesem nur über den Bus verbunden sein. Somit kann die Recheneinheit auch als ein Standard-PC ausgebildet sein.
-
Bei der mindestens einen Signalquelle kann es sich insbesondere um einen Sensor handeln, beispielsweise einen oder mehrere Positionssensoren eines Rotors einer elektrischen Maschine. Die Signalquelle kann zweckmäßigerweise auch als ein mit einem analogen Baustein verbundener Analog-Digital-Wandler ausgebildet sein. Die mindestens eine Signaleigenschaft kann beispielsweise eine anhand der Wandlungszeit ermittelte maximale Datenrate umfassen.
-
Der mindestens eine Signalempfänger kann insbesondere als Aktor oder als mit einem Aktor verbundene Ansteuerschaltung ausgebildet sein. Die mindestens eine Signaleigenschaft kann insbesondere anhand der dynamischen Eigenschaften des Aktors ermittelt werden und beispielsweise eine Zeitkonstante des Aktors oder eine daraus abgeleitete Größe umfassen.
-
Für die Ermittlung der Leistungsaufnahme können zweckmäßigerweise an sich bereits bekannte Verfahren eingesetzt werden, insbesondere von dem Hersteller des programmierbaren Logikbausteins bereitgestellte Programme zur Schätzung der Leistungsaufnahme verwendet werden.
-
Das erfindungsgemäße Verfahren hat den Vorteil, dass eine Ermittlung der erwartenden Leistungsaufnahme mit einer höheren Genauigkeit erfolgt. Indem der konkrete Anwendungsfall auf systematische Weise bei der Ermittlung der Leistungsaufnahme berücksichtigt wird, werden die Nachteile bekannter Verfahren zur Ermittlung der Leistungsaufnahme vermieden.
-
Bevorzugt umfasst die mindestens eine Daten-Eigenschaft eine erste Änderungsrate, welche anhand einer Anzahl und/oder einer Schnittstellen-Aktivität eines oder aller mit dem programmierbaren Logikbaustein verbundenen Tasks der Recheneinheit ermittelt wird, wobei die Recheneinheit vorzugsweise als Echtzeitrechner ausgebildet ist. Unter einem Echtzeitrechner sind hierbei zweckmäßigerweise solche Recheneinheiten zu verstehen, welche ein klar vorgegebenes zeitliches Verhalten aufweisen, insbesondere eine vorgegebene maximale Latenz zwischen dem Empfang eines Eingangssignals und einer Reaktion in Form eines Ausgangssignals. Durch die Berücksichtigung des zeitlichen Verhaltens des Echtzeitrechners und zweckmäßigerweise der einzelnen Tasks kann die Änderungsrate eingehender Daten genauer abgeschätzt werden, insbesondere für die offline Simulation einer vorgegebenen Konfiguration.
-
Besonders bevorzugt umfassen die Daten-Eigenschaften eine Anzahl für den Datenaustausch mit der Recheneinheit belegter Schnittstellen-Pins oder eine Busbreite des für den Datenaustausch mit dem Echtzeitrechner verwendeten Datenbusses, wobei vorzugsweise die erste Änderungsrate eine über die belegten Schnittstellen-Pins gemittelte Änderungsrate ist oder jedem belegten Schnittstellen-Pin eine erste Änderungsrate zugeordnet wird.
-
Vorzugsweise umfasst/umfassen die mindestens eine Signal-Eigenschaft eine zweite Änderungsrate und/oder eine dritte Änderungsrate und/oder eine Anzahl von mit einer Signalquelle verbundenen Schnittstellen-Pins und/oder eine Anzahl von mit einem Signalempfänger verbundenen Schnittstellen-Pins, wobei vorzugsweise die zweite Änderungsrate anhand einer Sample-Rate einer oder jeder mit dem programmierbaren Logikbaustein verbundenen Signalquelle ermittelt wird, und wobei vorzugsweise die dritte Änderungsrate anhand einer Output-Rate eines oder jedes mit einem Signalempfänger verbundenen Schnittstellen-Pins ermittelt wird. Insbesondere bei der offline-Simulation einer vorgegebenen Konfiguration kann es zweckmäßig sein, wenn Sample-Rate und/oder Output-Rate anhand von Eigenschaften des für die Simulation von Signalquelle und/oder Signalempfänger verwendeten Tasks ermittelt werden. Hierbei kann es auch vorgesehen sein, dass dieser mindestens eine Task auf einer als Echtzeitrechner ausgebildeten Recheneinheit ausgeführt wird, welche auch mit dem in der vorgegebenen Konfiguration verwendeten Datenbus des programmierbaren Logikbausteins verbunden ist.
-
Gemäß einer bevorzugten Ausführungsform der Erfindung wird die vorgegebene Konfiguration in einem Arbeitsplatzrechner simuliert oder in einen programmierbaren Logikbaustein geschrieben und ausgeführt, wobei die Recheneinheit, die mindestens eine Signalquelle und/oder der mindestens eine Signalempfänger derart betrieben oder simuliert werden, dass die vorgegebene Konfiguration einem vorgegebenen Prozess entsprechende Daten austauscht, empfängt und/oder sendet, wobei die entsprechenden Daten für eine vorgegebene Zeitdauer oder bis zur Erfüllung einer vorgegebenen End-Bedingung protokolliert werden, und wobei die mindestens eine Daten-Eigenschaft und die mindestens eine Signal-Eigenschaft nach Maßgabe der protokollierten Daten ermittelt wird. Bei dem Arbeitsplatzrechner kann es sich um einen Standard-PC oder um einen Echtzeitrechner handeln; auch Kombinationen mehrerer Rechner in einem Netzwerk können als Arbeitsplatzrechner verwendet werden. Somit kann die vorgegebene Konfiguration in einer online-Simulation, bei der sowohl Recheneinheit als auch Signalquelle und/oder Signalempfänger als physikalische Geräte vorhanden sind und gemäß dem vorgegebenen Prozess betrieben werden, oder in einer offline-Simulation betrieben werden. In einer offline-Simulation kann es vorgesehen sein, dass sämtliche Bestandteile der Schaltung in einer oder mehreren Recheneinheiten simuliert werden; wenn die Konfiguration aus einem festen Transformationsanteil und einem frei wählbaren Modellanteil besteht, kann zweckmäßigerweise auch nur der Modellanteil simuliert werden und die entsprechenden Daten an den entsprechenden Registern oder virtuellen Schnittstellen-Pins des Kundenmodells ermittelt werden. Weiterhin sind Zwischenstufen möglich, bei denen die Recheneinheit und/oder eine Signalquelle und/oder ein Signalempfänger physikalisch vorhanden sind, während die weiteren Bestandteile der Schaltung simuliert werden.
-
In einer besonders bevorzugten Ausführungsform der Erfindung wird/werden mindestens eine Signalquelle und/oder mindestens ein Signalempfänger simuliert. Dies ermöglicht eine Ermittlung der Leistungsaufnahme in einem besonders frühen Entwicklungsstadium eines Steuergeräts.
-
In einer besonders bevorzugten Ausführungsform der Erfindung sind mindestens eine Signalquelle und/oder mindestens ein Signalempfänger physikalisch vorhanden und werden mit den dem vorgegebenen Prozess entsprechenden Signalen betrieben. Durch Hardware-in-the-Loop-Simulationen kann die Genauigkeit erhöht werden, wobei insbesondere in einem späteren Entwicklungsstadium sowohl Recheneinheit als auch Signalquelle und/oder Signalempfänger physikalisch vorhanden sein können.
-
Zweckmäßigerweise wird mindestens ein Nutzer-Parameter durch den Nutzer vorgegeben, und die Leistungsaufnahme des programmierbaren Logikbausteins wird auch in Abhängigkeit von dem mindestens einem Nutzer-Parameter ermittelt. Insbesondere kann es sich bei dem mindestens einen Nutzer-Parameter um eine Taktfrequenz handeln, mit der der programmierbare Logikbaustein betrieben wird.
-
Vorzugsweise weist die vorgegebene Konfiguration einen festen Transformationsanteil und einen frei wählbaren Modellanteil auf, wobei der Transformationsanteil eine Änderungsrate von an mindestens einem belegten oder verbundenen Schnittstellen-Pin anliegenden Daten gemäß einer Abbildungsfunktion transformiert, und wobei für jeden belegten oder verbundenen Schnittstellen-Pin die an dem/den Logikelement/en des Modellanteils anliegende Änderungsrate nach Maßgabe der Abbildungsfunktion ermittelt wird. Die Abbildungsfunktion kann insbesondere eine vorgegebene Verzögerung eingehender Daten und/oder eine Begrenzung der Änderungsrate auf einen festen Maximalwert umfassen.
-
Gemäß einer besonders bevorzugten Ausführungsform der Erfindung werden die protokollierten Daten in einen oder mehrere Abschnitte aufgeteilt, wobei mindestens ein Abschnitt anhand einer vorgegebenen Auswahlbedingung ausgewählt und ausgegeben wird. Die vorgegebene Auswahlbedingung kann beispielsweise eine Auswertung eines Flags bzw. eines Signals umfassen, welches die Aktivität einer Regelung anzeigt. Zweckmäßigerweise kann eine Aufteilung in Abschnitte vorgegebener Länge oder anhand einer vorgegebenen Aufteilungsbedingung erfolgen. Insbesondere kann die Aufteilungsbedingung derart gewählt sein, dass zwischen Abschnitten mit Regelungsaktivität und ohne Regelungsaktivität unterschieden wird.
-
In einer ganz besonders bevorzugten Ausführungsform der Erfindung wird die vorgegebene Konfiguration in einen programmierbaren Logikbaustein geschrieben und ausgeführt, wobei der programmierbare Logikbaustein mindestens einen Temperatursensor und/oder mindestens einen Stromsensor aufweist, und wobei mindestens ein Temperatur- und/oder mindestens ein Strom-Signal für eine vorgegebene Zeitdauer oder bis zur Erfüllung einer vorgegebenen End-Bedingung protokolliert wird. Wenn der betrachtete Prozess z.B. eine Bremsregelung umfasst, kann die End-Bedingung z.B. in dem Vergleich einer simulierten Fahrzeuggeschwindigkeit mit einem Schwellenwert bestehen.
-
Gemäß einer besonders bevorzugten Ausführungsform der Erfindung umfasst die Ermittlung der Leistungsaufnahme eine Simulation der vorgegebenen Konfiguration, wobei vorzugsweise anhand protokollierten Daten jeweils ein interner Schaltzustand des programmierbaren Logikbausteins ermittelt wird. Indem der interne Zustand des programmierbaren Logikbausteins betrachtet wird, kann die Genauigkeit der ermittelten Leistungsaufnahme nochmals deutlich erhöht werden.
-
Die Erfindung betrifft weiterhin ein Verfahren zum Entwerfen einer Konfiguration eines programmierbaren Logikbausteins, umfassend einen Schritt, bei dem die Leistungsaufnahme eines programmierbaren Logikbausteins anhand der aktuell entworfenen Konfiguration durch ein erfindungsgemäßes Verfahren ermittelt wird. Indem eine Ermittlung der Leistungsaufnahme mit Hilfe eines erfindungsgemäßen Verfahrens in einem frühen Entwurfsstadium erfolgt, kann diese bereits bei dem Entwurf der vorgegebenen Konfiguration berücksichtigt werden und somit das Auftreten potentiell gefährlicher Situationen während eines Test im Vorfeld verhindert werden.
-
Hierbei weist der programmierbare Logikbaustein vorzugsweise ein oder mehrere Regionen umfassend mindestens ein Logikelement auf, wobei eine Meldung ausgegeben und/oder eine vorgegebene Taktfrequenz mindestens einer Region des programmierbaren Logikbausteins reduziert und/oder mindestens ein Logikelement, vorzugsweise mindestens eine Region umfassend mehrere Logikelemente, deaktiviert wird, insbesondere mittels eines Signals oder einer Trennung von Taktversorgung und/oder Stromversorgung, wenn die ermittelte Leistungsaufnahme einen vorgegebenen Leistungsschwellenwert überschreitet. Die Meldung kann hierbei eine Warnung und/oder einen Vorschlag zur Reduzierung der Taktfrequenz des programmierbaren Logikbausteins umfassen. Je nach Bauart des programmierbaren Logikbausteins kann das Deaktivieren einer Region mittels eines Signals dadurch erfolgen, dass ein der Region zugeordnetes Deaktivierungssignal gesetzt wird oder ein Aktivierungssignal deaktiviert wird. Auch das Trennen von der Taktversorgung kann mittels eines Signals erfolgen. In der deaktivierten Region erfolgt dann kein Umschalten, so dass die dynamische Leistungsaufnahme des programmierbaren Logikbausteins verringert wird.
-
Ferner betrifft die Erfindung eine Programmiervorrichtung zum Beschreiben eines programmierbaren Logikbausteins, umfassend einen Prozessor, eine Programmierschnittstelle und/oder eine Debugging-Schnittstelle, wobei die Vorrichtung dazu eingerichtet ist, ein erfindungsgemäßes Verfahren durchzuführen. Die Programmiervorrichtung kann auch als ein Standard-Desktop- oder Notebook-PC ausgebildet sein.
-
Die Erfindung betrifft weiterhin ein Computerprogrammprodukt mit einem computerlesbaren Speichermedium, auf dem Befehle eingebettet sind, die, wenn sie von einer Recheneinheit ausgeführt werden, bewirken, dass die Recheneinheit dazu eingerichtet ist, ein erfindungsgemäßes Verfahren auszuführen.
-
Die Erfindung wird nachfolgend unter Bezugnahme auf die Zeichnungen näher erläutert. Hierbei werden gleichartige Teile mit identischen Bezeichnungen beschriftet. Die dargestellten Ausführungsformen sind stark schematisiert, d.h. die Abstände und die lateralen und die vertikalen Abmessungen sind nicht maßstäblich und weisen, sofern nicht anders angegeben, auch keine ableitbaren geometrischen Relationen zueinander auf.
-
Darin zeigt:
-
1 einen schematische Darstellung eines Steuergeräts,
-
2a eine schematische Ansicht einer ersten Konfiguration eines programmierbaren Logikbausteins,
-
2b eine schematische Ansicht einer zweiten Konfiguration eines programmierbaren Logikbausteins,
-
3 eine schematische Darstellung einer Simulation eines Steuergeräts,
-
4 ein schematisches Diagramm einer bevorzugten Ausführungsform des erfindungsgemäßen Verfahrens, und
-
5 eine schematische Darstellung eines Hardware-in-the-Loop-Tests eines Steuergeräts.
-
Die Abbildung der 1 zeigt eine schematische Darstellung eines Steuergeräts 7, welches in dem gezeigten Beispiel für die Ansteuerung einer elektrischen Maschine 8 verwendet wird. Die Erfindung ist prinzipiell für beliebige Arten von angesteuerten Aktoren und beliebige Arten von Ansteuerungen anwendbar.
-
Das Steuergerät 7 umfasst einen Mikroprozessor 1 und einen programmierbaren Logikbaustein 2, welche über einen Datenbus miteinander verbunden sind. Der Datenbus kann prinzipiell eine beliebige Anzahl von Leitungen umfassen; aus Gründen der Übersichtlichkeit sind nur zwei Leitungen dargestellt. Der Mikroprozessor 1 ist mit einem nichtflüchtigen Speicher 6 verbunden, der auch als ein Bestandteil des Mikroprozessors ausgebildet sein kann. Bei der Initialisierung des Steuergeräts 7 kann sowohl das von dem Mikroprozessor 1 ausgeführte Programm als auch die Konfiguration des programmierbaren Logikbausteins 2 aus dem nichtflüchtigen Speicher 6 ausgelesen werden. Der Mikroprozessor 1 kann digitale und analoge Schnittstellen aufweisen und insbesondere mit einem nicht dargestellten Transceiver eines Fahrzeugdatenbusses verbunden sein.
-
Der programmierbare Logikbaustein 2, im Folgenden auch als FPGA-Baustein bzw. FPGA bezeichnet, ist mit mindestens einem Digital-Analog-Konverter (DAC) 3 und einem oder mehreren Analog-Digital-Konvertern (ADC) 4 verbunden, welche prinzipiell auch in dem Baustein integriert sein können. In dem gezeigten Beispiel ist der Ausgang von DAC 3 mit einer Ansteuerschaltung 5 verbunden. Prinzipiell kann der programmierbare Logikbaustein 2 auch direkt mit einer Ansteuerschaltung für einen elektronisch kommutierten Motor bzw. Generator verbunden sein, um z.B. eine pulsweitenmodulierte Ansteuerung der einzelnen Phasenwicklungen zu ermöglichen. Die Ansteuerschaltung 5 ist mit der elektrischen Maschine 8 verbunden, welche je nach Ansteuerung den Rotor bewegt. Die Position des Rotors wird mittels eines Resolvers 9 gemessen, der mit dem mindestens einen ADC 4 verbunden ist. Die Erfindung ist prinzipiell für beliebige Arten von Sensoren anwendbar.
-
Bei dem gezeigten Steuergerät 7 kann es sich um ein universelles RCP-System handeln. Ein RCP-System übertrifft ein Seriensteuergerät häufig sowohl in der Rechenleistung als auch in Stromversorgung und Kühlung um ein Vielfaches. Da bekannte Komponenten verwendet werden, sind viele für eine Ermittlung der Leistungsaufnahme notwendigen Parameter vorab bekannt, wie beispielsweise der Wärmewiderstand eines verwendeten passiven Kühlkörpers und das Modell bzw. insbesondere die statische Verlustleistung des verwendeten FPGAs. Je nach vorgesehenem Einsatzort kann weiterhin die Umgebungstemperatur bzw. können eine minimale und eine maximale Umgebungstemperatur bestimmt werden.
-
Ein FPGA-Baustein umfasst eine Vielzahl von Logikelementen und Verbindungselementen sowie eine Taktversorgung, welche mehrere Taktregionen umfassen kann. Die Logikelemente umfassen beispielsweise Register, Wahrheitstabellen (auch als Lookup-Table bzw. LUT bekannt), Addierer, Schalter und Verzögerungseinheiten. Auch Frequenzgeneratoren und Treiber für eine Schnittstelle können vorhanden sein. Je nach Granularität des FPGA-Bausteins können auch mehrere dieser Elemente zu einer Elementar-Einheit zusammengefasst sein. Die Verbindungselemente umfassen zweckmäßigerweise Leiterbahnen unterschiedlicher Länge, welche z.B. auch Regionen des FPGA überspannen können, und schaltbare Verbindungen zwischen den Leiterbahnen und Logikelementen. Der FPGA-Baustein umfasst zweckmäßigerweise einen Konfigurationsspeicher, der für jedes konfigurierbare Logikelement und jedes schaltbare Verbindungselement mindestens ein Bit enthält. Nach dem Einschalten der Spannungsversorgung wird der FPGA mit einem Bitstrom initialisiert, der in den Konfigurationsspeicher des FPGA geschrieben wird.
-
Eine Konfiguration des FPGA kann in mehreren Ebenen dargestellt werden, wobei ein die Konfiguration beschreibender Bitstrom die unterste (Abstraktions-)Ebene darstellt und in einer höheren Ebene die Logikbeschreibung in Form einer Netzliste vorliegt. Je nach dem Vorgehen beim Erstellen der Konfiguration können noch höhere Abstraktionsebenen vorhanden sein, so kann eine Beschreibung der Konfiguration in einer Hardwarebeschreibungssprache wie VHDL oder SystemC vorliegen, welche anschließend in eine Netzliste konvertiert wird. Auch die Beschreibung in Form eines Blockdiagramms einer technischen Rechenumgebung wie Matlab/Simulink ist möglich, da z.B. mittels des Xilinx System Generators das Blockdiagramm in eine Darstellung der FPGA-Konfiguration in einer Hardwarebeschreibungssprache übersetzt werden kann. Hierbei kann es auch vorgesehen sein, sowohl den Code des Mikrocontrollers als auch die Konfiguration des FPGAs aus verbundenen Blockdiagrammen zu erzeugen, um eine kombinierte Regelung zu ermöglichen.
-
In der Abbildung der 2a ist eine erste Konfiguration eines FPGA-Bausteins 2 schematisch dargestellt, wobei Schnittstellen-Pins des FPGA-Bausteins als in vier Reihen angeordnete Rechtecke angedeutet sind. Eine erste Gruppe von Schnittstellen-Pins 11 ist über einen Datenbus mit einer Recheneinheit wie einem Mikroprozessor 1 verbunden. Die ersten Schnittstellen-Pins 11 sind intern mit einem Register 12 verbunden, über das die ausgetauschten Daten zwischengespeichert und/oder weiterverarbeitet werden können. Eine zweite Gruppe von Schnittstellen-Pins 41 ist mit einem Analog-Digital-Wandler 4 verbunden, der eine Signalquelle darstellt. Die zweiten Schnittstellen-Pins 41 sind mit einem Register 42 verbunden, das von nicht dargestellten Logikelementen des FPGA ausgelesen werden kann und insbesondere Eingangsdaten für eine Regelung bereitstellt. Eine dritte Gruppe von Schnittstellen-Pins 31 ist mit einem Digital-Analog-Konverter 3 verbunden, der einen Signalempfänger darstellt. Die dritten Schnittstellen-Pins 31 sind mit einem Register 32 verbunden, welches von nicht dargestellten Logikelementen des FPGA beschrieben werden kann. Prinzipiell können auch andere Signalquellen bzw. Signalempfänger an den FPGA-Baustein angeschlossen sein. Bei der dargestellten Konfiguration ist es prinzipiell unbedeutend, ob eine Änderungsrate der Schnittstellen-Pins 11, 31, 41 oder eine Änderungsrate des zugeordneten Registers 12, 32, 43 ermittelt wird, da zwischen diesen eine 1:1-Korrespondenz besteht.
-
In der Abbildung der 2b ist eine zweite Konfiguration eines FPGA-Bausteins 2 schematisch dargestellt, wobei Schnittstellen-Pins als in vier Reihen angeordnete Rechtecke angedeutet sind. Anders als die erste Konfiguration ist die zweite Konfiguration in eine Zwischenschicht bzw. einen Transformationsanteil und ein inneres Regler-Modell 20 bzw. einen Modellanteil aufgeteilt, was insbesondere dann auftreten kann, wenn die Konfiguration des FPGA anhand eines Blockdiagramms eines Regel-Algorithmus erstellt wurde. Der Transformationsanteil kann beispielsweise auch eine Schnittstelle für die Kommunikation zwischen einem Mikroprozessor und dem programmierbaren Logikbaustein bereitstellen. Das Regler-Modell 20 weist dedizierte Eingabe-Ausgabe-Blöcke auf, welche hier als Bus-Block 13, Eingangs-Block 43 und Ausgangs-Block 33 dargestellt sind. je nach (Abstraktions-)Ebene der Beschreibung des Modells entsprechen diese Blöcke den Registern 12, 42 und 32 bzw. Logikeinheiten, die auf diese Blöcke abgebildet werden.
-
In dem Fall einer Zwischenschicht bzw. eines Transformationsanteils kann es vorkommen, dass keine 1:1-Korrespondenz zwischen einer Änderungsrate an einem Schnittstellen-Pin des FPGA-Bausteins 2 und einer Änderungsrate an einem zugeordneten Register des Regler-Modells 20 besteht. Da der Transformationsanteil fest vorgegeben ist bzw. aus einer Anzahl vorgegebener Elemente besteht, kann die Beziehung zwischen Änderungsrate an der jeweiligen Gruppe von Schnittstellen-Pins 11, 41, 31 und dem zugeordneten Bestandteil 13, 43, 33 des Regler-Modells 20 in Form einer Abbildungsfunktion α, β, γ beschrieben werden. Die Zwischenschicht kann beispielsweise einen Multiplexer umfassen, wobei die Abbildungsfunktion α, β, γ insbesondere eine Verzögerung des Signals und eine Begrenzung der maximalen Änderungsrate umfassen kann. In dem gezeigten Beispiel sind die ersten Schnittstellen-Pins 11 über einen Datenbus mit einem Mikroprozessor 1 verbunden, wobei der Einfluss der Zwischenschicht über eine Abbildungsfunktion α beschrieben wird, die beispielsweise auch eine Proportionalität angeben kann. Die zweiten Schnittstellen-Pins 41 sind mit einer Signalquelle 4 verbunden, wobei der Einfluss der Zwischenschicht über eine zweite Abbildungsfunktion β beschrieben wird. Die dritten Schnittstellen-Pins 31 sind mit einem Signalempfänger 3 verbunden, wobei der Einfluss der Zwischenschicht über eine dritte Abbildungsfunktion γ beschrieben wird. Die Abbildungsfunktionen α, β, γ beschreiben zweckmäßigerweise, an welchem Logikelement des Regler-Modells 20 sich eine Änderung eines Signalwerts eines Schnittstellen-Pins 11, 41, 31 auswirkt, und welche Verzögerung hierbei auftritt.
-
Beim Entwurf eines Steuergerätes ist es wünschenswert, anhand des Regler-Modells vorab zu überprüfen, ob es bei der Erprobung in einem RCP-System zu einer Überhitzung des FPGAs kommen wird. In erster Linie aufgrund vereinfachender Annahmen können vom FPGA-Hersteller bereitgestellte Programme zur Abschätzung der statischen und dynamischen Leistungsaufnahme des FPGAs hier keine hinreichend genaue Aussage bieten. Während die statische Leistungsaufnahme vorab weitgehend feststeht, hat insbesondere eine Schnittstellen-Aktivität bzw. Änderungsrate der Schnittstellen-Pins einen starken Einfluss auf die dynamische Leistungsaufnahme und sollte daher bei der Abschätzung möglichst genau berücksichtigt werden. Auch eine vom Nutzer vorgebbare Taktfrequenz wirkt sich deutlich auf die dynamische Leistungsaufnahme aus. Es ist vorteilhaft, wenn die vorgegebene Taktfrequenz von einem Programm zur Erstellung des Regler-Modells bzw. der FPGA-Konfiguration über eine Software-Schnittstelle an ein Programm zur Abschätzung der dynamischen Leistungsaufnahme übertragen wird.
-
In einer frühen Entwicklungsphase kann mit einem ersten Verfahren die Schnittstellen-Aktivität anhand der Eigenschaften der mit den Schnittstellen-Pins über einen Datenbus verbundene Recheneinheit bzw. der von dieser Recheneinheit ausgeführten Tasks sowie Eigenschaften der Signalquelle und des Signalempfängers ermittelt werden.
-
Für die ersten Schnittstellen-Pins 11, welche vorzugsweise mit einem Echtzeitrechner verbunden sind, kann eine erste Änderungsrate anhand der Schreib-/Leserate der Tasks des Echtzeitrechners ermittelt werden, wobei insbesondere einmal pro Taskperiode (z.B. 1 Millisekunde) der Task, in der der Schreibe-/Lesezugriff erfolgt, ein neuer Wert übermittelt wird. Werden die Daten beispielsweise über mehrere Leitungen parallel übertragen, kann somit in der Taskperiode (z.B. 1 Millisekunde) maximal ein Umschalten der Schnittstellen-Pins 11 auftreten. Ob dieses Umschalten tatsächlich auftritt, hängt auch von einer Wechselwahrscheinlichkeit der jeweiligen Daten ab, welche beispielsweise bei 20% bis 30% liegen kann. Die Wechselwahrscheinlichkeit kann fest vorgegeben werden, insbesondere anhand von Eigenschaften des Regler-Modells 20 empirisch ermittelt werden, oder von einem Nutzer manuell gewählt werden.
-
Für die zweiten Schnittstellen-Pins 41, welche mit einer Signalquelle verbunden sind, kann anhand der Eigenschaften der Signalquelle eine zweite Änderungsrate ermittelt werden. Wenn es sich bei der Signalquelle beispielsweise um einen Analog-Digital-Wandler 4 handelt, hängt sowohl die Auflösung des Werts (z.B. 16 bit) als auch die Dauer der Wandlung vom verwendeten Wandler-Baustein ab und kann somit anhand des Datenblatts bzw. festgelegter Eigenschaften des Wandler-Bausteins ermittelt werden. Insbesondere kann eine Sample-Rate der Signalquelle für die Ermittlung der zweiten Änderungsrate herangezogen werden. Eine Wechselwahrscheinlichkeit der empfangenen Daten kann fest vorgegeben sein oder von einem Nutzer manuell gewählt werden.
-
Für die dritten Schnittstellen-Pins 31, welche mit einem Signalempfänger, wie z.B. einer Ansteuerschaltung für einen Aktuator verbunden sind, kann anhand der Eigenschaften des Aktuators und/oder des zu regelnden Prozesses eine dritte Änderungsrate ermittelt werden. Eine Wechselwahrscheinlichkeit der gesendeten Daten kann fest vorgegeben sein oder von einem Nutzer manuell gewählt werden.
-
Indem die Eigenschaften der mit dem FPGA-Baustein verbundenen Vorrichtungen berücksichtigt werden, kann die Schnittstellen-Aktivität des FPGA in guter Näherung ermittelt werden. Beim Vorliegen einer Zwischenschicht bzw. eines Transformationsanteils werden die Änderungsraten zwischen Schnittstellen-Pin und zugeordnetem Logikelement, insbesondere Treiber, zweckmäßigerweise anhand der entsprechenden Abbildungsfunktionen umgerechnet. Dadurch, dass die ermittelte Schnittstellen-Aktivität bzw. die jeweilige Anzahl der Schnittstellen-Pins, die jeweilige Änderungsrate und die jeweilige Wechselwahrscheinlichkeit einem an sich bekannten Programm zur Schätzung der Leistungsaufnahme zugeführt werden, kann die Genauigkeit und die Zuverlässigkeit der Schätzung verbessert werden.
-
Die Abbildung der 3 zeigt eine schematische Darstellung einer Simulation eines Steuergeräts, die in einer mittleren Entwicklungsphase vorgenommen werden kann, bei der das Regler-Modell bereits erstellt ist, aber das Steuergerät noch nicht in Hardware vorliegt. Die gesamte Simulation findet in dem gezeigten Beispiel auf einem Simulationsrechner 100 statt, der beispielsweise als ein Standard-PC ausgestaltet sein kann.
-
In der Simulation werden ausgewählte Test-Daten 101, wie insbesondere ein Soll-Kurs eines Fahrzeugs, als Eingangsgrößen vorgegeben. Beim Test einer Fahrdynamikregelung kann der Soll-Kurs beispielsweise derart gewählt sein, dass eine sicherheitskritische Situation droht und somit ein Regeleingriff erfolgen soll. Die Test-Daten werden einer Automatisierungs-Software 102 zugeführt, welche die anderen Software-Komponenten ansteuert; dies ist in der Abbildung mit Pfeilen angedeutet, welche zu zwei weiteren Software-Komponenten führen. Prinzipiell kann die Automatisierungs-Software 102 eine, mehrere oder sämtliche ausgeführte Software-Komponenten ansteuern.
-
Die Test-Daten 101 bzw. abgeleitete Steuerungsinformationen werden im gezeigten Beispiel einem Umgebungsmodell 103 und einem Streckenmodell 104, insbesondere einem Fahrzeugmodell, zugeführt. Wenn eine Fahrdynamikregelung eine Notbremsfunktion anhand von Informationen eines oder mehrerer Umfeldsensoren umfasst, kann das Umgebungsmodell 103 beispielsweise simulierte Sensordaten umfassen. Das Streckenmodell 104 kann beispielsweise das Verhalten eines Kraftfahrzeugs beschreiben und auch eine Aktuatorsimulation umfassen. Insbesondere kann das Streckenmodell 104 auch eine Simulation von ein oder mehreren zusätzlichen Steuergeräten oder Mikroprozessoren umfassen, die mit dem Regler-Modell 20 bzw. dem FPGA-Baustein über einen Datenbus verbunden sind. Das Streckenmodell 104 empfängt insbesondere die Ausgangssignale des Regler-Modells 20 und kann Daten mit dem Umgebungsmodell 103 austauschen.
-
Das Regler-Modell 20 kann prinzipiell direkt anhand eines Blockdiagramms in einer technischen Rechenumgebung berechnet werden. Bevorzugt wird jedoch anhand des Regler-Modells 20 eine Konfiguration des FPGA erstellt und in einem virtuellen Steuergerät 105 ausgeführt. Für die Simulation kann es vorgesehen sein, dass die erstellte bzw. ausgewertete FPGA-Konfiguration nur den dem Regler-Modell 20 entsprechenden Modellanteil umfasst. Dies kann insbesondere davon abhängig gemacht werden, ob die Leistungsaufnahme eines RCP-Systems gefragt ist, wobei also der Transformationsanteil zu berücksichtigen ist, oder ob (wie weiter unten beschrieben) Stimuli an den virtuellen Schnittstellen-Pins bzw. Eingabe-Ausgabe-Blöcken 13, 43, 33 des Modellanteils gefragt sind.
-
Die Ausgangsdaten von Umgebungsmodell 103, Fahrzeugmodell 104 und virtuellem Steuergerät 105 werden einer Erfassungs-Komponente 106 zugeführt. Diese protokolliert insbesondere den zeitlichen Verlauf der an den Schnittstellen-Pins 11, 41, 31 anliegenden Signale. Die protokollierten Signale 107 stellen die Ausgangsdaten dar, welche insbesondere für eine genauere Abschätzung der Leistungsaufnahme ausgewertet werden können. Wie oben erläutert, können die Signale prinzipiell an den Registern 12, 42, 32 der FPGA-Konfiguration oder den entsprechenden Eingabe-Ausgabe-Blöcken 13, 43, 33 abgegriffen bzw. erfasst werden. Über die Abbildungsfunktionen α, β und/oder γ können daraus die an den entsprechenden Schnittstellen-Pins 11, 41, 31 des FPGA-Bausteins 2 anliegenden Signale bestimmt werden. Somit kann anhand einer Simulation des betrachteten Prozesses ein repräsentativer Satz von Ein- und Ausgangssignalen erfasst werden, welche eine deutlich genauere Ermittlung der Leistungsaufnahme des FPGA ermöglicht.
-
In einer mittleren Entwicklungsphase kann mit einem zweiten Verfahren die Schnittstellen-Aktivität anhand der Eigenschaften der protokollierten Signale ermittelt werden.
-
Zu diesem Zweck werden die protokollierten Signale in Bezug auf Änderungsrate und Wechselwahrscheinlichkeit ausgewertet. Man erhält eine erste Änderungsrate für die ersten Schnittstellen-Pins 11, welche vorzugsweise mit einem Echtzeitrechner verbunden sind, sowie eine zweite Änderungsrate für die zweiten Schnittstellen-Pins 41, welche mit einer Signalquelle verbunden sind, und/oder eine dritte Änderungsrate für die dritten Schnittstellen-Pins 31, welche mit einem Signalempfänger, wie z.B. einer Ansteuerschaltung für einen Aktuator verbunden sind.
-
Je nach Fragestellung kann hierbei auch vorgesehen sein, die Auswertung zu variieren. So kann eine Änderungsrate jeweils als Mittelwert über die gesamte Dauer des simulierten Prozesses ermittelt werden, oder es kann eine Aufteilung in einzelne Zeitabschnitte erfolgen, für die jeweils eine Änderungsrate ermittelt wird. Hierbei kann es vorgesehen sein, aus einem Vergleich der Abschnitte (bzw. der jeweiligen Daten) eine Worst-Case-Änderungsrate zu ermitteln, die somit die schnellste real vorkommende Änderungsrate beschreibt. Ferner kann eine Änderungsrate für jeden Schnittstellen-Pin einzeln oder gemittelt über alle ersten Schnittstellen-Pins, alle zweiten Schnittstellen-Pins oder alle dritten Schnittstellen-Pins ermittelt werden.
-
Durch die Auswertung der während der Simulation eines typischen Prozessverlaufs auftretenden Signale können die Signaleigenschaften und somit die Schnittstellen-Aktivität des FPGA-Bausteins genau ermittelt werden. Indem die ermittelte Schnittstellen-Aktivität bzw. die jeweilige Anzahl der Schnittstellen-Pins, die jeweilige Änderungsrate und die jeweilige Wechselwahrscheinlichkeit einem an sich bekannten Programm zur Schätzung der Leistungsaufnahme zugeführt werden, kann die Genauigkeit und die Zuverlässigkeit der Schätzung deutlich verbessert werden.
-
In der Abbildung der 4 ist ein schematisches Diagramm einer bevorzugten Ausführungsform eines erfindungsgemäßen Verfahrens dargestellt. Mit diesem dritten Verfahren kann die Schnittstellen-Aktivität anhand der Eigenschaften der protokollierten Signale noch genauer ermittelt werden, indem eine Simulation des internen Schaltzustands aller Logikelemente des programmierbaren Logikbausteins erfolgt.
-
Eingangsdaten sind hierbei zum einen die während einer Simulation eines typischen Prozessverlaufs, wie z.B. eines vorgegebenen Fahrmanövers, protokollierten Daten 107, die somit den zeitlichen Verlauf der einzelnen Schnittstellen-Pins 11, 41, 31 bzw. den entsprechenden Logikelementen 13, 43, 33 des FPGA angeben und als Stimuli genutzt werden können.
-
Zum anderen umfassen die Eingangsdaten die konkrete FPGA-Konfiguration 120, welche anhand des Regler-Modells 20 und gegebenenfalls optional des Transformationsanteils erstellt wurde. Diese kann insbesondere als platzierte Netzliste vorliegen.
-
Die Eingangsdaten werden in Schritt 130 einem an sich bekannten Schaltkreissimulationsprogramm zugeführt, welches sämtliche internen Schaltzustände der einzelnen Logikelemente über den zeitlichen Verlauf bestimmt, und diese als Protokoll 140 des Umschaltverhaltens aller Gatter des FPGA-Bausteins 2 über den zeitlichen Verlauf ausgibt.
-
In Schritt 150 wird das Protokoll des Umschaltverhaltens 140 einem an sich bekannten Programm zur Schätzung der Leistungsaufnahme zugeführt. Als Ausgangsdaten 160 werden exakte Angaben zur Leistungsaufnahme ausgegeben, wobei insbesondere auch zeitliche Änderungen bzw. eine momentane Leistungsaufnahme ermittelt werden können. Hierbei kann eine Aufteilung in zeitliche Abschnitte und eine Auswahl zu betrachtender Bereiche anhand vorgegebenen Bedingungen erfolgen.
-
Somit kann beispielsweise im Vorfeld einer realen Testfahrt überprüft werden, ob das verwendete RCP-System das vorgegebene Regler-Modell 20 in dem gewünschten Fahrmanöver unter Beibehaltung zulässiger Betriebsbedingungen ausführen kann. Der beschriebene Ablauf kann insbesondere auch in eine Entwicklungsumgebung für ein Regler-Modell 20 integriert werden, so dass eine Warnung ausgegeben werden kann. Alternativ kann es auch vorgesehen sein, Änderungen an der FPGA-Konfiguration wie z.B. eine Anpassung der Taktfrequenz vorzuschlagen, um die Einhaltung zulässiger Betriebsbedingungen zu gewährleisten. Die rechtzeitige Warnung des Nutzers verhindert das Auftreten sicherheitskritischer Situationen im Testbetrieb.
-
Die Abbildung der 5 zeigt eine schematische Darstellung eines Hardware-in-the-Loop-Tests eines Steuergeräts, wie dieser in einer späteren Phase des Entwicklungsprozesses vorgenommen werden kann.
-
Die Test-Daten 101 werden einem Messrechner 108, insbesondere einem Standard-PC zugeführt. Der Messrechner 108 ist mit Echtzeitrechner 109 und Steuergerät 110 über einen Datenbus oder eine Netzwerk-Schnittstelle verbunden und tauscht mit diesen Daten aus. Auf dem Messrechner 108 werden eine Automatisierungs-Software 102, welche insbesondere die auf dem Echtzeitrechner 109 ausgeführten Programme ansteuert, und eine Erfassungs-Komponente 106 ausgeführt, welche insbesondere die Daten protokolliert, welche an das Steuergerät 110 gesendet werden oder von diesem ausgegeben werden.
-
Echtzeitrechner 109 dient zur Simulation der Regelstrecke bzw. des zu regelnden Prozesses. In dem gezeigten Beispiel werden ein Umgebungsmodell 103 und ein Fahrzeugmodell 104 auf dem Echtzeitrechner ausgeführt.
-
Das Steuergerät 110 weist einen FPGA auf, dessen Konfiguration das Regler-Modell 20 umfasst. Der Echtzeitrechner ist zumindest indirekt mit den Schnittstellen-Pins des FPGA verbunden. Die ersten Schnittstellen-Pins können alternativ mit einem auf dem Steuergerät angeordneten Mikrocontroller verbunden sein. Bei dem Steuergerät 110 kann es sich auch um ein RCP-System handeln.
-
Anhand der Test-Daten 101 steuert die Automatisierungs-Software 102 Umgebungsmodell 103 und Fahrzeugmodell 104 derart an, dass diese den gewünschten Prozess bzw. ein gewünschtes Fahrmanöver simulieren und die entsprechenden Signale dem Steuergerät 110 zuführen. Die empfangenen und ausgegebenen Signale des Steuergeräts 110 werden von der Erfassungs-Komponente 106 protokolliert und als Ausgabedaten 107 bereitgestellt.
-
Die protokollierten Signale des Hardware-in-the-Loop-Tests können für eine Abschätzung der Leistungsaufnahme nach dem oben beschriebenen dritten Verfahren verwendet werden. Prinzipiell ist es für die Abschätzung der Leistungsaufnahme auch möglich, Kombinationen von Online- und Offline-Simulationen heranzuziehen, wobei also mache Teile des Gesamtsystems real vorliegen und andere Teile des Gesamtsystem rein virtuell vorliegen und nur simuliert werden.
-
In einer noch späteren Phase der Entwicklung kann es auch vorgesehen sein, die Signale während einer vorzugsweise mit einem RCP-System durchgeführten Messung des realen Prozesses, insbesondere einer Testfahrt, zu protokollieren. Hierbei werden also Messrechner und Steuergerät mit der realen Strecke bzw. physikalisch vorhandenen Aktoren und Sensoren verbunden und diese entsprechend dem gewünschten Testfall betrieben. Die Strecke kann hierbei auch ein oder mehrere weitere Steuergeräte umfassen, welche über mindestens einen Datenbus mit dem betrachteten Steuergerät verbunden sind. Die im Rahmen einer Testfahrt protokollierten Daten bzw. Signale geben die reale Schnittstellenaktivität noch genauer wieder und können als Stimuli für die Auslegung eines Seriensteuergeräts verwendet werden, wobei vorzugsweise anhand der bekannten Abbildungsfunktionen eine Transformation auf die virtuellen Schnittstellen-Pins des Regler-Modells erfolgt.
-
Zur Erfassung der mit einer Recheneinheit ausgetauschten Daten kann es vorgesehen sein, auf dieser Recheneinheit einen speziellen Treiber zu installieren, der eine Kopie sämtlicher Daten an den Messrechner weiterleitet. Alternativ oder ergänzend kann auch eine Konfiguration des programmierbaren Logikbausteins erstellt werden, die einen oder mehrere auf dem Baustein angeordnete Logikanalysatoren umfasst. Auch die von einer Signalquelle empfangenen oder an einen Signalempfänger gesendeten Daten können mittels eines oder mehrerer auf dem programmierbaren Logikbaustein angeordneten Logikanalysatoren erfasst werden.
-
Prinzipiell können die für die Auslegung eines Seriensteuergeräts verwendeten Stimuli auch anhand einer offline-Simulation erfasst werden, wobei vorzugsweise die Konfiguration nur den Modellanteil umfasst, und ein eventueller Transformationsanteil, der im Seriensteuergerät nicht mehr oder nur in geänderter Form vorhanden wäre, nicht berücksichtigt wird. Somit werden die Stimuli an den virtuellen Schnittstellen-Pins des Regler-Modells erfasst.
-
In einem besonders bevorzugten Verfahren zum Entwurf eines Seriensteuergeräts wird also zweckmäßigerweise mittels einer graphischen Oberfläche wie einem Blockdiagramm ein Regler-Modell erstellt, welches ein gewünschtes Verhalten eines Reglers bzw. eines Steuergeräts beschreibt. Anhand des Blockdiagramms kann vorteilhafterweise eine Konfiguration eines programmierbaren Logikbausteins erstellt werden, welche insbesondere mit Hilfe eines RCP-Systems einem Hardware-in-the-Loop Test oder einer realen Testfahrt überprüft werden kann, wobei die ausgetauschten Daten bzw. Signale protokolliert und als Stimuli ausgegeben werden.
-
Sobald ein bestimmter FPGA-Baustein gewählt wurde, können die Stimuli für die Ermittlung einer benötigten Stromversorgung und/oder einer erforderlichen Kühlleistung eingesetzt werden, indem die Stimuli einem Programm zur Abschätzung der Leistungsaufnahme der Zieltechnologie zugeführt werden. Die Zieltechnologie kann hierbei einen FPGA derselben oder einer anderen Produkt-Linie desselben oder eines anderen Herstellers oder eine kundenspezifischen Baustein (ASIC) einer gewählten Halbleitertechnologie umfassen.
-
Dieses Vorgehen ermöglicht eine Übertragung der Leistungsabschätzung auf das Seriensteuergerät. Ein Hersteller von Steuergeräten kann somit in einem integrierten Entwurfsprozess bereits frühzeitig absichern, dass der Regler im realen Prozess nur eine bestimmte Leistung aufnehmen wird. Hierbei kann es auch vorgesehen sein, die Stimuli abschnittsweise zu betrachten und insbesondere Daten zusätzlicher Sensoren (wie z.B. eines Temperatursensors) zu berücksichtigen. Auch kann es vorgesehen sein, besonders energiehungrige Teile eines implementierten Regler-Modells zu ermitteln, so dass eine gezielte Optimierung dieser Teile möglich wird. Insbesondere kann dies eine Markierung bestimmter Bereiche eines Blockdiagramms oder einer grafischen Darstellung einer FPGA-Konfiguration umfassen.
-
Die Erfindung erleichtert die Ermittlung der zu erwartenden Leistungsaufnahme eines Steuergeräts in verschiedenen Phasen der Entwicklung. Somit werden Kosten und Umweltbelastungen durch eine unnötig großzügige Auslegung von FPGA-Baustein/ASIC, Stromversorgung und/oder Kühlung vermieden.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
- US 7810058 B1 [0006]
- US 8146035 B1 [0007]
-
Zitierte Nicht-Patentliteratur
-
- Artikel „Dynamic Power Consumption in VirtexTM-II FPGA Family“, von Li Shang et al., Proceedings of the ACM International Symposium on Field-Programmable Gate Arrays 2002, pp.157–164 [0005]