Beeinflussungsgerät für Steuergeräte
Die Erfindung betrifft ein Beeinflussungsgerät zur Beeinflussung mindestens eines Steuergeräts mit mindestens einem Steuergerät-Microcontroller und mit mindestens einer Steuergerät-Debug-Schnittstelle, wobei das Beeinflussungsgerät zumindest eine programmierbare Einheit, wenigstens eine Datenübertragungs-Schnittstelle zur Verbindung des Beeinflussungsgeräts mit einer Bedieneinheit und mindestens eine Beeinflussungsgerät-Debug- Schnittstelle zur Verbindung des Beeinflussungsgeräts mit der Steuergerät-Debug-Schnittstelle des Steuergeräts umfaßt.
Beeinflussungsgeräte der oben beschriebenen Art sind aus der Praxis bekannt und finden vor allem in der angewandten Forschung und der industriellen Entwicklung überall dort ihren Einsatz, wo Steuergeräte entwickelt und zum Einsatz gebracht werden sollen.
Unter einem Steuergerät wird im folgenden jegliche Art von elektronischen Geräten verstanden, mit deren Hilfe technisch-physikalische Prozesse beeinflußt werden. Üblicherweise umfaßt ein solches Steuergerät zumindest eine Recheneinheit, z. B. in Form eines Prozessors oder Microcontrollers, Speicher sowie Eingabe-/Ausgabeschnittstellen (I/O-Schnittstellen), um Berechnungen in Abhängigkeit von intern gespeicherten Parametern bzw. internen Rechengrößen und/oder von gemessenen - jedenfalls von extern bereitgestellten - Größen durchfuhren zu können und um gleichermaßen durch Ausgabe von elektrischen Signalen auf externe Vorgänge einwirken zu können. Steuergeräte wirken damit im regelungstechnischen Sinne nicht einfach nur als Steuerungen, sondern sie sind insbesondere auch dazu geeignet, komplexe Regelungsaufgaben zu lösen. Wenn im folgenden von Steuergeräten, Steuerungen und dem Vorgang des Steuerns die Rede ist, sind stets auch Vorrichtungen und Tätigkeiten nach der oben angegebenen allgemeineren Definition umfaßt.
Weiterhin ist im folgenden stets von verschiedenen Microcontrollern die Rede. Darunter werden elektronische Rechnereinheiten mit zugeordnetem elektronischen Speicher verstanden, unabhängig davon, ob der Speicher vollstän- dig oder teilweise in einem Bauteil mit der Rechnereinheit realisiert ist, oder
ob Rechnereinheit und zugeordneter Speicher als voneinander getrennte Bauteile vorliegen.
Der Einsatz von Beeinflussungsgeräten wird durch die nachfolgende Darstel- lung des Entwicklungsprozesses deutlich, den Steuergeräte - zumindest im Rahmen umfangreicherer Aufgabenstellungen - in der Praxis durchlaufen.
Am Anfang einer regelungstechnischen Aufgabenstellung steht zunächst die mathematische Modellierung und Simulation eines technisch-physikalischen Prozesses, dem ein wunschgemäßes dynamisches Verhalten aufgeprägt werden soll. Anhand des resultierenden abstrakten mathematischen Modells lassen sich verschiedene Regelungskonzepte, die ebenfalls ausschließlich als mathematische Modellvorstellung vorliegen, im Rahmen numerischer Simulationen erproben; dieser Schritt stellt die Phase der Modellierung und des Reglerentwurfes meist auf Basis computergestützter Modellierungswerkzeuge dar.
In einem zweiten Schritt wird der im mathematischen Modell entworfene Regler auf eine echtzeitfähige Simulations-Einheit übertragen, die meist so- wohl in ihrer Rechenleistung wie auch hinsichtlich ihrer I/O-Fähigkeiten ein übliches Serien-Steuergerät bei weitem übertrifft und mit dem echten physikalischen Prozeß wechselwirkend in Verbindung steht. Da die Übertragung des abstrakt formulierten Reglers von einem Modellierungswerkzeug auf die Simulations-Einheit weitestgehend automatisiert erfolgt, wird in der zweiten Phase von Rapid-Control-Prototyping (RCP) oder Funktions-Prototyping gesprochen.
Ist das regelungstechnische Problem mit dem auf der Simulations-Einheit betriebenen Regler gelöst, wird der Regelungsalgorithmus im Rahmen der Steu- ergeräte-Implementierung - meist voll automatisiert - auf das letztendlich in der Praxis einzusetzende (Serien-) Steuergerät übertragen.
Das nun im realen Prozeß grundsätzlich einsetzbare Steuergerät wird vor seinem Einsatz häufig zunächst einem Test unterzogen, indem der reale Prozeß, mit dem das Steuergerät letztendlich Wechselwirken soll, teilweise oder vollständig durch eine echtzeitfähige Simulations-Einheit simuliert und das Steu-
ergerät durch Signal-Testmuster stimuliert wird (Hardware-in-the-Loop-Simu- lation). Das derart getestete Steuergerät wird letztendlich in den realen Prozeß eingesetzt und mit ihm wechselwirkend betrieben.
Trotz der zuvor durchgeführten umfangreichen Tests ist es meist notwendig, Abstimmungen am Steuergerät bzw. an den im Steuergerät implementierten Funktionen vorzunehmen. Dazu ist es zum einen notwendig, den Zustand des Steuergeräts, also alle vom Steuergerät ein- bzw. ausgegebenen wie auch intern verwendeten Daten per Daten- Akquisition zeitnah beobachten, aufzeich- nen und analysieren zu können. Zum anderen ist es notwendig, durch schreibenden Zugriff auf den Speicher des Steuergeräts die den Funktio- nen/Regelungsalgorithmen zu Grunde liegenden Parameter bzw. Parametersätze, also Kennzahlen, -linien oder -felder, verändern zu können. Die beschriebenen Vorgänge werden insgesamt als Steuergeräte- Applikationen be- zeichnet.
Sollen nicht nur Parameter von Funktionen des Steuergeräts, also im Speicher des Steuergeräts abgelegte Daten, sondern die im Steuergerät implementierten Funktionen selbst testweise verändert werden, kommt das sogenannte Funkti- ons-Bypassing zum Einsatz, bei dem das Steuergerät einer echtzeitfähigen Simulations-Einheit den Aufruf einer Steuergeräte-Funktion signalisiert, das Steuergerät selbst die Funktion jedoch nicht ausführt, sondern lediglich das Ergebnis der auf der Simulations-Einheit ersatzweise berechneten Funktion entgegennimmt und weiterverwendet; es findet also ein Bypass der Steuerge- räte-Funktion statt.
In beiden geschilderten Szenarien - der Steuergeräte-Applikation und dem Funktions-Bypassing - ist es notwendig, einen besonderen Zugang zum Steuergerät zu schaffen, über den eine Beobachtung und aktive Beeinflussung des Steuergeräts möglich ist. Dies ist die Aufgabe von Beeinflussungsgeräten im Sinne der hier in Rede stehenden Erfindung.
Aus der Praxis sind im wesentlichen zwei Methoden bekannt, über die Beeinflussungsgeräte Zugang zu Steuergeräten erlangen.
Bei Nutzung einer parallelen Schnittstelle sind üblicherweise Eingriffe in die Hardware des Steuergeräts notwendig, da das Beeinflussungsgerät in diesem Fall wie ein Speicher-Emulator arbeitet und beispielsweise über einen Adapter, der an die Stelle eines Speicherbausteins des Steuergeräts tritt oder von einem extra dafür vorgesehenen Steckplatz auf der Platine des Steuergeräts aufgenommen wird und auf den Adreß- und Datenbus des Steuergerät- Microcontrollers zugreift (dSPACE Produktkatalog 2004, S. 292-293). Das Beeinflussungsgerät selbst enthält dabei als zentrales Element einen zweiseitig zugreifbaren Speicher (Dual-Port-Memory, DPMEM) und eine Datenübertra- gungs- Schnittstelle, über die das Beeinflussungsgerät mit einer Bedieneinheit verbunden ist. Der zweiseitig zugreifbare Speicher kann nun seitens der Bedieneinheit von einem Applikateur gelesen und beschrieben werden, wobei die in den zweiseitig zugreifbaren Speicher des Beeinflussungsgeräts abgelegten Daten automatisch von dem Steuergerät-Microcontroller gelesen wer- den können, da sich der zweiseitig zugreifbare Speicher durch die Ankopp- lung an den Daten- und Adreßbus des Steuergerät-Microcontrollers im Adreß- raum des Microcontrollers befindet.
Allerdings werden in der Praxis nicht nur die beschriebenen Veränderungen an der Hardware sondern auch Modifikationen an bzw. Ergänzungen zu dem auf dem Steuergerät ablaufenden Steuergeräte-Programm vorgenommenen. Dies ist beispielsweise deshalb notwendig, um auch interne, im integrierten Speicher des Steuergerät-Microcontrollers abgelegte Daten beobachtbar und veränderbar zu machen. Dazu werden zusätzliche Softwaredienste im Steuer- gerät implementiert, die interne Daten des Steuergerät-Microcontrollers in einen Speicherbereich des Microcontrollers kopieren, der innerhalb des über den externen Adreß- und Datenbus erreichbaren Adreßraum des Steuergerät- Microcontrollers liegt. Umgekehrt gibt es ebenfalls Softwaredienste, die Daten aus dem über den externen Adreß- und Datenbus erreichbaren Adreßraum des Steuergerät-Microcontrollers in den internen Speicherbereich des Steuergerät-Microcontrollers kopieren.
Für das Übertragen der Daten werden deshalb im Adreßraum des Steuergerät- Microcontrollers eine Adreßliste und eine Datenliste vorgesehen, wobei die Adreßliste jene Adressen im Adreßraum des Steuergerät-Microcontrollers beinhaltet, deren Daten entweder gelesen und an einen Platz innerhalb der
Datenliste abgelegt werden sollen, oder wobei die Adreßliste jene Adressen im Adreßraum des Steuergerät-Microcontrollers beinhaltet deren Inhalte mit entsprechenden Daten aus der Datenliste beschrieben werden sollen.
Das oben beschriebene Verfahren ist u. a. deshalb nachteilig, weil die Adreß- und Datenlisten sowie die Softwaredienste zusätzlichen Speicherplatz innerhalb des Steuergeräts belegen und die Ausführung der Softwaredienste Rechenleistung des Steuergerät-Microcontrollers bindet, die für die ausschließliche Ausführung der Steuerungsfunktionen des Steuergeräts nicht benötigt wird. Das Verhalten des Steuergeräts bei der Steuergeräte- Applikation kann deshalb unter Umständen kaum noch mit dem Verhalten vergleichbar sein, das das Steuergerät ohne die zusätzliche Ausführung der der Applikation dienenden Softwaredienste zeigen würde.
Eine weitere aus der Praxis bekannte Methode des Zugriffs eines Beeinflussungsgerätes auf ein Steuergerät besteht in der Nutzung von seriellen Schnittstellen (siehe z. B. dSPACE Produktkatalog 2004, S. 84-85), mit denen moderne Steuergeräte üblicherweise ausgestattet sind. Hier ist ein Eingriff in die Hardware des Steuergeräts gegenüber der Nutzung einer parallelen Schnitt- stelle, nicht mehr erforderlich. Allerdings muß das Steuergerät mit zusätzlichen Softwarediensten ausgestattet werden, um einen Datenaustausch über die serielle Schnittstelle z. B. mit einem Beeinflussungsgerät, vornehmen zu können. Von Beeinflussungsgeräten dieser Art geht die vorliegende Erfindung aus.
Die oben beschriebenen - beim Verfahren unter Nutzung einer parallelen Schnittstelle verwendeten - Adreß- und Datenlisten wie auch die Softwaredienste zum kopieren von Daten aus den und in die Datenlisten werden auch beim seriellen Verfahren verwendet, so daß sich insgesamt eine höhere Bela- stung des Steuergerät-Microcontrollers wie auch ein höherer Speicheraufwand auf dem Steuergerät auf Grund der größeren Anzahl von Softwarediensten ergibt.
Moderne Steuergeräte werden zunehmend mit Microcontrollern ausgestattet, die eine Debug-Schnittstelle aufweisen, wie z. B. NEXUS (IEEE-ISTO 5001 :
"The NEXUS 5001 Forum Standard for a Global Embedded Processor Debug Interface", 2003).
Debug-Schnittstellen bieten weitreichende Möglichkeiten der Beobachtung und Beeinflussung von Zuständen des Microcontrollers und sie ermöglichen eine Laufzeit-Beobachtung und -Kontrolle (Debugging) des Microcontrollers, insbesondere also die Verfolgung der Programmcode- Ausführung und der dabei zugegriffen und veränderten Daten. Dadurch, daß Debug-Schnittstellen integraler Teil der Microcontroller-Hardware sind, lassen sich mit ihnen deut- lieh schnellere Zugriffe auf den Microcontroller realisieren, als es durch eine softwarebasierte Kommunikations-Schnittstelle möglich ist.
Der Anmelderin ist aus der Praxis bekannt, zur Applikation eines Steuergeräts mit einer Steuergerät-Debug-Schnittstelle ein Beeinflussungsgerät zu verwen- den, das zur Beeinflussung des Steuergeräts die Steuergerät-Debug-Schnitt- stelle nutzt, wobei jedoch weiterhin im Speicher des Steuergeräts Adreß- und Datenlisten angelegt und die oben beschriebenen Softwaredienste zum kopieren von Daten in die und aus den Datenlisten verwendet werden.
Durch Verwendung der im Speicher des Steuergerät-Microcontrollers lokalisierten Adreß- und Datenlisten und entsprechender Softwaredienste zum kopieren und versenden von Daten in die bzw. aus den Listen wird jedoch auch bei dieser Lösung der Steuergerat-Microcontroller erheblich belastet.
Der oben beschriebenen Einsatz von Softwarediensten auf dem Steuergerät führt insbesondere auch dazu, daß es praktisch kaum möglich ist, an dem Steuergerät gleichzeitig sowohl eine Steuergerät-Applikation als auch ein Funktions-Bypassing vorzunehmen, da die auf Softwarediensten basierende Datenkommunikation schnell zu einer starken Belastung des Steuergerät- Microcontrollers und damit zu unakzeptablen Antwortzeiten bei der Datenübertragung zwischen Beeinflussungsgerät und Steuergerät führt. Aus diesem Grund sind in der Praxis auch nur Beeinflussungsgeräte bekannt, mit denen entweder die Applikation von Steuergeräten oder aber ein Funktions- Bypassing mit dem Steuergerät betrieben werden kann, nicht jedoch beides gleichzeitig.
Ein weiterer Nachteil bei Verwendung von Softwarediensten auf dem Steuergerät ist, daß die Softwaredienste zunächst auf dem Steuergerät implementiert werden müssen, was zumeist eine intensive Zusammenarbeit mit dem und damit eine enge Bindung an den Steuergerät-Hersteller notwendig macht. Dies wird in der industriellen Entwicklung immer weniger akzeptiert.
Aufgabe der Erfindung ist es daher, ein Beeinflussungsgerät zur Beeinflussung eines Steuergeräts derart auszugestalten, daß das Steuergerät durch die Steuergerät- Applikation weniger belastet wird, als dies bei Nutzung bekannter Beeinflussungsgeräte der Fall ist.
Die zuvor hergeleitete und aufgezeigte Aufgabe ist erfindungsgemäß im wesentlichen dadurch gelöst, daß das Beeinflussungsgerät mindestens einen Speicher für mindestens eine Adreßliste und mindestens eine Datenliste um- faßt, wobei die in der Adreßliste gespeicherten Adressen Speicherorte im Adreßraum des Steuergerät-Microcontrollers bezeichnen und wobei unter Nutzung der Beeinflussungsgerät-Debug-Schnitts elle Daten aus den durch die Inhalte der Adreßliste bestimmten Speicherorten im Adreßraum des Steuergerät-Microcontrollers lesbar und in der Datenliste des Beeinflussungsgerats ablegbar sind und/oder die in der Datenliste des Beeinflussungsgeräts abgelegten Daten an den durch die Inhalte der Adreßliste bestimmten Speicherorten im Adreßraum des Steuergerät-Microcontrollers ablegbar sind.
Das erfϊndungsgemäße Beemflussungsgerat kann zumindest über zwei Schnittstellen, nämlich eine Datenübertragungs-Schnittstelle und eine Beein- flussungsgerät-Debug-Schnittstelle Daten austauschen.
Der Datenaustausch mit dem zu beeinflussenden Steuergerät wird dabei über die Steuergerät-Debug-Schnittstelle vollzogen, die im Sinne der hier in Rede stehenden Erfindung zumindest teilweise die Funktionalität realisiert, um über einen geeigneten Befehlssatz der Schnittstelle automatisch den Zustand des Steuergerät-Microcontrollers und z. T. sogar der ihm im Steuergerät zugeordneten Einheiten, wie z. B. seines externen Speichers, auslesen und aktiv beeinflussen zu können.
Steuergerät-Debug-Schnittstellen zeichnen sich also durch die oben beschriebenen Eigenschaften aus und unter dieser Bezeichnung werden hier folglich auch solche Schnittstellen verstanden, die zwar nicht in erster Linie als "Debug-Schnittstellen" vorgesehen sind und deshalb nicht explizit als solche be- zeichnet werden, die jedoch die entsprechenden Beobachtungs- und Beeinflussungsmöglichkeiten bezüglich des Steuergerät-Microcontrollers und der ihm zugeordneten elektronischen Einheiten bieten.
Durch Verwendung solcher Schnittstellen ist es also bei Verwendung des er- findungsgemäßen Beeinflussungsgeräts möglich, weitestgehend auf auf dem Steuergerät eingesetzte Softwaredienste zu verzichten, die die beschriebene Funktionalität der Steuergerät-Debug-Schnittstellen umsetzen.
Die Datenübertragungs-Schnittstelle dient zum Datenaustausch zwischen dem Beeinflussungsgerät und einer Bedieneinheit, die im Regelfall die von einem menschlichen Benutzer - dem Applikateur - verwendete Schnittstelle darstellt. Üblicherweise ist die Bedieneinheit ein eigenständiger Rechner, auf dem Applikations-Software betrieben wird, also Programme zur Datenerfassung, -Visualisierung und -analyse sowie Programme zur benutzerfreundlichen Eingabe und Verwaltung von Parametersätzen, die auf dem Steuergerät zu erproben sind, mit dem die Bedieneinheit über das Beeinflussungsgerät verbunden ist.
Die Existenz der Datenübertragungs-Schnittstelle impliziert nicht, daß es sich bei dem erfindungsgemäßen Beeinflussungsgerät und der Bedieneinheit um zwei verschiedene, voneinander getrennte gerätetechnische Einheiten handelt. Üblicherweise werden Beeinflussungsgeräte von ihren Abmessungen her möglichst klein und von der Bedieneinheit getrennt ausgeführt, da sie beispielsweise innerhalb eines Kraftfahrzeugs montiert werden, jedoch ist durch- aus vorstellbar, daß das erfindungsgemäße Beeinflussungsgerät und die Bedieneinheit in einer gerätetechnischen Einheit realisiert sind.
Das erfindungsgemäße Beeinflussungsgerät umfaßt außerdem wenigstens eine programmierbare Einheit, die beispielsweise den internen Datenfluß von der Datenübertragungs-Schnittstelle zu der Beeinflussungsgerät-Debug-Schnitt- stelle und umgekehrt steuert.
Das erfindungsgemäße Beeinflussungsgerät verfügt weiterhin über einen Speicher, in dem wenigstens eine Adreßliste und wenigstens eine Datenliste abgelegt sind, also jene Listen, die bei Verwendung bekannter Beeinflus- sungsgeräte auf dem Steuergerät gespeichert und verwaltet werden.
Die in der Adreßliste gespeicherten Daten bezeichnen dabei Speicherorte im Adreßraum des Steuergerät-Microcontrollers, wobei es entweder möglich ist, die an den referenzierten Speicherorten abgelegten Daten aus dem Steuergerät zu lesen und an entsprechenden Stellen in einer Datenliste des Beeinflussungsgeräts abzulegen (Datenakquisition), oder aber die in einer Datenliste des Beeinflussungsgeräts enthaltenen Daten an entsprechende Speicherorte im Steuergerät zu schreiben, die durch der Inhalte der Adreßlisten des Beeinflussungsgeräts vorgegeben sind (Parametrierung).
Die Datenlisten werden folglich nicht nur bei der Interaktion zwischen Beeinflussungsgerät und Steuergerät verwendet, sondern auch beim Zusammenwirken von Beeinflussungsgerät und Bedieneinheit, denn die durch die Bedieneinheit vorgegebenen Datensätze werden in die Datenlisten geschrieben, um von dort aus weiter in das Steuergerät übertragen zu werden, genauso wie Datensätze von gemessenen Zustandsgrößen des Steuergeräts zunächst in den Datenliste abgelegt werden, um von dort aus automatisch weiter zur Bedieneinheit übertragen zu werden.
Aufgrund der erfindungsgemäßen Ausgestaltung des Beeinflussungsgeräts, insbesondere aufgrund der Speicherung der Adreß- und Datenliste im Speicher des Beeinflussungsgeräts, muß das mit dem Beeinflussungsgerät in Verbindung stehende Steuergerät nicht mehr durch Modifikation der Steuergeräte-Software angepaßt werden, was den Entwicklungsprozeß des Steuergeräts wesentlich vereinfacht, da die Notwendigkeit entfällt, Software-Dienste sowie Adreß- und Datenlisten in Zusammenarbeit mit dem Steuergeräte-Hersteller in das Steuergerät zu integrieren, was mit jedem sich neu ergebenden Softwarestand erforderlich ist.
Neben diesem, den Entwicklungsprozeß betreffenden Vorteil, besteht ein weiterer technischer Vorteil des erfindungsgemäßen Beeinflussungsgeräts
darin, daß der Ablauf des Steuerungsprogramms auf dem Steuergerät durch den Zugriff über die Steuergerät-Debug-Schnittstelle deutlich weniger beeinflußt wird, als es bei Verwendung von Software-Diensten auf dem Steuergerät der Fall ist, da diese zusätzlich von dem Steuergerät-Microcontroller ausge- führt werden müssen, wohingegen die Funktionalität von Steuergerät-Debug- Schnittstellen größtenteils rein schaltungstechnisch implementiert ist und so der parallele Betrieb der Steuergerät-Debug- Schnittstelle zum Steuergerät- Microcontroller möglich ist. Selbstverständlich sind geringfügige Beeinflussungen des Steuergerät-Microcontrollers durch die Steuergerät-Debug- Schnittstelle möglich, beispielsweise dann, wenn die Steuergerät-Debug- Schnittstelle auf eine Ressource des Steuergerät-Microcontrollers zugreift, die dieser zeitgleich verwenden möchte.
Eine besonders vorteilhafte Ausgestaltung des erfindungsgemäßen Beeinflus- sungsgeräts ergibt sich insbesondere dann, wenn die programmierbare Einheit des Beeinflussungsgeräts ein programmierbarer Logikbaustein ist. Wenn darüber hinaus zusätzlich die Beeinflussungsgerät-Debug-Schnittstelle mit Hilfe der programmierbaren Einheit - nun also in Form eines programmierbaren Logikbausteins - realisiert ist, ergeben sich erhebliche Vorteile beispielsweise gegenüber der Implementierung der Steuergerät-Debug-Schnittstelle mit einem Microcontroller. Dies ist darin begründet, daß ein Microcontroller üblicherweise Anweisungen nur sequentiell bearbeiten kann, wohingegen programmierbare Logikbausteine mehrere Funktionen auch parallel ausfuhren können. Besonders bevorzugt wird bei dem erfindungsgemäßen Beeinflus- sungsgerät als programmierbarer Logikbaustein ein Field Programmable Gate Array (FPGA) verwendet.
Mit einem derart ausgebildeten Beeinflussungsgerät lassen sich über die Beeinflussungsgerät- und die Steuergerät-Debug-Schnittstelle Übertragungsraten erzielen, die unter Umständen um ein Vielfaches über denjenigen liegen, die mit den bekannten Softwarediensten für die Kommunikation auf einem Steuergerät erzielbar sind.
Ganz allgemein hat es sich für das erfindungsgemäße Beeinflussungsgerät als vorteilhaft herausgestellt, wenn auch über die beschriebene Grundfunktionalität hinausgehende Eigenschaften an einem Ort zentral durch die program-
mierbare Einheit implementiert werden. Aus diesem Grund wird bevorzugt auch der Speicher für die Adreß- und Datenlisten als Teil der programmierbaren Einheit vorgesehen, wodurch sich sehr kurze Zugriffszeiten auf die Listen ergeben, insbesondere dann, wenn häufig verwendete Funktionalitäten eben- falls durch die programmierbare Einheit vorgenommen werden.
Ganz wesentlich betrifft dies z. B. eine Listen- Applikations-Einheit als Bestandteil der programmierbaren Einheit, die nach ihrer Aktivierung selbständig vollständige Datenlisten bzw. deren Inhalte von dem Beeinflussungsgerät in Speicherorten im Adreßraum des Steuergerät-Microcontrollers ablegt, die durch die Daten in den entsprechenden Adreßlisten vorgegeben sind. Umgekehrt dient die Listen- Applikations-Einheit auch dazu, die Datenlisten des Beeinflussungsgeräts mit Daten zu beschreiben, die aus den Speicherorten im Adreßraum des Steuergerät-Microcontrollers gelesen werden, wobei die Spei- cherorte durch die Daten in entsprechenden Adreßlisten bestimmt sind.
Durch die beschriebene Ausgestaltung des erfindungsgemäßen Beeinflussungsgeräts wird das Steuergerät bzw. der Steuergerät-Microcontroller erheblich entlastet, und es können weitaus höhere Übertragungsraten zwischen Be- einflussungsgerät und Steuergerät erzielt werden. Dies ermöglicht es letztendlich auch, weitere Funktionen auf dem Beeinflussungsgerät zu realisieren, so daß sich für den Benutzer des Beeinflussungsgeräts verschiedene Entwicklungsprozesse mit dem Steuergerät scheinbar parallel ausführen lassen.
Besondere Bedeutung kommt in diesem Zusammenhang dem Merkmal zu, auf der programmierbaren Einheit des Beeinflussungsgeräts zusätzlich eine By- pass-Einheit vorzusehen, zusammen mit einem der Bypass-Einheit zugeordneten, ein- oder zweiseitig beschreibbaren Bypass- Speicher und einer Bypass- Schnittstelle zur Verbindung der Bypass-Einheit und des Bypass-Speichers mit einer externen Simulations-Einheit. Die Funktionsweise der Bypass- Einheit und der anderen ihr zugeordneten Elemente wird weiter unten ausführlicher erläutert.
Sobald mehr als eine funktioneile Einheit auf der programmierbaren Einheit des Beeinflussungsgeräts implementiert ist, ist die Gefahr eines Konflikts bei gleichzeitiger Ausführung der unterschiedlichen Einheiten gegeben. Durch ein
weiteres Merkmal, dem eine besondere Bedeutung zukommt, nämlich der Priorisier- und Arbitrier-Einheit, wird in einer bevorzugten Ausführungsform des erfindungsgemäßen Beeinflussungsgeräts eine Strategie zur Konfliktvermeidung bei gleichzeitiger Aktivierung unterschiedlicher Funktionseinheiten der programmierbaren Einheit umgesetzt. Durch die Priorisier- und Arbitrier- Einheit sind den verschiedenen, auf der programmierbaren Einheit vorgesehenen Einheiten - wie z. B. der Listen- Applikations-Einheit und der Bypass- Einheit - Prioritäten zuweisbar, und die Priorisier- und Arbitrier-Einheit entscheidet dann anhand der den genannten Einheiten zugeordneten Prioritäten über die Ausführungsreihenfolge der unterschiedlichen Einheiten durch deren Freischaltung. Gleichzeitig wird dann durch die Priorisier- und Arbitrier- Einheit eine Datenverbindung zwischen der jeweils freigeschalteten Einheit und dem Steuergerät hergestellt.
Wesentlich ist also, daß durch Freischalten verschiedener Einheiten auf der programmierbaren Einheit des Beeinflussungsgeräts und gegebenenfalls durch schnelles Umschalten zwischen verschiedenen aktivierten Einheiten verschiedene Datenquellen bzw. -senken über einen einzigen gemeinsamen Datenpfad, nämlich die Datenverbindung zwischen der Steuergerät-Debug-Schnittstelle und der Beeinflussungsgerät-Debug-Schnittstelle, kommunizieren können. Aufgrund der erheblichen Geschwindigkeitssteigerung können die verschiedenen Einheiten auch bei sehr anspruchsvollen Anwendungen quasi parallel betrieben werden.
Neben dem erfindungsgemäßen Beeinflussungsgerät umfaßt die Erfindung auch ein Verfahren zum Einsatz eines bevorzugten Beeinflussungsgeräts mit einer Bypass-Einheit zur vorteilhaften Realisierung des Funktions- Bypassings, wobei auch für das Bypassing die beschriebene Adreßliste und/oder Datenliste verwendet wird.
Im einzelnen gibt es nun mehrere Möglichkeiten, das erfindungsgemäße Beeinflussungsgerät auszugestalten und weiterzubilden. Dazu wird verwiesen sowohl auf die dem Patentanspruch 1 nachgeordneten Patentansprüche als auch auf die Beschreibung eines in der Zeichnung dargestellten Ausführungs- beispiels des erfindungsgemäßen Beeinflussungsgeräts. In der Zeichnung zeigen
Fig. 1 die schematische Struktur eines erfindungsgemäßen Beeinflussungsgeräts,
Fig. 2 eine weitere schematische Darstellung eines erfindungsgemäßen Beeinflussungsgeräts und
Fig. 3 die schematische Struktur eines aus dem Stand der Technik bekannten Beeinflussungsgeräts.
Die Figuren zeigen jeweils ein Beeinflussungsgerät 1, das mit einem Steuergerät 2 verbunden ist, wobei das Steuergerät 2 zumindest einen Steuergerät- Microcontroller 3 und eine Steuergerät-Debug- Schnittstelle 4 umfaßt. Bei dem Steuergerät-Microcontroller 3 muß es sich nicht zwangsläufig um eine Rechnereinheit handeln, bei der Prozessor und zugeordneter Speicher in einem Bauteil realisiert sind, sondern genauso gut kann der Steuergerät- Microcontroller 3 beispielsweise aus einem Prozessor und einem separat ausgeführten Speicherbaustein bestehen.
Die in den Fig. 1 und 3 dargestellte Steuergerät-Debug-Schnittstelle 4 ist üblicherweise in einer Einheit mit dem Steuergerät-Microcontroller 3 ausgeführt (On-Chip-Debug-Port), natürlich kann jedoch das erfindungsgemäße Beeinflussungsgerät 1 auch zusammen mit einem Steuergerät 2 verwendet werden, dessen Steuergerät-Debug-Schnittstelle 4 separat von dem Steuergerät- Microcontroller 3 ausgeführt ist.
Fig. 3 zeigt die Verwendung eines aus dem Stand der Technik bekannten Beeinflussungsgeräts 1, das eine programmierbare Einheit 5 sowie eine Datenübertragungs-Schnittstelle 6 umfaßt, über die ein bidirektionaler Datenaus- tausch zwischen Beeinflussungsgerät 1 und einer Bedieneinheit 7 ermöglicht wird. Die Bedieneinheit 7 ist in den dargestellten Ausführungsbeispielen ein Einzelplatzrechner mit einer geeigneten Software, um die von dem Steuergerät 2 stammenden und durch das Beeinflussungsgerät 1 aufgenommenen und weitergeleiteten Daten zu visualisieren und im weitesten Sinne zu analysieren. Ferner wird auf der Bedieneinheit 7 aber auch Software betrieben, die der Konfiguration des Beeinflussungsgeräts 1 dient, oder mit der Veränderungen
von auf dem Steuergerät 2 lokalisierten Parametern festgelegt und dem Steuergerät 2 über das Beeinflussungsgerät 1 übermittelt werden können. Die Datenübertragungs-Schnittstelle 6 ist in den dargestellten Ausführungsbeispielen eine serielle Standard-Schnittstelle, insbesondere eine USB-Schnittstelle oder eine Ethernet-Schnittstelle.
Darüber hinaus weist jedes der dargestellten Beeinflussungsgeräte 1 eine Be- einflussungsgerät-Debug-Schnittstelle 8 auf, die funktionsnotwendig ist, um eine Verbindung zwischen Steuergerät 2 und Beeinflussungsgerät 1 herzu- stellen.
In der den Stand der Technik beschreibenden Fig. 3 ist innerhalb des Steuergeräts 2 der Adreßraum 10 des Steuergerät-MicrocontiOllers 3 angedeutet, der die Adressen A0 bis An umfaßt. Unter Adreßraum seien hier alle durch den Steuergerät-Microcontroller 3 zugreifbaren Adressen verstanden, also auch solche Adressen, die beispielsweise über einen externen Adreßbus des Steuergerät-Microcontrollers 3 nicht zugreifbar sind. Um Daten aus dem Adreßraum 10 des Steuergerät-Microcontrollers 3 in das Beeinflussungsgerät 1 und von dort aus in die Bedieneinheit 7 zu übertragen, werden auf dem Steuergerät 2 eine Adreßliste 11 sowie eine Datenliste 12 angelegt. Adreßliste 11 und Datenliste 12 belegen dabei zusätzlichen Speicherplatz neben dem Speicherplatz, der von der regulär auf dem Steuergerät 2 betriebenen Steuerungssoftware belegt wird.
Um die Daten Dl, D2 und D3 in den Adressen A10, A20 und A30 dem Beeinflussungsgerät 1 verfügbar zu machen, werden zunächst die Adressen A10, A20 und A30 in Adreßliste 11 abgelegt. Die zusätzlich benötigten und mit Sl, S2 und S3 angedeuteten Softwaredienste dienen nun dazu, die Originaldaten Dl, D2 und D3 aus den Speicherorten A10, A20 und A30 in die Datenliste 12 zu kopieren. Diese Daten werden bei Verwendung eines bekannten Beeinflussungsgeräts 1 durch weitere, auf dem Steuergerät zu implementierende und in Fig. 3 nicht weiter dargestellte Softwaredienste von dem Steuergerät 2 auf das Beeinflussungsgerät 1 übertragen. Fig. 3 macht deutlich, daß die Steuergeräte- Applikation bei Verwendung eines aus dem Stand der Technik bekannten Be- einflussungsgeräts 1 das Steuergerät 2 erheblich belastet, einerseits durch den unter Umständen sehr großen Speicherbedarf auf dem Steuergerät 2 durch
Speichern von Adreßliste 11, Datenliste 12 und von zusätzlichen Softwarediensten, andererseits wird das Laufzeitverhalten der Steuerungsfunktionen des Steuergeräts gegebenenfalls stark beeinflußt, da die angedeuteten Softwaredienste (Sl, S2, S3) zusätzlich von dem Steuergerät-Microcontroller 3 bearbeitet werden müssen.
Fig. 1 zeigt die vergleichbare Situation unter Verwendung eines erfindungsgemäßen Beeinflussungsgeräts 1. Im Speicher 9 des Beeinflussungsgeräts 1 sind erfindungsgemäß die Adreßliste 11 und die Datenliste 12 abgelegt. Durch Übergabe der in der Adreßliste 11 enthaltenen Daten an die Beeinflussungsge- rät-Debug-Schnittstelle 8 sind die Inhalte der entsprechenden Speicherorte im Adreßraum 10 des Steuergerät-Microcontrollers 3 direkt abrufbar, und sie können nachfolgend in der dazu vorgesehenen Datenliste 12 im Speicher 9 des Beeinflussungsgeräts 1 abgelegt werden. Von dort aus können die Daten genau wie bei dem aus dem Stand der Technik bekannten Beeinflussungsgerät 1 über andere Schnittstellen, wie z. B. die Datenübertragungs-Schnittstelle 6, nach außen übertragen werden. Dem gleichen Prinzip folgend können die in der Datenliste 12 abgelegten Daten über die Steuergerät-Debug-Schnittstelle 4 direkt in den Adreßraum 10 des Steuergerät-Microcontrollers 3 übertragen werden und zwar an die Adressen, die durch die Adreßliste 11 auf dem Beeinflussungsgerät 1 benannt sind.
Wie aus Fig. 1 ersichtlich ist, entfallen bei Verwendung des erfindungsgemäßen Beeinflussungsgeräts 1 im Falle der reinen Steuergeräte- Applikation jeg- liehe Modifikationen im Adreßraum 10 des Steuergerät-Microcontrollers 3. Damit wird das Laufzeitverhalten des Steuergeräts 2 nicht, oder nur unwesentlich, durch das im Rahmen der Steuergeräte-Applikationen erfolgende Auslesen oder Beschreiben von Speicher 9 des Steuergeräts 2 beeinflußt.
Fig. 1 stellt ebenfalls dar, daß in einer bevorzugten Ausführungsform die Be- einflussungsgerät-Debug-Schnittstelle 8 innerhalb der programmierbaren Einheit 5 realisiert wird. Insbesondere dann, wenn die programmierbare Einheit 5 ein programmierbarer Logikbaustein ist, ergeben sich aus dieser bevorzugten Anordnung erhebliche Vorteile hinsichtlich der Ausführungsgeschwindigkeit von verschiedenen Operationen auf dem Beeinflussungsgerät 1. Es ist insbe-
sondere vorgesehen, die programmierbare Einheit 5 durch ein Field Program- mable Gate Array (FPGA) zu realisieren.
Aus dem gleichen Grund wird auch der die Adreßliste 11 und die Datenliste 12 beherbergende Speicher 9 in der bevorzugten Ausführungsform nach Fig. 1 innerhalb derselben programmierbaren Einheit 5 vorgesehen.
Fig. 2 zeigt ein erfindungsgemäßes Beeinflussungsgerät 1, daß eine Vielzahl zusätzlicher Komponenten und Funktionen aufweist, die in verschiedenen Funktions-Einheiten wie z. B. einer Listen- Applikations-Einheit 13, einer Einzelwert- Applikations-Einheit 14 oder einer Werkzeug- Schnittstellen- Einheit 15, gemeinsam in der programmierbaren Einheit 5 realisiert sind.
Die Listen- Applikations-Einheit 13 automatisiert die Übertragung von Daten aus den in Fig. 2 nicht dargestellten Datenlisten 12 in die durch die Adressen in den Adreßlisten 11 bezeichneten Stellen innerhalb des Adreßraums 10 des Steuergeräts 2. Umgekehrt sorgt die Listen- Applikations-Einheit 13 auch dafür, daß komplette Parametersätze aus dem Adreßraum 10 des Steuergerät- Microcontrollers 3 abgerufen und gemeinsam in die entsprechenden Datenli- sten 12 im Beeinflussungsgerät 1 übertragen werden.
Für den Fall, daß mehrere Adreßlisten 11 und Datenlisten 12 innerhalb des Speichers 9 angelegt sind, ist insbesondere vorgesehen, daß die Adreßlisten 11 und/oder die Datenlisten 12 mit Prioritäten versehen werden können, wobei die Prioritäten festlegen, in welcher Bearbeitungsreihenfolge die Listen- Applikations-Einheit 13 die Listen bearbeitet.
Darüber hinaus ist es in einer weiteren bevorzugten Ausführungsform des Beeinflussungsgeräts 1 möglich, aus mehreren Adreßlisten 11 und mehreren Datenlisten 12 eine Untermenge von Listen auszuwählen, die einer Bearbeitung durch die Listen- Applikations-Einheit 13 zugänglich gemacht werden sollen. Dadurch ist es beispielsweise möglich, zwischen verschiedenen Applikations-Modi auszuwählen und umzuschalten.
Durch periodisches Aufrufen der Listen- Applikations-Einheit 13 ist es somit auf einfache Weise möglich, ganze Sätze von Zustandsgrößen des Steuergeräts 2 kontinuierlich zu beobachten und auszuwerten (Daten- Akquisition).
Die Einzelwert- Applikations-Einheit 14 dient im wesentlichen dazu, einzelne Zustände bzw. Speicherinhalte aus dem Adreßraum 10 des Steuergerät- Microcontrollers 3 auszulesen oder wahlweise zu beschreiben, sie eignet sich deshalb insbesondere zur manuellen und gezielten Veränderung von Steuergeräteparametern, oder zur stichprobenartigen Beobachtung eines interessieren- den Zustandes des Steuergeräts 2.
In einem weiteren bevorzugten Ausführungsbeispiel eines erfindungsgemäßen Beeinflussungsgeräts 1 umfaßt die programmierbare Einheit 5 eine Werkzeug- Schnittstellen-Einheit 15, über die es möglich ist, ein externes Gerät 16 an das Beeinflussungsgerät 1 zusätzlich anzuschließen. Bei dem externen Gerät 16 kann es sich beispielsweise um ein weiteres Beeinflussungsgerät 1 handeln, das alternativ auf das Steuergerät 2 über die Steuergerät-Debug-Schnittstelle 4 zugreifen können soll, oder es kann sich bei dem externen Gerät 16 beispielsweise um ein originäres Debug- Werkzeug handeln, das ebenfalls wahlweise auf das Steuergerät 2 zugreifen kann.
Das erfindungsgemäße Beeinflussungsgerät 1 kann darüber hinaus mit einer Bypass-Einheit 17, einem Bypass- Speicher 18 und einer Bypass-Schnittstelle 19 ausgestattet sein, wobei die Bypass-Einheit 17 und die Bypass-Schnittstelle 19 vorzugsweise mit der programmierbaren Einheit 5 realisiert werden.
Bei dem Bypass- Speicher 18 handelt es sich um einen zweiseitig zugreifbaren Speicher, der sowohl einen Schreib-/Lese-Zugriff seitens des Steuergeräts 2 wie auch einen Schreib-/Lesezugriff seitens einer Simulations-Einheit 20 ge- stattet, die über die Bypass-Schnittstelle 19 mit dem Beeinflussungsgerät 1 verbunden ist. In einem weiteren, hier nicht dargestellten, vorteilhaften Ausfuhrungsbeispiel ist der Bypass-Speicher 18 ein lediglich einseitig zugreifbarer Speicher, was sich jedoch auf das Funktions-Bypassing nicht nachteilig auswirken muß.
Beim Funktions-Bypassing kommt es in besonderem Maße auf eine schnelle Berechnung der auf einer Simulations-Einheit 20 ausgelagerten Funktionen an, genauso wie auch auf eine schnelle Datenübertragung der in der Simulations-Einheit 20 berechneten Ergebniswerte in das Steuergerät 2. Aus diesem Grund ist die Bypass-Schnittstelle 19 eine serielle Schnittstelle, die höchste Datenübertragungsraten erlaubt. In dem in Fig. 2 dargestellten bevorzugten Ausführungsbeispiel ist die Bypass-Schnittstelle 19 eine LVDS-Schnittstelle.
Für das Funktions-Bypassing ist es auch bei Verwendung eines erfmdungs- gemäßen Beeinflussungsgeräts 1 notwendig, für jede durch Bypassing zu umgehende Steuergerät-Funktion, einen Softwaredienst auf dem Steuergerät 2 zu betreiben. Aufgabe eines solchen Softwaredienstes ist es, dem Beeinflussungsgerät 1 und dadurch mittelbar auch der Simulations-Einheit 20 zu signalisieren, daß eine extern zu berechnende Steuergeräte-Funktion aufgerufen worden ist, wodurch unmittelbar auf der Simulations-Einheit 20 eine entsprechende Ersatzfunktion berechnet wird, wobei die von der Simulations-Einheit 20 berechneten Ergebnisse in dem ein- oder zweiseitig zugreifbaren Bypass- Speicher 18 abgelegt und von dort aus in das Steuergerät 2 über die programmierbare Einheit 5 zurück übertragen werden können.
Für das Funktions-Bypassing ist es grundsätzlich notwendig, daß die Simulations-Einheit 20 sowohl Daten aus dem Steuergerät 2 anfordern und über das Beeinflussungsgerät 1 auslesen, als auch selbst Daten über das Beeinflussungsgerät 1 übertragen und in das Steuergerät 2 schreiben kann. Das Lesen von Daten aus dem Steuergerät 2 durch die Simulations-Einheit 20 beginnt damit, daß die Simulations-Einheit 20 die Spezifikation aller aus dem Steuergerät 2 auszulesenden Daten an das Beeinflussungsgerät 1, insbesondere an die Bypass-Einheit 17 bzw. den Bypass- Speicher 18 überträgt. Die Spezifikation aller aus dem Steuergerät auszulesenden Daten besteht in dem bevorzug- ten Ausführungsbeispiel in der Angabe mindestens eines Speicherorts im Adreßraum 10 des Steuergerät-Microcontrollers 3 und der Angabe der Größe des von dort ausgehenden, interessierenden Speicherbereichs. Das Beeinflussungsgerät 1 , insbesondere die Bypass-Einheit 18 liest nun die so spezifizierten Daten aus dem Steuergerät 2 unter Nutzung der Debug-Schnittstellen 4, 8 aus, und abschließend werden die von dem Beeinflussungsgerät 1 aus dem
Steuergerät 2 gelesenen Daten über die Bypass-Schnittstelle 19 an die Simulations-Einheit 20 übertragen.
Das für das Funktions-Bypassing funktionsnotwendige Schreiben von Daten von der Simulations-Einheit 20 in das Steuergerät 2 über das Beeinflussungsgerät 1 beginnt mit der Übertragung der Spezifikation der zu beschreibenden Speicherorte im Adreßraum 10 des Steuergerät-Microcontrollers 3 und der Daten selbst, die an diesen Speicherorten abgelegt werden sollen. Diese Daten werden vorzugsweise im Bypass-Speicher 18 des Beeinflussungsgeräts 1 ab- gelegt. Anschließend werden die Daten von dem Beeinflussungsgerät 1 unter Nutzung der Debug-Schnittstellen 4, 8 in den spezifizierten Speicherorten im Adreßraum 10 des Steuergerät-Microcontrollers 3 abgelegt.
Soll nun eine Funktion des Steuergeräts 2 nicht durch den Steuergerät- Microcontroller 3, sondern ausgelagert auf der Simulations-Einheit 20 - also per Funktions-Bypassing - berechnet werden, wird von dem Steuergerät 2 zunächst eine Anforderung zur Berechnung dieser ausgelagerten Bypass- Funktion an das Beeinflussungsgerät 1 über die Debug-Schnittstellen 4, 8, verschickt, wobei die Anforderung unverzüglich von dem Beeinflussungsgerät 1 an die Simulations-Einheit 20 weitergeleitet wird, damit die Bypass- Funktion auf der Simulations-Einheit 20 möglichst verzögerungsfrei berechnet werden kann. Die Simulations-Einheit 20 wertet nun die Anforderung zur Berechnung der Bypass-Funktion aus und liest die zur Funktionsberechnung notwendigen Daten (Argumente der Funktion) nach dem oben beschriebenen Verfahren aus dem Steuergerät 2 aus.
Nachdem die Simulations-Einheit 20 die ausgelagerte Funktion auf Grundlage der aus dem Steuergerät 2 ausgelesenen Daten berechnet hat, schreibt die Simulations-Einheit 20 das Ergebnis der Funktionsberechnung nach der oben beschriebenen Methode über das Beeinflussungsgerät 1 in das Steuergerät 2 bzw. an entsprechende Speicherorte im Adreßraum 10 des Steuergerät- Microcontrollers 3.
Die zuvor ausführlich beschriebene Methode des Funktions-Bypassing unter Nutzung des erfindungsgemäßen Beeinflussungsgeräts 1 ist unabhängig von
der Adreßliste 11 und der Datenliste 12 im Speicher 9 des Beeinflussungsgeräts 1.
In einem weiteren besonders bevorzugten Ausführungsbeispiel des erfin- dungsgemäßen Beeinflussungsgeräts 1 kommt der Adreßliste 11 und der Datenliste 12 des Beeinflussungsgeräts 1 jedoch auch bezüglich des Funktions- Bypassing eine besondere Bedeutung zu.
Durch Verwendung der Adreßliste 11 und/oder der Datenliste 12 beim Funk- tions-Bypassing lassen sich erhebliche Vorteile gegenüber der oben beschriebenen "klassischen" Methode des Bypassings erzielen. Um die Adreßliste 11 und/oder die Datenliste 12 für das Bypassing einer Steuergeräte-Funktion durch eine korrespondierende Bypass-Funktion auf der Simulations-Einheit 20 verwenden zu können, ist es zunächst notwendig, daß die Speicherorte der Daten im Adreßraum 10 des Steuergerät-Microcontrollers 3, die zur Berechnung der Bypass-Funktion notwendig sind, in der Adreßliste 11 abgelegt sind bzw. einmalig abgelegt werden; diese Daten müssen für jede einzelne durch Bypassing zu umgehende Steuergeräte-Funktion in der Adreßliste 11 bzw. mehren Adreßlisten 11 abgelegt werden und zwar nur einmal für beliebig viele Bypass- Vorgänge dieser Funktion.
Um die Vorteile der Verwendung der Adreßliste 11 und/oder der Datenliste 12 für das Bypassing auszuschöpfen, ist es - wie bei der Steuergeräte- Applikation auch - vorteilhaft, wenn das Beeinflussungsgerät 1 das Lesen der Daten aus den in der Adreßliste 11 angegebenen Speicherorten im Adreßraum 10 des Steuergerät-Microcontrollers 3 und das Ablegen der abgerufenen Daten in der Datenliste 12 automatisch vornimmt, insbesondere durch Verwendung der Listen- Applikations-Einheit 13.
Wenn das Steuergerät 2 einen notwendigen Bypass- Vorgang einer Steuergeräte-Funktion an das Beeinflussungsgerät 1 signalisiert, können alle für die Berechnung der Bypass-Funktion notwendigen Daten durch Verwendung der Adreßliste 11 als eine Einheit von dem Steuergerät 2 gelesen und auf dem Beeinflussungsgerät 1 unter Nutzung der Debug-Schnittstellen 4, 8 abgelegt werden. Wenn alle zur Berechnung der Bypass-Funktion notwendigen Daten in der Datenliste 12 abgelegt sind, werden sie automatisch, oder nach Anfor-
derung durch die Simulations-Einheit 20, zur Simulations-Einheit 20 übertragen, wo sie unmittelbar zur Berechnung der Bypass-Funktion herangezogen werden. Die Berechnungsergebnisse der Bypass-Funktion durch die Simulations-Einheit 20 werden dann zu dem Beeinflussungsgerät 1 übertragen und dort entweder in der Datenliste 12 und/oder dem Bypass- Speicher 18 abgelegt. Von hier aus müssen die Berechnungsergebnisse wieder in bestimmten Speicherorten im Adreßraum 10 des Steuergerät-Microcontrollers 3 abgelegt werden, wobei die Speicherorte entweder bereits in der Adreßliste 11 abgelegt worden sind, oder aber von der Simulations-Einheit 20 angegeben werden.
Durch diese Methode des Funktions-Bypassing kann auf die ständige Übertragung der Speicherorte im Adreßraum 10 des Steuergerät-Microcontrollers 3, aus denen gelesen oder in die geschrieben werden soll, verzichtet werden, wodurch sich die Datenübertragung zwischen der Simulations-Einheit 20 und dem Beeinflussungsgerät 1 erheblich reduziert. Weiterhin wird dadurch die für das Bypassing einer Steuergeräte-Funktion benötigte Zeit entscheidend verkürzt, was unter anderem auch daran liegt, daß die Sammelübertragung von Daten zwischen dem Beeinflussungsgerät 1 und dem Steuergerät 2 über die Debug-Schnittstellen 4, 8 unter Ausnutzung der Adreßliste 11 und/oder der Datenliste 12 erheblich schneller abwickelbar ist, als die Durchführung der Übertragung der gleichen Daten durch eine Vielzahl von Einzeltransfers.
Da in der bevorzugten Ausführungsform des erfindungsgemäßen Beeinflussungsgeräts 1 nach Fig. 2 mehrere Funktions-Einheiten 13, 14, 15, 17 mit Hil- fe der programmierbaren Einheit 5 implementiert sind, besteht potentiell die Gefahr eines Ressourcen-Konflikts, sofern gleichzeitig aktivierte Funktions- Einheiten 13, 14, 15, 17 auf dieselbe Ressource zugreifen, wie z. B. auf die Beeinflussungsgerät-Debug-Schnittstelle 8.
Zum Zweck der Kollisionsvermeidung wird deshalb zusätzlich eine Priorisier- Arbitrier-Einheit 21 mit der programmierbaren Einheit 5 umgesetzt. Die Priorisier- und Arbitrier-Einheit 21 gestattet es, den verschiedenen Einheiten 13, 14, 15, 17 Prioritäten zuzuweisen, anhand derer die Priorisier- und Arbitrier- Einheit 21 eine Ausführungsreihenfolge durch Freischaltung der unterschied- liehen Einheiten 13, 14, 15, 17 festlegen kann. Zur Aufgabe der Priorisier-
und Arbitrier-Einheit 21 gehört zudem, eine Datenverbindung zwischen der jeweils freigeschalteten Einheit und dem Steuergerät 2 herzustellen.
Das Zusammentreffen mehrerer Eigenschaften des hier beschriebenen bevor- zugten Ausführungsbeispiels eines erfindungsgemäßen Beeinflussungsgeräts 1 (Entlastung des Steuergerät-Microcontrollers 3 durch Elimination von Softwarediensten bei der Daten-Akquisition, konsequente Nutzung der Steuerge- rät-Debug-Schnittstelle 4, hardwaremäßige Umsetzung der Funktions- Einheiten in der programmierbaren Einheit 5) führt dazu, daß sich unter- schiedliche Funktions-Einheiten auf effektive Weise einen einzigen Zugang zum Steuergerät 2 teilen können und es führt auch dazu, daß für den Anwender des erfindungsgemäßen Beeinflussungsgeräts 1 quasi eine gleichzeitige Benutzung des Steuergeräts 2 durch unterschiedliche Funktions-Einheiten möglich wird.
Insbesondere erlaubt das in Fig. 2 dargestellte bevorzugte Ausführungsbeispiel die gleichzeitige Durchführung einer Steuergerät- Applikation, also einer mit umfangreicher Datenübertragung verbundenen Daten-Akquisition und ein Funktions-Bypassing, was bei Verwendung von aus dem Stand der Technik bekannten Beeinflussungsgeräten 1 praktisch nicht in befriedigender Weise möglich ist, da die auf Softwarediensten basierende Datenübertragung von Steuergerät 2 zu Beeinflussungsgerät 1 weitaus zeitaufwendiger ist und zu nicht mehr akzeptablen Antwortzeiten führt.
In der Praxis hat es sich als besonders vorteilhaft herausgestellt, wenn die Priorität der Bypass-Einheit 17 höher gewählt wird als die Priorität der Listen- Applikations-Einheit 13, die wiederum höher anzusiedeln ist als die Priorität der Einzelwert- Applikations-Einheit 14, und wenn die geringste Priorität der Werkzeug-Schnittstellen-Einheit 15 zugewiesen wird. Je nach Anwendungs- fall kann es jedoch auch sinnvoll sein, der Werkzeug-Schnittstellen-Einheit 15 die höchste Priorität zu geben, insbesondere dann, wenn als externes Gerät 16 auch ein Beeinflussungsgerät 1 verwendet wird.
In einer weiteren bevorzugten Ausführungsform ist in dem Beeinflussungsge- rät 1 eine Koordinations-Einheit 22 vorgesehen, die über eine Koordinations- Schnittstelle 23 mit einer oder mehrerer der Einheiten 13, 14, 17 der pro-
grammierbaren Einheit 5 verbunden ist, wobei die Koordinations-Schnittstelle 23 insbesondere in die programmierbare Einheit 5 integriert ist.
Darüber hinaus ist die Koordinations-Einheit 22 in dem bevorzugten Ausfüh- rungsbeispiel mit der Bedieneinheit 7 über die Datenübertragungs- Schnittstelle 6 und/oder mit der Simulations-Einheit 20 über die Bypass- Schnittstelle 19 und/oder auch mit dem Bypass-Speicher 18 verbunden. Damit ist die Koordinations-Einheit 22 in der Lage, von der Bedieneinheit 7 und/oder von der Simulations-Einheit 20 stammende Daten bzw. Anweisun- gen an die adressierten Einheiten 13, 14, 15, 17 der programmierbaren Einheit 5 zur weiteren Bearbeitung zu leiten und/oder die von einer Einheit 13, 14, 15, 17 der programmierbaren Einheit 5 stammenden Daten an die Bedieneinheit 7 und/oder die Simulations-Einheit 20 zu übermitteln.
In diesem Zusammenhang ist eine allgemeine Anmerkung zu den in den Figuren dargestellten Verbindungen zwischen verschiedenen Einheiten angebracht. Grundsätzlich stellen die Verbindungen Kommunikationswege zwischen ihren Endpunkten dar, sie können tatsächlich eine separate physikalische Verbindung darstellen, müssen dies jedoch nicht. Dies wird z. B. bei Betrachtung des in Fig. 2 dargestellten Bypass- Speichers 18 deutlich, der drei Verbindungen aufweist, obwohl er nur ein- oder zweiseitig zugreifbar ist. Für den Fachmann ist ersichtlich, daß mehrere Kommunikationspartner, im vorliegenden Fall also Bypass-Einheit 17, Bypass-Schnittstelle 19 und Koordinations-Einheit 22, beispielsweise über einen gemeinsamen physikalischen Kommunikationsweg auf einen weitere Einheit zugreifen können, hier also den Bypass-Speicher 18.
Ein weitere bevorzugte Ausführungsform eines erfindungsgemäßen Beeinflussungsgeräts 1 gestattet es, die von der Koordinations-Einheit 22 empfangenen Daten, insbesondere Daten, die an die Bedieneinheit 7 übermittelt wer- den, mit einem Zeitstempel zu versehen. Dies ist deshalb vorteilhaft, weil die Zeitinformation des Zeitstempels sowohl die zeitliche Einordnung z. B. gemessener Daten erlaubt, als auch beispielsweise eine zeitliche Synchronisation mehrerer in einem Netzwerk betriebener Beeinflussungsgeräte 1 ermöglicht.
Eine alternative bevorzugte Ausführungsform des erfindungsgemäßen Beeinflussungsgeräts 1 prägt den, die programmierbare Einheit 5 durchlaufenden
Daten bereits einen Zeitstempel auf, so daß dieser Arbeitsschiitt nicht mehr von der Koordinations-Einheit 22 vorzunehmen ist. Auch bei dieser Variante lassen sich zeitliche Vorteile gegenüber der Nutzung der Koordinations- Einheit 22 erzielen.
Die Koordinations-Einheit 22 dient insbesondere dazu, von der Bedieneinheit 7 und/oder von der Simulations-Einheit 20 stammende Konfigurationsanweisungen zu interpretieren und das Beeinflussungsgerät 1 entsprechend zu konfigurieren. So ist es beispielsweise sogar möglich, das erfindungsgemäße Be- einflussungsgerät 1 nicht nur für einen speziellen Typ von Steuergerät-Debug- Schnittstellen 8 einzurichten, sondern es an praktisch beliebige Schnittstellen- Standards anzupassen.
Wie in Fig. 2 dargestellt, verfügt die Koordinations-Einheit 22 vorzugsweise auch über Anschlüsse, über die externe Triggersignale 24 wie auch interne Triggersignale 25 registriert und ausgewertet werden können, weshalb es mit der Koordinations-Einheit 22 leicht möglich ist, entsprechende Einheiten 13, 14, 15, 17 der programmierbaren Einheit 5 zu aktivieren.
Die Koordinations-Einheit 22 wird in dem bevorzugten Ausführungsbeispiel nach Fig. 2 durch eine separate Recheneinheit außerhalb der programmierbaren Einheit 5 realisiert, insbesondere durch einen Microcontroller. In einer ebenfalls bevorzugten, jedoch nicht dargestellten Variante des Beeinflussungsgeräts 1 wird die Koordinations-Einheit 22 dagegen durch einen pro- grammierbaren Logikbaustein, oder als Teil der programmierbaren Einheit 5 ausgebildet.