DE102006059376A1 - Synchrone Datenübertragung - Google Patents

Synchrone Datenübertragung Download PDF

Info

Publication number
DE102006059376A1
DE102006059376A1 DE102006059376A DE102006059376A DE102006059376A1 DE 102006059376 A1 DE102006059376 A1 DE 102006059376A1 DE 102006059376 A DE102006059376 A DE 102006059376A DE 102006059376 A DE102006059376 A DE 102006059376A DE 102006059376 A1 DE102006059376 A1 DE 102006059376A1
Authority
DE
Germany
Prior art keywords
data packet
node
data
received
packet
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE102006059376A
Other languages
English (en)
Inventor
Michael B. Half Moon Bay Druke
Christopher J. Mountain View Jacques
Philip L. San Jose Graves
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intuitive Surgical Inc
Original Assignee
Intuitive Surgical Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intuitive Surgical Inc filed Critical Intuitive Surgical Inc
Publication of DE102006059376A1 publication Critical patent/DE102006059376A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1829Arrangements specially adapted for the receiver end
    • H04L1/1854Scheduling and prioritising arrangements
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B34/00Computer-aided surgery; Manipulators or robots specially adapted for use in surgery
    • A61B34/70Manipulators specially adapted for use in surgery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0078Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location
    • H04L1/0083Formatting with frames or packets; Protocol or part of protocol for error control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/1607Details of the supervisory signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1829Arrangements specially adapted for the receiver end
    • H04L1/1848Time-out mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/188Time-out mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Surgery (AREA)
  • General Health & Medical Sciences (AREA)
  • Veterinary Medicine (AREA)
  • Medical Informatics (AREA)
  • Molecular Biology (AREA)
  • Animal Behavior & Ethology (AREA)
  • Biomedical Technology (AREA)
  • Public Health (AREA)
  • Heart & Thoracic Surgery (AREA)
  • Robotics (AREA)
  • Nuclear Medicine, Radiotherapy & Molecular Imaging (AREA)
  • Computer Security & Cryptography (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Communication Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Verfahren, Vorrichtungen und Computerprogrammprodukte, die Datenpakete zwischen einem ersten Knoten und einem zweiten Knoten synchron übertragen. Datenpakete werden vom ersten Knoten übertragen, ohne auf die Bestätigung des Empfangs vom zweiten Knoten zu warten. Die Bestätigung des Empfangs eines gegebenen Datenpakets wird anschließend am ersten Knoten empfangen. Die Bestätigung wird im Wesentlichen zu einer vorbestimmten Zeit nach der Übertragung des gegebenen Datenpakets empfangen. Die Bestätigung gibt an, dass der zweite Knoten das gegebene Datenpaket unverfälscht empfangen hat.

Description

  • Die vorliegende Offenbarung betrifft Informationssysteme.
  • Bestimmte Anwendungen besitzen Anforderungen für eine hohe Bandbreite und Anforderungen für eine strenge Synchronisation, Wartezeit und Zuverlässigkeit für Kommunikationen. Die robotergestützte Chirurgie erfordert beispielsweise eine hohe Bandbreite, um Steuer- und Rückkopplungssignale in Echtzeit zu übertragen. Die Synchronisations- und Wartezeitanforderungen solcher Anwendungen sind streng, da idealerweise so wenig Verzögerung wie möglich zwischen den Bewegungen eines Chirurgen und den Bewegungen des Roboters bestehen sollte. In diesen Anwendungen müssen die Kommunikationen sehr zuverlässig sein, da ein Datenübertragungsfehler einen Patienten verletzten könnte.
  • Ein herkömmliches Kommunikationssystem, das in der robotergestützten Chirurgie verwendet wird, verwendet mehrere hundert Wege (z.B. Drähte), um die Steuerkonsole des Chirurgen mit Roboterarmen zu verbinden. Die Verwindung von hunderten von Wegen macht jedoch die Einrichtung und Wartung des Systems mühselig und erfordert beträchtlichen Raum, um alle Wege zu leiten.
  • Herkömmliche Kommunikationsstandards stellen eine annehmbare Leistung auf einigen Gebieten bereit, es mangelt ihnen jedoch auf anderen. Der IEEE-1394-Schnittstellenstandard stellt beispielsweise eine synchrone, serielle Punkt-Punkt-Kommunikation bereit. IEEE-1394-Kanäle besitzen eine garantierte Bandbreite, können jedoch nur eine Synchronisation innerhalb ungefähr 125 Mikrosekunden vorsehen. Eine solche Leistung kann für bestimmte Anwendungen, die eine engere Synchronisation erfordern, nicht ausreichen.
  • In einem Aspekt werden ein Verfahren und ein Computerprogrammprodukt bereitgestellt, die die Übertragung eines ersten Datenpakets von einem ersten Knoten zu einem zweiten Knoten umfassen. Das erste Datenpaket umfasst ein Datenfeld, das Nicht-Füllfeld-Daten vom ersten Knoten umfasst. Ein zweites Datenpaket wird vom ersten Knoten zum zweiten Knoten nach der Übertragung des ersten Datenpakets übertragen. Die Übertragung des zweiten Datenpakets beginnt, bevor irgendwelche Bestätigungsinformationen, die dem ersten Datenpaket entsprechen, vom zweiten Knoten empfangen wurden. Ein drittes Datenpaket, das vom zweiten Knoten übertragen wurde, wird am ersten Knoten empfangen. Das dritte Datenpaket umfasst Bestätigungsinformationen, die angeben, ob das erste Datenpaket vom zweiten Knoten korrekt empfangen wurde. Die Übertragung des ersten Datenpakets und der Empfang des dritten Datenpakets sind verriegelt, so dass das dritte Datenpaket im Wesentlichen eine vorbestimmte Menge an Zeit nach der Übertragung des ersten Datenpakets empfangen wird.
  • Spezielle Implementierungen können eines oder mehrere der folgenden Merkmale umfassen. Das zweite Datenpaket kann ungeachtet dessen übertragen werden, ob der erste Knoten irgendwelche Nicht-Füllfeld-Daten zum Setzen in ein Datenfeld des zweiten Datenpakets hat. Das erste, das zweite und das dritte Datenpaket können jeweils jeweilige Flusssteuerinformationen umfassen. Die Flusssteuerinformationen im ersten und im zweiten Datenpaket betreffen den ersten Knoten und die Flusssteuerinformationen im dritten Datenpaket betreffen den zweiten Knoten. Die Flusssteuerinformationen können separate Flusssteuerinformationen für mehrere Kanäle umfassen. Das erste Datenpaket kann Kopfinformationen umfassen, die angeben, auf welchem einer Vielzahl von Kanälen die Nicht-Füllfeld-Daten übertragen werden. Das erste und das zweite Datenpaket können jeweils eine Angabe eines Fehlerzustandes des ersten Knotens umfassen. Das dritte Datenpaket kann eine Angabe eines Fehlerzustandes des zweiten Knotens umfassen. Das erste, das zweite und das dritte Datenpaket können eine gleiche Länge aufweisen.
  • Ein viertes Datenpaket kann am ersten Knoten empfangen werden. Das vierte Datenpaket wird vom zweiten Knoten übertragen und umfasst Bestätigungsinformationen, die angeben, ob das zweite Datenpaket vom zweiten Knoten korrekt empfangen wurde. Die Übertragung des zweiten Datenpakets und der Empfang des vierten Datenpakets können verriegelt sein, so dass das vierte Datenpaket im Wesentlichen um eine vorbestimmte Menge an Zeit nach der Übertragung des zweiten Datenpakets empfangen wird. Ein fünftes Datenpaket kann am ersten Knoten empfangen werden, bevor das dritte Datenpaket empfangen wird. Das fünfte Datenpaket wird vom zweiten Knoten vor dem dritten Datenpaket übertragen und das fünfte Datenpaket umfasst keine Bestätigungsinformationen, die angeben, ob ein spezielles Datenpaket vom zweiten Knoten korrekt empfangen wurde.
  • In einem weiteren Aspekt werden ein Verfahren und ein Computerprogrammprodukt bereitgestellt, die die synchrone Übertragung von Datenpaketen zwischen einem ersten Knoten und einem zweiten Knoten umfassen. Datenpakete werden vom ersten Knoten übertragen, ohne auf die Bestätigung des Empfangs vom zweiten Knoten zu warten. Die Bestätigung des Empfangs eines gegebenen Datenpakets vom zweiten Knoten wird anschließend am ersten Knoten empfangen. Die Bestätigung wird im Wesentlichen zu einer vorbestimmten Zeit empfangen, nachdem die Übertragung des gegebenen Datenpakets angibt, dass der zweite Knoten das gegebene Datenpaket unverfälscht empfangen hat. In einer speziellen Implementierung kann ein spezielles Datenpaket erneut gesandt werden, wenn die Bestätigung des Empfangs des speziellen Datenpakets nicht im Wesentlichen zur vorbestimmten Zeit nach der Übertragung des speziellen Datenpakets empfangen wird.
  • In noch einem weiteren Aspekt wird ein Verfahren bereitgestellt, das die Übertragung eines ersten Datenpakets von einem ersten Knoten zu einem zweiten Knoten umfasst. Das erste Datenpaket umfasst ein erstes Datenfeld, das Nicht-Füllfeld-Daten vom ersten Knoten umfasst. Das erste Datenpaket wird am zweiten Knoten empfangen und der Empfang des ersten Pakets dauert eine endliche Menge an Zeit. Die Übertragung eines zweiten Datenpakets vom zweiten Knoten zum ersten Knoten wird begonnen, nachdem der Empfang des ersten Datenpakets begonnen hat, jedoch bevor der Empfang des ersten Datenpakets geendet hat. Das zweite Datenpaket wird am ersten Knoten empfangen und der Empfang des zweiten Datenpakets dauert eine endliche Menge an Zeit. Die Übertragung eines dritten Datenpakets vom ersten Knoten zum zweiten Knoten wird begonnen, nachdem die Übertragung des ersten Datenpakets geendet hat, nachdem der Empfang des zweiten Datenpakets begonnen hat und bevor der Empfang des zweiten Datenpakets geendet hat. Die Übertragung des dritten Datenpakets beginnt, bevor irgendwelche Bestätigungsinformationen, die dem ersten Datenpaket entsprechen, vom zweiten Knoten empfangen wurden. Das dritte Datenpaket wird am zweiten Knoten empfangen und der Empfang des dritten Datenpakets dauert eine endliche Menge an Zeit. Die Übertragung eines vierten Datenpakets vom zweiten Knoten zum ersten Knoten wird begonnen, nachdem die Übertragung des zweiten Datenpakets geendet hat, nachdem der Empfang des dritten Datenpakets begonnen hat und bevor der Empfang des dritten Datenpakets geendet hat. Die Übertragung des vierten Datenpakets beginnt, bevor irgendwelche Bestätigungsinformationen, die dem zweiten Datenpaket entsprechen, vom ersten Knoten empfangen wurden. Das vierte Datenpaket umfasst Bestätigungsinformationen, die angeben, ob das erste Datenpaket vom zweiten Knoten korrekt empfangen wurde. Die Übertragung des ersten Datenpakets und die Übertragung des vierten Datenpakets sind verriegelt, so dass das vierte Datenpaket im Wesentlichen um eine vorbestimmte Menge an Zeit nach der Übertragung des ersten Datenpakets übertragen wird. Das vierte Paket wird am ersten Knoten empfangen und die Bestätigungsinformationen, die angeben, ob das erste Datenpaket korrekt empfangen wurde, wird am ersten Knoten verarbeitet. Der erste Knoten überträgt das erste Datenpaket erneut, wenn das erste Datenpaket am zweiten Knoten nicht korrekt empfangen wurde.
  • Spezielle Ausführungsbeispiele können implementiert werden, um einen oder mehrere der folgenden Vorteile zu verwirklichen. Ein Sender und ein Empfänger können sehr genau (z.B. auf innerhalb im Wesentlichen 10 Mikrosekunden oder weniger) synchronisiert werden. Die Wartezeit kann begrenzt und niedrig gehalten werden (z.B. weniger als im Wesentlichen 10 Mikrosekunden). Daten können mit niedriger Wartezeit über einen einzigen physikalischen Wegverbindungsstecker übertragen werden. Ein gleiches Kommunikationsprotokoll kann für mehrere Kommunikationsverbindungen, die mit verschiedenen Geschwindigkeiten arbeiten, in einem einzigen System verwendet werden. Das Kommunikationsprotokoll kann kostengünstig in Hardware implementiert werden.
  • Bandbreite kann für die Datenübertragung verwendet werden, die ansonsten für das Warten auf eine Bestätigung verwendet werden würde. Eine Fehlererkennung und –wiederherstellung können an Flusssteuerinformationen und Bestätigungsinformationen gleichzeitig durchgeführt werden. Fehlerinformationen können durch ein ganzes System schnell übertragen werden. Mehrere unabhängige Ströme von Daten mit verschiedenen Prioritätsniveaus können im ganzen System übertragen werden.
  • Diese allgemeinen und speziellen Aspekte können unter Verwendung eines Verfahrens, einer Vorrichtung, eines Systems oder irgendeiner Kombination von Verfahren, Vorrichtungen und Systemen implementiert werden.
  • Die Details von einem oder mehreren Ausführungsbeispielen der Erfindung sind in den zugehörigen Zeichnungen und der nachstehenden Beschreibung dargelegt. Weitere Merkmale, Aspekte und Vorteile der Erfindung werden aus der Beschreibung, den Zeichnungen und den Ansprüchen ersichtlich.
  • 1 ist ein Blockdiagramm eines Systems, das mehrere Kneten umfasst, die durch Verbindungen verbunden sind.
  • 2 ist ein Diagramm der Struktur eines Datenpakets.
  • 3 ist ein Ablaufdiagramm einer Paketübertragung zwischen Knoten.
  • 4 ist ein Ablaufdiagramm eines Fehlerwiederherstellungsszenarios.
  • 5 ist ein Ablaufdiagramm eines Fehlerwiederherstellungsszenarios.
  • 6 ist ein Ablaufplan eines an einem Knoten durchgeführten Prozesses.
  • Gleiche Bezugsziffern und Bezeichnungen in den verschiedenen Zeichnungen geben gleiche Elemente an.
  • Eine Verbindungsebene wird beschrieben, die einen im Wesentlichen kontinuierlichen Strom von seriellen Duplexdaten zwischen zwei Systemknoten verwendet. Knoten können beispielsweise Computer, programmierbare Prozessoren, anwenderprogrammierbare Verknüpfungsfelder (FPGAs) oder andere Datenverarbeitungsvorrichtungen umfassen. Die Daten werden in Pakete mit fester Länge unterteilt. Jedes Paket mit fester Länge kann Daten, Fehlerprüfinformationen, Flusssteuerinformationen, Diagnoseinformationen, Fehlerinformationen und Neuübertragungs-Steuerinformationen enthalten. Die Daten in jedem Paket können Hardwareebenendaten oder Teile von Nachrichten (z.B. Softwarenachrichten) umfassen.
  • Die Pakete mit fester Länge werden kontinuierlich zwischen zwei Knoten ungeachtet dessen übertragen, ob Daten zur Übertragung zur Verfügung stehen. Wenn keine Daten zur Übertragung zur Verfügung stehen, kann das Datenfeld eines Pakets mit "Füllfeld"-Daten gefüllt werden, die am Empfangsknoten verworfen werden können. Die übertragenen Pakete umfassen Bestätigungen von vorher empfangenen Paketen und ein Sendeknoten überträgt ein erstes Paket und beginnt die Übertragung mindestens eines nachfolgenden Pakets vor dem Empfang einer Bestätigung des ersten Pakets vom Empfangsknoten. Die Übertragung und der Empfang von Paketen an einem Knoten sind verriegelt, wie nachstehend genauer beschrieben wird.
  • Wie in 1 gezeigt, können Daten von einem ersten Knoten 110 zu mehreren Zielknoten – beispielsweise einem zweiten Knoten 120, einem dritten Knoten 130 und einem vierten Knoten 140 – durch Multiplexieren der Daten auf einer Verbindung übertragen werden. Knoten zwischen dem ersten Knoten 110 und einem speziellen Zielknoten können die Daten leiten. Der erste Knoten 110 kann Daten für den zweiten Knoten 120 über eine erste Verbindung 125 übertragen. Der erste Knoten 110 kann auch Daten für den dritten Knoten 130 über die erste Verbindung 125 zum zweiten Knoten 120 übertragen und der zweite Knoten 120 kann die Daten über eine zweite Verbindung 135 zum dritten Knoten 130 leiten. Ebenso kann der erste Knoten 110 Daten für den vierten Knoten 140 über die erste Verbindung 125 übertragen und der zweite Knoten 120 kann die Daten über eine dritte Verbindung 145 zum vierten Knoten 140 leiten.
  • Die Bezeichnung eines Zielknotens kann in einer Implementierung in einer Nachricht gehandhabt werden, die in den übertragenen Daten enthalten ist. In dieser Implementierung verarbeitet der zweite Knoten 120 typischerweise zumindest einen Teil einer Nachricht, die vom ersten Knoten 110 gesandt wird, bevor Pakete, die Teile der Nachricht enthalten, zum Zielknoten gesandt werden. Wenn der zweite Knoten 120 selbst der Zielknoten ist, muss die Nachricht nicht weiter übertragen werden.
  • In einigen Systemen geschehen Kommunikationen häufiger zwischen dem ersten Knoten 110 und dem dritten Knoten 130 und dem vierten Knoten 140 als Kommunikationen zwischen dem dritten Knoten 130 und dem vierten Knoten 140 geschehen. In solchen Systemen kann die erste Verbindung 125 eine Verbindung mit höherer Geschwindigkeit als die zweite Verbindung 135 oder die dritte Verbindung 145 sein, um eine ausreichende Kapazität für das größere Volumen von Daten, das über die erste Verbindung 125 läuft, bereitzustellen.
  • Die Knoten 110, 120, 130 und 140 können einen oder mehrere Hardware-Datenpuffer 152164 umfassen, die Nachrichten empfangen und die Nachrichten halten, bis die Software, die auf dem jeweiligen Knoten oder auf einer Datenverarbeitungsvorrichtung in Kombination mit dem jeweiligen Knoten ausgeführt wird, bereit ist, die Nachrichten zu empfangen.
  • Wie in 2 gezeigt, kann ein Paket 200 mit fester Länge von einer Implementierung mehrere Bytes 201240 umfassen. Obwohl ein 40-Byte-Paket gezeigt ist, kann das Paket mit fester Länge andere Längen aufweisen. In der gezeigten Implementierung sind Steuerinformationen in 8 der 40 Bytes angeordnet und Daten sind in den restlichen 32 Bytes angeordnet. Das erste Byte 201 ist ein Synchronisationsfeld, das verwendet werden kann, um die Bytesynchronisation an einem Knoten, der die Pakete empfängt, aufrechtzuerhalten. Ein zusätzliches Synchronisationsbyte kann periodisch zu einem Paket (z.B. einmal all 128 Pakete) hinzugefügt werden, um die Taktdrift zwischen Knoten zu kompensieren. Das zweite Byte 202 ist ein Bestätigungsfeld, das angibt, ob das letzte Paket, das vom Knoten empfangen wurde, der das Paket 200 überträgt, korrekt empfangen wurde (z.B. eine gültige Fehlerprüfinformation enthielt). Das zweite Byte 202 kann auf einen Eins-Wert (z.B. 0 × AC) gesetzt werden, um eine Bestätigung (ACK) anzugeben, dass das letzte Paket korrekt empfangen wurde, und auf den inversen Wert (z.B. 0 × 53) gesetzt werden, um anzugeben, dass das letzte Paket nicht korrekt empfangen wurde (keine Bestätigung oder NAK). In einer Implementierung kann irgendein anderer Wert als der Bestätigungswert als keine Bestätigung interpretiert werden. In dieser Implementierung ist, wenn der NAK-Wert das Inverse des ACK-Werts ist, ein 8-Bit-Fehler erforderlich, um eine übertragene NAK in eine ACK zu transformieren.
  • Das dritte Byte 203 ist ein Antwortfeld, das mehrere Steuerbits enthält, wie z.B. ein Testmodusbit, das angibt, dass sich das System in einem Diagnosetestmodus befindet, und ein XOFF-Bit für jeden von mehreren Nachrichtenkanälen (z.B. Kanäle mit niedriger, mittlerer und hoher Priorität). Die Steuerbits können auch ein Neuübertragungsbit umfassen, das, wenn es gesetzt ist, angibt, dass das Paket 200 eine Neuübertragung eines früheren Pakets ist. Eines oder mehrere der Steuerbits können auch Fehlerbits sein, die angeben, dass im System ein Fehler aufgetreten ist.
  • Das vierte Byte 204 ist ein Kopffeld. Das Kopffeld kann mehrere Unterfelder wie z.B. ein Kanalauswahl-Unterfeld und ein Befehlsunterfeld, umfassen. Das Kanalauswahl-Unterfeld wird verwendet, um anzugeben, auf welchem Prioritätskanal die Daten im Paket 200 übertragen werden. Das Befehlsunterfeld kann Befehle umfassen, um Puffer zu spülen und einen Nachrichtenstrom erneut zu starten. Das Befehlsunterfeld kann Befehle, die anfordern, dass spezielle Daten über den Hardwarekanal gesandt werden, oder Codes, um solche Daten zu identifizieren, umfassen. Das Befehlsunterfeld kann auch verwendet werden, um das System zu synchronisieren. Am Beginn eines Synchronisationszyklus kann beispielsweise ein Paket, das den Synchronisationsbefehl enthält, gesandt werden, was Untersysteme innerhalb des Systems aktiviert, die die Synchronisation (z.B. auf innerhalb 10 Mikrosekunden) aufrechterhalten. Das fünfte Byte 205 ist ein Sequenznummerfeld, das eine Sequenznummer enthält, die von einem Empfangsknoten verwendet werden kann, um Übertragungsfehler zu erfassen. Das sechste Byte 206 bis 37. Byte 237 gehören zu einem Datenfeld, das 32 Datenbytes hält, wie z.B. eine Nachricht oder ein Teil einer Nachricht.
  • Das 38. Byte 238 ist ein Paketende-Feld, das festlegen kann, wie viele der Bytes im Datenfeld einer Nachricht entsprechen und wie viele Bytes Füllbytes sind. Das Paketende-Feld kann auch ein Nachrichtenende-Indikatorbit umfassen, das gesetzt wird, wenn die Bytes im Datenfeld eine Nachricht beenden. Das Nachrichtenende-Indikatorbit kann eine Unterbrechung am Empfangsknoten auslösen. Das 39. Byte 239 und das 40. Byte 240 sind ein Teil eines Fehlerprüffeldes, das in einer Implementierung einen 16-Bit-CRC-Wert (z.B. unter Verwendung des CCITT-16-Bit-Algorithmus berechnet) enthaften kann. Wenn ein Knoten ein Paket empfängt, kann der Knoten das Fehlerprüffeld verwenden, um festzustellen, ob ein Fehler aufgetreten ist, während das Paket gesandt oder empfangen wurde.
  • Die Struktur des Pakets 200 ermöglicht Fehlerreaktions-Logik- (FRL) Signale, die einen Fehler in einem Knoten angeben, der in mehreren Weisen übertragen werden soll. FRL-Signale können beispielsweise in Paketsteuerinformationen (z.B. in Steuerbits des Antwortfeldes des Pakets 200) und/oder in Nachrichten übertragen werden. Die Übertragung von FRL-Signalen direkt in Paketsteuerinformationen ermöglicht, dass die Fehlerinformationen sehr schnell systemweit übertragen werden und auf einer sehr niedrigen Ebene bearbeitet werden. Ein systemweites Fehlersignal kann ohne Softwareeingriff ausgebreitet werden und eine Fehlerreaktionshardware kann das System in einen sicheren Zustand setzen, wenn ein Fehlersignal empfangen wird. Sobald das Problem, das den Fehler verursacht hat, gelöst wurde (z.B. durch den Eingriff einer menschlichen Bedienperson), kann das Fehlersignal gelöscht werden und das System kann in einen Betriebszustand zurückkehren. Wenn das Fehlersignal gelöscht wird, wird das FRL-Signal, das einen Fehler angibt, typischerweise nicht in den Paketsteuerinformationen übertragen, bis ein weiterer Fehler auftritt.
  • Ein Beispiel eines Systems, in dem eine schnelle Ausbreitung eines Fehlersignals vorteilhaft ist, ist ein chirurgisches Robotersystem. Ein solches System kann mehrere Roboterarme umfassen, die chirurgische Instrumente oder Vorrichtungen (z.B. Laparoskope, Endoskope, Lichter, Kameras und Insufflatoren) halten, von denen sich einige innerhalb eines Patienten befinden können. Die Roboterarme werden typischerweise von einem Chirurgen ferngesteuert. Kommunikationen zwischen Steuerungen, die der Chirurg bedient, und den Knoten, die die Roboterarme steuern, können die Verfahren, Systeme und Vorrichtungen, die in der vorliegenden Offenbarung beschrieben werden, verwenden. Wenn ein Fehler in einem solchen System auftritt, können die Roboterarme an der Stelle verriegelt werden, so dass der Patient durch unbeabsichtigte Bewegungen der Roboterarme nicht verletzt wird. Wenn der Systemfehler auftritt und ein Systemfehler zwischen Knoten ausgebreitet wird, können Bremsen auf die Gelenke der Roboterarme angewendet werden und die Übertragung von Bewegungsbefehlen kann unterbrochen werden, bis der Fehler durch eine menschliche Bedienperson oder automatisch durch eine Systemüberwachungseinheit beseitigt ist.
  • Die beschriebene Paketstruktur ermöglicht, dass Daten wie z.B. Nachrichten auf einem einzelnen Kanal oder auf mehreren Kanälen gesandt werden, die auf einer seriellen Verbindung multiplexiert werden. Der Kanal, auf dem eine spezielle Nachricht gesandt wird, wird durch das Kanalauswahl-Unterfeld im Paket 200 angegeben. Die Systemsoftware kann Nachrichten in verschiedene Hardwarepuffer für jeden Kanal (z.B. unter Verwendung von verschiedenen Adressen) setzen und die Systemhardware weist automatisch eine Nachricht einem Kanal auf der Basis dessen zu, in welchen Puffer die Nachricht gesetzt wurde. Den mehreren Kanälen können verschiedene Prioritätsniveaus zugewiesen werden. In einer Implementierung wird, wenn Nachrichten mit unterschiedlichen Prioritäten auf die Übertragung warten, ein Paket oder eine Gruppe von Paketen, die Daten enthalten, die auf einem Kanal mit hoher Priorität übertragen werden, vor einem Paket oder einer Gruppe von Paketen, die Daten enthalten, die auf einem Kanal mit niedriger Priorität übertragen werden, übertragen. In einer weiteren Implementierung wird Paketen, die Daten enthalten, die auf einem Kanal mit hoher Priorität übertragen werden, mehr Sendeschlitze zugewiesen als Paketen, die Daten enthalten, die auf einem Kanal mit niedriger Priorität übertragen werden. Zeitkritische Nachrichten können auf dem Kanal mit hoher Priorität übertragen werden, während relativ unbedeutenden Nachrichten auf dem Kanal mit niedriger Priorität übertragen werden können. Die Systemhardware kann einen Teil einer Nachricht automatisch übertragen, sobald genügend Daten in einen Puffer geschrieben sind, um ein Paket zu füllen. Das heißt, die Nachrichtenübertragung kann durchgeführt werden, wenn Daten verfügbar werden, und muss nicht warten, bis eine ganze Nachricht in den Puffer geschrieben ist.
  • Die XOFF-Bits im dritten Byte 203 steuern den Fluss von Daten in den Kanälen. Jeder Knoten kann mehrere Hardwarepuffer umfassen, die Nachrichten empfangen, die auf einem jeweiligen der mehreren Kanäle übertragen werden. Nachrichten mit hoher Priorität werden beispielsweise in einem Puffer mit hoher Priorität gespeichert und Nachrichten mit niedriger Priorität werden in einem Puffer mit niedriger Priorität gespeichert. Wenn ein erster Knoten, der das Paket 200 überträgt, ein XOFF-Bit im Paket 200 setzt, befiehlt der erste Knoten einem zweiten Knoten, der das Paket 200 empfängt, die Übertragung von Daten zum ersten Knoten auf dem jeweiligen Datenkanal zu stoppen. Die Hardware des ersten Knotens kann automatisch ein XOFF-Bit für einen Datenkanal setzen, beispielsweise wenn ein Puffer, in den der erste Knoten Nachrichten von diesem Datenkanal setzt, voll wird. In einer Implementierung wird eine Schwelle dafür, wenn ein Knoten das XOFF-Bit für einen gegebenen Kanal setzt, gleich der Größe des Empfangspuffers des jeweiligen Kanals im Knoten (z.B. 512 Worte) minus 32 Worte (4 Pakete) gesetzt. Die 32-Wort-Toleranz gibt dem Empfangsknoten Zeit, um das XOFF-Signal mit einer Toleranz für Fehler zu empfangen und zu verarbeiten. Andere Schwellenpegel sind möglich. Die Hardware des ersten Knotens kann auch das XOFF-Bit für den Datenkanal setzen, wenn sich eine große Anzahl (z.B. 12) von Nachrichten im Empfangspuffer befindet. Die Hardware kann das XOFF-Bit für den Datenkanal automatisch löschen, sobald Pakete oder Nachrichten aus dem Puffer entfernt werden. Jeder Prioritätskanal kann einen jeweiligen Empfangspuffer in einem Knoten aufweisen. Da die XOFF-Bits in jedem Paket übertragen werden, gilt das Fehlerprüffeld für die XOFF-Bits und schützt gegen eine Verfälschung der XOFF-Bits.
  • Mehrere Kommunikationskanäle können in der Verbindungsebene unter Verwendung des vorstehend beschriebenen Kanalauswahl-Unterfeldes zur Verfügung gestellt werden. Ein Hardwarekanal und Kanäle mit hoher, mittlerer und niedriger Priorität können beispielsweise implementiert werden. Nachrichten können in der Länge variieren (z.B. zwischen 3 und 128 Worten) und können in einem oder mehreren Paketen in Abhängigkeit von der Länge der Nachricht übertragen werden. Das erste Byte einer Nachricht kann die Adresse eines Zielknotens für die Nachricht enthalten. Die Systemhardware kann Nachrichten in mehrere Pakete an einem Sendeknoten fragmentieren und die Nachrichten an einem Empfangsknoten defragmentieren. Wenn eine Nachricht den Datenteil eines Pakets nicht füllt, können Fülldaten in den Rest des Datenteils eingefügt werden. Sende- und Empfangspuffer für die Nachrichten können in der Hardware implementiert werden. Ein Knoten kann beispielsweise Hardware-Sende und – Empfangspuffer für jeden Kanal (z.B. Kanäle mit hoher, mittlerer und niedriger Priorität) umfassen. In einer Implementierung sind die Sende- und Empfangspuffer für die Kanäle 1,5 mal eine maximale Nachrichtengröße.
  • 3 zeigt ein konzeptionelles Ablaufdiagramm für die Kommunikation zwischen zwei Knoten unter Verwendung von Paketen wie z.B. den im Zusammenhang mit 2 erörterten. Pakete 301304 werden nacheinander von einem primären Knoten zu einem sekundären Knoten übertragen. Pakete 311314 werden am sekundären Knoten empfangen und entsprechen den Paketen 301304, obwohl die Pakete 311314 verfälschte Versionen der jeweiligen Pakete 301304 sein können, wenn Übertragungsfehler aufgetreten sind. Der Empfang der Pakete 311314 ist aufgrund der endlichen Ausbreitungszeit der Pakete entlang einer Verbindung relativ zur Übertragung der Pakete 301304 zeitlich verzögert. In dem in 3 gezeigten Beispiel ist die Ausbreitungszeit des Pakets geringer als die Dauer des Pakets (die Menge an Zeit, die für den primären Knoten erforderlich ist, um das Paket zu übertragen).
  • Der sekundäre Knoten überträgt Pakete 355358 zum primären Knoten. Pakete 365368 werden am primären Knoten nach einer Verzögerung empfangen und entsprechen den Paketen 355358. Das Paket 356 umfasst ein Bestätigungsfeld, das für das Paket 301 gilt. Wenn das Paket 311 (das dem Paket 301 entspricht), korrekt am sekundären Knoten empfangen wurde, umfasst das Paket 356 eine ACK für das Paket 301. Wenn das Paket 311 nicht korrekt empfangen wurde, umfasst das Paket 356 eine NAK. Das Paket 357 umfasst ein Bestätigungsfeld, das dem Paket 302 entspricht. Ebenso umfasst das Paket 303 ein Bestätigungsfeld, das angibt, ob das Paket 365 am primären Knoten korrekt empfangen wurde oder nicht, und das Paket 304 umfasst ein Bestätigungsfeld für das Paket 366.
  • In einer Implementierung beginnt der sekundäre Knoten die Übertragung von Paketen nicht, bis ein erstes Bestätigungsfeld vom primären Knoten empfangen wird. Der sekundäre Knoten beginnt beispielsweise die Übertragung des Pakets 355 nicht, bis der sekundäre Knoten das Bestätigungsfeld im Paket 311 empfängt. Um die anfängliche Synchronisation zwischen dem primären und dem sekundären Knoten zu erleichtern, können die zwei Knoten mehrere sequentielle Synchronisationsbytes zueinander übertragen, bevor der primäre Knoten das Paket 301 überträgt.
  • 3 stellt einen Fall dar, in dem sich eine Zwei-Paket-"Pipeline" zwischen dem primären und dem sekundären Knoten befindet. Das Paket 356 enthält ein Bestätigungsfeld für das Paket 301. Wenn das Bestätigungsfeld eine ACK enthält, überträgt der primäre Knoten das Paket 303. Wenn jedoch das Bestätigungsfeld des Pakets 356 eine NAK enthält, kann der primäre Knoten die Pakete 301 und 302 neu synchronisieren und neu übertragen. In dieser Implementierung werden zwei Pakete erneut übertragen, wenn eine NAK für das erste der zwei Pakete empfangen wird, um das System erneut zu synchronisieren. Wenn das erste der zwei Pakete nicht korrekt empfangen wurde, kann das zweite Paket neu übertragen werden, ohne zu prüfen, ob das zweite Paket zum ersten Mal, zu dem es übertragen wurde, korrekt empfangen wurde. In einer Situation, in der der Fehler im ersten Paket durch den Verlust der Synchronisation zwischen den zwei Knoten verursacht wurde, würde das zweite Paket wahrscheinlich Fehler enthalten, so dass das Paket präventiv neu übertragen wird. Der Knoten, der die NAK übertragen hat, überträgt die letzten zwei Pakete, die er vor der Übertragung der NAK übertragen hat, auch erneut. 3 ist als mit einer Zwei-Paket-Pipeline zwischen dem primären und dem sekundären Knoten beschrieben, da ein Bestätigungsfeld für ein gegebenes Paket erst dann empfangen wird, nachdem ein anderes Paket übertragen wurde. Die Umlaufzeit zwischen dem primären und dem sekundären Knoten ist gleich der oder geringfügig geringer als die Zeit, die erforderlich ist, um ein Paket zu übertragen – das heißt, der primäre Knoten beginnt den Empfang des Pakets 365, bevor der primäre Knoten die Übertragung des Pakets 301 beendet hat. Die Umlaufzeit hängt typischerweise von der Ausbreitungsverzögerung über eine Verbindung und der Verarbeitungszeit an einem Knoten ab. Längere Umlaufzeiten (länger in der absoluten Zeit oder in der Zeit relativ zur Paketdauer) können auch in einem System verwendet werden und können zu einer Pipeline führen, die tiefer als zwei Pakete ist.
  • Pakete werden im Wesentlichen kontinuierlich zwischen dem primären und dem sekundären Knoten ungeachtet dessen übertragen, ob Nachrichten zum Anordnen in den Datenfeldern der Pakete vorhanden sind. Die Pakete werden in einer verriegelten Weise übertragen, wie in 3 gezeigt. Die verriegelte Übertragung von Paketen mit fester Länge verursacht einen festen Phasenversatz zwischen den an einem Knoten empfangenen Paketen und den vom Knoten gesandten Paketen. Der Knoten empfängt ein Paket von einem entfernten Knoten, das eine Bestätigung eines fehlerfreien Empfangs eines vorher übertragenen Pakets enthält, um eine vorbestimmte Menge an Zeit nach der Übertragung des vorher übertragenen Pakets. Die kontinuierliche Übertragung von verriegelten Pakten ermöglicht Kommunikationen mit hoher Bandbreite und niedriger Wartezeit mit einer genauen Synchronisation zwischen Knoten. Außerdem ermöglicht die kontinuierliche Übertragung von Paketen, dass das System die Bitfehlerrate (BER) einer Verbindung zwischen Knoten genau und im Wesentlichen kontinuierlich berechnet.
  • Wenn der sekundäre Knoten ein Paket 411 vom primären Knoten empfängt und feststellt, dass ein Übertragungsfehler aufgetreten ist, der verursacht hat, dass die Daten im Paket 411 verfälscht werden, beendet der sekundäre Knoten, wie in 4 gezeigt, die Übertragung eines Pakets und überträgt anstelle der Übertragung eines nächsten Pakets eine NAK und eine Neusynchronisationssequenz 456 zum primären Knoten. Die Neusynchronisationssequenz 456 wird übertragen, um die Synchronisation zwischen dem primären und dem sekundären Knoten wiederherzustellen, da ein Grund dafür, dass das Paket 411 verfälscht worden sein kann, darin besteht, dass die Synchronisation zwischen dem primären und sekundären Knoten abgenommen haben kann oder verloren gegangen sein kann. Die Neusynchronisationssequenz kann aus abwechselnden Synchronisationsfeldern und Verbindungsfeldern bestehen, wobei das Verbindungsfeld ein vorbestimmter Code wie z.B. 0 × A3 sein kann. In einer Implementierung müssen vier Verbindungsbytes empfangen werden, bevor ein Knoten als neu synchronisiert betrachtet wird. Der primäre Knoten empfängt eine NAK und eine Neusynchronisationssequenz 466 und überträgt eine Neusynchronisationssequenz 403. Nachdem der primäre Knoten die Neusynchronisationssequenz 403 übertragen hat, sendet der primäre Knoten die letzten Pakete, die vor dem Empfang der NAK übertragen wurden, erneut. Im Fall einer N-Paket-Pipeline werden die letzten N Pakete erneut gesandt. Sobald der sekundäre Knoten eine ACK in einem ersten neu übertragenen Paket 414 empfängt, beginnt der sekundäre Knoten auch die Neuübertragung von Paketen.
  • Wenn der primäre Knoten ein Paket 565 vom sekundären Knoten empfängt und feststellt, dass ein Übertragungsfehler aufgetreten ist, der verursacht hat, dass die Daten im Paket 565 verfälscht werden, sendet der primäre Knoten, wie in 5 gezeigt, eine NAK und Neusynchronisationssequenz 503 zum sekundären Knoten. Der sekundäre Knoten empfängt eine NAK und Neusynchronisationssequenz 513 und sendet eine Neusynchronisationssequenz 557. Nachdem der primäre Knoten die NAK und Neusynchronisationssequenz 503 übertragen hat, sendet der primäre Knoten die letzten Pakete, die vor dem Empfang des verfälschten Pakets übertragen wurden, erneut. Sobald der sekundäre Knoten eine ACK in einem ersten erneut übertragenen Paket 514 empfängt, beginnt der sekundäre Knoten auch die Neuübertragung von Paketen.
  • Ein Fehlerzähler kann die Anzahl von Hardware-Übertragungsfehlern, die in einem Knoten auftreten, verfolgen. Eine Unterbrechung kann aktiviert werden, wenn der Zähler eine Schwelle erreicht. In einer Implementierung kann der Fehlerzähler von der Software im Knoten gelesen werden und die Software kann die Unterbrechungsschwelle setzen. Eine Fehlererkennung und -korrektur können in diesem System auf einer sehr niedrigen Ebene bearbeitet werden und eine Software-Ebene, die auf der beschriebenen Verbindungsebene arbeitet, muss keine zusätzliche Fehlererkennung und -korrektur implementieren.
  • 6 stellt einen Prozess 600 dar, der an einem Knoten in einer Implementierung durchgeführt wird. Der Knoten beginnt mit dem Empfang eines ersten Pakets (Schritt 610) und empfängt ein Bestätigungsfeld im ersten Paket (Schritt 615). Der Knoten stellt fest, ob das Bestätigungsfeld eine ACK oder eine NAK ist (Schritt 620). Wenn das Bestätigungsfeld eine NAK ist, überträgt der Knoten eine Neusynchronisationssequenz (Schritt 625) und überträgt das Paket, das der empfangenen NAK entspricht, zusammen mit irgendwelchen Paketen, die nach diesem Paket übertragen wurden, erneut (Schritt 630). Wenn das Bestätigungsfeld eine ACK ist, beginnt der Knoten mit der Übertragung eines zweiten Pakets (Schritt 635) und prüft das erste Paket auf Fehler (Schritt 640), beispielsweise durch Überprüfen eines CRC-Werts im Paket. Wenn Fehler im ersten Paket erkannt wurden, beendet der Knoten die Übertragung des zweiten Pakets (Schritt 645) und überträgt eine NAK und Neusynchronisationssequenz (Schritt 650).
  • Wenn keine Fehler im ersten Paket erkannt wurden, stellt der Knoten fest, ob ein Fehlerbit im ersten Paket gesetzt war (Schritt 655). Wenn ein Fehlerbit gesetzt war, wird der Knoten in einen Fehlermodus oder einen sicheren Zustand gesetzt (Schritt 660). Wenn das Fehlerbit nicht gesetzt war oder sobald der Knoten in einen Fehlermodus gesetzt wird, beendet der Knoten die Übertragung des zweiten Pakets (Schritt 665) und beginnt mit der Übertragung eines dritten Pakets (Schritt 670).
  • Ausführungsbeispiele der Erfindung und alle der funktionalen Operationen, die in dieser Patentbeschreibung beschrieben sind, können in einer digitalen elektronischen Schaltung oder in der Computersoftware, -firmware oder – hardware, einschließlich der in dieser Patentbeschreibung offenbarten Strukturen und ihrer strukturellen Äquivalente, oder in Kombinationen von einer oder mehreren von ihnen implementiert werden. Ausführungsbeispiele der Erfindung können als ein oder mehrere Computerprogrammprodukte, d.h. ein oder mehrere Module von Computerprogrammbefehlen, die auf einem maschinenlesbaren Medium codiert sind, zur Ausführung durch oder zum Steuern der Operation einer Datenverarbeitungsvorrichtung implementiert werden. Das maschinenlesbare Medium kann eine maschinenlesbare Speichervorrichtung, ein maschinenlesbares Speichersubstrat, eine Speichervorrichtung, eine Zusammensetzung einer Sache, die ein maschinenlesbares ausgebreitetes Signal bewirkt, oder eine Kombination von einem oder mehreren von ihnen sein. Der Begriff "Datenverarbeitungsvorrichtung" umfasst alle Geräte, Vorrichtungen und Maschinen zur Verarbeitung von Daten, einschließlich als Beispiel eines programmierbaren Prozessors, eines Computers oder mehrerer Prozessoren oder Computer. Die Vorrichtung kann zusätzlich zur Hardware einen Code umfassen, der eine Ausführungsumgebung für das fragliche Computerprogramm erzeugt, z.B. einen Code, der eine Prozessorfirmware, ein Protokollprofil, ein Datenbankverwaltungssystem, ein Betriebssystem oder eine Kombination von einem oder mehreren von ihnen bildet. Ein ausgebreitetes Signal ist ein künstlich erzeugtes Signal, z.B. ein von einer Maschine erzeugtes elektrisches, optisches oder elektromagnetisches Signal, das erzeugt wird, um Informationen zur Übertragung zu einer geeigneten Empfängervorrichtung zu codieren.
  • Ein Computerprogramm (auch als Programm, Software, Softwareanwendung, Skript oder Code bekannt) kann in einer beliebigen Form von Programmiersprache geschrieben werden, einschließlich kompilierter oder interpretierter Sprachen, und es kann in einer beliebigen Form entwickelt werden, einschließlich als eigenständiges Programm oder als Modul, Komponente, Subroutine oder andere Einheit, die zur Verwendung in einer Rechenumgebung geeignet ist. Ein Computerprogramm entspricht nicht notwendigerweise einer Datei in einem Dateisystem. Ein Programm kann in einem Teil einer Datei gespeichert werden, die andere Programme oder Daten hält (z.B. ein oder mehrere Skripts, die in einem Dokumentenauszeichnungssprachen-Dokument gespeichert sind), in einer einzelnen Datei, die für das fragliche Programm zweckgebunden ist, oder in mehreren koordinierten Dateien (z.B. Dateien, die ein oder mehrere Module, Unterprogramme oder Teile eines Codes speichern.). Ein Computerprogramm kann eingesetzt werden, damit es auf einem Computer oder auf mehreren Computern ausgeführt wird, die sich an einem Ort befinden oder über mehrere Orte verteilt und durch ein Kommunikationsnetzwerk miteinander verbunden sind.
  • Die Prozesse und die Logikflüsse, die in dieser Patentbeschreibung beschrieben sind, können von einem oder mehreren programmierbaren Prozessoren durchgeführt werden, die ein oder mehrere Computerprogramme ausführen, um Funktionen durch Verarbeiten von Eingangsdaten und Erzeugen einer Ausgabe durchzuführen. Die Prozesse und Logikflüsse können auch durch eine Speziallogikschaltung, z.B. ein FPGA (anwenderprogrammierbares Verknüpfungsfeld) oder eine ASIC (anwendungsspezifische integrierte Schaltung), durchgeführt werden und die Vorrichtung kann als diese implementiert werden.
  • Prozessoren, die für die Ausführung eines Computerprogramms geeignet sind, umfassen beispielhaft sowohl Universal- als auch Spezial-Mikroprozessoren und irgendeiner oder mehrere Prozessoren irgendeiner Art eines digitalen Computers. Im Allgemeinen empfängt ein Prozessor Befehle und Daten von einem Festwertspeicher oder einem Direktzugriffsspeicher oder beiden. Die wesentlichen Elemente eines Computers sind ein Prozessor zum Durchführen von Befehlen und eine oder mehrere Speichervorrichtungen zum Speichern von Befehlen und Daten. Im Allgemeinen umfasst ein Computer auch eine oder mehrere Massenspeichervorrichtungen zum Speichern von Daten, z.B. magnetische, magnetooptische Platten oder optische Platten, oder ist wirksam gekoppelt zum Empfangen von Daten von oder Übertragen von Daten zu diesen oder beides. Ein Computer muss jedoch nicht solche Vorrichtungen aufweisen. Überdies kann ein Computer in eine andere Vorrichtung eingebettet sein, z.B. ein Mobiltelefon, einen persönlichen digitalen Assistenten (PDA), ein mobiles Audiowiedergabegerät, einen Empfänger eines globalen Positionierungssystems (GPS), um nur einige zu nennen. Maschinenlesbare Medien, die zum Speichern von Computerprogrammbefehlen und Daten geeignet sind, umfassen alle Formen von nicht-flüchtigem Speicher, Medien und Speichervorrichtungen, einschließlich als Beispiel Halbleiterspeichervorrichtungen, z.B. EPROM, EEPROM und Flash-Speichervorrichtungen; Magnetplatten, z.B. interne Festplatten oder entnehmbare Festplatten; magnetooptische Platten; und CD-ROM- und DVD-ROM-Platten. Der Prozessor und der Speicher können durch eine Speziallogikschaltung ergänzt oder in diese integriert sein.
  • Um einen Dialog mit dem Benutzer bereitzustellen, können Ausführungsbeispiele der Erfindung auf einem Computer mit einer Anzeigevorrichtung, z.B. einem CRT(Kathodenstrahlröhre) oder LCD- (Flüssigkristallanzeige) Monitor, zum Anzeigen von Informationen für den Benutzer und einer Tastatur und einer Zeigevorrichtung, z.B. einer Maus oder einer Rollkugel, durch die der Benutzer eine Eingabe in den Computer liefern kann, implementiert werden. Andere Arten von Vorrichtungen können verwendet werden, um ebenso eine Wechselwirkung mit einem Benutzer vorzusehen; beispielsweise kann eine Rückkopplung, die zum Benutzer geliefert wird, eine beliebige Form von sensorischer Rückkopplung sein, z.B. eine visuelle Rückkopplung, eine akustische Rückkopplung oder eine taktile Rückkopplung; und eine Eingabe vom Benutzer kann in einer beliebigen Form empfangen werden, einschließlich akustischer, Sprach- oder taktiler Eingabe.
  • Obwohl diese Patentbeschreibung viele Besonderheiten enthält, sollten diese nicht als Begrenzungen des Schutzbereichs der Erfindung oder dessen, was beansprucht sein kann, sondern vielmehr als Beschreibungen von Merkmalen, die für spezielle Ausführungsbeispiele der Erfindung spezifisch sind, aufgefasst werden. Bestimmte Merkmale, die in dieser Patentbeschreibung im Zusammenhang mit separaten Ausführungsbeispielen beschrieben sind, können auch in Kombination in einem einzigen Ausführungsbeispiel implementiert werden. Dagegen können verschiedene Merkmale, die im Zusammenhang mit einem einzigen Ausführungsbeispiel beschrieben sind, auch in mehreren Ausführungsbeispielen separat oder in einer beliebigen geeigneten Unterkombination implementiert werden. Obwohl Merkmale vorstehend beschrieben sein können, die in bestimmten Kombinationen wirken und sogar anfänglich als solche beansprucht sind, können überdies ein oder mehrere Merkmale von einer beanspruchten Kombination in einigen Fällen von der Kombination entfernt werden und die beanspruchte Kombination kann auf eine Unterkombination oder Variation einer Unterkombination gerichtet sein.
  • Obwohl Operationen in den Zeichnungen in einer speziellen Reihenfolge dargestellt sind, sollte dies ebenso nicht als Erfordernis verstanden werden, dass solche Operationen in der gezeigten speziellen Reihenfolge oder in einer sequentiellen Reihenfolge durchgeführt werden oder dass alle dargestellten Operationen durchgeführt werden, um erwünschte Ergebnisse zu erreichen. Unter bestimmten Umständen können Multitasking und parallele Verarbeitung vorteilhaft sein. Überdies sollte die Trennung von verschiedenen Systemkomponenten in den vorstehend beschriebenen Ausführungsbeispielen nicht als Erfordernis für eine solche Trennung in allen Ausführungsbeispielen verstanden werden, und es sollte selbstverständlich sein, dass die beschriebenen Programmkomponenten und Systeme im Allgemeinen in einem einzigen Softwareprodukt zusammen integriert oder in mehrere Softwareprodukte gepackt werden können.
  • Folglich wurden spezielle Ausführungsbeispiele der Erfindung beschrieben. Andere Ausführungsbeispiele liegen innerhalb des Schutzbereichs der folgenden Ansprüche. Die in den Ansprüchen angeführten Handlungen können beispielsweise in einer anderen Reihenfolge durchgeführt werden und dennoch erwünschte Ergebnisse erreichen. Die vorstehend beschriebenen Verfahren, Systeme und Vorrichtungen können mit verschiedenen physikalischen Transportmechanismen, einschließlich Faseroptik (die z.B. mit 160 Mb/s arbeitet), spannungsarmer Differentialsignalisierung (die z.B. mit 122 Mb/s arbeitet), quellensynchroner serieller und asynchroner Rückwandplatinendrähten, verwendet werden. In einer Implementierung müssen verfälschte Pakete nicht erneut übertragen werden, wenn die Pakete Daten enthalten, die Fehler tolerieren können. Gelegentliche Störspitzen in einem Video- oder Audiostrom sind beispielsweise annehmbar. Die Fehlererkennung und Neusynchronisation können dennoch in dieser Implementierung verwendet werden, um eine schnelle, durch die Handware implementierte Wiederherstellung von Synchronisationsfehlern zu ermöglichen.

Claims (20)

  1. Verfahren, umfassend: Übertragen eines ersten Datenpakets von einem ersten Knoten zu einem zweiten Knoten, wobei das erste Datenpaket ein erstes Datenfeld umfasst, das Nicht-Füllfeld-Daten vom ersten Knoten umfasst; Übertragen eines zweiten Datenpakets vom ersten Knoten zum zweiten Knoten nach der Übertragung des ersten Datenpakets, wobei die Übertragung des zweiten Datenpakets beginnt, bevor irgendwelche Bestätigungsinformationen, die dem ersten Datenpaket entsprechen, vom zweiten Knoten empfangen wurden; und Empfangen eines dritten Datenpakets am ersten Knoten, wobei das dritte Datenpaket vom zweiten Knoten übertragen wurde, wobei das dritte Datenpaket Bestätigungsinformationen umfasst, die angeben, ob das erste Datenpaket vom zweiten Knoten korrekt empfangen wurde, wobei die Übertragung des ersten Datenpakets und der Empfang des dritten Datenpakets verriegelt sind, so dass das dritte Datenpaket im Wesentlichen um eine vorbestimmte Menge an Zeit nach der Übertragung des ersten Datenpakets empfangen wird.
  2. Verfahren nach Anspruch 1, wobei: das zweite Datenpaket ungeachtet dessen übertragen wird, ob der erste Knoten irgendwelche Nicht-Füllfeld-Daten zum Setzen in ein zweites Datenfeld des zweiten Datenpakets hat.
  3. Verfahren nach Anspruch 1, wobei: das erste, das zweite und das dritte Datenpaket jeweils jeweilige Flusssteuerinformationen umfassen, wobei die Flusssteuerinformationen im ersten und im zweiten Datenpaket den ersten Knoten betreffen und die Flusssteuerinformationen im dritten Datenpaket den zweiten Knoten betreffen.
  4. Verfahren nach Anspruch 3, wobei: die Flusssteuerinformationen separate Flusssteuerinformationen für mehrere Kanäle umfassen.
  5. Verfahren nach Anspruch 1, wobei: das erste Datenpaket Kopfinformationen umfasst, die angeben, auf welchem einer Vielzahl von Kanälen die Nicht-Füllfeld-Daten übertragen werden.
  6. Verfahren nach Anspruch 1, wobei: das erste und das zweite Datenpaket jeweils eine Angabe eines Fehlerzustandes des ersten Knotens umfassen; und das dritte Datenpaket eine Angabe eines Fehlerzustandes des zweiten Knotens umfasst.
  7. Verfahren nach Anspruch 1, wobei: das erste, das zweite und das dritte Datenpaket dieselbe Länge aufweisen.
  8. Verfahren nach Anspruch 1, welches ferner umfasst: Empfangen eines vierten Datenpakets am ersten Knoten, wobei das vierte Datenpaket vom zweiten Knoten übertragen wurde und Bestätigungsinformationen umfasst, die angeben, ob das zweite Datenpaket vom zweiten Knoten korrekt empfangen wurde, wobei die Übertragung des zweiten Datenpakets und der Empfang des vierten Datenpakets verriegelt sind, so dass das vierte Datenpaket im Wesentlichen um eine vorbestimmte Menge an Zeit nach der Übertragung des zweiten Datenpakets empfangen wird.
  9. Verfahren nach Anspruch 1, welches ferner umfasst: Empfangen eines fünften Datenpakets am ersten Knoten, bevor das dritte Datenpaket empfangen wird, wobei das fünfte Datenpaket vom zweiten Knoten vor dem dritten Datenpaket übertragen wurde, wobei das fünfte Datenpaket keine Bestätigungsinformationen umfasst, die angeben, ob ein spezielles Datenpaket vom zweiten Knoten korrekt empfangen wurde.
  10. Verfahren, umfassend: synchrones Übertragen von Datenpaketen zwischen einem ersten Knoten und einem zweiten Knoten, umfassend: Übertragen von Datenpaketen vom ersten Knoten, ohne auf eine Bestätigung des Empfangs durch den zweiten Knoten zu warten, und anschließend Empfangen einer Bestätigung des Empfangs eines gegebenen Datenpakets vom zweiten Knoten am ersten Knoten, wobei die Bestätigung im Wesentlichen zu einer vorbestimmten Zeit nach der Übertragung des gegebenen Datenpakets empfangen wird, wobei die Bestätigung angibt, dass der zweite Knoten das gegebene Datenpaket unverfälscht empfangen hat.
  11. Verfahren nach Anspruch 10, wobei: die synchrone Übertragung ferner das erneute Senden eines speziellen Datenpakets umfasst, wenn die Bestätigung des Empfangs des speziellen Datenpakets nicht im Wesentlichen zu der vorbestimmten Zeit nach der Übertragung des speziellen Datenpakets empfangen wird.
  12. Verfahren, umfassend: Übertragen eines ersten Datenpakets von einem ersten Knoten zu einem zweiten Knoten, wobei das erste Datenpaket ein erstes Datenfeld umfasst, das Nicht-Füllfeld-Daten vom ersten Knoten umfasst; Empfangen des ersten Datenpakets am zweiten Knoten, wobei der Empfang des ersten Pakets eine endliche Menge an Zeit dauert; Beginnen der Übertragung eines zweiten Datenpakets vom zweiten Knoten zum ersten Knoten, nachdem der Empfang des ersten Datenpakets begonnen hat, jedoch bevor der Empfang des ersten Datenpakets geendet hat; Empfangen des zweiten Datenpakets am ersten Knoten, wobei der Empfang des zweiten Datenpakets eine endliche Menge an Zeit dauert; Beginnen der Übertragung eines dritten Datenpakets vom ersten Knoten zum zweiten Knoten, nachdem die Übertragung des ersten Datenpakets geendet hat, nachdem der Empfang des zweiten Datenpakets begonnen hat, und bevor der Empfang des zweiten Datenpakets geendet hat, wobei die Übertragung des dritten Datenpakets beginnt, bevor irgendwelche Bestätigungsinformationen, die dem ersten Datenpaket entsprechen, vom zweiten Knoten empfangen wurden; Empfangen des dritten Datenpakets am zweiten Knoten, wobei der Empfang des dritten Datenpakets eine endliche Menge an Zeit dauert; Beginnen der Übertragung eines vierten Datenpakets vom zweiten Knoten zum ersten Knoten, nachdem die Übertragung des zweiten Datenpakets geendet hat, nachdem der Empfang des dritten Datenpakets begonnen hat und bevor der Empfang des dritten Datenpakets geendet hat, wobei die Übertragung des vierten Datenpakets beginnt, bevor irgendwelche Bestätigungsinformationen, die dem zweiten Datenpaket entsprechen, vom ersten Knoten empfangen wurden, wobei das vierte Datenpaket Bestätigungsinformationen umfasst, die angeben, ob das erste Datenpaket vom zweiten Knoten korrekt empfangen wurde, wobei die Übertragung des ersten Datenpakets und die Übertragung des vierten Datenpakets verriegelt sind, so dass das vierte Datenpaket im Wesentlichen um eine vorbestimmte Menge an Zeit nach der Übertragung des ersten Datenpakets übertragen wird; Empfangen des vierten Pakets am ersten Knoten; und Verarbeiten der Bestätigungsinformationen, die angeben, ob das erste Datenpaket korrekt empfangen wurde, am ersten Knoten, wobei der erste Knoten das erste Datenpaket erneut überträgt, wenn das erste Datenpaket am zweiten Knoten nicht korrekt empfangen wurde.
  13. Computerprogrammprodukt, das auf einem maschinenlesbaren Medium real verkörpert ist, wobei das Computerprogrammprodukt Befehle umfasst, die wirksam sind, um zu bewirken, dass ein programmierbarer Prozessor die folgenden Operationen durchführt: Übertragen eines ersten Datenpakets von einem ersten Knoten zu einem zweiten Knoten, wobei das erste Datenpaket ein erstes Datenfeld umfasst, das Nicht-Füllfeld-Daten vom ersten Knoten umfasst; Übertragen eines zweiten Datenpakets vom ersten Knoten zum zweiten Knoten nach der Übertragung des ersten Datenpakets, wobei die Übertragung des zweiten Datenpakets beginnt, bevor irgendwelche Bestätigungsinformationen, die dem ersten Datenpaket entsprechen, vom zweiten Knoten empfangen wurden; und Empfangen eines dritten Datenpakets am ersten Knoten, wobei das dritte Datenpaket vom zweiten Knoten übertragen wurde, wobei das dritte Datenpaket Bestätigungsinformationen umfasst, die angeben, ob das erste Datenpaket vom zweiten Knoten korrekt empfangen wurde, wobei die Übertragung des ersten Datenpakets und der Empfang des dritten Datenpakets verriegelt sind, so dass das dritte Datenpaket im Wesentlichen um eine vorbestimmte Menge an Zeit nach der Übertragung des ersten Datenpakets empfangen wird.
  14. Computerprogrammprodukt nach Anspruch 13, wobei: das zweite Datenpaket ungeachtet dessen übertragen wird, ob der erste Knoten irgendwelche Nicht-Füllfeld-Daten zum Setzen in ein zweites Datenfeld des zweiten Datenpakets hat.
  15. Computerprogrammprodukt nach Anspruch 13, wobei: das erste, das zweite und das dritte Datenpaket jeweils jeweilige Flusssteuerinformationen umfassen, wobei die Flusssteuerinformationen im ersten und im zweiten Datenpaket den ersten Knoten betreffen und die Flusssteuerinformationen im dritten Datenpaket den zweiten Knoten betreffen.
  16. Computerprogrammprodukt nach Anspruch 15, wobei: die Flusssteuerinformationen separate Flusssteuerinformationen für mehrere Kanäle umfassen.
  17. Computerprogrammprodukt nach Anspruch 13, wobei: das erste Datenpaket Kopfinformationen umfasst, die angeben, auf welchem einer Vielzahl von Kanälen die Nicht-Füllfeld-Daten übertragen werden.
  18. Computerprogrammprodukt nach Anspruch 13, wobei: das erste und das zweite Datenpaket jeweils eine Angabe eines Fehlerzustandes des ersten Knotens umfassen; und das dritte Datenpaket eine Angabe eines Fehlerzustandes des zweiten Knotens umfasst.
  19. Computerprogrammprodukt nach Anspruch 13, welches ferner Befehle umfasst, die zum Durchführen der folgenden Operationen wirksam sind: Empfangen eines fünften Datenpaket am ersten Knoten, bevor das dritte Datenpaket empfangen wird, wobei das fünfte Datenpaket vom zweiten Knoten vor dem dritten Datenpaket übertragen wurde, wobei das fünfte Datenpaket keine Bestätigungsinformationen umfasst, die angeben, ob ein spezielles Datenpaket vom zweiten Knoten korrekt empfangen wurde.
  20. Computerprogrammprodukt, das auf einem maschinenlesbaren Medium real verkörpert ist, wobei das Computerprogrammprodukt Befehle umfasst, die wirksam sind, um zu veranlassen, dass ein programmierbarer Prozessor die folgenden Operationen durchführt: synchrones Übertragen von Datenpaketen zwischen einem ersten Knoten und einem zweiten Knoten, umfassend: Übertragen von Datenpaketen vom ersten Knoten, ohne auf die Bestätigung des Empfangs durch den zweiten Knoten zu warten, und anschließend Empfangen einer Bestätigung des Empfangs eines gegebenen Datenpakets vom zweiten Knoten am ersten Knoten, wobei die Bestätigung im Wesentlichen zu einer vorbestimmten Zeit nach der Übertragung des gegebenen Datenpakets empfange wird, wobei die Bestätigung angibt, dass der zweite Knoten das gegebene Datenpaket unverfälscht empfangen hat.
DE102006059376A 2005-12-22 2006-12-15 Synchrone Datenübertragung Withdrawn DE102006059376A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US75399105P 2005-12-22 2005-12-22
US60/753,991 2005-12-22
US11/479,160 US7756036B2 (en) 2005-12-22 2006-06-30 Synchronous data communication
US11/479,160 2006-06-30

Publications (1)

Publication Number Publication Date
DE102006059376A1 true DE102006059376A1 (de) 2007-11-22

Family

ID=38137705

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102006059376A Withdrawn DE102006059376A1 (de) 2005-12-22 2006-12-15 Synchrone Datenübertragung

Country Status (6)

Country Link
US (1) US7756036B2 (de)
EP (1) EP1964168B1 (de)
KR (1) KR101279827B1 (de)
DE (1) DE102006059376A1 (de)
FR (1) FR2895620A1 (de)
WO (1) WO2007133292A2 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102019206130A1 (de) * 2019-04-29 2020-10-29 Baumüller Nürnberg GmbH Verfahren zur sicheren Kommunikation zwischen einem ersten Teilnehmer und einem zweiten Teilnehmer

Families Citing this family (72)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8054752B2 (en) * 2005-12-22 2011-11-08 Intuitive Surgical Operations, Inc. Synchronous data communication
US7757028B2 (en) * 2005-12-22 2010-07-13 Intuitive Surgical Operations, Inc. Multi-priority messaging
WO2007148945A2 (en) * 2006-06-22 2007-12-27 Lg Electronics Inc. Methods and devices for retransmitting data in a mobile communication system
US8855275B2 (en) * 2006-10-18 2014-10-07 Sony Online Entertainment Llc System and method for regulating overlapping media messages
US8516199B2 (en) * 2009-03-17 2013-08-20 Oracle America, Inc. Bandwidth-efficient directory-based coherence protocol
KR101012107B1 (ko) * 2009-04-22 2011-02-07 한국표준과학연구원 다채널 squid신호의 데이터 획득 시스템
WO2012049623A1 (en) 2010-10-11 2012-04-19 Ecole Polytechnique Federale De Lausanne (Epfl) Mechanical manipulator for surgical instruments
CN103717355B (zh) 2011-07-27 2015-11-25 洛桑联邦理工学院 用于远程操纵的机械遥控操作装置
US9210058B2 (en) * 2012-09-14 2015-12-08 Google Inc. Systems and methods for assessing jitter buffers
US9286620B2 (en) 2012-11-05 2016-03-15 Broadcom Corporation Annotated tracing for data networks
US10280830B2 (en) 2013-03-08 2019-05-07 Pratt & Whitney Canada Corp. System for pilot subchamber temperature control
CN105431103B (zh) 2013-08-09 2018-08-17 直观外科手术操作公司 具有用于控制容纳在远侧的多个马达的远程电流控制器的医疗机器人系统
US9446517B2 (en) * 2013-10-17 2016-09-20 Intuitive Surgical Operations, Inc. Fault reaction, fault isolation, and graceful degradation in a robotic system
WO2015088647A1 (en) 2013-12-11 2015-06-18 Covidien Lp Wrist and jaw assemblies for robotic surgical systems
JP6734259B2 (ja) 2014-08-13 2020-08-05 コヴィディエン リミテッド パートナーシップ 機械的利益把握のロボット制御
WO2016097873A2 (en) 2014-12-19 2016-06-23 Distalmotion Sa Articulated handle for mechanical telemanipulator
DK3232951T3 (da) 2014-12-19 2024-01-15 Distalmotion Sa Kirurgisk instrument med leddelt ende-effektor
WO2016097871A1 (en) 2014-12-19 2016-06-23 Distalmotion Sa Docking system for mechanical telemanipulator
US11039820B2 (en) 2014-12-19 2021-06-22 Distalmotion Sa Sterile interface for articulated surgical instruments
WO2016097868A1 (en) 2014-12-19 2016-06-23 Distalmotion Sa Reusable surgical instrument for minimally invasive procedures
CN114052918A (zh) 2015-02-19 2022-02-18 柯惠Lp公司 机器人手术系统的输入装置的重定位方法
WO2016144937A1 (en) 2015-03-10 2016-09-15 Covidien Lp Measuring health of a connector member of a robotic surgical system
WO2016162751A1 (en) 2015-04-09 2016-10-13 Distalmotion Sa Articulated hand-held instrument
EP3280343B1 (de) 2015-04-09 2024-08-21 DistalMotion SA Mechanische ferngesteuerte vorrichtung zur fernmanipulation
US10959788B2 (en) 2015-06-03 2021-03-30 Covidien Lp Offset instrument drive unit
CN112294439A (zh) 2015-06-16 2021-02-02 柯惠Lp公司 机器人外科手术系统扭矩传感感测
JP6719487B2 (ja) 2015-06-23 2020-07-08 コヴィディエン リミテッド パートナーシップ ロボット外科手術アセンブリ
WO2017037532A1 (en) 2015-08-28 2017-03-09 Distalmotion Sa Surgical instrument with increased actuation force
US10806454B2 (en) 2015-09-25 2020-10-20 Covidien Lp Robotic surgical assemblies and instrument drive connectors thereof
EP3878396A1 (de) 2015-10-23 2021-09-15 Covidien LP Chirurgisches system zur erkennung gradueller veränderungen in der perfusion
US10660714B2 (en) 2015-11-19 2020-05-26 Covidien Lp Optical force sensor for robotic surgical system
WO2017173524A1 (en) 2016-04-07 2017-10-12 Titan Medical Inc. Camera positioning method and apparatus for capturing images during a medical procedure
CA3022071A1 (en) 2016-05-26 2017-11-30 Covidien Lp Robotic surgical assemblies
CN113328581B (zh) 2016-05-26 2024-06-11 柯惠Lp公司 器械驱动单元
CN114504387A (zh) 2016-06-03 2022-05-17 柯惠Lp公司 用于机器人手术系统的被动轴系统
US11446099B2 (en) 2016-06-03 2022-09-20 Covidien Lp Control arm for robotic surgical systems
WO2017210497A1 (en) 2016-06-03 2017-12-07 Covidien Lp Systems, methods, and computer-readable program products for controlling a robotically delivered manipulator
WO2017210500A1 (en) 2016-06-03 2017-12-07 Covidien Lp Robotic surgical system with an embedded imager
CN106444461A (zh) * 2016-11-28 2017-02-22 广州艾想电子科技有限公司 一种通过运动信息控制关联设备的系统和方法
WO2018152141A1 (en) 2017-02-15 2018-08-23 Covidien Lp System and apparatus for crush prevention for medical robot applications
US11058503B2 (en) 2017-05-11 2021-07-13 Distalmotion Sa Translational instrument interface for surgical robot and surgical robot systems comprising the same
EP3629979A4 (de) 2017-05-24 2021-02-17 Covidien LP Präsenzerkennung für elektrochirurgische werkzeuge in einem robotersystem
CN110662507A (zh) 2017-05-25 2020-01-07 柯惠Lp公司 具有自动引导的机器人手术系统
EP3629983B1 (de) 2017-05-25 2023-06-28 Covidien LP Robotische chirurgische systeme und abdecktücher zum abdecken von komponenten von chirurgischen robotersystemen
WO2018217444A2 (en) 2017-05-25 2018-11-29 Covidien Lp Systems and methods for detection of objects within a field of view of an image capture device
EP3678572A4 (de) 2017-09-05 2021-09-29 Covidien LP Kollisionshandhabungsalgorithmen für chirurgische robotersysteme
CN111132629B (zh) 2017-09-06 2024-04-16 柯惠Lp公司 手术机器人的边界缩放
US10624707B2 (en) * 2017-09-18 2020-04-21 Verb Surgical Inc. Robotic surgical system and method for communicating synchronous and asynchronous information to and from nodes of a robotic arm
WO2019108567A1 (en) 2017-12-01 2019-06-06 Covidien Lp Drape management assembly for robotic surgical systems
WO2019136062A1 (en) 2018-01-04 2019-07-11 Covidien Lp Systems and assemblies for mounting a surgical accessory to robotic surgical systems, and providing access therethrough
WO2019139949A1 (en) 2018-01-10 2019-07-18 Covidien Lp Determining positions and conditions of tools of a robotic surgical system utilizing computer vision
US12102403B2 (en) 2018-02-02 2024-10-01 Coviden Lp Robotic surgical systems with user engagement monitoring
WO2019155383A1 (en) 2018-02-07 2019-08-15 Distalmotion Sa Surgical robot systems comprising robotic telemanipulators and integrated laparoscopy
US11189379B2 (en) 2018-03-06 2021-11-30 Digital Surgery Limited Methods and systems for using multiple data structures to process surgical data
AU2019232675B2 (en) 2018-03-08 2020-11-12 Covidien Lp Surgical robotic systems
EP3781367A4 (de) 2018-04-20 2022-04-20 Covidien LP Systeme und verfahren zur positionierung eines chirurgischen roboterwagens
WO2019204012A1 (en) 2018-04-20 2019-10-24 Covidien Lp Compensation for observer movement in robotic surgical systems having stereoscopic displays
EP3817683A4 (de) 2018-07-03 2022-04-20 Covidien LP Systeme, verfahren und computerlesbare medien zur detektion der bildverschlechterung während chirurgischer eingriffe
CN112739282A (zh) 2018-09-17 2021-04-30 柯惠Lp公司 手术机器人系统
US11109746B2 (en) 2018-10-10 2021-09-07 Titan Medical Inc. Instrument insertion system, method, and apparatus for performing medical procedures
US11586106B2 (en) 2018-12-28 2023-02-21 Titan Medical Inc. Imaging apparatus having configurable stereoscopic perspective
US11717355B2 (en) 2019-01-29 2023-08-08 Covidien Lp Drive mechanisms for surgical instruments such as for use in robotic surgical systems
US11576733B2 (en) 2019-02-06 2023-02-14 Covidien Lp Robotic surgical assemblies including electrosurgical instruments having articulatable wrist assemblies
US11484372B2 (en) 2019-02-15 2022-11-01 Covidien Lp Articulation mechanisms for surgical instruments such as for use in robotic surgical systems
US11463547B2 (en) * 2019-12-12 2022-10-04 Google Llc Reliable transport protocol and hardware architecture for datacenter networking
US12030195B2 (en) 2020-05-27 2024-07-09 Covidien Lp Tensioning mechanisms and methods for articulating surgical instruments such as for use in robotic surgical systems
USD963851S1 (en) 2020-07-10 2022-09-13 Covidien Lp Port apparatus
US11948226B2 (en) 2021-05-28 2024-04-02 Covidien Lp Systems and methods for clinical workspace simulation
EP4401666A1 (de) 2021-09-13 2024-07-24 DistalMotion SA Instrumente für chirurgisches robotersystem und schnittstellen dafür
WO2023101948A1 (en) 2021-11-30 2023-06-08 Endoquest, Inc. Master control systems for robotic surgical systems
WO2023101968A1 (en) 2021-11-30 2023-06-08 Endoquest Robotics, Inc. Steerable overtube assemblies for robotic surgical systems
US11844585B1 (en) 2023-02-10 2023-12-19 Distalmotion Sa Surgical robotics systems and devices having a sterile restart, and methods thereof

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5068851A (en) 1989-08-01 1991-11-26 Digital Equipment Corporation Apparatus and method for documenting faults in computing modules
US6595420B1 (en) * 1990-09-10 2003-07-22 Metrologic Instruments, Inc. Automatically-activated body-wearable laser scanning bar code symbol reading system having data-transmission activation switch
US5762458A (en) 1996-02-20 1998-06-09 Computer Motion, Inc. Method and apparatus for performing minimally invasive cardiac procedures
DE69524381T2 (de) 1995-03-23 2002-08-14 Agfa-Gevaert N.V., Mortsel Parallele Verarbeitung des Datenstroms der Seitenbeschreibungssprache
US6041345A (en) * 1996-03-08 2000-03-21 Microsoft Corporation Active stream format for holding multiple media streams
US6182120B1 (en) 1997-09-30 2001-01-30 International Business Machines Corporation Method and system for scheduling queued messages based on queue delay and queue priority
US6035228A (en) 1997-11-28 2000-03-07 Picker International, Inc. Frameless stereotactic arm apparatus and method of using same
US6680944B1 (en) * 1998-03-09 2004-01-20 Sony Corporation Apparatus for and method of predictive time stamping of isochronous data packets transmitted over an IEEE 1394-1995 serial bus network
US6424625B1 (en) * 1998-10-28 2002-07-23 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for discarding packets in a data network having automatic repeat request
US7002988B1 (en) * 1998-12-04 2006-02-21 Tekelec Methods and systems for communicating SS7 messages over packet-based network using transport adapter layer interface
US6021129A (en) 1999-03-08 2000-02-01 Efficient Networks, Inc. System and method for communicating information from a communications link to a host using a universal serial bus
DE19915846C1 (de) 1999-04-08 2000-08-31 Implex Hear Tech Ag Mindestens teilweise implantierbares System zur Rehabilitation einer Hörstörung
US7046686B1 (en) 1999-08-17 2006-05-16 Mindspeed Technologies, Inc. Integrated circuit that processes communication packets with a buffer management engine having a pointer cache
US6674731B1 (en) 1999-08-27 2004-01-06 Tachyon, Inc. Transmission and reception of TCP/IP data over a wireless communication channel
US7447229B2 (en) 1999-12-16 2008-11-04 Intel Corporation Method for providing prioritized data movement between endpoints connected by multiple logical channels
US6671731B1 (en) * 2000-06-21 2003-12-30 Mediaone Group, Inc. Generic proxy service for docsis-enabled set top devices
US20020080719A1 (en) * 2000-12-22 2002-06-27 Stefan Parkvall Scheduling transmission of data over a transmission channel based on signal quality of a receive channel
US20040196861A1 (en) 2001-01-12 2004-10-07 Joseph Rinchiuso Packet data transmission within a broad-band communication system
US7388872B2 (en) * 2001-04-06 2008-06-17 Montgomery Jr Charles D Dynamic communication channel allocation method and system
US7310336B2 (en) 2001-05-18 2007-12-18 Esa Malkamaki Hybrid automatic repeat request (HARQ) scheme with in-sequence delivery of packets
DE60104113T2 (de) * 2001-08-22 2004-10-28 Matsushita Electric Industrial Co., Ltd., Kadoma Übertragungsverfahren und Übertragungsgerät mit Mehrkanal-ARQ
US6728599B2 (en) * 2001-09-07 2004-04-27 Computer Motion, Inc. Modularity system for computer assisted surgery
US20030112758A1 (en) * 2001-12-03 2003-06-19 Pang Jon Laurent Methods and systems for managing variable delays in packet transmission
JP3937855B2 (ja) * 2002-02-06 2007-06-27 日本電気株式会社 マルチリング制御方法およびそれを用いるノード並びに制御プログラム
US8010180B2 (en) 2002-03-06 2011-08-30 Mako Surgical Corp. Haptic guidance system and method
US7607062B2 (en) * 2002-03-25 2009-10-20 Akamai Technologies, Inc. System for fast recovery from losses for reliable data communication protocols
WO2005048086A2 (en) * 2003-11-17 2005-05-26 Roy-G-Biv Corporation Command processing systems and methods
US7302282B2 (en) 2003-12-05 2007-11-27 Agilent Technologies, Inc. Communications system for implementation of synchronous, multichannel, galvanically isolated instrumentation devices
US6920586B1 (en) 2004-01-23 2005-07-19 Freescale Semiconductor, Inc. Real-time debug support for a DMA device and method thereof
GB0410108D0 (en) * 2004-05-06 2004-06-09 Koninkl Philips Electronics Nv Communication system and method of operating the system
US7440793B2 (en) 2004-07-22 2008-10-21 Sunita Chauhan Apparatus and method for removing abnormal tissue
US7742505B2 (en) * 2005-12-14 2010-06-22 Adtran, Inc. Systems and methods for enabling clock signal synchronization
US7757028B2 (en) 2005-12-22 2010-07-13 Intuitive Surgical Operations, Inc. Multi-priority messaging
US8054752B2 (en) 2005-12-22 2011-11-08 Intuitive Surgical Operations, Inc. Synchronous data communication

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102019206130A1 (de) * 2019-04-29 2020-10-29 Baumüller Nürnberg GmbH Verfahren zur sicheren Kommunikation zwischen einem ersten Teilnehmer und einem zweiten Teilnehmer

Also Published As

Publication number Publication date
WO2007133292A2 (en) 2007-11-22
EP1964168A4 (de) 2011-12-21
WO2007133292A3 (en) 2008-06-26
US7756036B2 (en) 2010-07-13
KR101279827B1 (ko) 2013-07-30
EP1964168B1 (de) 2015-10-21
US20070147250A1 (en) 2007-06-28
EP1964168A2 (de) 2008-09-03
KR20080087115A (ko) 2008-09-30
FR2895620A1 (fr) 2007-06-29

Similar Documents

Publication Publication Date Title
DE102006059376A1 (de) Synchrone Datenübertragung
DE102006059377A1 (de) Synchrone Datenübertragung
DE102006059378A1 (de) Nachrichtenübermittlung mit mehrfacher Priorität
DE69015275T2 (de) Datenkommunikationssystem und Vorrichtung mit einer zyklischen Quittungsantwortensequenz.
DE60111551T2 (de) Mechanismus zur vervollständigung von nachrichten im speicher
DE69735740T2 (de) Asynchrone paketvermittlung
DE60213616T2 (de) Eine allgemeine eingabe-/ausgabearchitektur, protokoll und entsprechende verfahren zur umsetzung der flusssteuerung
DE69128503T2 (de) Schnittstellenschaltung für intelligentes Netzwerk
DE69935554T2 (de) Verfahren und Rechnerprogrammprodukt zum effizienten und zuverlässigen Übertragen von kleinen Datennachrichten von einem Sendesystem zu einer grossen Anzahl von Empfangssystemen
DE60031263T2 (de) Umhüllungsverfahren für protokolldateneinheiten
DE19900245B4 (de) Vorrichtung und Verfahren zum Senden von Daten von einem USB-Endpunkt an einen USB-Host
DE69130187T2 (de) Hochgeschwindigkeitsübertragungsprotokoll mit zwei Fenstern
DE69317481T2 (de) Ein-/Ausgabesteuerungssystem und Verfahren
DE60132735T2 (de) Fehlerkorrekturübertragungsverfahren zum Übertragen von Datenpaketen in einem Netzkommunikationssystem
DE19924922A1 (de) System und Verfahren für Nachrichtenübermittlung zwisfchen Netzwerkknoten, die durch parallele Verbindungen verbunden sind
EP0039036B1 (de) Datenübertragungssystem
EP0993712B1 (de) Verfahren und anordnung zur codierung digitaler daten
DE112004002544B4 (de) Verfahren, System und Programm zur Identifizierung von Datenüberlauf
DE102004042068B4 (de) Verfahren, computerlesbares Medium und System zum Handhaben eines fehlgeschlagenen Verbindungstrainings
EP1175047A2 (de) Verfahren und Anordnung zum Schutz gegen Paketverlusten bei einer paketorientierten Datenübertragung
DE102005062575B4 (de) Verfahren und Vorrichtung zum Übertragen von Daten über eine Datenverbindung von einem Sender zu einem Empfänger mittels Pakete
DE3853118T2 (de) Verfahren und Vorrichtung zur Datenübertragung.
DE10102323A1 (de) Verfahren und Vorrichtung zur zuverlässigen Übertragung von Datenpaketen
DE60036121T2 (de) Hochgeschwindigkeitsverbindung für eingebettete Systeme in einem Rechnernetzwerk
EP3284193A1 (de) Ubertragungsverfahren und vorrichtungen zur übertragung

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8139 Disposal/non-payment of the annual fee