YPort

Aus Ethersex_Wiki
Wechseln zu: Navigation, Suche

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.