YPort
Inhaltsverzeichnis
Grundlagen
YPORT (aka XPORT) ist ein Ethernet-RS232-Konverter, den man per Default auf der Portnummer 7970 ansprechen kann.
- Die Portnummer kann mit "menuconfig" auch geändert werden.
- Die Baudrate kann man auch in "menuconfig" einstellen.
Aufruf:
nc ipnummer-ethersex 7970
Damit bekommt dann ein RS232-Gerät an ein Terminal.
Wenn es unerwünschte Echos gibt im Terminal, dann kann man die Verbindung so herstellen:
stty -icanon -echo && nc ipnummer-ethersex 7970
Wenn die Verbindung getrennt wird, muss man "blind" den Befehl "reset" eingeben und das Terminal ist wieder in normalem Modus.
Alternativ kann man auch
stty -icanon -echo; nc ipnummer 7970; stty icanon echo
eingeben, dann sollte das Echo gleich wieder aktiviert sein und das Terminal in den zeilenorientierten Modus (cooked mode) schalten.
Virtuelle Schnittstelle auf YPort mappen
Linux
socat PTY,link=/dev/YPort TCP:192.168.1.5:7970
... sorgt dafür, dass die serielle Schnittstelle am Ethersex als /dev/YPort im Linux-System erscheint.
Windows
Unter Windows ist es möglich, einen COM-Port zu simulieren. Hierzu kann z.B. das kostenlose Programm HW Virtual Serial Port verwendet werden. Dort einfach IP-Adresse und Port (Standard: 7970) eingeben, die Option "External NVT Commands Port" ausschalten und auf "Create COM" klicken.
Probleme
Verschluckte Zeichen / unvollständige Übertragung
Wenn es zu Problemn mit der Übertragung kommt, könnte das an dem per default mit 32 Byte recht kleinen Buffer liegen. Die Buffergröße kann verändert werden wenn man per Menuconfig zunächst den 'expert mode' aktiviert, der weitere Optionen zum Vorschein bringt:
- General Setup -> Prompt for all possible options (expert mode)
Und danach kann man die Puffergröße einstellen:
- Protocols -> YPort Support -> YPort Buffer Length
Der YPort Puffer (YPORT_BUFFER_LEN) kann bis zu 511 Bytes groß konfiguriert werden.
Weitere Informationen liefert das Debugging, wenn es zu Pufferüberläufen kommt sieht man dort sowas:
telnet <ip> 2701 yport stats rx fe=0, ov=0, pe=0, bf=59104 fe=frame error -> Baudratenabweichung ov=rx overflow -> Datenverlust pe=parity error -> Übertragungsfehler bf=buffer full -> Datenverlust
Verdrahtung
Bei der Verbindung von zwei RS232-Geräten ist die Verkabelung manchmal ein Problem.
Es gibt zwei Arten von RS232-Steckern: DTE und DCE ("Data Terminal Equipment" und "Data Communications Equipment")
http://www.bb-elec.com/bb-elec/literature/tech/faq_rs232_connections_work.pdf
Daumenregel: DTE ist der Computer, DCE ist ein Modem.
Das Pollin AVR Net-IO ist zum Beispiel als DCE verkabelt (vgl. S.7. http://www.pollin.de/shop/downloads/D810058B.PDF : TxD an SUB-D9 Pin 2 und RxD an Pin 3).
ERROR: Connection blocked
Es kann jeweils nur eine TCP-Verbindung auf die serielle Schnittstelle weitergeleitet werden. Jede weitere Verbindung wird mit der Fehlermeldung "ERROR: Connection blocked" quittiert.
Vorsicht: Programme, die einen Virtuellen Port zur Verfügung stellen und per TCP auf das Ethersex-System weiterleiten, halten möglicherweise die TCP-Verbindung aufrecht, obwohl zurzeit kein Programm den Virtuellen Port nutzt.