Wie verbinde ich zwei serielle Ports in GNU / Linux?

14998
AndrejaKo

Ich muss über einen seriellen Anschluss Daten empfangen und einen anderen, um dieselben Daten zu übertragen. Wie mache ich ein solches Setup in GNU / Linux? Ein Anschluss ist ein von Bluetooth erstellter Anschluss und ein anderer Anschluss ist ein USB-Seriell-Adapter.

Ich verwende höchstwahrscheinlich die neueste Version von 64-Bit-Mint (12, wenn ich mich recht erinnere).

4

2 Antworten auf die Frage

7
RedGrittyBrick

socat kann serielle Ports verarbeiten.

Normalerweise wird es mit Netzwerkschnittstellen verwendet und kann Daten weiterleiten, jedoch auch mit seriellen TTY-Geräten. Die Beispiele in der obigen Verknüpfung enthalten kein serielles serielles Relaying, aber aus diesen Beispielen können Sie wahrscheinlich die Befehlsparameter ermitteln, die dies erreichen müssen.


Aktualisieren:

So verknüpfen Sie den seriellen Anschluss ttyS0 mit einem anderen seriellen Anschluss:

 socat /dev/ttyS0,raw,echo=0,crnl /dev/ttyS1,raw,echo=0,crnl 

von http://technostuff.blogspot.co.uk/2008/10/some-useful-socat-commands.html

socat bietet auch Optionen an, damit Sie, wenn Sie möchten, die weitergeleiteten Daten protokollieren können.

2
sawdust

Richten Sie für ein schnelles und fehlerhaftes Verfahren für jede serielle Schnittstelle ein Terminalemulatorprogramm (z. B. minicom) ein . Dadurch erhalten Sie eine interaktive Vollduplex-Schnittstelle zum Übertragen von Text zwischen Ports. Für die Datei- und Binärdatenübertragung sind mehrere Modemübertragungsprotokolle integriert.

Für eine komplexere Datenübertragung, z. B. für die Bearbeitung eines bestimmten Datenformats / Protokolls, müssen Sie ein Programm schreiben, um auf die serielle Schnittstelle zugreifen zu können, um die Daten zu verarbeiten.

AKTUALISIEREN

Bitte geben Sie ausführlicher an, was Sie zu tun versuchen. Sollen beide seriellen Ports an denselben PC oder jeder Port an einen PC angeschlossen werden? Gibt es einen Grund, warum die beiden seriellen Schnittstellen nicht miteinander verbunden werden könnten, wenn dies der Zweck dieser "Verknüpfungsfrage" ist?

Da es sich bei einem der "seriellen Anschlüsse" um einen USB-RS232-Adapter handelt, besteht kein Grund, jeden seriellen Anschluss über einen PC anzuschließen. Verbinden Sie die beiden seriellen Anschlüsse miteinander (ein Verbindungsadapter muss möglicherweise verkabelt werden), und schließen Sie dann den USB an einen PC an. Verwenden Sie ein Terminalemulatorprogramm, um mit dem einen seriellen Anschluss zu arbeiten, der jetzt mit dem PC verbunden ist.

Bluetooth <----> USB adapter <---> PC 
Sieht interessant aus. Gibt es eine (relativ einfache) Möglichkeit, die Pipe-Capture-Datei so zu sagen, dass ein Minicom-Prozess sendet, was der andere empfängt? Im schlimmsten Fall reicht es sogar aus, eine Capture-Datei in ein anderes Fenster einzufügen. AndrejaKo vor 12 Jahren 0
Sie können alles protokollieren (aufzeichnen), was in jedem Minicom-Programm gesendet und empfangen wird. Die Protokollierung kann mit Tastenanschlägen deaktiviert / angehalten und wieder eingeschaltet werden. Sie müssen die Protokollierung vollständig beenden, um die Aufzeichnung in einer anderen Protokolldatei zu starten. sawdust vor 12 Jahren 0
Bluetooth unterstützt die serielle Emulation, bei der Bluetooth-Adapter beider Geräte virtuelle serielle Ports erstellen, die für Software als echte serielle Ports erscheinen. Dazu wird normalerweise der Bluetooth-Stack des Betriebssystems verwendet, und Bluetooth-Adapter mit echten seriellen Hardware-Anschlüssen sind teuer und (zumindest für mich) schwer zu beschaffen. Mein Mobiltelefon verfügt über einen GPS-Empfänger und eine Software, mit der NMEA-Sätze über den seriellen Bluetooth-Anschluss gesendet werden können, die ich über den Terminalemulator auf meinem PC empfangen kann. Ich möchte diese Informationen an einen Mikrocontroller weiterleiten, der diese Daten später verarbeitet. AndrejaKo vor 12 Jahren 0
Der Mikrocontroller wird später mit einem GPS-Empfänger verwendet, der über einen echten seriellen Port verfügt, den ich im Moment nicht besitze, und ich möchte das Mobiltelefon für die Softwareentwicklung auf dem Mikrocontroller verwenden, da beide Module den Typ des NMEA-Satzes I ausgeben brauchen. AndrejaKo vor 12 Jahren 0
Danke für die Klarstellung. Ich hoffe, Sie finden eine Lösung. sawdust vor 12 Jahren 0