Archive for the ‘RS232’ Category

COM-Schnittstelle bei Windows Remote Desktop oder Virtuellen Maschinen

24 Mai 2019

Wer eine physische COM-Schnittstelle auf einem anderen Rechner mittels Remote-Desktop verfügbar machen möchte, muss folgendes beachten.

Zuerst muss man im Remote Desktop die Optionen einblenden, um beim Register Lokale Ressourcen, unten bei “Lokale Geräte und Ressourcen”, die Weiter-Schaltfläche anklicken zu können. Dort aktiviert man nun den Eintrag Ports.
Alternativ kann man auch in der betreffenden RDP-Datei den Eintrag redirectcomports:i:0 auf 1 setzen und speichern.

Wer nun die Verbindung zum Remoterechner herstellt wird vielleicht gleich im Geräte-Manager nachschauen, ob die COM-Schnittstelle unter “Anschlüsse (COM & LPT)” auch auftaucht. Doch da herrscht gähnende Leere. Tja, der Geräte-Manager ignoriert den COM-Port großzügig.

Der Port ist aber trotzdem verfügbar und kann mittels Powershell-Eingabeaufforderung mit diesem Befehl aufgelistet werden:

[System.IO.Ports.SerialPort]::GetPortNames()

Gemeldet wird dann z. B. COM1.

Wenn man bei virtuellen Maschinen mehr machen möchte, muss man Named Pipes benutzen und kann so RS232-Hardware vom Host direkt einer virtuellen Maschine zur Verfügung stellen. Realisiert wird dies durch PipeToCOM: https://github.com/mcmlxxix/PipeToCom. Diese Lösung hat natürlich den Vorteil ohne Remote Verbindung auszukommen. Jetzt wird es aber wieder kompliziert, denn wenn man eine Generation 2 VM in einem Hyper-V hat, dann gibt es keine COM-Ports mehr. Man kann allerdings mittels Powershell und SET-VMComPort COM1 aktivieren und darüber den Pfad für die Pipe setzen.

Werbeanzeigen

Raspberry Pi und serielle Schnittstelle

3 August 2013

Ein nettes Spielzeug so ein kleiner Raspberry Pi. Um seinen Funktionsumfang noch um eine RS232 Schnittstelle zu erweitern, wird alles notwendige hier beschrieben:

 

Nötige Hardware

Ohne spezielle Hardware geht nichts, dazu holt man sich am einfachsten z. B. sowas: http://www.amazon.de/Erweiterungsplatine-Raspberry-Board-1RS232-Standard/dp/B00CBDQ9L8

 

Serielle Schnittstelle ermitteln

Zunächst schaut man, welche seriellen Schnittstellen vorhanden sind:

dmesg | grep  tty

 

ergibt z. B.:

[    0.000000] console [tty1] enabled

[    0.584102] dev:f1: ttyAMA0 at MMIO 0x20201000 (irq = 83) is a PL011 rev3

 

Der tty1 und ttyAMA0 sind also vorhanden, wobei der ttyAMA0 interessant ist. Wer nähere Infos dazu sucht, wird hier ab Seite 164 fündig: http://www.amazon.de/dp/1430249714.

 

Zugriffsrechte auf die Schnittstelle abklären

Zur Sicherheit kann man nun noch überprüfen, ob man als aktueller Benutzer auch die passenden Rechte zur Benutzung der seriellen Ports hat:

ls  -l  /dev/ttyAMA0

 

was zur Ausgabe haben sollte:

crw-rw—T 1 root dialout 204, 64 Aug  2 15:50 /dev/ttyAMA0

 

Es hat also die Gruppe dialout Schreib-/Leserechte. Mittels

groups $USER

 

bekommt man die Ausgabe:

pi : pi adm dialout cdrom sudo audio video plugdev games users netdev input indiecity

 

Welches Bedeutet, dass der aktuelle Benutzer, also pi in der Gruppe dialout enthalten ist. Falls er fehlen sollte, kann man ihn mittels

sudo adduser $USER dialout

 

hinzufügen.

 

Umwidmung der seriellen Schnittstelle für externen Gebrauch
Die Schnittstelle ttyAMA0 findet man wieder in der Datei /boot/cmdline.txt. Dort muss man den Kerneldebugger und Konsolenausgabe deaktivieren. Dazu führt man diese Befehle aus:

sudo cp /boot/cmdline.txt /boot/cmdline.txt.bak

sudo nano /boot/cmdline.txt

 

Dort dann

console=ttyAMA0,115200 kgdboc=ttyAMA0,115200

 

entfernen und speichern. Da man sich auch per serieller Konsole am Raspberry anmelden kann, muss noch der entsprechende Dienst abgeschaltet werden. Dazu muss die Datei /etc/inittab bearbeitet werden.

sudo cp /etc/inittab /etc/inittab.bak

sudo nano /etc/inittab

 

Nach dem Speichern muss der Pi neu gestartet werden, mittels

sudo shutdown -r now

 

Terminalprogramm zum Testen

Jetzt wird noch ein Terminalprogramm benötigt, minicom ist sehr beliebt:

sudo apt-get install minicom

 

Nun muss nur noch das Terminal gestartet werden:

minicom -b 115200 -o -D /dev/ttyAMA0

 

Nun steht der Kommunikation nichts im Wege.

 

Auf der anderen Seite der seriellen Leitung,  nimmt man am einfachsten putty, welches man vielleicht sowieso schon für die SSH-Einwahl zum Pi benutzt.

 

Weitere Quelle: http://www.irrational.net/2012/04/19/using-the-raspberry-pis-serial-port/