virtuellen seriellen Port mit dem Pi realisieren

  • Hallo zusammen,

    ausgehend von der Frage, ob eine alte Telefonanlage mit seriellem Anschluss mit einem Windows PC (Windows 10) übers Netz zu programmieren ist, habe ich festgestellt, dass sich dies wesentlich leichter als gedacht realisieren lässt. Das Beispiel ist sicher auf weitere Geräte anwendbar.

    Verwendet habe ich:

    • Raspberry Pi 3 (prinzipiell sollte jedes Modell funktionieren) mit aktuellem Raspbian Stretch (Stand: 11.10.2017)
    • USB-seriell Adapter (sollte zweckmäßigerweise von Raspbian erkannt werden)
    • ser2net (Package: ser2net Version: 2.10.1-1) als Server
    • die Freeware für Windows HW Virtual Serial Port 3.1.2  zur Erstellung eines virtuellen COM-Ports

    Vorgehensweise:

    1. Raspbian aktualisieren

    Code
    sudo apt update && sudo apt upgrade

    2. ser2net installieren

    Code
    sudo apt install ser2net

    3. folgendes auf der Kommandozeile eingeben und dann den Adapter anschließen, um zu sehen, ob er korrekt erkannt und als Schnittstelle eingebunden wird

    Code
    tail -f /var/log/messages

    Die Ausgabe sieht bei meinem System so aus. In der dritten Zeile von unten ist erkennbar, dass der Adapter als ttyUSB0 verbunden wurde und sich dann als /dev/ttyUSB0 ansprechen lassen sollte. Diese Angabe wird zur Konfiguration benötigt.

    Display Spoiler

    Oct 11 15:48:32 TestPi kernel: [ 504.881495] usb 1-1.4: new full-speed USB device number 5 using dwc_otg

    Oct 11 15:48:32 TestPi kernel: [ 505.036908] usb 1-1.4: New USB device found, idVendor=0403, idProduct=6001

    Oct 11 15:48:32 TestPi kernel: [ 505.036923] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3

    Oct 11 15:48:32 TestPi kernel: [ 505.036931] usb 1-1.4: Product: USB-to-Serial

    Oct 11 15:48:32 TestPi kernel: [ 505.036939] usb 1-1.4: Manufacturer: FTDI

    Oct 11 15:48:32 TestPi kernel: [ 505.036947] usb 1-1.4: SerialNumber: FTDFEVI1

    Oct 11 15:48:32 TestPi kernel: [ 505.043890] ftdi_sio 1-1.4:1.0: FTDI USB Serial Device converter detected

    Oct 11 15:48:32 TestPi kernel: [ 505.044234] usb 1-1.4: Detected FT232BM

    Oct 11 15:48:32 TestPi kernel: [ 505.046069] usb 1-1.4: FTDI USB Serial Device converter now attached to ttyUSB0

    Oct 11 15:48:32 TestPi mtp-probe: checking bus 1, device 5: "/sys/devices/platform/soc/http://3f980000.usb/usb1/1-1/1-1.4"

    Oct 11 15:48:32 TestPi mtp-probe: bus: 1, device: 5 was not an MTP device

    4. Die Konfiguration von ser2net erfolgt in diesem Fall mit dem Editor nano in der Datei "/etc/ser2net.conf ". Im aktuellen Fall ist eine Standardkonfiguration bereits hinterlegt. Diese folgt im Anschluss an die Kommentare in der Datei.

    Code
    sudo nano /etc/ser2net.conf


    Die erste Zeile wird mit den vorhandenen Daten angepasst. Die einzelnen Optionen sind mit Doppelpunkt abgegrenzt. Lediglich device (/dev/ttyUSB0) und die Datenrate bei options habe ich verändert. Der TCP-Port ist wichtig für die Verbindung im Netz und kann ebenfalls nach eigenen Bedürfnissen eingetragen werden. Nähere Erklärungen findet man entweder in der Konfigurationsdatei selbst bzw. der manpage ("man ser2net"). Die restlichen Konfigurationszeilen habe ich mit Kommentarzeichen (#) versehen.

    Erklärung: TCP-Port:state:timeout:device:options

    Code
    2000:telnet:600:/dev/ttyUSB0:38400 8DATABITS NONE 1STOPBIT banner


    5. die neue Konfiguration wird aktiviert mit

    Code
    sudo service ser2net restart

    6. HW Virtual Serial Driver von hier laden und auf dem Windows PC installieren. Bei der Installation kann entweder die Standalone Version (das Programm läuft mit einem angemeldeten Nutzer) oder die Client/Server Version (Programm läuft als Dienst) ausgewählt werden. Im folgenden nutze ich die Standalone - Installation.

    7. Konfiguration

    - das Programm HW Virtual Serial Port starten

    - im Reiter Virtual Serial Port werden die Einstellungen von ser2net eingetragen

    Port Name: der (virtuelle COM-Port, der später auf dem Windows PC erstellt werden soll)

    IP Adress: die IP-Adresse des Pi, auf dem ser2net läuft

    Port: der in der ser2net.conf definierte TCP-Port (in diesem Fall ist das die Nummer 2000)

    - ein Klick auf startet die Erstellung des virtuellen COM-Ports und nach einer kleinen Weile sollte der Status auf connected wechseln und das System ist bereit

    Der eingestellte virtuelle Port kann jetzt verwendet werden, z.B. in der Software zur Telefonanlage. Die zum Test verwendete Anlage AGFEO AC14 mit der Software TK-Suite Server Version 3.3.20 (letztes Update 2007) funktionierten im Test unter Windows 10 einwandfrei.

    Gruß, STF

  • Hi STF,

    ich gehe gerade einige Tutorials im Rahmen von veraltete Tutorials löschen durch und bin hier leider auf einen toten internen Link gestoßen:

    forum-raspberrypi.de/attachment/14319/

    Das hängt wohl mit der Umstellung der Forensoftware zusammen...

    Gruß Peter

  • Hi,

    Tolle Idee und Fähigkeit, das Telefonsystem zu benutzen.

    Nur ich habe die Methode mit ser2net verwendet. Ich habe mich bereits mit diesem Programm befasst und es gab keine Probleme beim Aufbau der Kommunikation.

    Vielen Dank.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!