wake-up-neo.net

Fälschung einer seriellen RS232-Schnittstelle

Ich entwickle ein Projekt mit einer Reihe von Hardware-Sensoren, die über serielle RS232-Anschlüsse mit dem Bereitstellungscomputer verbunden sind.

Aber ... Ich entwickle auf einer Maschine ohne physische serielle RS232-Schnittstellen, möchte aber gefälschte serielle Schnittstellen erstellen, mit denen ich Daten verbinden und ausgeben kann, um Eingaben von Hardwaresensoren zu fälschen.

Kennt jemand eine Möglichkeit, eine gefälschte serielle Schnittstelle zu erstellen und diese unter Windows XP zu steuern?

74

Wenn Sie für Windows entwickeln, könnte das com0com Projekt genau das sein, wonach Sie suchen.

Es bietet zwei virtuelle COM-Ports, die über eine Nullmodem-Verbindung verbunden sind. Sie können dann Ihre bevorzugte Terminal-Anwendung oder eine beliebige andere Anwendung verwenden, um Daten an einen COM-Port zu senden und von dem anderen zu empfangen.

BEARBEITEN:

Als Thomas wies das Projekt auf das Fehlen eines signierten Treibers hin, was bei bestimmten Windows-Versionen (z. B. Windows 7 x64) besonders problematisch ist.

Es gibt einige inoffizielle com0com Versionen, die einen signierten Treiber enthalten. Eine neuere Version (3.0.0.0) kann z.B. von hier .

61
Frank Bollack

Ich weiß, dass dies ein alter Beitrag ist, aber für den Fall, dass jemand anderes zu dieser Frage kommt, eine gut Option ist Virtual Serial Port Emulator (VSPE) von Eterlogic Es bietet eine API zum Erstellen virtueller Comport-Geräte im Kernel-Modus, d. h. Connectors, Mapper, Splitter usw.
Allerdings, einige der beworbenen Fähigkeiten waren wirklich keine Fähigkeiten überhaupt.

[~ # ~] edit [~ # ~]
Eine viel bessere Wahl, Eltima. Dieses Produkt ist vollständig gebacken. Guter technischer Support für Entwickler. Das Produkt hat alles getan, was es versprach. Zu den Produktoptionen gehören sowohl Desktop-Anwendungen als auch Software Development Kits mit APIs.

Keines dieser Produkte ist Open Source oder kostenlos. Wie in anderen Beiträgen bereits erwähnt, gibt es jedoch auch andere Möglichkeiten. Hier ist eine Liste verschiedener serieller Dienstprogramme:

com0com (aktuell)
com0com - Mit signiertem Treiber (alte Version)
nd noch ein weiterer Ort für com0com mit signiertem Treiber = (Pete's Blog)
Tactical Software
Termite
COM Port Serial Emulator
Kermit (veraltet, aber noch herunterladbar)
HWVSP
HHD Software (kostenlose Edition)

58
ryyker

Ich benutze com0com - With Signed Driver , um unter Windows 7 x64 COM3 UND COM4 als Paar zu emulieren.

Dann benutze ich COM Dataport Emulator , um von COM4 zu empfangen.

Dann öffne ich COM3 mit der sich entwickelnden App (c #) und sende Daten an COM3.

Die über COM3 gesendeten Daten werden von COM4 empfangen und von 'COM Dataport Emulator' angezeigt, der auch eine Antwort zurücksenden kann (nicht automatisiert).

Mit diesen zwei großartigen Programmen ist es mir gelungen, die serielle RS-232-Kommunikation zu emulieren.

Ich hoffe es hilft.

Beide Programme sind kostenlos !!!!!

29
Jhollman Cutcsa

Eine weitere Alternative, obwohl das OP nicht darum gebeten hat:

Es gibt USB-zu-Seriell-Adapter. Je nach Adaptertyp benötigen Sie möglicherweise auch ein Nullmodemkabel.

Sie sind extrem einfach unter Linux zu verwenden und funktionieren auch unter Windows, wenn Sie funktionierende Treiber installiert haben.

Auf diese Weise können Sie direkt mit den Sensoren arbeiten und müssen nicht versuchen, Daten zu emulieren. Auf diese Weise können Sie sich vielleicht sogar davor retten, ein anämisches System aufzubauen. (Aufgrund Ihrer emulierten Dateneingaben, die nicht alle Fälle abdecken, führt dies zu einem spröden System.)

Es ist oft besser, mit den echten Sachen zu arbeiten.

3
sjas

Es gibt immer die Hardware-Route. Kaufen Sie zwei USB-zu-Seriell-Konverter und schließen Sie sie über ein NULL-Modem an.

Pro-Tipps: 1) Windows weist den Adaptern nach jedem Ruhezustand oder Neustart des Geräts möglicherweise neue COM-Anschlüsse zu. 2) Die Marktführer bei Chips für USB zu seriell sind Prolific und FTDI. Beide Unternehmen kämpfen mit Nachahmungen und werden möglicherweise in zukünftigen offiziellen Windows-Treibern blockiert. Die Linux-Treiber funktionieren jedoch einwandfrei mit den Klonen.

2
Bryce