AT520049B1 - Verfahren und Vorrichtung zum sequentiellen Übertragen von Daten aus mehreren Datenquellen - Google Patents
Verfahren und Vorrichtung zum sequentiellen Übertragen von Daten aus mehreren Datenquellen Download PDFInfo
- Publication number
- AT520049B1 AT520049B1 ATA50414/2017A AT504142017A AT520049B1 AT 520049 B1 AT520049 B1 AT 520049B1 AT 504142017 A AT504142017 A AT 504142017A AT 520049 B1 AT520049 B1 AT 520049B1
- Authority
- AT
- Austria
- Prior art keywords
- data
- transmission
- data packets
- time
- available
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2416—Real-time traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2425—Traffic characterised by specific attributes, e.g. priority or QoS for supporting services specification, e.g. SLA
- H04L47/2433—Allocation of priorities to traffic types
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2475—Traffic characterised by specific attributes, e.g. priority or QoS for supporting traffic characterised by the type of applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/28—Flow control; Congestion control in relation to timing considerations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/32—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/52—Queue scheduling by attributing bandwidth to queues
- H04L47/522—Dynamic queue service slot or variable bandwidth allocation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/6215—Individual queue per QOS, rate or priority
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W72/00—Local resource management
- H04W72/12—Wireless traffic scheduling
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Um es zu ermöglichen, Daten aus einer Mehrzahl von Datenquellen über ein einziges Übertragungsmedium unabhängig voneinander zu übertragen wird erfindungsgemäß von simultan zur Übertragung bereitstehenden Datenpaketen jeweils benötigten Bandbreite ermittelt, und mit einer verfügbaren Bandbreite des Übertragungsmediums verglichen. Weiters werden Echtzeitkriterien / zeitunabhängige Kritieren der simultan zur Übertragung bereitstehenden Datenpakete ermittelt und falls die benötigte Bandbreite aller simultan zur Übertragung bereitstehenden Datenpakete die verfügbare Bandbreite des Übertragungsmediums nicht überschreitet / überschreitet, wobei die Echtzeitkriterien / zeitunabhängigen Kriterien von den zugehörigen Datenquellen abhängen. Die Echtzeitkriterien / zeitunabhängigen Kriterien der simultan zur Übertragung bereitstehenden Datenpakete werden verglichen und das nächste in das Übertragungsmedium einzuspeisenden Datenpakets auf Basis des Vergleichs der Echtzeitkriterien / zeitunabhängigen Kriterien ermittelt und eingespeist.
Description
Beschreibung
VERFAHREN UND VORRICHTUNG ZUM SEQUENTIELLEN ÜBERTRAGEN VON DATEN AUS MEHREREN DATENQUELLEN
[0001] Die gegenständliche Erfindung betrifft ein Verfahren und eine Vorrichtung zum sequentiellen Übertragen von Datenpaketen von einem Sender über ein Übertragungsmedium an zumindest einen Empfänger.
[0002] Eine Datenquelle eines Senders und eine Datensenke zumindest eines Empfängers werden an Prüfständen, aber auch in anderen Anwendungen, zur Übertragung von Datenpaketen zur Datenkommunikation häufig mittels eines Übertragungsmediums miteinander verbunden, was beispielsweise durch einen Bus realisiert wird. Insbesondere können an einem Prüfstand beispielsweise Steuergeräte Datenquellen bereitstellen und zugehörige Testsysteme, beispielsweise Validation&Verification-Systeme (V&V-Systeme) wie Hardware-in-the-Loop-Systeme (HiL-Systeme) Datensenken, oder umgekehrt. Steuergeräte und Testsysteme kommunizieren typischerweise über ein Controller Area Network (CAN)-Bussystem. An einem CAN-Bus sind üblicherweise mehrere Knoten vorhanden, wobei jeder Knoten abwechselnd an die weiteren Knoten senden kann. Jeder Knoten kann Datenquellen und/oder Datensenken aufweisen. Sind jedoch mehrere Datenquellen, z.B. mehrere Tasks die auf mehreren Kernen eines Mehrkern-Prozessors laufen, in einem Testsystem vorhanden, dann ist eine Übertragung der Datenpakete aus den vorhandenen Datenquellen über ein einziges Übertragungsmedium nicht mehr ohne weiteres möglich, da das Übertragungsmedium oft exklusiv nur einem Kern des Mehrkern-Prozessors und oft auch nur einem Task zugeordnet werden kann. Die Installation mehrerer Übertragungsmedien, z.B. in Form von Bus-Verbindungen, ist jedoch zu vermeiden, da dies einen zusätzlichen Material- und Installationsaufwand und zusätzliche Kosten darstellt. Üblicherweise kann über ein Übertragungsmedium allerdings nur ein Übertragungsprotokoll laufen, z.B. CANopen oder SAE J1939. Würde ein derartiges Protokoll zum Übertragen von Datenpaketen aus mehreren Datenquellen verwendet werden, so wären die von den Datenquellen gelieferten Datenpakete voneinander abhängig, beispielsweise durch Einordnen in ein gemeinsames Adress-Schema, etc. Oftmals ist es jedoch erforderlich, dass Datenpakete aus unterschiedlichen Datenquellen unabhängig voneinander über ein Übertragungsmedium übertragen werden müssen.
[0003] Die US2013051257 zeigt ein Verfahren, bei dem aus mehreren Datenquellen das nächste zu übertragende Datenpaket ausgewählt wird, indem die Deadlines der gleichzeitig verfügbaren Datenpakete der jeweiligen Datenquellen als Kriterium herangezogen werden. Damit ist das Verfahren jedoch „starr“ und es kann auf etwaige Fehler in der Übertragung nicht flexibel reagiert werden.
[0004] In der US 2003/189943 A1 werden Echtzeit-Kriterien gegenüber Nicht-Echtzeit-Kriterien bevorzugt behandelt. Die Daten werden in eine Flow Control Unit geführt und über Flow Controller auf parallele FIFO-Queues aufteilt. Damit wird eine parallele Abarbeitung der Datenpakete ermöglicht. Die US 7,072,295 B1 offenbart eine Aufteilung einer verfügbaren Bandbreite, wobei Datenpakete auch aus unterschiedlichen Datenquellen stammen können. In der US 2007/002750 A1 ist ein „Shared Medium“ offenbart, wobei mehrere User sich das „Shared Medium“ teilen. Dabei wird für jeden User eine Kostenfunktion erstellt und dann ein User bevorzugt behandelt. Dabei können auch zeitkritische Daten bevorzugt werden. Die EP 1 873 979 A1 und DE 102012214671 A1 offenbarten weitere Systeme zur Datenübertragung.
[0005] Es ist somit Aufgabe der gegenständlichen Erfindung, ein Verfahren anzugeben, das es ermöglicht, Daten aus einer Mehrzahl von Datenquellen über ein einziges Übertragungsmedium unabhängig voneinander zu übertragen.
[0006] Diese Aufgabe wird erfindungsgemäß durch ein Verfahren zum sequentiellen Übertragen von Datenpaketen von einem Sender über ein Übertragungsmedium an zumindest einen Empfänger gelöst, wobei der Sender eine Mehrzahl an Datenquellen aufweist, die jeweils simul tan Datenpakete zur Übertragung bereit stellen, und das Verfahren folgende Verfahrensschritte a) bis f) umfasst: [0007] a) Ermittlung der von den simultan zur Übertragung bereitstehenden Datenpaketen jeweils benötigten Bandbreite, [0008] b) Vergleich der von den der simultan zur Übertragung bereitstehenden Datenpaketen zur Übertragung benötigten Bandbreite mit einer verfügbaren Bandbreite des Übertragungsmediums, [0009] c) Ermittlung von Echtzeitkriterien der simultan zur Übertragung bereitstehenden Datenpakete, falls die benötigte Bandbreite aller simultan zur Übertragung bereitstehenden Datenpakete die verfügbare Bandbreite des Übertragungsmediums nicht überschreitet, oder [0010] Ermittlung von zeitunabhängigen Kriterien der simultan zur Übertragung bereitstehenden Datenpakete, falls die notwendige Bandbreite zumindest eines simultan zur Übertragung bereitstehenden Datenpakets die verfügbare Bandbreite des Übertragungsmediums überschreitet, [0011] wobei die Echtzeitkriterien und zeitunabhängigen Kriterien von den zugehörigen Datenquellen abhängen, [0012] d) Vergleich der Echtzeitkriterien oder zeitunabhängigen Kriterien der simultan zur Übertragung bereitstehenden Datenpakete, [0013] e) Bestimmung des nächsten in das Übertragungsmedium einzuspeisenden Datenpakets auf Basis des Vergleichs der Echtzeitkriterien oder zeitunabhängigen Kriterien, [0014] f) Einspeisen des nächsten in das Übertragungsmedium einzuspeisenden Datenpakets in das Übertragungsmedium.
[0015] Ebenso wird die Aufgabe durch einen Verbindungsmanager gelöst, der ausgestaltet ist die oben genannten Verfahrensschritte a) bis f) durchzuführen. Da die gleichzeitig zur Übertragung bereitstehenden Datenpakete aus unterschiedlichen Datenquellen stammen, werden die Datenpakete aus mehreren Kanälen gemultiplexed, wobei jede Datenquelle einen Kanal darstellt. Mehrere Datenquellen liefern somit mehrere Informationsströme in Form von Datenpaketen. Diese Informationsströme werden miteinander verzahnt und daraufhin sequentiell über das gemeinsame Übertragungsmedium übertragen. Das erfindungsgemäße Verfahren entspricht somit einem Multiplexen von Datenpaketen aus einer Mehrzahl an Datenquellen auf ein gemeinsames Übertragungsmedium. Die Datenquellen können unabhängig voneinander agieren und müssen sich also nicht um das Verzahnen der Datenpakete oder um das Versenden der Datenpakete kümmern, sondern lediglich die Datenpakete bereitstellen und gegebenenfalls die zu erwartende Datenmenge pro Zeiteinheit bekannt geben. Für die Datenquellen selbst besteht somit kein Unterschied zu einer herkömmlichen Verbindung, abgesehen von einer gegebenenfalls für eine Datenquelle geringeren nutzbaren Bandbreite auf dem Übertragungsmedium. Es liegen Datenpakete aus unterschiedlichen Datenquellen simultan, d.h. parallel, zur Übertragung bereit.
[0016] Es wird erfindungsgemäß, z.B. durch den Verbindungsmanager, entschieden, welche Datenpakete welcher Datenquelle wann über das gemeinsame Übertragungsmedium übertragen werden. Hierzu wird erst jeweils die von den simultan zur Übertragung bereitstehenden Datenpaketen notwendige Bandbreite überprüft und mit einer verfügbaren Bandbreite des Übertragungsmediums verglichen. Ist die notwendige Bandbreite der jeweiligen Datenpakete kleiner gleich der verfügbaren Bandbreite des Übertragungsmediums, so wird auf Basis von Echtzeitkriterien der simultan zur Übertragung bereitstehenden Datenpakete bestimmt welches Datenpaket als nächstes in das Übertragungsmedium einzuspeisen ist. Diese Echtzeitkriterien der Datenpakete werden von den zugehörigen Datenquellen festgelegt und stellen eine Information hinsichtlich der Datenpakete dar, die von der Systemzeit (also der Zeit in der Anordnung zur Datenübertragung), bzw. dem Entstehungszeitpunkt der Datenpakete (der normalerweise auch in der Systemzeit gegeben ist) abhängt. Ist die notwendige Bandbreite der jeweiligen Datenpakete allerdings größer als die die verfügbare Bandbreite des Übertragungsmediums, so wird auf Basis von zeitunabhängigen Kriterien der simultan zur Übertragung bereitstehenden Datenpakete bestimmt, welches Datenpaket als nächstes in das Übertragungsmedium einzuspeisen ist. Zeitunabhängige Kriterien haben keine Relation zur Systemzeit, sondern hängen nur von der Datenquelle, bzw. dem Typ der Datenquelle ab. Somit kann flexibel auf temporäre Engpässe in der Bandbreite, d.h. der Übertragungskapazität des Übertragungsmediums reagiert werden. Ein solcher Engpass kann beispielsweise an einem CAN-Bus durch kurzfristige Reduktion der effektiven Datenrate auftreten. Diese Reduktion der Datenrate kann wiederum durch vermehrtes Auftreten von Re-Transmits in Folge hervorgerufen werden. Auf Basis dieser Echtzeitkriterien bzw. der zeitunabhängigen Kriterien werden die jeweils parallel anliegenden Datenpakete miteinander verzahnt und daraufhin sequentiell über das gemeinsame Übertragungsmedium übertragen. Die Übertragung kann sowohl kabelgebunden, als auch kabellos von Statten gehen, d.h, dass das Übertragungsmedium sowohl durch ein Kabel, als auch durch einen Kanal „im Übertragungsmedium Luft“ repräsentiert werden kann.
[0017] Vorteilhafterweise werden die Verfahrensschritte a) bis f) wiederholt, bis kein zu übertragendes Datenpaket mehr zur Übertragung bereit steht. Damit können alle von den Datenquellen bereitgestellten Datenpakete abgearbeitet und übertragen werden.
[0018] Es können jedoch auch lediglich die Verfahrensschritte b) bis f) wiederholt werden, bis kein zu übertragendes Datenpaket mehr zur Übertragung bereit steht. Hierzu ist es hilfreich, wenn die zur Übertragung notwendige Bandbreite jeweils aller Datenpakete vorab bestimmt und beispielsweise zwischengespeichert wird.
[0019] Vorteilhafterweise kann pro Datenquelle ein Datenbuffer vorhanden sein, wobei die Datenquellen jeweils den zugehörigen Datenbuffer mit Datenpaketen nach einem First-In-First-Out-Prinzip füllen, wobei die Datenpakete an der Anfangsposition des jeweiligen Datenbuffers eingespeist werden und die zu übertragenden Datenpakete jeweils an der Endposition des jeweiligen Datenbuffers zur Übertragung bereit stehen. Die einzelnen Datenbuffer speichern die jeweils die von den Datenquellen gelieferten Datenpakete zwischen, womit die Datenpakete innerhalb eines Datenbuffers sequentiell und von Datenbuffer zu Datenbuffer parallel zur Übertragung zur Verfügung stellen. Da mehrere Datenbuffer parallel vorhanden sind, liegen somit pro Datenbuffer zu übertragende Datenpakete an, die vor der Übertragung über das Übertragungsmedium erfindungsgemäß verzahnt werden - natürlich nur, sofern der betreffende Datenbuffer nicht leer ist.
[0020] Als Echtzeitkriterien der Datenpakete werden Kriterien angesehen, die zeitkritisch sind, d.h. dass ein zeitliches Kriterium der Datenpakete meist in Relation zur Systemzeit relevant ist.
[0021] So können als Echtzeitkriterien beispielsweise Zykluszeiten und Entstehungszeitpunkte verwendet werden, aus welchen wiederum Deadlines der Datenpakete berechnet werden.
[0022] So kann als Echtzeitkriterium der Datenpakete beispielsweise zumindest einer der folgenden Werte verwendet werden: Zykluszeit; Entstehungszeitpunkt ; aus Zykluszeit und Entstehungszeitpunkt berechnete Deadlines der Datenpakete. Damit dienen die Deadlines wiederum als Echtzeitkriterien. Das bedeutet, dass aus den parallel zur Übertragung vorliegenden Datenpaketen der einzelnen Datenquellen bzw. gegebenenfalls Datenbuffer das Datenpaket mit der kürzesten Deadline ausgewählt und in das Übertragungsmedium eingespeist, d.h. übertragen wird. Deadlines beschreiben die spätest erlaubten Sendezeitpunkte der Datenpakete, d.h. den spätesten Zeitpunkt zu dem das Datenpaket auf das Kommunikationsmedium eingespeist werden soll. Insbesondere bei Verwendung von Datenbuffern können die Deadlines der Datenpakete, die bereits von den Datenquellen generiert wurden und in den Datenbuffern vorliegen auch in einer Deadlineliste zwischengespeichert werden und bei Bedarf, z.B. vom gegebenenfalls vorhandenen Verbindungsmanager, ausgelesen werden.
[0023] Die von den Datenpaketen benötigte Bandbreite kann aus den Echtzeitkriterien der Datenpakete abgeleitet werden und die verfügbare Bandbreite des Übertragungsmediums aus einer Systemzeit abgeleitet werden. Vorteilhafterweise werden die Echtzeitkriterien von der zugehörigen Datenquelle bestimmt. So können aus den Zykluszeiten und Entstehungszeitpunk ten berechnete Deadlines der Datenpakete mit einer Systemzeit verglichen werden um auf eine Überschreitung der notwendigen Bandbreite der Datenpakete über die verfügbare Bandbreite des Übertragungsmediums zu schließen. Liegt eine Deadline eines noch nicht gesendeten Datenpakets vor der aktuellen Systemzeit, so ist die verfügbare Bandbreite des Übertragungsmediums kleiner als die notwendige Bandbreite des Datenpakets, dessen Deadline verletzt wurde. Damit ist die verfügbare Bandbreite des Übertragungsmediums nicht ausreichend.
[0024] Diese zeitunabhängigen Kriterien der Datenpakete können jeweils durch eine festgelegte Kritikalität repräsentiert werden. Eine hohe Kritikalität bedeutet, dass die Datenpakete sehr kritisch, z.B. sicherheitsrelevant, sind, wie z.B. die Sensordaten eines Airbags, einer Bremse etc. Dem gegenüber bedeutet eine niedrige Kritikalität, dass die Datenpakete unkritisch sind, wie beispielsweise von einer Komfort- oder Unterhaltungsfunktion geliefert. Die Kritikalität der Datenpakete ist von der zugehörigen Datenquelle abhängig oder wird von der Datenquelle festgelegt oder wird der Datenquelle zugeordnet und wird somit z.B. von der Datenquelle an den Verbindungsmanager übermittelt. Datenpakete mit einer höheren Kritikalität werden somit zuerst übertragen, die Übertragung der "unkritischeren" Datenpakete wird verzögert. Die Kritika-litäten der Datenpakete können, insbesondere bei Verwendung von Datenbuffern, in einer Kritikalitätenliste zwischengespeichert und bei Bedarf ausgelesen werden, ähnlich der oben beschriebenen Deadlineliste.
[0025] Eine Ermittlung und ein Vergleich einer von den Datenpaketen notwendige Bandbreite und einer (im fehlerfreien Fall) verfügbaren Bandbreite des Übertragungsmediums kann bereits vor Verfahrensschritt a), vorzugsweise vor erstmaliger Durchführung des Starts des Verfahrens durchgeführt werden. Damit wird im Rahmen eines Vorab-Tests eruiert, ob die Menge an zu übertragenen Datenpaketen die Kapazität des gemeinsam genützten Übertragungsmediums zumindest im fehlerfreien Fall nicht überschreitet. Ist die Bandbreite des Übertragungsmediums nicht ausreichend, so kann ein Fehlersignal ausgegeben werden.
[0026] Das erfindungsgemäße Verfahren kann zur Datenübertragung auf einem Prüfstand mit einem Testsystem und einem Steuergerät (ECU) eines Kraftfahrzeugs verwendet werden, wobei sich der Sender/und oder der Empfänger auf dem Testsystem und/oder dem Steuergerät befinden können und über einen Bus als Übertragungsmedium verbunden sind. Testsysteme können beispielsweise Validierung&Verifikation-Systeme, wie PUMA Open, CAMEO online, Hardware-In-the-Loop-Systeme usw. darstellen. Prinzipiell ist die Verwendung des Verfahrens jedoch in allen Systemen vorstellbar, die mehrere Datenquellen auf Senderseite aufweisen, welche Datenpakete liefern, welche unabhängig voneinander über ein Übertragungsmedium übertragen werden sollen.
[0027] Die gegenständliche Erfindung wird nachfolgend unter Bezugnahme auf die Figuren 1 bis 4 näher erläutert, die beispielhaft, schematisch und nicht einschränkend vorteilhafte Ausgestaltungen der Erfindung zeigen. Dabei zeigt [0028] Fig.1 einen Prüfstand mit einem Testsystem und einem Steuergerät [0029] Fig.2 ein Übertragungssystem mit Datenbuffern [0030] Fig.3 die Zusammensetzung der Datenbuffer [0031] Fig.4a-s eine Übertragung von Datenpaketen [0032] Fig.5a-p eine Übertragung von Datenpaketen im Fehlerfall [0033] Fig.1 zeigt eine beispielhafte Verwendung des erfindungsgemäßen Verfahrens zum Übertragen von Datenpaketen auf einem Prüfstand 1, bei dem ein Steuergerät als Sender 3 und ein Testsystem als Empfänger 2 vorhanden sind und über einem Datenbus als Übertragungsmedium 5 verbunden sind. Hier wird leidglich beispielhaft und zur einfacheren Veranschaulichung angenommen, dass das Steuergerät nur einen Sender 3 darstellt, d.h. die Mehrzahl an Datenquellen Q1, Q2, Q3 beinhaltet, und das Testsystem einen Empfänger 2 darstellt und damit eine Datensenke S umfasst. Damit werden Datenpakete DP von den verschiedenen Datenquellen Q1, Q2, Q3 vom Steuergerät als Sender 3 an das Testsystem als Empfänger 2 übertragen. Natürlich könnten sich die Mehrzahl von Datenquellen Q1, Q2, Q3 auch auf Seite des Testsystems, sowie die Datensenke S auf Seite des Steuergeräts befinden. Gleichfalls ist es auch denkbar, dass mehrere Sender 3, auch jeweils mit mehreren Datenquellen Q1, Q2, Q3, gleichzeitig über das Übertragungsmedium 5 übertragen wollen. Ebenso ist eine bidirektionale Verbindung vorstellbar, d.h. dass sowohl Testsystem und Steuergerät jeweils Sender 3 und Empfänger 2 sind, d.h. Datenquellen Q1, Q2, Q3 und Datensenken S aufweisen, die miteinander über das Übertragungsmedium 5, hier den Datenbus, kommunizieren.
[0034] Das Steuergerät als Sender 3 umfasst beispielsweise mehrere Prozessorkerne, auf denen verschiedene Softwaretasks des Steuergerätes laufen und die jeweils eine Datenquelle Q1, Q2, Q3 darstellen. Das Testsystem 2 als Empfänger stellt beispielhaft eine Validie-rungs&Verifikations-Applikation oder ein Hardware-in-the-Loop-System dar und beinhaltet beispielsweise einen Prozessorkern, auf dem ein Betriebssystem, in der Regel eine EchtzeitBetriebssystem, läuft als Datensenke S. Natürlich wären auch mehrere Prozessorkerne, d.h. Datensenken S mit z.B. getrennten Betriebssystemen auf Seite des Testsystems, d.h. des Empfängers 2 möglich. Die Anzahl der Datensenken S spielt für das erfindungsgemäße Verfahren jedoch keine Rolle, da das hauptsächliche Problem in der Einspeisung von parallel zur Übertragung verfügbaren Datenpakete DP aus unterschiedlichen Datenquellen Q1, Q2, Q3 darstellt. Es werden somit von den Datenquellen Q1, Q2, Q3 Datenpakete DP simultan zur Übertragung zur Verfügung gestellt, die über das Übertragungsmedium 5 zu übertragen sind. Ein Verbindungsmanager 4 übernimmt in diesem Fall die Bestimmung der Reihenfolge der Einspeisung dieser Datenpakete DP in das Übertragungsmedium 5, wie in Folge beschreiben wird. Der Verbindungsmanager 4 ist beispielsweise eine Softwareerweiterung eines Betriebssystems des Senders 3, oder ein eigener Software-Task, der mit höherer Priorität als die sendenden Software-Tasks abgearbeitet wird, könnte aber auch als zusätzliche Hardware mit entsprechender Software ausgeführt sein.
[0035] Jede Datenquelle Q1, Q2, Q3 stellt vorteilhafterweise ein Datenbuffer DS1, DS2, DS3 zur Verfügung, wobei der jeweilige Datenbuffer DS1, DS2, DS3 aus aneinandergereihten Datenpaketen DP besteht, wie in Fig.2 dargestellt. Die jeweiligen Datenbuffer DS1, DS2, DS3 werden jeweils von einer Datenquelle Q1, Q2, Q3 nach dem FIFO-Prinzip (First-In-First-Out) mit Datenpaketen DP befüllt. Das bedeutet, dass die von der jeweiligen Datenquelle Q1, Q2, Q3 erzeugte Reihenfolge der Datenpakete DP im jeweiligen Datenbuffer DS1, DS2, DS3 beibehalten wird. Der jeweilige Datenbuffer DS1, DS2, DS3 wird also an einen Anfangsposition DS1a, DS2a, DS3a mit Datenpaketen DP gefüllt, die an einer Endposition DS1e, DS2e, DS3e des Datenbuffers DS1, DS2, DS3 entnommen werden. Innerhalb eines Datenbuffers DS1, DS2, DS3 können mehrere Datenpakete DP einer Datenquelle Q1, Q2, Q3 Datenreihen DR bilden, wie auch in Fig.2 symbolisiert. Diese Datenreihen DR können beispielsweise notwendig sein, weil die von einer Datenquelle Q1, Q2, Q3 gelieferten Rohdaten nicht als ein Datenpaket DP übertragen werden können und somit in Form von mehreren Datenpaketen DP als Datenreihe DR übertragen werden. Damit würden die Datenpakete DP einer Datenreihe DR den Rohdaten entsprechen. Somit sind mehrere Datenbuffer DS1, DS2, DS3 mit einer oder mehreren Datenreihen DR, die wiederum aus einem oder mehreren Datenpaketen DP bestehen, vorhanden, wobei pro Datenbuffer DS1, DS2, DS3 ein Datenpaket DP am Ende DS1e, DS2e, DS3e zur Übertragung bereit steht. In Fig. 2 sind drei Datenquellen Q1, Q2, Q3 mit jeweils einem Datenbuffer DS1, DS2, DS3 vorhanden. Der erste Datenbuffer DS1 besteht aus drei Datenreihen DR zu jeweils drei Datenpaketen DP, der zweite Datenbuffer DS2 besteht aus drei Datenreihen DR zu jeweils zwei Datenpaketen DP und der dritte Datenbuffer DS3 besteht aus drei Datenreihen DR zu jeweils einem Datenpaket DP. Damit weist die erste Datenquelle Q1 und in dieser Ausführung damit auch der erste Datenbuffer DS1 ein erstes Datenvolumen von V1=3 auf, die zweite Datenquelle, bzw. hier der zweite Datenbuffer DS2 ein zweites Datenvolumen von V2=2 und die dritte Datenquelle, bzw. hier auch der dritte Datenbuffer DS3 ein drittes Datenvolumen V3=3. Weiters weisen die Datenpakete DP der ersten Datenquelle Q1 / des ersten Datenbuffers DS1 beispielsweise eine erste Zykluszeit tQ1=1s und eine erste Kritikalität C1=7 auf, die Datenpakete DP der zweiten Datenquelle Q1 / des zweiten Datenbuffer DS1 eine zweite Zykluszeit tQ2=0,7s und eine zweite Kritikalität C2=6 auf und die Datenpakete DP der dritten Datenquelle Q3 / des dritten Datenbuffers DS3 eine dritte Zykluszeit tQ3=0,7s und eine dritte Kritikalität C3=9 auf (Fig.3).
[0036] Die Zykluszeiten tQ1, tQ2, tQ3 und Volumina V1, V2, V3 werden von den zugehörigen Datenquellen Q1, Q2, Q3 bestimmt. Die Kritikalitäten C1, C2, C3 der Datenpakete DP sind somit wie auch die Zykluszeiten tQ1, tQ2, tQ3 von der zugehörigen Datenquelle Q1, Q2, Q3 abhängig. Wird ein Datenpaket DP aus einem Datenbuffer DS1, DS2, DS3 vom Verbindungsmanager 4 über das Übertragungsmedium 5 an die Datensenke S übertragen, so rückt das nächste Datenpaket DP an das Ende DS1e, DS2e, DS3e nach, bis der zugehörige Datenbuffer DS1, DS2, DS3 keine Datenpakete DP aufweist und damit leer ist. In weiterer Folge wird von der Verwendung von Datenbuffern DS1, DS2, DS3 ausgegangen. Das erfindungsgemäße Verfahren wäre natürlich auch anwendbar, wenn die Datenpakete DP ohne Zwischenspeicherung in Datenbuffern DS1, DS2, DS3 und direkt von den Datenquellen Q1, Q2, Q3 zur Übertragung über das Übertragungsmedium 5 parallel zur Verfügung gestellt werden.
[0037] Es ist in diesem Ausführungsbeispiel die Funktion des Verbindungsmanagers 4 die Abarbeitungsreihenfolge der Datenpakete DP der Datenbuffer DS1, DS2, DS3 zu organisieren, d.h. die Reihenfolge in welcher die von den Datenquellen Q1, Q2, Q3 gelieferten Datenpakete DP, die parallel in Datenbuffern DS1, DS2, DS3 vorliegen, in das Übertragungsmedium 5 eingespeist werden. Zu diesem Zweck werden dem Verbindungsmanager 4 von den Datenquellen Q1, Q2, Q3 in erster Linie als primäres Echtzeitkriterium die Zykluszeiten tQ1, tQ2, tQ3 der Datenpakete übermittelt. Weiters werden von den Datenquellen Q1, Q2, Q3, die Datenvolumen V1, V2, V3 und die Kritikalitäten C1, C2, C3 der Datenpakete DP übermittelt.
[0038] Die Zykluszeiten tQ1, tQ2, tQ3, die Datenvolumen V1, V2, V3 und die Kritikalitäten C1, C2, C3 der Datenpakete DP, welche aus einer Datenquelle Q1, Q2, Q3 stammen sind identisch. Das bedeutet in Folge bei einer Verwendung von Datenbuffern DS1, DS2, DS3, dass alle Datenpakete DP aus einem Datenbuffer DS1, DS2, DS3 identische Zykluszeiten tQ1, tQ2, tQ3, die Datenvolumen V1, V2, V3 und die Kritikalitäten C1, C2, C3 aufweisen.
[0039] Da mit Vorlage dieser Kriterien (Zykluszeiten tQ, Datenvolumen V und Kritikalitäten C1, C2, C3) die Kommunikationsverbindung prinzipiell eingerichtet ist, kann weiters vorab überprüft werden ob die Bandbreite BM des Übertragungsmediums größer als die für die Übertragung der Datenpakete DP notwendige Bandbreite BD ist, d.h. ob die Bandbreite des Übertragungsmediums BM ausreichet, um eine Übertragung von den Datenquellen Q1, Q2, Q3 zur Verfügung gestellten Datenpakete DP zu ermöglichen.
[0040] Es werden als Echtzeitkriterien neben den Zykluszeiten tQ1, tQ2, tQ3 auch die Entstehungszeitpunkt tC der Datenpakete DP festgehalten und hier an den Verbindungsmanager 4 übermittelt. Die Entstehungszeitpunkte tC der Datenpakete DP sind innerhalb einer Datenreihe DR einheitlich und werden von der Systemzeit t abgeleitet. Das bedeutet, dass bei Erzeugung eines Datenpakets DP in der Datenquelle Q1, Q2, Q3 ein „Schnappschuss“ der Systemzeit t gemacht wird und damit den Entstehungszeitpunkt tC des Datenpaketes DP ergibt. Zur einfacheren Darstellung wird im vorliegenden Ausführungsbeispiel angenommen, dass alle Datenpakete DP eines Zyklus praktisch gleichzeitig entstehen, also den gleichen Entstehungszeitpunkt tC haben. Es werden nun anhand der Zykluszeiten tQ1, tQ2, tQ3 und der Entstehungszeitpunkte tC die Deadlines D1, D2, D3, also die spätest erlaubten Sendezeitpunkte, der Datenpakete DP berechnet. Die Deadlines D1, D2, D3 ergeben sich aus der Summe der jeweiligen Zykluszeit tQ1, tQ2, tQ3 und dem Entstehungszeitpunkt tC des betrachteten Datenpakets DP. Die Deadlines D1, D2, D3 können also beim Bereitstellen der Datenpakete DP durch die Datenquellen Q1, Q2, Q3 aus den jeweiligen Entstehungszeitpunkten tC und Zykluszeiten berechnet werden. Wenn, wie im vorliegenden Ausführungsbeispiel Datenbuffer DS1, DS2, DS3, verwendet werden, dann können die Deadlines D1, D2, D3 auch in einer Deadlineliste zwischengespeichert werden und bei Bedarf ausgelesen werden. Eine Datenreihe DR besteht aus mehreren Datenpaketen DP mit dem selben Entstehungszeitpunkt tC, womit auch die Deadlines D1, D2, D3 der Datenpakete DP einer Datenreihe DR einheitlich sind. Es kann beispielsweise auch jedes Datenpaket DP einen individuellen Entstehungszeitpunkt tC haben. Damit wäre jede Da tenreihe DR nur ein Datenpaket DP lang, wie es hier bei den der dritten Datenquelle Q3 zugehörigen Datenpaketen DP der Fall ist. Der Verbindungsmanager 4 führt diese Prüfung der Echtzeitkriterien Zykluszeiten tQ1, tQ2, tQ3 und Entstehungszeitpunkt tC beispielsweise dann durch, wenn ein neues Datenpaket DP hier innerhalb von einer Datenquelle Q1, Q2, Q3 erzeugt wird und gegebenenfalls in einen Datenbuffer DS1, DS2, DS3 eingegliedert wird.
[0041] Dem Verbindungsmanager 4 stehen somit die Kriterien Zykluszeiten tQ1, tQ2, tQ3, Datengrößen V1, V2, V3, Kritikalitäten C1, C2, C3und Entstehungszeitpunkte tC von jedem parallel zur Übertragung verfügbaren Datenpaket DP der Datenreihen DR der zugehörigen Datenbuffer DS1, DS2, DS3 der zugehörigen Datenquellen Q1, Q2, Q3 zur Verfügung. Die zur Übertragung verfügbaren Datenpakete DP befinden sich hier am Ende DS1e, DS2e, DS3e der Datenbuffer DS1, DS2, DS3. Ebenso wurden wie oben beschrieben die Deadlines D1, D2, D3 der Datenpakete DP berechnet. Die Deadlines D1, D2, D3 können auch beim Entstehungszeitpunkt tC, also beim Einfügen in die Datenbuffer DS1, DS2, DS3, bestimmt werden. Die vollen Datenbuffer DS1, DS2, DS3 sind in Fig. 4a nochmals dargestellt, wobei für die Beschreibung des erfindungsgemäßen Verfahrens in weiterer Folge die Werte für Zykluszeiten tQ1, tQ2, tQ3, Datenvolumen V1, V2, V3, Kritikalitäten C1, C2, C3, sowie berechnete Deadlines D1, D2, D3 der Datenpakete aus Fig. 3 herangezogen werden. Für den nächsten Schritt des Verfahrens relevant sind natürlich immer nur die Deadlines D1, D2, D3 der Datenpakete DP, die sich in den Datenbuffern DS1, DS2, DS3 rechts, am Ende DS1e, DS2e, DS3e befinden.
[0042] In den Fig.4a-4s wird der Ablauf der Einspeisung der Datenpakete DP durch den Verbindungsmanager 4 veranschaulicht, wobei bereits in das Übertragungsmedium 5 eingespeiste Datenpakete DP durchgestrichen markiert sind. Es wird in Fig. 4 von einem fehlerfreien Fall ausgegangen, d.h. dass die notwendige Bandbreite aller Datenpakete DP und damit auch jeweils aller simultan zur Übertragung bereitstehenden Datenpakete DP die verfügbare Bandbreite des Übertragungsmediums nicht überschreitet, So werden jeweils die Echtzeitkriterien, hier die Deadlines D1, D2, D3 der simultan zur Übertragung bereitstehenden Datenpakete DP verglichen, Der Verbindungsmanager 4 überprüft die zur Übertragung bereitstehenden Datenpakete DP der Datenbuffer DS1, DS2, DS3 (jeweils die ersten Datenpakete DP auf der rechten Seite der einzelnen Datenbuffer DS1, DS2, DS3) und wählt daraus das Datenpaket DP mit der kürzesten Deadline D1, D2, D3 aus. Die jeweils kürzeste Deadline D1, D2, D3 als Auswahlkriterium ist in den Fig.4a-4s mit einem Ring markiert.
[0043] Im ersten Schritt nach Fig. 4a weist das zur Übertragung bereitstehende Datenpaket DP des dritten Datenbuffers D3 die dritte Deadline D3=1,7s auf. Diese dritte Deadline D3=1,7s ist geringer als die zweite Deadline D2=2,7s des Datenpakets DP am Ende des zweiten Datenbuffers DS2 und geringer als die erste Deadline D1=2s des rechten Datenpakets DP des ersten Datenbuffers DS1. So wird dieses Datenpaket DP des dritten Datenbuffers DS3 in das Übertragungsmedium 5 eingespeist, was in Fig. 4b durch das durgestrichene Datenpaket DP symbolisiert wird. Dies entspricht einem sogenannten "earliest deadline first"-Verfahren. Daraufhin rückt das nächste Datenpaket DP des dritten Datenbuffers DS3 an die Stelle des zu übertragenden Datenpakets DP.
[0044] Es wird durch den Verbindungsmanager 4 nun immer das zur Übertragung anliegende Datenpaket DP mit der geringsten Deadline D1, D2, D3 in das Übertragungsmedium 5 eingespeist. Da die Entstehungszeitpunkt tC der Datenpakete DP einer Datenreihe DR einheitlich sind und die Zykluszeit tQ aller Datenreihen DR eines Datenbuffers DS1, DS2, DS3 einer Datenquelle Q1, Q2, Q3 einheitlich sind, werden im fehlerfreien Fall immer die Datenpakete DP einer Datenreihe DR hintereinander übertragen. Somit wird in der Fig. 4a das Datenpaket DP des dritten Datenbuffers DS3 mit der dritten Deadline D3=1,7s ausgewählt und übertragen, womit die zugehörige Datenreihe DR übertragen wurde (das dritte Volumen V3=1, d.h. es ist ein Datenpaket DP pro Datenreihe DR vorhanden). In Fig.4b weist der erste Datenbuffer DS1 das zur Übertragung anliegende Datenpaket DP mit der zweiten Deadline D1=2s als geringste auf. Damit wird das erste verfügbare Datenpaket DP des ersten Datenbuffers DS1 übertragen und weiter in den Figuren 4c-d die weiteren Datenpakete DP der zugehörigen Datenreihe DR übertragen, da diese Datenpakete DP weiterhin die erste Deadline D1=2s als geringste aufweisen.
[0045] Wie in Fig.4e ersichtlich, weist nun der dritte Datenbuffer DS3 das zu übertragende Datenpaket DP mit der dritten, geringsten Deadline D3=2,4s auf, woraufhin das zugehörige Datenpaket DP und in Folge die zugehörige Datenreihe DR übertragen wird, in Fig. 4f-g der zweite Datenbuffer DS2 mit der zweiten, geringsten Deadline D2=2,7s, womit die beiden Datenpakete DP der aktuellen Datenreihe DR übertragen werden. In den Figuren 4h-j weist der erste Datenbuffer DS1 die Datenpakete DP einer Datenreihe mit der ersten, geringsten Deadline D1=3s auf und in Fig.4k der dritte Datenbuffer DS3 das Datenpaket DP mit der dritten, geringsten Deadline D=3,1s. Mit Übertragung dieses letzten Datenpakets DP des dritten Datenbuffers DS3 ist dieser leer, siehe Fig. 4l. Von der dritten Datenquelle Q3, bzw. dem dritten Datenbuffer DS3 wird eine die Deadline D3=max als maximal an den Verbindungsmanager 5 übermittelt. Dies bedeutet, dass keine Datenpakete DP der dritten Datenquelle Q3 zur Übertragung verfügbar stehen.
[0046] Weiters weist nun in Fig.4l der zweite Datenbuffer DS2 die zweite, geringste Deadline D2=3,4s auf, womit das nächste Datenpaket DP des zweiten Datenbuffers DS2 übertragen wird, ebenso ist der Sacherhalt in Fig.4m. Weiters werden, wie in Fig. 4n-q ersichtlich die Datenpakete DP der nächsten Datenreihe DR des ersten Datenbuffers DS1 übertragen, da die erste Deadline D1=4s die geringste ist. Nach dieser Übertragung ist der erste Datenbuffer DS1 leer, woraufhin der ersten Datenquelle Q1, bzw. dem ersten Datenbuffer DS1 eine erste Deadline D1=max an den Verbindungsmanager 5 übermittelt wird um dies zu signalisieren. Da nun ausschließlich der zweite Datenbuffer DS2 Datenpakete aufweist, werden diese Datenpakete DP übertragen. Die zweite Deadlines D2=4,1s der Datenpakete DP des zweiten Datenbuffers DS2 sind trivialerweise die geringsten, da der erste Datenbuffer DS1 und der dritte Datenbuffer DS3 wie ausgeführt die zweite Deadline D2=max, bzw die dritte Deadline D3=max an den Verbindungsmanager übermitteln. Sind alle Datenpakete DP aller Datenbuffer DS1, DS2, DS3 übermittelt, so werden von allen Datenbuffern DS1, DS2, DS3 die Deadlines D1=D2=D3=max an den Verbindungsmanager 4 übermittelt, womit dieser auf eine vollständige Übertragung aller Datenpakete DP schließen kann.
[0047] Die reine Berücksichtigung der Echtzeitkriterien, also hier der daraus berechneten Deadlines D1, D2, D3 der Datenpakete DP ist ausreichend, wenn kein Fehler im Übertragungssystem auftritt und die Bandbreite BM des Übertragungsmediums 5 ausreichend ist. Unter dieser Bedingung sind die Deadlines D1, D2, D3 immer kleiner als die Systemzeit t.
[0048] Sollte die zur Übertragung benötigte Bandbreite BD eines simultan zur Übertragung bereit stehenden Datenpakets DP einer Datenquelle Q1, Q2, Q3 die verfügbare Bandbreite BM des Übertragungsmediums 5 jedoch temporär überschreiten, so können die Deadlines D1, D2, D3 eines oder mehrerer Datenpakete DP gefährdet sein. Das kann beispielsweise passieren, wenn die verfügbare Bandbreite BM des Übertragungsmediums temporär durch äußere Einflüsse eingeschränkt ist. Die von den Datenpaketen zur Übertragung benötigte Bandbreite BD kann aus den Echtzeitkriterien der Datenpakete DP abgeleitet werden und die verfügbaren Bandbreite BM des Übertragungsmediums 5 aus einer Systemzeit t abgeleitet. Dies äußert sich also beispielsweise dadurch, dass eine Deadline D1, D2, D3 als Echtzeitkriterium größer als die Systemzeit t ist. In der bisherigen Betrachtung spielte die Systemzeit t keine Rolle, da die Bandbreite BM des Übertragungsmediums 5 ausreichend war. In den Fig. 5a-5o wird jedoch ein Fehlerfall dargestellt. Es wird von einem störungsfreien Ablauf nach Fig.4a-4e ausgegangen, woraufhin im Schritt nach Fig. 5a eine Störung auftritt, in der das Übertragungsmedium 5 temporär keine Datenpakete DP der zweiten Datenquelle Q2 aufnimmt. So wird in den Figuren 5a-5p neben den aktuellen Deadlines D1, D2, D3 der Datenpakete DP der einzelnen Datenbuffer DS1, DS2, DS3 auch die Kritikalität C1, C2, C3 ebendieser dargestellt, da diese im Fehlerfall Relevanz aufweist. Die Kritikalität stellt somit unter dem Umstand, dass die verfügbare Bandbreite BM nicht ausreicht ein zeitunabhängiges Kriterium als relevantes Kriterium dar. Aus demselben Grund wird in den Figuren 5a-5p auch die Systemzeit t dargestellt. Das im jeweiligen Schritt aktuell relevante Kriterium, d.h. Deadline oder Kritikalität ist in den Fig. 5a-5p mit einem Ring markiert. D.h. eine geringste Deadline D1, D2, D3 (in Verbindung mit der Systemzeit t) oder eine höchste Kritikalität C1, C2, C3, abhängig davon ob die verfügbare Bandbreite BM für die Übertragung der bereitstehenden Datenpakete DP ausreicht oder nicht.
[0049] Wie erwähnt, tritt im in Fig. 5a Schritt dargestellten Schritt ein Fehler am Übertragungsmedium 5 auf, z.B. weil das Übertragungsmedium durch andere Aktivitäten, wie einen Retransmit oder eine Datenübertragung externer Knoten, belegt ist. Dieser Fehler bewirkt hier, dass vom Verbindungsmanager 4 kein Datenpaket DP von der zweiten Datenquelle Q2, bzw. des zweiten Datenbuffers DS2 in das das Übertragungsmedium 5 eingespeist werden kann. Der Fehler wird jedoch vorerst nicht erkannt, da noch keine Deadlines D1, D2, D3 verletzt werden, was auch für den Schritt in Fig. 5b zutrifft. Die Systemzeit t schreitet jedoch weiter voran, der Verbindungsmanager 4 kann der zweite Datenbuffer DS2 nicht wie geplant abarbeiten, obwohl diese die zweite Deadline D2=2,7s als geringste Deadline aufweist. In Fig. 5c ist die Systemzeit t=2,8s bereits größer als die geringste, zweite Deadline D2=2,7s des zweiten Datenbuffers DS2, was bedeutet, dass zur die Übertragung notwendige Bandbreite BM, des zur Übertragung bereitstehenden Datenpakets DP des zweiten Datenbuffers DS2 der zweiten Datenquelle Q2 die verfügbare Bandbreite BM des Übertragungsmediums 5 überschreitet. Das kann vom Verbindungsmanager 4 erkannt werden, welcher derart reagiert, dass nicht mehr die Deadlines D1, D2, D3 als Echtzeitkriterium, sondern die Kritikalität C1, C2, C3 der Datenpakete DP als zeitunabhängiges Kriterium herangezogen werden, wie in Fig. 5c dargestellt. Die Verletzung der zweiten Deadline D2 des zweiten Datenbuffers wird dadurch symbolisiert, dass die zweite Deadline D2=2,7s durchgestrichen dargestellt ist. Da der dritte Datenbuffer DS3 die dritte Kritikalität C=9 als höchste aufweist, wird das nächste zu übertragende Datenpaket DP aus dem dritten Datenbuffer DS3 gewählt (Fig. 5c). Es wird nun angenommen, dass der Fehler am Übertragungsmedium beseitigt wurde, womit vom Verbindungsmanager 4 in weiterer Folge wieder Datenpakete DP in das Übertragungsmedium 5 eingespeist werden können. D.h. es wird das zur Übertragung bereitstehende Datenpaket DP des dritten Datenbuffers DS3 eingespeist, womit der dritte Datenbuffer DS3 leer ist, siehe Fig. 5d. Somit wird fortan von der dritten Datenquelle Q3, bzw. dem dritten Datenbuffer DS3 eine dritte Deadline D3=max an den Verbindungsmanager 5 übermittelt. Die Systemzeit t=3,15s (Fig. 5e), bzw. t=3,2s (Fig. 5f) hat, obwohl der Fehler beseitigt wurde, noch die erste Deadline D1=3s der Datenpakete DP des ersten Datenbuffers DS1, sowie die zweite Deadline D2=2,7s der Datenpakete DP des zweiten Datenbuffers DS2 überschritten, weshalb der Verbindungsmanager 4 weiterhin die Kritikalität C1, C2, C3 als Kriterium zur Reihenfolge der Einspeisung der Datenpakete DP in das Kommunikationsmedium heranzieht. Daher ist die erste Deadline D1 und zweite Deadline D2 durchgestrichen dargestellt. In Fig. 5g (Systemzeit t=3,25s) wird die erste Deadline D1=4s nicht mehr verletzt, wohl aber die weiterhin unveränderte zweite Deadline D2=2,7s. Die Verletzung einer Deadline D1, D2, D3 ist ausreichend um die Kritikalitäten C1, C2, C3 als Kriterium der Bestimmung des nächsten zu übertragenden Datenpakets DP zu verwenden. Aufgrund der größeren ersten Kritikalität C1=7 der Datenpakete DP des ersten Datenbuffers DS1 gegenüber der zweiten Kritikalität C2=6 des zweiten Datenbuffers DS2 werden diese Datenpakete DP des ersten Datenbuffers DS1 bevorzugt übertragen, wie in den Fig. 5h-j dargestellt.
[0050] Nach der Übertragung aller Datenpakete DP des ersten Datenbuffers DS1 ist der erste Datenbuffer DS1 leer (Fig. 5j), womit die erste Deadline D1=max als maximal markiert wird.
[0051] Damit weist ausschließlich der zweite Datenbuffer DS2 Datenpakete auf, welche in weiterer Folge übertragen werden (Fig 5k-5p). Die zweite Deadline D2=3,4s (Fig. 5l), bzw. D2=4,1s (Fig. 5m-5o) der Datenpakete DP des zweiten Datenbuffers DS2 ist im jeweiligen Schritt trivialerweise die geringste. Sind alle Datenpakete DP aller Datenbuffer DS1, DS2, DS3 übermittelt, so wird von allen Datenbuffern DS1, DS2, DS3 die Deadline D1=D2=D3=max als maximal an den Verbindungsmanager 4 übermittelt, womit dieser auf eine vollständige Übertragung aller Datenpakete DP schließen kann.
Claims (11)
- Patentansprüche1. Verfahren zum sequentiellen Übertragen von Datenpaketen (DP) von einem Sender (3) über ein Übertragungsmedium (5) an zumindest einen Empfänger (2), wobei der Sender (3) eine Mehrzahl an Datenquellen (Q1, Q2, Q3) aufweist, die jeweils simultan Datenpakete (DP) zur Übertragung bereit stellen, dadurch gekennzeichnet, dass das Verfahren folgen de Verfahrensschritte umfasst: a) Ermittlung der von den simultan zur Übertragung bereitstehenden Datenpaketen (DP) jeweils benötigten Bandbreite, b) Vergleich der von den der simultan zur Übertragung bereitstehenden Datenpaketen (DP) zur Übertragung benötigten Bandbreite mit einer verfügbaren Bandbreite des Übertragungsmediums (5), c) Ermittlung von Echtzeitkriterien der simultan zur Übertragung bereitstehenden Datenpakete (DP), falls die benötigte Bandbreite aller simultan zur Übertragung bereitstehenden Datenpakete (DP) die verfügbare Bandbreite des Übertragungsmediums (5) nicht überschreitet, oder Ermittlung von zeitunabhängigen Kriterien der simultan zur Übertragung bereitstehenden Datenpakete (DP), falls die notwendige Bandbreite zumindest eines simultan zur Übertragung bereitstehenden Datenpakets (DP) die verfügbare Bandbreite des Übertragungsmediums (5) überschreitet, wobei die Echtzeitkriterien und zeitunabhängigen Kriterien von den zugehörigen Datenquellen (Q1, Q2, Q3) abhängen, d) Vergleich der Echtzeitkriterien oder zeitunabhängigen Kriterien der simultan zur Übertragung bereitstehenden Datenpakete (DP), e) Bestimmung des nächsten in das Übertragungsmedium (5) einzuspeisenden Datenpakets (DP) auf Basis des Vergleichs der Echtzeitkriterien oder zeitunabhängigen Kriterien, f) Einspeisen des nächsten in das Übertragungsmedium (5) einzuspeisenden Datenpakets (DP) in das Übertragungsmedium (5)
- 2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Verfahrensschritte a) bis f) wiederholt werden, bis kein zu übertragendes Datenpaket (DP) mehr zur Übertragung bereit steht.
- 3. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Verfahrensschritte b) bis f) wiederholt werden, bis kein zu übertragendes Datenpaket (DP) mehr zur Übertragung bereit steht.
- 4. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass pro Datenquelle (Q1, Q2, Q3) ein Datenbuffer (DS1, DS2, DS3) vorhanden ist und dass die Datenquellen (Q1, Q2, Q3) jeweils der zugehörige Datenbuffer (DS1, DS2, DS3) mit Datenpaketen (DP) nach einem First-In-First-Out-Prinzip füllen, wobei die Datenpakete (DP) an der Anfangsposition (DS1a, DS2a, DS3a) des jeweiligen Datenbuffers (DS1, DS2, DS3) eingespeist werden und die zu übertragenden Datenpakete (DP) jeweils an der Endsposition (DS1e, DS2e, DS3e) des jeweiligen Datenbuffers (DS1, DS2, DS3) zur Übertragung bereit stehen.
- 5. Verfahren nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, dass als Echtzeitkriterium der Datenpakete (DP) zumindest einer der folgenden Werte verwendet wird: Zykluszeit (tQ); Entstehungszeitpunkt (tC); , aus Zykluszeit (tQ) und Entstehungszeitpunkt (tC) berechnete Deadlines (D1, D2, D3) der Datenpakete (DP).
- 6. Verfahren nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, dass die von den Datenpaketen (DP) benötigte Bandbreite aus den Echtzeitkriterien der Datenpakete (DP) abgeleitet wird und die verfügbaren Bandbreite des Übertragungsmediums (5) aus einer Systemzeit (t) abgeleitet wird.
- 7. Verfahren nach Anspruch 6, dadurch gekennzeichnet, dass aus den Zykluszeiten (tQ) und Entstehungszeitpunkte (tC) berechnete Deadlines (D1, D2, D3) der Datenpakete (DP) mit einer Systemzeit (t) verglichen werden, um eine Überschreitung der notwendige Bandbreite der Datenpakete (DP) über die verfügbare Bandbreite des Übertragungsmediums (5) zu ermitteln.
- 8. Verfahren nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, dass die zeitunabhängigen Kriterien der Datenpakete (DP) jeweils durch eine festgelegte Kritikalität (C1, C2, C3) repräsentiert werden.
- 9. Verfahren nach einem der Ansprüche 1 bis 8, dadurch gekennzeichnet, dass eine Ermittlung und ein Vergleich einer von den Datenpaketen (DP) benötigte Bandbreite und einer verfügbaren Bandbreite des Übertragungsmediums (5) vor Verfahrensschritt a), vorzugsweise vor erstmaliger Durchführung des Starts des Verfahrens durchgeführt wird.
- 10. Verwendung eines Verfahren nach Anspruch 1 bis 9 zur Datenübertragung auf einem Prüfstand mit einem Testsystem und einem Steuergerät eines Kraftfahrzeugs, wobei sich der Sender (3)/und oder der Empfänger (2) auf dem Testsystem und/oder dem Steuergerät befinden und vorteilhafterweise über einen Bus als Übertragungsmedium (5) verbunden sind.
- 11. Vorrichtung zum sequentiellen Übertragen von Datenpaketen (DP) von einem Sender (3) über ein Übertragungsmedium (5) an einen Empfänger (2), wobei der Sender (3) eine Mehrzahl an Datenquellen (Q1, Q2, Q3) aufweist, die jeweils simultan Datenpakete (DP) zur Übertragung bereit stellen, dadurch gekennzeichnet, dass ein Verbindungsmanager (4) vorhanden ist, der ausgestaltet ist die folgenden Verfahrensschritte durchzuführen: a) Überprüfung der von den simultan zur Übertragung bereitstehenden Datenpaketen (DP) jeweilig benötigten Bandbreite, b) Vergleich der von den der simultan zur Übertragung bereitstehenden Datenpaketen (DP) zur Übertragung benötigten Bandbreite mit einer verfügbaren Bandbreite des Übertragungsmediums (5), c) Ermittlung von Echtzeitkriterien der simultan zur Übertragung bereitstehenden Datenpakete (DP), falls die benötigte Bandbreite aller simultan zur Übertragung bereitstehenden Datenpakete (DP) die verfügbare Bandbreite des Übertragungsmediums (5) nicht überschreitet, oder Ermittlung von zeitunabhängigen Kriterien der simultan zur Übertragung bereitstehenden Datenpakete (DP), falls die benötigte Bandbreite zumindest eines simultan zur Übertragung bereitstehenden Datenpakets (DP) die verfügbare Bandbreite des Übertragungsmediums (5) überschreitet, wobei die Echtzeitkriterien und zeitunabhängigen Kriterien von den zugehörigen Datenquellen (Q1, Q2, Q3) abhängigen, d) Vergleich der Echtzeitkriterien oder zeitunabhängigen Kriterien der simultan zur Übertragung bereitstehenden Datenpakete (DP), e) Bestimmung des nächsten in das Übertragungsmedium (5) einzuspeisenden Datenpakets (DP) auf Basis des Vergleichs der Echtzeitkriterien oder zeitunabhängigen Kriterien, f) Einspeisen des nächsten in das Übertragungsmedium (5) einzuspeisenden Datenpakets (DP) in das Übertragungsmedium (5).
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
ATA50414/2017A AT520049B1 (de) | 2017-05-15 | 2017-05-15 | Verfahren und Vorrichtung zum sequentiellen Übertragen von Daten aus mehreren Datenquellen |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
ATA50414/2017A AT520049B1 (de) | 2017-05-15 | 2017-05-15 | Verfahren und Vorrichtung zum sequentiellen Übertragen von Daten aus mehreren Datenquellen |
Publications (2)
Publication Number | Publication Date |
---|---|
AT520049A1 AT520049A1 (de) | 2018-12-15 |
AT520049B1 true AT520049B1 (de) | 2019-07-15 |
Family
ID=64604961
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ATA50414/2017A AT520049B1 (de) | 2017-05-15 | 2017-05-15 | Verfahren und Vorrichtung zum sequentiellen Übertragen von Daten aus mehreren Datenquellen |
Country Status (1)
Country | Link |
---|---|
AT (1) | AT520049B1 (de) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030189943A1 (en) * | 2002-04-08 | 2003-10-09 | International Business Machines Corporation | Priority based bandwidth allocation within real-time and non-real-time traffic streams |
US7072295B1 (en) * | 1999-09-15 | 2006-07-04 | Tellabs Operations, Inc. | Allocating network bandwidth |
US20070002750A1 (en) * | 2005-07-01 | 2007-01-04 | Nec Laboratories America, Inc. | Generic Real Time Scheduler for Wireless Packet Data Systems |
EP1873979A1 (de) * | 2006-06-27 | 2008-01-02 | Samsung Electronics Co., Ltd | Vorrichtung und Verfahren zur Terminierung eines Datenpakets in einem Kommunikationssystem |
DE102012214671A1 (de) * | 2011-08-31 | 2013-02-28 | International Business Machines Corporation | Zeitplanung von Paketen an Mobilfunk-Basisstationen |
-
2017
- 2017-05-15 AT ATA50414/2017A patent/AT520049B1/de active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7072295B1 (en) * | 1999-09-15 | 2006-07-04 | Tellabs Operations, Inc. | Allocating network bandwidth |
US20030189943A1 (en) * | 2002-04-08 | 2003-10-09 | International Business Machines Corporation | Priority based bandwidth allocation within real-time and non-real-time traffic streams |
US20070002750A1 (en) * | 2005-07-01 | 2007-01-04 | Nec Laboratories America, Inc. | Generic Real Time Scheduler for Wireless Packet Data Systems |
EP1873979A1 (de) * | 2006-06-27 | 2008-01-02 | Samsung Electronics Co., Ltd | Vorrichtung und Verfahren zur Terminierung eines Datenpakets in einem Kommunikationssystem |
DE102012214671A1 (de) * | 2011-08-31 | 2013-02-28 | International Business Machines Corporation | Zeitplanung von Paketen an Mobilfunk-Basisstationen |
Also Published As
Publication number | Publication date |
---|---|
AT520049A1 (de) | 2018-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE102007004044B4 (de) | Verfahren und Anlage zur optimierten Übertragung von Daten zwischen einer Steuereinrichtung und mehreren Feldgeräten | |
WO2002043336A9 (de) | System und verfahren zur parallelen übertragung von echtzeitkritischen und nicht echtzeitkritischen daten über schaltbare datennetze, insbesondere ethernet | |
EP2795848B1 (de) | Teilnehmerstation eines bussystems und verfahren zur übertragung von nachrichten zwischen teilnehmerstationen eines bussystems | |
EP2847936B1 (de) | Verfahren zur übertragung von daten in einem paketorientierten kommunikationsnetzwerk und entsprechend eingerichtetes teilnehmergerät an dem kommunikationsnetzwerk | |
EP3172871B1 (de) | Zugriffsverfahren mit zugriffsschlitzen und prioritätsauflösung | |
DE102011015966B4 (de) | Automatisierungssystem | |
EP2087647B1 (de) | Vorrichtung und verfahren zur manipulation von kommunikations-botschaften | |
DE102011122646B4 (de) | Nachrichtenverlustverhinderung durch Verwendung von Sender- und Empfängerpuffern in durch ein Ereignis ausgelösten verteilten eingebetteten Echtzeitsystemen | |
DE69121273T2 (de) | Verfahren und Vorrichtung zur Übertragungsüberlastregelung | |
DE10200201A1 (de) | Zyklusbasiertes zeitgesteuertes Kommunikationssystem | |
EP1509005B1 (de) | Verfahren und Vorrichtung zur Übertragung von Daten über ein Busnetz mittels Broadcast | |
DE102014214457A1 (de) | Station und Verfahren zur seriellen Datenübertragung unter dynamischer Repriorisierung von Datenrahmen (data frames) | |
EP1593237A1 (de) | Verfahren zur übertragungsbandbreitenzuteilung in einer pake torientierten kommunikationseinrichtung | |
AT520049B1 (de) | Verfahren und Vorrichtung zum sequentiellen Übertragen von Daten aus mehreren Datenquellen | |
EP2431873B1 (de) | Kombinierte Unicast/Multicast Softwareübertragung | |
WO2021004835A1 (de) | Verfahren und datennetzwerk zum kommunizieren von dateninhalten, insbesondere in einer aufzuganlage | |
AT405588B (de) | Verfahren zur wiederholung fehlerhaft übertragener daten | |
WO2012110541A1 (de) | Verfahren zum übertragen von daten über einen synchronen seriellen datenbus | |
DE102015213522A1 (de) | Bussystem, Teilnehmerstation dafür und Verfahren zur Konfiguration eines statischen Bussystems für eine dynamische Kommunikation | |
EP1357707A2 (de) | Verfahren und Vorrichtung zur Übertragung von Nachrichten auf einem Bussystem und Bussystem | |
EP4070530B1 (de) | Verfahren zum zyklischen übertragen von daten zwischen kommunikationsteilnehmern auf einem datenübertragungskanal und datenübertragungssystem | |
DE102009044936A1 (de) | Verfahren zum Austauschen von Daten | |
DE102012209093A1 (de) | Teilnehmerstation für ein Bussystem und Verfahren zur Übertragung von Nachrichten zwischen Teilnehmerstationen eines Bussystems | |
DE102019106410A1 (de) | Vorrichtung und Verfahren zur Datenübertragung | |
EP2733555B1 (de) | BUS-System mit Teilnehmern, die Produzent und / oder Konsumenten von Prozesswerten sind, Vorrichtung umfassend ein BUS-System, fluidisches System mit einem BUS-System und Verfahren zum Betrieb eines BUS-Systems |