topic_kommunikation

Kithara Echtzeit-Kommunikation

Die Kithara »RealTime Suite« ist eine modulare Echtzeiterweiterung für die Windows-Betriebssysteme. Echtzeitkommunikation bedeutet, dass Nachrichten von einer Komponente zu einer weiteren übertragen werden, wobei von vornherein feststeht, wie lange die Kommunikation maximal dauert. Die Software unterstützt:

  • Echtzeit-Ethernet-Kommunikation (“Network Module”),
  • USB 3.0 in Echtzeit (“USB 3 / XHCI Module”),
  • UART-Kommunikation in Echtzeit (“Serial / UART Module”),
  • Funktionen für Virtual-Devices (“Device Module”),
  • USB 2.0 Treiberbibliothek (“USB 2 Module”).

Echtzeit-Ethernet – RealTime Sockets

Ethernet-basierte Kommunikation beherrscht mehr und mehr auch industrielle Anwendungen – die Standard-Funktionen der Betriebssysteme können jedoch nicht mehr mithalten, echtzeitfähige Mechanismen sind gefordert.

Mit der Echtzeit-Ethernet-Umgebung können industrielle Kommunikationsaufgaben über alle Ethernet-basierten Protokolle in Echtzeit realisiert werden (einschließlich IP, also die weit verbreiteten Protokolle TCP und UDP).

Intel-Pro/1000 Quad Adapter

Mit dem zur Produktreihe »RealTime Suite« gehörenden
Network Module stehen die erforderlichen Mechanismen zur Verfügung, um über Ethernet-Controller in Echtzeit kommunizieren zu können sowohl für Raw-Ethernet als auch für TCP und UDP. Die Echtzeit-Datenkommunikation erfolgt über Fast-Ethernet-Karten sowie Netzwerkkarten mit Gigabit-Ethernet-Controllern von Intel und Realtek, so dass auch schnelle Messwerterfassung oder industrielle Bildverarbeitung realisierbar sind.

Zur Erreichung der Echtzeitfähigkeit werden die Netzwerk-Controller direkt angesteuert. Dadurch steht die gesamte Bandbreite der Verbindung zur Verfügung und die sofortige Reaktion auf eintreffende Datenpakete erfolgt in Echtzeit.

Anders als sonst oftmals in Betriebssystemen üblich werden bei dieser Implementierung in der Regel jegliche Kopieroperationen vermieden. Sowohl beim Senden als auch beim Empfang benutzen Sie den gleichen Speicher wie der Netzwerk-Controller. Sie erreichen dadurch höchstmögliche Übertragungsraten und kürzeste Reaktionszeiten.

Funktionen für CRC-Berechnung und Byteorder-Wandlung werden bereitgestellt.

Die Socket-Applikation erstellt der Entwickler wie von Kithara gewohnt komfortabel im Rahmen der Anwendung, die in C/C++ oder Delphi programmiert werden kann. Als DLL kann die Echtzeit-Applikation auch in eine C#.NET-Anwendung eingebettet werden.

Die Software geht damit weit über die Möglichkeiten der Windows-Betriebssysteme hinaus, die aufgrund der mangelnden Echtzeitfähigkeit zur Lösung industrieller Anforderungen oftmals nicht geeignet sind.

Network Module

Native Echtzeit-Treiber für schnelle Ethernet-Kommunikation

  • Allgemein
  • Features
  • Hardware-Unterstützung

Das Network Module stellt native Echtzeit-Ethernet-Treiber für die unterstützten Netzwerk-Controller bereit, sowohl für Kommunikation über Raw Ethernet als auch UDP und TCP. Hierbei werden unter Umgehung sämtlicher behindernder Windows-Mechanismen mit hohen Übertragungsgeschwindigkeiten und unmittelbarer Reaktion für eine hohe Leistungsfähigkeit der Netzwerkkommunikation gesorgt. Dabei werden nahezu sämtliche Netzwerk-Controller von Intel und RealTek unterstützt (siehe Hardware-Unterstützung).

  • Ethernet-Kommunikation bis 10 Gigabit/s in Echtzeit
  • Verzögerungsfreies Senden & sofortige Reaktion beim Empfang
  • Senden und Empfangen direkt aus dem Echtzeitkontext möglich
  • beliebige Ethernet-Protokolle inkl. IP, UDP and TCP
  • Ethernet-Kommunikation ist abfrage- oder ereignisgesteuert
  • Unterstützte Hardware: Intel, RealTek (bis zu 10 Gigabit) - siehe Hardware-Kompatibilitätsliste
  • Jumbo-Frames bis 16128 Byte je nach NIC
  • IP- und MAC-Multicast, Broadcast, Promiscuous-Mode für Empfang aller Pakete
  • Empfang von Datenpaketen entweder durch Callback-Funktion direkt im Interrupt-Kontext oder im Polling-Betrieb
  • Priorisierung von zu sendenden Paketen in 4 Stufen möglich
  • Automatische Adressermittlung durch ARP-Unterstützung
  • Funktionen für CRC-Berechnung und Byteorder-Wandlung enthalten
  • Network Module Addons: Network Port Extension, Network NDIS Extension,
    Network 10 Gbit/s Extension

Zur Erreichung von Echtzeitfähigkeit muss der langsame Windows-Treiber der Netzwerkkarte durch einen speziell entwickelten Echtzeit-Treiber der »RealTime Suite« ersetzt werden. Dazu gehören nahezu sämtliche derzeit verfügbaren Netzwerk-Controller von Intel und RealTek* :

Intel

Intel – Fast Ethernet controller (100 MBit/s)

  • 8255x
  • 82562

Intel – Gigabit Ethernet controller (1 GBit/s)

  • 82540, 82541, 82544, 82545, 82546, 82547
  • 82566, 82567
  • 82571, 82572, 82573, 82574
  • 82575, 82576
  • 82577, 82578, 82579
  • 82580, 82583, i350
  • i210, i211
  • i217, i219

Intel – 10 Gigabit Ethernet controller (10 GBit/s)

  • 82598, 82599
  • x540, x550

 

RealTek

RealTek – Fast Ethernet controller (100 MBit/s)

  • 8139B, 8139C, 8139D

RealTek – Gigabit Ethernet controller (1 GBit/s)

  • 8100E, 8101E, 8102E, 8110S
  • 8168B/8111B, 8168C/8111C, 8168CP/8111CP, 8168D/8111D+DL
  • 8168DP/8111DP, 8168E/8111E,8168EVL/8111EVL,
  • 8168F/8111F, 8168G/8111G,8168H/8111H,
  • 8168EP/8111EP
  • 8169, 8169S, 8169SB/8110SB, 8169SC/8110SC

 

ASIX - USB 3.0 Gigabit Ethernet controller (1 GBit/s)

  • AX88179 (z.B. Digitus USB 3.0 Ethernet Adapter)

 

Beckhoff – Fast Ethernet controller (100 MBit/s)

  • CX5000 CCAT(Beckhoff CX50xx, CX20xx, CX51xx Embedded PCs)

*Diese Liste bezieht sich stets auf die aktuelle Version unserer Software.

Echtzeit-Treiber für USB 3

USB 3 / XHCI Module

Echtzeit-Kommunikation mit USB-Geräten über direkten XHCI-Zugriff

  • Allgemein
  • Features
  • Hardware-Unterstützung

Das USB 3 / XHCI Module der »RealTime Suite« garantiert, dass alle USB-basierten Schnittstellen und Geräte, wie z.B. Kameras, mit schnellen Reaktionszeiten und größtmöglichem Durchsatz verwendet werden können. Dies wird durch einen speziell programmierten und einfach anwendbaren Zugang zum Extensible Host Controller Interface (XHCI) realisiert, welcher von der »RealTime Suite« bereitgestellt wird.

Grundprinzip dabei ist, den XHCI-Controller direkt aus dem Echtzeitkontext exklusiv anzusteuern.

  • Echtzeit-Kommunikation mit Geräten bis einschließlich USB 3.0 über XHCI-Zugang
  • XHCI-Controller wird exklusiv genutzt
  • Zugriff unmittelbar aus dem Echtzeit-Multitasking-Kontext
  • niedrigste Reaktionszeit
  • größtmöglicher Datendurchsatz erreichbar
  • Zuverlässige Vermeidung von Datenausfällen durch frei wählbare Puffergrößen
  • Low-, Full-, High-, Super-Speed
  • Control-, Bulk-, Interrupt- und Isochron-Transfer
  • Reaktion auf alle Plug&Play- und Power-Management-Ereignisse

Im Zusammenhang mit dem XHCI Module können alle mit der XHCI Spezifikation 1.0 kompatiblen USB 3.0 Hostcontroller eingesetzt werden.

XHCI Controller folgender Hersteller sind derzeit mit der RealTime Suite verwendbar* :

  • Intel
  • AMD
  • Renesas
  • Etron
  • NEC
  • VIA

    *Diese Liste bezieht sich stets auf die aktuelle Version unserer Software.

Siehe auch:

  • Special: USB 3.0 in Echtzeit mit XHCI
  • 2014-10-21
  •     
  • 150 KB

Echtzeit-Kommunikation unter Windows®

Echtzeit unter Windows besteht in der modularen Kithara »RealTime Suite« aus folgenden Komponenten:

  • Einfach anwendbare Funktionen für schnelle Kommunikation (“Serial/UART Module”)
  • Erzeugung virtueller Schnittstellen (“Device Module”)
  • Echtzeit-Kommunikation mit USB-Geräten (“USB Module”)

Serial/UART Module

Einfach anwendbare Funktionen für schnelle Kommunikation

  • Allgemein
  • Features
  • Hardware-Unterstützung

Das Serial/UART Module der »RealTime Suite« stellt einfach anwendbare Funktionen für die schnelle Kommunikation über die seriellen Schnittstellen bereit.

Das Paket enthält eigentlich zwei Module in einem: Die UART-Funktionen erfordern eine UART-16550-kompatible Hardware, für die ein Echtzeit-Treiber vorliegen muss. Oder es werden mit den COMM-Funktionen sämtliche COM-Schnittstellen unterstützt, für die ein Windows-Treiber installiert ist. Dann läuft dies über Windows-Mechanismen und damit ohne Echtzeit.

Im Echtzeitbetrieb sind die UART-Funktionen auch aus Echtzeit-Tasks heraus und auf Dedicated-CPUs nutzbar.

  • Serielle Kommunikation in Echtzeit auf der Kernel-Ebene durch speziellen Hardware-Treiber
  • Handshake- und Signal-Leitungen direkt ansteuerbar
  • Handler für alle Schnittstellen-Ereignisse können auch für Echtzeitkontext und Dedicated-CPUs angemeldet werden
  • Für UART-Funktionen: UART-16550-kompatible Hardware erforderlich
  • Für COMM-Funktionen: serielle Kommunikation auf der Anwendungsebene erlaubt Programmierung über alle im System bekannten COM-Schnittstellen

Zur Erreichung von Echtzeitfähigkeit müssen speziell entwickelte Echtzeit-Treiber der »RealTime Suite« für die gewünschte serielle COM-Schnittstelle verwendet werden.

Dazu werden derzeit folgende seriellen Schnittstellenkarten unterstützt* :

  • Standard COM Schnittstelle (PNP0501)

PCIe

  • StarTech PEX2S952 - 2 x RS232
  • Longshine LCS6321O - 2 x RS232
  • Delock 89220 - 2 x RS232
  • Delock 89236 - 1 x RS232
  • ADDI-DATA APCIe-7300 – 1-fach seriell
  • ADDI-DATA APCIe-7420 – 2-fach seriell
  • ADDI-DATA APCIe-7500 – 4-fach seriell
  • ADDI-DATA APCIe-7800 – 8-fach seriell

ExpressCard

  • i-tec EXRS232 - 1 x RS-232
  • StarTech EC1S1P55254 1 Serial/ 1 Parallel (Netmos 9912 Chipsatz)

PCI

  • MOXA 4-port RS-232 C104H/PCI
  • MOXA 8-port RS-232 C168H/PCI
  • MOXA 2-port RS-422/485 CP132/PCI
  • MOXA 4-port RS-422/485
  • EXSYS 41052 serial card
  • EXSYS 43092 serial card
  • Oxford serial card Quad Port
  • SUNIX 2-port RS-232 parallel
  • SUN 2-port RS-232 PCI
  • Meilhaus ME9000 8-port RS-485
  • EXAR (XR17C152) 2-port UART PCI
  • ADDI-DATA APCI-7300-3 – 1-fach seriell
  • ADDI-DATA APCI-7420-3 – 2-fach seriell
  • ADDI-DATA APCI-7500-3 – 4-fach seriell
  • ADDI-DATA APCI-7800-3 – 8-fach seriell

CardBus

  • Socket PCMCIA Serial Card
  • Delock PCMCIA Serial Card

    *Diese Liste bezieht sich stets auf die aktuelle Version unserer Software.

Device Module

Erzeugung virtueller Schnittstellen

  • Allgemein
  • Features

Das Device Module der »RealTime Suite« stellt dem Endanwender ein API zu Gerätetreibern über Betriebssystem-Funktionen bereit. Mit dem Device Module behandeln Sie Aufrufe dieser Funktionen auf der Kernel-Ebene und damit im Kontext des Gerätetreibers.

Außerdem erlaubt das Device Module die Erzeugung von virtuellen Schnittstellen – in einer Sonderform sogar virtueller COM-Schnittstellen.

  • Bereitstellung eines Windows-APIs für Gerätekommunikation (ReadFile, WriteFile, DeviceIoControl)
  • beliebige virtuelle Schnittstellen

USB 2 Module

Kommunikation mit USB-Geräten über Windows-Treiberstack

  • Allgemein
  • Features

Das USB 2 Module der »RealTime Suite« erlaubt die Kommunikation mit USB-Geräten über einfach anwendbare Funktionen.

Es basiert auf dem Windows-USB-Treiberstack und besitzt daher nur eingeschränkte Echtzeit-Eigenschaften. Für “harte” Echtzweit empfehlen wir das USB 3 / XHCI Module. Unterstützt werden alle Geräte bis einschließlich USB 3.0.

  • Entwicklung von USB-Gerätetreibern
  • Zugriff auf eigene oder fremde USB-Geräte (bis einschließlich USB 3.0) von Anwendungs- oder Kernel-Ebene
  • Kommunikation mit USB-Geräten, bis USB 3.0, Low-, Full-, High-, Super-Speed
  • Control-, Bulk-, Interrupt- und Isochron-Transfer
  • Reaktion auf alle Plug&Play- und Power-Management-Ereignisse