WO2009127697A1 - Verfahren zum automatischen erzeugen eines zeitschemas für über einen zeitgesteuerten gemeinsamen datenbus kommunizierende verteilte anwendungen oder prozesse eines digitalen netzwerks - Google Patents
Verfahren zum automatischen erzeugen eines zeitschemas für über einen zeitgesteuerten gemeinsamen datenbus kommunizierende verteilte anwendungen oder prozesse eines digitalen netzwerks Download PDFInfo
- Publication number
- WO2009127697A1 WO2009127697A1 PCT/EP2009/054544 EP2009054544W WO2009127697A1 WO 2009127697 A1 WO2009127697 A1 WO 2009127697A1 EP 2009054544 W EP2009054544 W EP 2009054544W WO 2009127697 A1 WO2009127697 A1 WO 2009127697A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- application
- time slot
- input
- output
- time
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/407—Bus networks with decentralised control
- H04L12/417—Bus networks with decentralised control with deterministic access, e.g. token passing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4887—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/62—Establishing a time schedule for servicing the requests
Abstract
Verfahren zum automatischen Erzeugen eines Zeitschemas für über einen zeitgesteuerten gemeinsamen Datenbus kommunizierende verteilte Anwendungen eines digitalen Netzwerks, wobei die einzelnen Anwendungen in einem vorgegebenen Ablaufplan und vorgegebener Reihenfolge jeweils während vorgegebener Zeitdauer durchgeführt und Nachrichten während Zeitschlitzen vorgegebener Länge innerhalb eines Nachrichtenzyklus über dem gemeinsamen Datenbus von jeweiligen Anwendungen ausgegeben oder jeweiligen Anwendungen eingegeben werden. Erfindungsgemäß ist es vorgesehen dass aus der Reihenfolge und Zeitdauer der einzelnen Anwendungen und der Anzahl und Länge der Zeitschlitze die Nachrichtenzykluszeit mit einer Länge entsprechend mindestens einem längsten innerhalb eines Nachrichtenzyklus zurückzulegenden Nachrichtenpfad berechnet wird, dass der Eingabezeitschlitz der letzten Anwendung innerhalb eines Nachrichtenzyklus bestimmt wird, und dass ausgehend vom Eingabezeitschlitz der letzten Anwendung die Ausgabe- und Eingabezeitschlitze der jeweils vorangehenden Anwendungen bis zum Ausgabezeitschlitz der ersten Anwendung innerhalb eines Nachrichtenzyklus bestimmt werden.
Description
Verfahren zum automatischen Erzeugen eines Zeitschemas für über einen zeitgesteuerten gemeinsamen Datenbus kommunizierende verteilte Anwendungen oder Prozesse eines digitalen Netzwerks
Die Erfindung betrifft ein Verfahren zum automatischen Erzeugen eines Zeitschemas für über einen zeitgesteuerten gemeinsamen Datenbus kommunizierende verteilte Anwendungen oder Prozesse eines digitalen Netzwerks.
Digitale Netzwerke mit einem zeitgesteuerten gemeinsamen Datenbus, bei denen eine Anzahl von verteilten Anwendungen oder Prozesse über den gemeinsamen Datenbus kommunizieren, finden zunehmend Verwendung in hochentwickelten Umgebungen, in welchen eine Vielzahl von Anwendungen oder Prozessen zuverlässig und in kurzer Zeit durchgeführt werden sollen, insbesondere in der Luft- und Raumfahrt und bei Automobilen. (Im folgenden wird nur noch von „Anwendungen" gesprochen.) Nutzung des gemeinsamen Datenbusses durch die verteilten Anwendungen erfolgt nach einem Zeitschema, welches den Ablaufplan, die Reihenfolge und die Dauer der einzelnen Anwendungen zu berücksichtigen hat. Die Ausgabe und Eingabe der zwischen den einzelnen verteilten Anwendungen zu kommunizierenden Daten erfolgt während jeweiliger Zeitschlitze, während derer die Daten von einer Anwendung ausgegeben und einer anderen Anwendung eingegeben werden. Von großer Wichtigkeit bei der Erzeugung des Zeitschemas für den Datenaustausch zwischen den einzelnen Anwendungen ist, insbesondere wenn eine schnelle Verarbeitungszeit gefordert wird, wie beispielsweise bei der Luftfahrt, dass das System unter Realzeitbedingungen zuverlässig funktioniert, was insbesondere für sicherheitsrelevante Anwendungen von großer Bedeutung ist. Somit bildet die Erzeugung eines effektiven und optimalen Zeitschemas für die Nutzung des zeitgesteuerten gemeinsamen Datenbusses einen Schlüssel, um ein hoch leistungsfähiges und zuverlässiges System zu erhalten. Dies
um so mehr, je komplexer das handzuhabende digitale Netzwerk ist .
Aus der US 2004/0208158 Al, der US 6 483 846, US 5 978 578 und US 4 980 824 sind gattungsähnliche Verfahren zum automatischen Erzeugen von Zeitschemas für kommunizierende verteilte Anwendungen oder Prozesse bekannt.
Die Aufgabe der Erfindung ist es, ein Verfahren zum automatischen Erzeugen eines Zeitschemas für über einen zeitgesteuerten gemeinsamen Datenbus kommunizierende verteilte Anwendungen oder Prozesse eines digitalen Netzwerks zu schaffen, welches effektiv ist und die Erfüllung von Echtzeitbedingungen sicherstellt. Insbesondere soll die Vorhersehbarkeit und Zuverlässigkeit der Datenkommunikation zwischen den verteilten Anwendungen sichergestellt werden.
Gemäß einem ersten Aspekt der Erfindung wird die Aufgabe gelöst durch ein Verfahren mit den Merkmalen des Anspruchs 1.
Gemäß einem zweiten Aspekt der Erfindung wird die Aufgabe gelöst durch ein Verfahren mit den Merkmalen des Anspruchs 2.
Jeweilige vorteilhafte Ausführungsformen und Weiterbildungen des erfindungsgemäßen Verfahrens sind in den Unteransprüchen gekennzeichnet .
Durch die Erfindung wird ein Verfahren zum automatischen Erzeugen eines Zeitschemas für über einen zeitgesteuerten gemeinsamen Datenbus kommunizierende verteilte Anwendungen oder Prozesse eines digitalen Netzwerks, bei dem die einzelnen Anwendungen in einem vorgegebenen Ablaufplan und vorgegebener Reihenfolge jeweils während vorgegebener Zeitdauer durchgeführt und Nachrichten während Zeitschlitzen vorgegebener Länge innerhalb eines Nachrichtenzyklus über den
gemeinsamen Datenbus von jeweiligen Anwendungen ausgegeben oder jeweiligen Anwendungen eingegeben werden, geschaffen.
Gemäß einem ersten Aspekt der Erfindung ist es vorgesehen,
dass aus der Reihenfolge und Zeitdauer der einzelnen Anwendungen und der Anzahl und Länge der Zeitschlitze die Nachrichtenzykluszeit mit einer Länge entsprechend mindestens einem längsten innerhalb eines Nachrichtenzyklus zurückzulegenden Nachrichtenpfad berechnet wird,
- dass der Eingabezeitschlitz der letzten Anwendung innerhalb eines Nachrichtenzyklus bestimmt wird, und
- dass ausgehend vom Eingabezeitschlitz der letzten Anwendung die Ausgabe- und Eingabezeitschlitze der jeweils vorangehenden Anwendungen bis zum Ausgabezeitschlitz der ersten Anwendung innerhalb eines Nachrichtenzyklus bestimmt werden .
Die Zeit, die zum Einlesen bzw. Auslesen nötig ist, kann durch einen eigens nur für diesen Zweck vorgesehenen Zeitschlitz abgebildet werden (Eingabezeitschlitz/ Ausgabezeitschlitz) . Es kann jedoch auch vorgesehen werden, dass die Zeit, die zum Einlesen bzw. Auslesen nötig ist, bereits in der Zeitdauer einer Anwendung (eines Prozesses) enthalten ist, und kein extra Zeitschlitz vorgesehen werden muß. Der Begriff „Zeitschlitz" ist hier entsprechend allgemein zu verstehen.
Es kann vorgesehen sein, dass für jede Anwendung automatisch geprüft wird, ob für diese eine Ausgabe an eine oder mehrere folgende andere Anwendungen vorgesehen ist.
Es kann vorgesehen sein, dass, wenn für die vorliegende Anwendung eine Ausgabe an eine oder mehrere folgende andere
Anwendungen vorgesehen ist, geprüft wird, ob für diese eine Nachfolgeranwendung vorgesehen ist, der bereits ein Eingabezeitschlitz zugewiesen ist.
Dabei kann, wenn für die vorliegende Anwendung eine Nachfolgeranwendung mit einem bereits zugewiesenen Eingabezeitschlitz vorgesehen ist, deren Eingabezeitschlitz als Ausgabezeitschlitz für die vorliegende Anwendung zugewiesen werden.
Es kann, wenn für die vorliegende Anwendung keine Nachfolgeranwendung mit einem bereits zugewiesenen Eingabezeitschlitz vorgesehen ist, der vorliegenden Anwendung automatisch der nächste folgende freie Zeitschlitz als Ausgabezeitschlitz zugewiesen werden.
Es kann vorgesehen sein, dass für die vorliegende Anwendung die Vorgängeranwendung auf dem längsten innerhalb eines Nachrichtenzyklus zurückzulegenden Nachrichtenpfad bestimmt und deren Ausgabezeitschlitz als Eingabezeitschlitz für die vorliegende Anwendung bestimmt wird.
Dabei kann die Anfangszeit der Vorgängeranwendung ausgehend von deren als Eingabezeitschlitz für die vorliegende Anwendung verwendeten Ausgabezeitschlitz berechnet und festgelegt werden.
Vorteilhafterweise werden die jeweiligen Verfahrensschritte für alle Zweige des Ablaufplans so lange wiederholt bis der Ausgabezeitschlitz und die Anfangszeit der ersten Anwendung innerhalb eines Nachrichtenzyklus zugewiesen sind.
Gemäß einem zweiten Aspekt der Erfindung ist es bei einem Verfahren der vorausgesetzten Art vorgesehen,
dass aus der Reihenfolge und Zeitdauer der einzelnen Anwendungen und der Anzahl und Länge der Zeitschlitze die Nachrichtenzykluszeit mit einer Länge entsprechend mindestens einem längsten innerhalb eines Nachrichtenzyklus zurückzulegenden Nachrichtenpfad berechnet wird,
dass der Ausgabezeitschlitz der ersten Anwendung innerhalb eines Nachrichtenzyklus bestimmt wird, und
dass ausgehend vom Ausgabezeitschlitz der ersten Anwendung die Eingabe- und Ausgabezeitschlitze der jeweils nachfolgenden Anwendungen bis zum Eingabezeitschlitz der letzten Anwendung innerhalb des Nachrichtenzyklus bestimmt werden .
Dabei kann es vorgesehen sein, dass für jede Anwendung automatisch geprüft wird, ob für diese eine Eingabe von einer oder mehreren zeitlich vorangehenden anderen Anwendungen vorgesehen ist.
Wenn für die vorliegende Anwendung eine Eingabe von einer oder mehreren vorangehenden anderen Anwendungen vorgesehen ist, kann automatisch geprüft werden, ob für diese eine Vorgängeranwendung vorgesehen ist, der bereits ein Ausgabezeitschlitz zugewiesen ist.
Es kann, wenn für die vorliegende Anwendung eine Vorgängeranwendung mit einem bereits zugewiesenen Ausgabezeitschlitz vorgesehen ist, deren Ausgabezeitschlitz als Eingabezeitschlitz für die vorliegende Anwendung zugewiesen werden.
Es kann, wenn für die vorliegende Anwendung keine Vorgängeranwendung mit einem bereits zugewiesenen Ausgabezeitschlitz vorgesehen ist, der vorliegenden Anwendung
automatisch der nächste vorangehende freie Zeitschlitz als Eingabezeitschlitz zugewiesen werden.
Es kann vorgesehen sein, dass für die vorliegende Anwendung die Nachfolgeranwendung auf dem längsten innerhalb eines Nachrichtenzyklus zurückzulegenden Nachrichtenpfad bestimmt und deren Eingabezeitschlitz als Ausgabezeitschlitz für die vorliegende Anwendung bestimmt wird.
Dabei kann die Beendigungszeit der Nachfolgeranwendung ausgehend von deren als Ausgabezeitschlitz für die vorliegende Anwendung verwendeten Eingabezeitschlitz berechnet und festgelegt werden.
Vorteilhafterweise werden die jeweiligen Verfahrensschritte für alle Zweige des Ablaufplans so lange wiederholt, bis der Eingabezeitschlitz und die Beendigungszeit der letzten Anwendung innerhalb eines Nachrichtenzyklus zugewiesen sind.
Bei jedem der vorgenannten Verfahren kann es weiterhin vorgesehen sein, dass der Nachrichtenzyklus um Leerlaufzeitschlitze erweitert wird.
Weiter kann vorgesehen sein, dass eine Konsistenzüberprüfung durchgeführt wird, um sicherzustellen, dass die Ausgabezeitschlitze nicht enden bevor die aufnehmende Anwendung beginnt.
Wenn dies der Fall wäre, wird der betreffende Zweig als Problem behaftet markiert.
Die Problemlösung kann erfolgen durch eine entsprechende Verschiebung der betroffenen Anwendungen zueinander, beispielsweise durch Einfügen zusätzlicher Zeitschlitze.
Die Anfangszeit einer Anwendung auf dem längsten Pfad, deren Ausgabezweig die Konsistenzprüfung verfehlt, kann beispielsweise inkrementierend um jeweils einen Schlitz verschoben werden.
Im folgenden wird ein Ausführungsbeispiel der Erfindung anhand der Zeichnung erläutert.
Es zeigt:
Fig. 1 ein Diagramm eines beispielhaft stark vereinfachten Ablaufplans von einzelnen Anwendungen, welche über einen zeitgesteuerten gemeinsamen Datenbus innerhalb eines digitalen Netzwerks kommunizieren sollen, zur Erläuterung eines Ausführungsbeispiels der Erfindung;
Fig. 2 ein Flußdiagramm zur Erläuterung eines Verfahrens zum automatischen Erzeugen eines Zeitschemas für über einen zeitgesteuerten gemeinsamen Datenbus kommunizierende verteilte Anwendungen eines digitalen Netzwerks gemäß einem Ausführungsbeispiel der Erfindung; und
Fig. 3 ein Diagramm, welches die zeitliche Lage der einzelnen Anwendungen des in Fig. 1 gezeigten Ablaufplans sowie von Zeitschlitzen, um jeweilige Daten von den Anwendungen auszugeben bzw. zu den Anwendungen einzugeben, sowie eine Tabelle, in welcher die zeitliche Lage der Anwendungen nach ihrer Anfangszeit und die Lage der Zeitschlitze wiedergegeben ist .
Das Diagramm von Fig. 1 zeigt sechs Anwendungen oder Prozesse Task 1 bis Task 6, welche während eines bestimmten Zeitintervalls, welches hier als Nachrichtenzykluszeit bezeichnet wird, abgearbeitet werden sollen. Die von den einzelnen Anwendungen Task 1 bis Task 6 abgegebenen Nachrichten sind mit mi bis mς bezeichnet. Die Anwendung Task
1 gibt zwei Nachrichten aus, nämliche eine Nachricht mi an die Anwendung Task 5 und eine weitere Nachricht mi* an die Anwendung Task 2. Bei dem dargestellten Ausführungsbeispiel beginnt der Nachrichtenpfad bei der Anwendung Task 1 und endet bei der Anwendung Task 4.
Fig. 3 zeigt ein entsprechendes Zeitschema für die Anwendungen Task 1 bis Task 4 des in Fig. 1 gezeigten Ablaufdiagramms und die Lage der jeweiligen Zeitschlitze für die Ausgabe bzw. Eingabe von Daten von den jeweiligen Anwendungen bzw. zu den jeweiligen Anwendungen. Die zeitliche Dauer der einzelnen Anwendungen Task 1 bis Task 6 ist in Fig.
3 wie auch in Fig. 1 durch die Länge der die Anwendungen Task 1 bis Task 6 repräsentierenden Kästchen verdeutlicht. Die Anfangszeit der jeweiligen Anwendungen Task 1 bis Task 6 sowie die Lage der Zeitschlitze, in welchen die Daten von diesen ausgegebenen bzw. zu diesen eingegeben werden, sind in der Tabelle im einzelnen aufgeführt.
Die Gesamtdauer eines Nachrichtenzyklus bzw. Nachrichtenzykluszeit beträgt bei dem dargestellten Ausführungsbeispiel 700 μs . Diese setzt sich zusammen aus der Länge eines statischen Segments mit 580 μs, welches in 29 statische Zeitschlitze von jeweils 20 μs unterteilt ist, und einer Leerlaufzeit NIT (Network IdIe Time) von 120 μs .
Die Anfangszeit der Anwendung Task 1 liegt bei Si = 80 μs. Die Ausgabe der Nachricht mi an die Anwendung Task 5 erfolgt im Zeitschlitz 10, die Ausgabe der Nachricht mi* an die Anwendung Task 2 im nachfolgenden Zeitschlitz 11. Die Anwendung Task 2 beginnt bei 220 μs, die Anwendung Task 5 bei 240 μs . Die Ausgabe der Nachricht m5 der Anwendung Task 5 an die nachfolgende Anwendung Task 6, vgl. Fig. 1, erfolgt im Zeitschlitz 7, die Anwendung Task 6 selbst beginnt bei
460 μs . Die Ausgabe der Nachricht m2 von der Anwendung Task 2 an die ihr nachfolgende Anwendung Task 3, vgl. Fig. 1,
erfolgt im Zeitschlitz 19, die Anwendung Task 3 selbst beginnt bei 400 μs . Die Ausgaben der Nachrichten mς bzw. m3 von den Anwendungen Task 6 bzw. Task 3 an die Anwendung Task 4, welche bei selbst 580 μs beginnt, erfolgt in den Zeitschlitzen 27 bzw. 28. Mit dem Beginn der Anwendung Task 4 bei 580 μs beginnt auch die Leerlaufzeit NIT, welche länger ist als die Zeitdauer der letzten Anwendung Task 4 innerhalb des Nachrichtenzyklus.
Bei dem in den Fig. 1 und 3 gezeigten Ausführungsbeispiel sind keine Eingabe an die erste Anwendung Task 1 und keine Ausgabe von der letzten Anwendung Task 4 vorgesehen. Wenn jedoch beispielsweise eine Eingabe für die erste Anwendung Task 1 und/oder eine Ausgabe von der letzten Anwendung Task 4 stattfinden sollten, so würden diese übergreifend zwischen zwei aufeinanderfolgenden Nachrichtenzyklen stattfinden. Das heißt, eine Ausgabe einer Nachricht von einer der Anwendungen Task 2 bis Task 4 an die erste Anwendung Task 1 würde so erfolgen, dass sie dieser im nächsten Nachrichtenzyklus zur Verfügung steht, bzw. eine Ausgabe der letzten Anwendung Task 4 an eine der innerhalb eines Nachrichtenzyklus vorangehenden Anwendungen würde dementsprechend im folgenden Nachrichtenzyklus realisiert werden.
Die Diagramme der Fig. 1 und 3 sind, wie bereits vorher erwähnt, zum Zwecke des Beispiels extrem vereinfacht, in der praktischen Anwendung wären die Zahl der Anwendungen sehr viel größer und der Ablaufplan und das Zeitschema erheblich komplexer .
Im folgenden soll anhand des Flußdiagramms von Fig. 2 ein Ausführungsbeispiel eines Verfahrens zum automatischen Erzeugen eines Zeitschemas, wie es in Fig. 3 dargestellt ist, erläutert werden.
Grundlage ist der in Fig. 1 dargestellte Ablaufplan, welcher die Rangfolge der zu verarbeitenden einzelnen Anwendungen Task 1 bis Task 6 und die jeweiligen zwischen diesen auszutauschenden Nachrichten mi - mς darstellt. Dieser wird im Flußdiagramm von Fig. 2 bei 100 eingegeben. Nachfolgend wird bei 110 eine Berechnung des längsten Pfades innerhalb des Ablaufplans in Bezug auf die Rechenzeit für die einzelnen Anwendungen und die Menge der zu übertragenden Daten durchgeführt. Der längste Pfad wird mittels einer ersten Tiefenanalyse (DFS = Depth First Search) durchgeführt. Bei dem Ausführungsbeispiel von Fig. 1 werden ausgehend vom Task 4 die beiden Pfade Task 4 > Task 3 > Task 2 > Task 1 sowie Task 4 > Task 6 > Task 5 > Task 1 geprüft, wobei der erstgenannte Pfad als längster Pfad ermittelt wird.
Bei dem in Fig. 2 dargestellten Ausführungsbeispiel beginnt die Berechnung bei 120 mit der Ermittlung des Senkenelements Task 4 des Ablaufplans gemäß Fig. 1 unter Durchführung einer rekursiven Berechnung entlang dem vorher bestimmten längsten Pfad. Das Senkenelement Task 4 zeichnet sich dadurch aus, dass dieses keine Ausgangssignale aufweist sondern nur Eingangssignale (m3, m6) . Alternativ könnte gemäß einem anderen Ausführungsbeispiel die Berechnung auch in der umgekehrten Reihenfolge entlang dem besagten längsten Pfad durchgeführt werden, also beginnend beim Quellenelement Task 1. Hier jedoch, wie gesagt, wird beim Senkenelement Task 4 begonnen .
Bei 130 wird dann mit der Berechnung für die vorliegende Anwendung begonnen, hier also für das Senkenelement Task 4. Für die jeweils vorliegende Anwendung wird bei 140 geprüft, ob für diese eine Ausgabebeziehung zu einer oder mehreren anderen Anwendungen besteht. Wenn JA, dann werden der oder die Ausgabezeitschlitze für die vorliegende Anwendung bei 150 bestimmt, wenn NEIN, wird bei 160 geprüft, ob für die vorliegende Anwendung eine Eingabebeziehung von einer oder
mehreren anderen Anwendungen besteht. Beispielsweise im ersten Schleifendurchlauf für Task 4 besteht keine Ausgabebeziehung mehr, das Ergebnis bei 140 ist also NEIN. Bei 160 ist das Ergebnis für Task 4 „JA" weil eine weitere Eingabebeziehung außerhalb des längsten Pfades in m6 besteht.
Wenn JA, dann werden bei 170 der oder die Eingabezeitschlitze für die betreffende Anwendung bestimmt (im Beispiel gemäß Fig. 1 wird der Eingabezeitschlitz 28 für m3 bestimmt), wenn NEIN, dann wird bei 180 zum Vorgänger der vorliegenden Anwendung gewechselt (in diesem Beispiel zum Task 3) und es erfolgt ein Rücksprung nach 130, wo dann diese Vorgängeranwendung (Task 3) zur laufenden Anwendung (Task 4) gemacht und die beschriebene Bestimmung der Zeitschlitze von neuem vorgenommen wird.
Das Bestimmen der Ausgabezeitschlitze bei 150 erfolgt im einzelnen in der Weise, dass zunächst geprüft wird, ob die vorliegende Anwendung einen Nachfolger hat, dessen Anfangszeit schon berechnet bzw. bestimmt ist (im zweiten Schleifendurchlauf für Task 3 bedeutet das NEIN denn Task 3 hat nur einen Nachfolger - Task 4 - dessen Anfangszeit schon bestimmt ist) . Wenn NEIN, erfolgt eine weitere Prüfung dahingehend, ob die Nachricht (en) (m3) von der ausgebenden Anwendung (Task 3) schon einem Zeitschlitz zugewiesen ist, z.B. der gleichen Nachricht, wie sie auf dem längsten Pfad gesendet wird. Wenn NEIN, erfolgt eine Zuweisung der zwischen der ausgebenden Anwendung (Task 3) und der aufnehmenden Anwendung (Task 4) gesendeten Nachricht (en) (m3) auf dem nächsten in Frage kommenden freien Zeitschlitz (28) . Wenn JA, kann noch geprüft werden, ob das Nachfolgerelement des vorliegenden Elements eines auf einem Zweig ist, welcher hinsichtlich des Ablaufplans problematisch sein kann. Sollte dies der Fall sein, wäre die Anfangszeit der Anwendung auf dem längsten Pfad neu zu berechnen, deren Ausgabe zu einer
Inkonsistenz führt. Durch das Einfügen zusätzlicher Zeitschlitze kann eine solche Inkonsistenz behoben werden.
Die Anfangszeit der Nachfolgeranwendung kann vom Ende des letzten benutzten Zeitschlitzes berechnet werden. Dann wird die Zuweisung oder Bestimmung der Ausgabezeitschlitze bei 150 für die nächste Anwendung aufgerufen.
Wenn aber die vorher genannte Überprüfung, ob die vorliegende Anwendung einen Nachfolger hat, dessen Anfangszeit schon berechnet ist, zum Ergebnis JA führt, wird wiederum geprüft, ob für die Nachricht (en) von der ausgebenden Anwendung schon ein Zeitschlitz zugewiesen ist, z.B. die gleiche Nachricht wie auf dem längsten Pfad gesendet. Wenn NEIN, erfolgt für die zwischen der sendenden Anwendung und der aufnehmenden Anwendung übermittelten Nachricht (en) eine Zuweisung auf den nächsten in Frage kommenden freien Zeitschlitz. Wenn JA, wird die vorliegende Zeit (Bus-Zeit) am Ende des letzten Zeitschlitzes zur Übertragung der Nachricht vom vorliegenden Element zum Nachfolgerelement verwendet. Wenn die bereits vorher erläuterte Konsistenzüberprüfung das Vorliegen eines Konsistenzfehlers ergibt, kann in einer ähnlichen Weise wie vorher erläutert verfahren werden.
Die Bestimmung der Eingabezeitschlitze bei 170 erfolgt gemäß dem vorliegenden Ausführungsbeispiel in der Weise:
1. Bestimmen des Vorgängers der vorliegenden Anwendung auf dem längsten Pfad (im genannten Beispiel für Task 3 ist die Vorgängeranwendung Task 2) .
2. Zuweisen der zwischen der ausgebenden Anwendung (Task 2) und der aufnehmenden Anwendung (Task 3) übertragenen Nachricht (en) (m2) auf den nächsten freien Zeitschlitz
(19) .
3. Die Anfangszeit für die ausgebende Anwendung (Task 2) wird relativ zu der im vorherigen Schritt 2 berechneten
Zeitschlitzposition (19) und die vorliegende Zeit
(vorliegende Bus-Zeit) berechnet. Dies stellt einen minimalen Abstand zwischen ausgebender (Task 2) und aufnehmender Anwendung (Task 3) sicher.
4. Nachdem alle anderen Anwendungen mit Eingabezeitbeziehungen und Nachrichten in der gleichen Weise bestimmt worden sind, folgen wieder die Schritte 2 und 3 für die nächste Anwendung.
5. Die laufende Zeit wird auf die früheste in Schritt 3 berechnete Startzeit gelegt.
Das Bestimmen der Ausgabezeitschlitze bei 150 umfaßt eine Berechnung der Zeitschlitze, welche notwendig sind, um die Nachricht (en) von der ausgebenden Anwendung (vorliegende Anwendung) zu der entsprechenden aufnehmenden Anwendung zu übertragen. Bei der Konsistenzüberprüfung wird sichergestellt, ob diese Ausgabezeitschlitze enden, bevor die aufnehmende Anwendung beginnt. Wenn dies der Fall wäre, wird der betreffende Zweig als Problem behaftet markiert. Die Problemlösung kann erfolgen durch eine entsprechende Verschiebung der betroffenen Anwendungen zueinander, beispielsweise durch Einfügen zusätzlicher Zeitschlitze, respektive einem größeren Abstand zwischen den Anwendungen. Die Anfangszeit einer Anwendung auf dem längsten Pfad, deren Ausgabezweig die Konsistenzprüfung verfehlt, kann beispielsweise inkrementierend um jeweils einen Schlitz verschoben werden.
Durch die Erfindung wird ein automatisches Erzeugen des Zeitschemas in Form eines rekursiven Verfahrens für auf einem zeitgesteuerten Kommunikationsnetzwerk basierende Echtzeitsysteme geschaffen, bei der eine Anwendungs- bzw.
Prozessplanung auf Systemebene mit einer Nachrichtenplanung auf Kommunikationsebene integriert werden. Dies gestattet eine automatische Erzeugung des Zeitschemas, welche garantiert, dass die Echtzeiterfordernisse des betrachteten Systems erfüllt sind. Damit ist eine Verbesserung von Zuverlässigkeit und Vorhersehbarkeit bei der Kommunikation verbunden .
Claims
1. Verfahren zum automatischen Erzeugen eines Zeitschemas für über einen zeitgesteuerten gemeinsamen Datenbus kommunizierende verteilte Anwendungen oder Prozesse eines digitalen Netzwerks, wobei die einzelnen Anwendungen oder Prozesse in einem vorgegebenen Ablaufplan und vorgegebener Reihenfolge jeweils während vorgegebener Zeitdauer durchgeführt und Nachrichten während Zeitschlitzen vorgegebener Länge innerhalb eines Nachrichtenzyklus über den gemeinsamen Datenbus von jeweiligen Anwendungen ausgegeben oder jeweiligen Anwendungen eingegeben werden, wobei aus der Reihenfolge und Zeitdauer der einzelnen Anwendungen und der Anzahl und Länge der Zeitschlitze die Nachrichtenzykluszeit mit einer Länge entsprechend mindestens einem längsten innerhalb eines Nachrichtenzyklus zurückzulegenden Nachrichtenpfad berechnet wird, der Eingabezeitschlitz der letzten Anwendung innerhalb eines Nachrichtenzyklus bestimmt wird, und ausgehend vom Eingabezeitschlitz der letzten Anwendung die Ausgabe- und Eingabezeitschlitze der jeweils vorangehenden Anwendungen bis zum Ausgabezeitschlitz der ersten Anwendung innerhalb eines Nachrichtenzyklus bestimmt werden .
2. Verfahren nach dem Oberbegriff des Anspruchs 1, dadurch gekennzeichnet, dass aus der Reihenfolge und Zeitdauer der einzelnen Anwendungen und der Anzahl und Länge der Zeitschlitze die Nachrichtenzykluszeit mit einer Länge entsprechend mindestens einem längsten innerhalb eines Nachrichtenzyklus zurückzulegenden Nachrichtenpfad berechnet wird, dass der Ausgabezeitschlitz der ersten Anwendung innerhalb eines Nachrichtenzyklus bestimmt wird, und dass ausgehend vom Ausgabezeitschlitz der ersten Anwendung die Eingabe- und Ausgabezeitschlitze der jeweils nachfolgenden Anwendungen bis zum Eingabezeitschlitz der letzten Anwendung innerhalb des Nachrichtenzyklus bestimmt werden .
3. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass für jede Anwendung automatisch geprüft wird, ob für diese eine Ausgabe an eine oder mehrere folgende andere Anwendungen vorgesehen ist.
4. Verfahren nach Anspruch 3, dadurch gekennzeichnet, dass, wenn für die vorliegende Anwendung eine Ausgabe an eine oder mehrere folgende andere Anwendungen vorgesehen ist, automatisch geprüft wird, ob für diese eine Nachfolgeranwendung vorgesehen ist, der bereits ein Eingabezeitschlitz zugewiesen ist.
5. Verfahren nach Anspruch 4, dadurch gekennzeichnet, dass, wenn für die vorliegende Anwendung eine Nachfolgeranwendung mit einem bereits zugewiesenen Eingabezeitschlitz vorgesehen ist, deren Eingabezeitschlitz als Ausgabezeitschlitz für die vorliegende Anwendung zugewiesen wird.
6. Verfahren nach Anspruch 4, dadurch gekennzeichnet, dass, wenn für die vorliegende Anwendung keine Nachfolgeranwendung mit einem bereits zugewiesenen Eingabezeitschlitz vorgesehen ist, der vorliegenden Anwendung automatisch der nächste folgende freie Zeitschlitz als Ausgabezeitschlitz zugewiesen wird.
7. Verfahren nach Anspruch 5 oder 6, dadurch gekennzeichnet, dass für die vorliegende Anwendung die Vorgängeranwendung auf dem längsten innerhalb eines Nachrichtenzyklus zurückzulegenden Nachrichtenpfad bestimmt und deren Ausgabezeitschlitz als Eingabezeitschlitz für die vorliegende Anwendung bestimmt wird.
8. Verfahren nach Anspruch 7, dadurch gekennzeichnet, dass die Anfangszeit der Vorgängeranwendung ausgehend von deren als Eingabezeitschlitz für die vorliegende Anwendung verwendeten Ausgabezeitschlitz berechnet und festgelegt wird.
9. Verfahren nach einem der Ansprüche 3 bis 8, dadurch gekennzeichnet, dass die jeweiligen Verfahrensschritte für alle Zweige des Ablaufplans so lange wiederholt werden bis der Ausgabezeitschlitz und die Anfangszeit der ersten Anwendung innerhalb eines Nachrichtenzyklus zugewiesen sind.
10. Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass für jede Anwendung automatisch geprüft wird, ob für diese eine Eingabe von einer oder mehreren zeitlich vorangehenden anderen Anwendungen vorgesehen ist.
11. Verfahren nach Anspruch 10, dadurch gekennzeichnet, dass, wenn für die vorliegende Anwendung eine Eingabe von einer oder mehreren zeitlich vorangehenden anderen Anwendungen vorgesehen ist, automatisch geprüft wird, ob für diese eine Vorgängeranwendung vorgesehen ist, der bereits ein Ausgabezeitschlitz zugewiesen ist.
12. Verfahren nach Anspruch 11, dadurch gekennzeichnet, dass, wenn für die vorliegende Anwendung eine Vorgängeranwendung mit einem bereits zugewiesenen Ausgabezeitschlitz vorgesehen ist, deren Ausgabezeitschlitz als Eingabezeitschlitz für die vorliegende Anwendung zugewiesen wird.
13. Verfahren nach Anspruch 11, dadurch gekennzeichnet, dass, wenn für die vorliegende Anwendung keine Vorgängeranwendung mit einem bereits zugewiesenen Ausgabezeitschlitz vorgesehen ist, der vorliegenden Anwendung automatisch der nächste vorangehende freie Zeitschlitz als Eingabezeitschlitz zugewiesen wird.
14. Verfahren nach Anspruch 12 oder 13, dadurch gekennzeichnet, dass für die vorliegende Anwendung die Nachfolgeranwendung auf dem längsten innerhalb eines Nachrichtenzyklus zurückzulegenden Nachrichtenpfad bestimmt und deren Eingabezeitschlitz als Ausgabezeitschlitz für die vorliegende Anwendung bestimmt wird.
15. Verfahren nach Anspruch 14, dadurch gekennzeichnet, dass die Beendigungszeit der Nachfolgeranwendung ausgehend von deren als Ausgabezeitschlitz für die vorliegende Anwendung verwendeten Eingabezeitschlitz berechnet und festgelegt wird.
16. Verfahren nach einem der Ansprüche 10 bis 15, dadurch gekennzeichnet, dass die jeweiligen Verfahrensschritte für alle Zweige des Ablaufplans so lange wiederholt werden, bis der Eingabezeitschlitz und die Beendigungszeit der letzten Anwendung innerhalb eines Nachrichtenzyklus zugewiesen sind.
17. Verfahren nach einem der Ansprüche 1 bis 16, dadurch gekennzeichnet, dass der Nachrichtenzyklus noch um Leerlaufzeitschlitze erweitert wird.
18. Verfahren nach einem der Ansprüche 1 bis 17, dadurch gekennzeichnet, dass eine Konsistenzüberprüfung durchgeführt wird, um sicherzustellen, dass die Ausgabezeitschlitze nicht enden bevor die aufnehmende Anwendung beginnt.
19. Verfahren nach Anspruch 18, dadurch gekennzeichnet, dass, wenn die Konsistenzüberprüfung ergibt, dass die Ausgabezeitschlitze enden bevor die aufnehmende Anwendung beginnt, wird der betreffende Zweig als Problem behaftet markiert und zur Problemlösung eine entsprechende Verschiebung der betroffenen Anwendungen zueinander, insbesondere durch Einfügen zusätzlicher Zeitschlitze vorgenommen wird.
20. Verfahren nach Anspruch 19, dadurch gekennzeichnet, dass die Anfangszeit einer Anwendung auf dem längsten Pfad, deren Ausgabezweig die Konsistenzprüfung verfehlt, inkrementierend um jeweils einen Schlitz verschoben wird.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102008019287.2 | 2008-04-16 | ||
DE102008019287A DE102008019287B4 (de) | 2008-04-16 | 2008-04-16 | Verfahren zum automatischen Erzeugen eines Zeitschemas für über einen zeitgesteuerten gemeinsamen Datenbus kommunizierende verteilte Anwendungen oder Prozesse eines digitalen Netzwerks |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2009127697A1 true WO2009127697A1 (de) | 2009-10-22 |
Family
ID=40809916
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/EP2009/054544 WO2009127697A1 (de) | 2008-04-16 | 2009-04-16 | Verfahren zum automatischen erzeugen eines zeitschemas für über einen zeitgesteuerten gemeinsamen datenbus kommunizierende verteilte anwendungen oder prozesse eines digitalen netzwerks |
Country Status (2)
Country | Link |
---|---|
DE (1) | DE102008019287B4 (de) |
WO (1) | WO2009127697A1 (de) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130254256A1 (en) * | 2010-11-19 | 2013-09-26 | Huawei Device Co., Ltd | Method and Apparatus for Data Interaction |
CN109818876A (zh) * | 2019-03-11 | 2019-05-28 | 西安电子科技大学 | 全局最优化时间触发业务调度表的生成方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102017200914B4 (de) * | 2016-12-16 | 2023-12-21 | Bayerische Motoren Werke Aktiengesellschaft | Verfahren und Vorrichtung zur Steuerung der Energieeffizienz eines Kommunikationsbordnetzes |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0503212A1 (de) * | 1991-03-15 | 1992-09-16 | International Business Machines Corporation | Übertragungsnetz und Verfahren zur Steuerung des Zugangs zu den Bussen in diesem Netz |
EP0952707A2 (de) * | 1998-04-18 | 1999-10-27 | LUCAS INDUSTRIES public limited company | Serielles Datenübertragungsbussystem |
WO2004105278A1 (en) * | 2003-05-20 | 2004-12-02 | Philips Intellectual Property & Standards Gmbh | Time-triggered communication system and method for the synchronization of a dual-channel network |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4980824A (en) * | 1986-10-29 | 1990-12-25 | United Technologies Corporation | Event driven executive |
US5978578A (en) * | 1997-01-30 | 1999-11-02 | Azarya; Arnon | Openbus system for control automation networks |
US6483846B1 (en) * | 1998-07-10 | 2002-11-19 | Honeywell Inc. | Middleware-based real-time communication system |
US20040208158A1 (en) * | 1998-08-19 | 2004-10-21 | Fellman Ronald D. | Methods and apparatus for providing quality-of-service guarantees in computer networks |
-
2008
- 2008-04-16 DE DE102008019287A patent/DE102008019287B4/de not_active Expired - Fee Related
-
2009
- 2009-04-16 WO PCT/EP2009/054544 patent/WO2009127697A1/de active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0503212A1 (de) * | 1991-03-15 | 1992-09-16 | International Business Machines Corporation | Übertragungsnetz und Verfahren zur Steuerung des Zugangs zu den Bussen in diesem Netz |
EP0952707A2 (de) * | 1998-04-18 | 1999-10-27 | LUCAS INDUSTRIES public limited company | Serielles Datenübertragungsbussystem |
WO2004105278A1 (en) * | 2003-05-20 | 2004-12-02 | Philips Intellectual Property & Standards Gmbh | Time-triggered communication system and method for the synchronization of a dual-channel network |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130254256A1 (en) * | 2010-11-19 | 2013-09-26 | Huawei Device Co., Ltd | Method and Apparatus for Data Interaction |
US9203896B2 (en) * | 2010-11-19 | 2015-12-01 | Huawei Device Co., Ltd. | Method and apparatus for data interaction |
US9686376B2 (en) | 2010-11-19 | 2017-06-20 | Huawei Device Co., Ltd. | Method and apparatus for data interaction |
CN109818876A (zh) * | 2019-03-11 | 2019-05-28 | 西安电子科技大学 | 全局最优化时间触发业务调度表的生成方法 |
CN109818876B (zh) * | 2019-03-11 | 2021-04-27 | 西安电子科技大学 | 全局最优化时间触发业务调度表的生成方法 |
Also Published As
Publication number | Publication date |
---|---|
DE102008019287B4 (de) | 2010-07-22 |
DE102008019287A1 (de) | 2009-10-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE102010004298B4 (de) | Verhinderung eines Nachrichtenverlustes in CAN-Systemen | |
EP1723750B1 (de) | Verfahren zur Datenkommunikation | |
WO2007101590A1 (de) | Verfahren zur erstellung eines optimierten ablaufplans für ein zeitgesteuertes verteiltes rechnersystem | |
EP2306349A1 (de) | Verfahren zur Prüfung der Echtzeitfähigkeit eines Systems | |
DE102013011850A1 (de) | Numerische Steuerung für die Kommunikation mit E/A Einheiten | |
EP3176696A1 (de) | Verfahren zur realisierung und zum ausführen einer umfangreichen echtzeitcomputeranwendung | |
EP3620923B1 (de) | Watchdog zur überwachung eines prozessors | |
WO2009127697A1 (de) | Verfahren zum automatischen erzeugen eines zeitschemas für über einen zeitgesteuerten gemeinsamen datenbus kommunizierende verteilte anwendungen oder prozesse eines digitalen netzwerks | |
EP1220104A2 (de) | Verfahren und Kommunikationssystem zum Austausch von Daten zwischen mindestens zwei Teilnehmern über ein Bussystem | |
DE102016221526A1 (de) | Vorrichtung und Verfahren zum Bearbeiten einer Mehrzahl Aufgaben | |
EP1979793B1 (de) | Verfahren und vorrichtung zur adressvergabe in einem system mit mehreren parallel angeordneten generatoreinheiten | |
EP2299614A2 (de) | Vorrichtung und Verfahren zur Zeitsynchronisation in einem Kommunikationsnetz | |
DE3023699A1 (de) | Verfahren und anordnung zur erzeugung von impulsen vorgegebener zeitrelation innerhalb vorgegebener impulsintervalle mit hoher zeitlicher aufloesung | |
EP2191338B1 (de) | System zur erstellung eines simulationsprogramms | |
DE102009000581A1 (de) | Synchronisierung zweier Kommunikationsnetzwerke eines elektronischen Datenverarbeitungssystems | |
DE102004050293B3 (de) | Verfahren zur Simulation des Betriebs eines Netzwerks | |
DE102020007145A1 (de) | Verfahren zur Anordnung von Laufzeitkomponenten auf Ausführungseinheiten einer Recheneinheit | |
DE102009000584A1 (de) | Diagnose der Synchronisation zweier Kommunikationsnetzwerke eines elektronischen Datenverarbeitungssystems | |
WO2023066626A1 (de) | Verfahren zur verarbeitung von daten mit einem datenverarbeitungsnetzwerk umfassend eine mehrzahl von datenverarbeitungsmodulen, datenverarbeitungsmodul und datenverarbeitungsnetzwerk | |
DE102014016884A1 (de) | Datenflußsteuerung und Loadbalancing in Fahrzeugsteuergeräten mit Mehrkernprozessoren | |
WO2022063663A1 (de) | Verfahren, datenverarbeitungsmodul und datenverarbeitungsnetzwerk zur verarbeitung von daten | |
DE102021209509A1 (de) | Verfahren und Vorrichtung zum Bearbeiten von zumindest einer ersten und einer zweiten Rechenoperation in einer Recheneinheit | |
DE102018207175A1 (de) | Verfahren und Vorrichtung zum Aktivieren von Tasks in einem Betriebssystem | |
DE102021211712A1 (de) | Datenverarbeitungsnetzwerk zur Datenverarbeitung | |
DE10214526B4 (de) | Verfahren zur Kalibrierung einer Zeitsteuerung eines Prozessorsystems und Prozessorsystem zur Realisierung des Verfahrens |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 09731903 Country of ref document: EP Kind code of ref document: A1 |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 09731903 Country of ref document: EP Kind code of ref document: A1 |