TCP/IP über serielle Schnittstelle

Status
Nicht offen für weitere Antworten.
Z

zaimon

Gast
Ich habe die folgende Vorgabe an einem Windows XP Rechner hängt an der seriellen Schnittstelle (COM) ein Server, zu dem ich eine TCP/IP Verbindung aufbauen soll. Das Problem ist, dass Windows XP nach meinem Wissen nur zu anderen Rechnern über die COM-Schnittstelle eine Verbindung aufbauen kann (der Server ist sozusagen nicht kompatibel).

Trotzdem müsste es doch eine Möglichkeit geben in Java die socket output streams sozusagen an die serielle Schnittstelle zu schicken.

Ich hoffe ich habe das Problem genügend erläutert, falls nicht, bitte nachfragen.
 

Grizzly

Top Contributor
zaimon hat gesagt.:
Ich habe die folgende Vorgabe an einem Windows XP Rechner hängt an der seriellen Schnittstelle (COM) ein Server, zu dem ich eine TCP/IP Verbindung aufbauen soll. Das Problem ist, dass Windows XP nach meinem Wissen nur zu anderen Rechnern über die COM-Schnittstelle eine Verbindung aufbauen kann (der Server ist sozusagen nicht kompatibel).[...]

Du sagst, Du hast einen Server an der seriellen Schnittstelle hängen und möchtest dort TCP/IP drüber legen. Und weiter sagst Du, dass WinXP das leider unterstützt. Verstehe ich jetzt nicht. :bahnhof:

Oder meinst Du, dass auf dem Server kein Windows ist?

zaimon hat gesagt.:
[...]Trotzdem müsste es doch eine Möglichkeit geben in Java die socket output streams sozusagen an die serielle Schnittstelle zu schicken.

Ich hoffe ich habe das Problem genügend erläutert, falls nicht, bitte nachfragen.

Du kannst mit der Sun-Bibliothek Java Communications API auf die serielle und parallele Schnittstelle zugreifen. Geht aber nur unter Windows und Sun Solaris. Ich habe aber auch schon einen Hack für Linux gesehen. Dabei wird auch über Streams (InputStream, OutputStream) kommuniziert.
 
Z

zaimon

Gast
Grizzly hat gesagt.:
Du sagst, Du hast einen Server an der seriellen Schnittstelle hängen und möchtest dort TCP/IP drüber legen. Und weiter sagst Du, dass WinXP das leider unterstützt. Verstehe ich jetzt nicht. :bahnhof:

Oder meinst Du, dass auf dem Server kein Windows ist?

Der Server ist ein Mikrocontroller, der über eine serielle Schnittstelle (TCP/IP) kommunizieren kann.


Grizzly hat gesagt.:
Du kannst mit der Sun-Bibliothek Java Communications API auf die serielle und parallele Schnittstelle zugreifen. Geht aber nur unter Windows und Sun Solaris. Ich habe aber auch schon einen Hack für Linux gesehen. Dabei wird auch über Streams (InputStream, OutputStream) kommuniziert.

Ich weiss, dass ich auf die seriellen Schnittstellen zugreifen kann (und auch wie). Das Problem ist, dass ich keine TCP/IP verbindung aufbauen kann, weil ich über java nicht sagen kann, dass ich die Verbindung über die serielle schnittstelle aufbauen will.

Outputstreams kann ich natürlich senden, aber dadurch bekomme ich keine echte TCP/IP verbindung (bzw. weiss ich nicht wie)
 

Icewind

Bekanntes Mitglied
tcp/ip ist nichts anderes als ein protokoll....
es ist das standartprotokoll für netzwerke und wenn du etwas in java über einen socket schickst wird das eigentlich mit dem tcp/ip protokoll erledigt...

allerdings ka wie das protokoll einer COM Schnittstelle aussieht (falls es eines giebt)

mir ist nicht ganz klar warumm du tcp/ip für eine kommunikation mit einem microcontroller verwenden willst...
 
Z

zaimon

Gast
Icewind hat gesagt.:
tcp/ip ist nichts anderes als ein protokoll....
es ist das standartprotokoll für netzwerke und wenn du etwas in java über einen socket schickst wird das eigentlich mit dem tcp/ip protokoll erledigt...

ja, und die sockets greifen ja sozusagen auf die Systemkomponenten zu, d.h. nur Windows XP weiss wie das verschickt wird und verschickt es nicht über die serielle Schnittstelle, sondern über das "normale" Netzwerk.

Icewind hat gesagt.:
mir ist nicht ganz klar warumm du tcp/ip für eine kommunikation mit einem microcontroller verwenden willst...

...ganz einfach, weil der mikrocontroller nichts anderes versteht.
 

Grizzly

Top Contributor
Beim Modem wird nach der Einwahl auch TCP/IP per PPP über die serielle Schnittstelle gelegt. Müsste also irgendwie gehen - bloss halt ohne Modem. Vielleicht kannst Du ja die serielle Schnittstelle mit irgendeinem Treiber in Windows als Netzwerkkarte einrichten. ???:L
 
Z

zaimon

Gast
Grizzly hat gesagt.:
Beim Modem wird nach der Einwahl auch TCP/IP per PPP über die serielle Schnittstelle gelegt. Müsste also irgendwie gehen - bloss halt ohne Modem. Vielleicht kannst Du ja die serielle Schnittstelle mit irgendeinem Treiber in Windows als Netzwerkkarte einrichten. ???:L

So ähnlich waren meine Gedanken auch. Modem geht nicht, weil mein Mikrocontroller nicht wie ein Modem antworten kann. Letzteres werde ich mal abchecken.
 

bellmann29

Aktives Mitglied
Wie wäre es denn, wenn Du einen simplen TCP/IP Server schreibst, der ständig lauscht auf bestimmten Port um entsprechende Kommandos über Netzwerk zu empfangen und dann einfach die die vielen Bytes aus dem Stream einfach weiterschreibt an den Stream für die Serielle Schnittstelle. Auf eine Antwort wartet und diese dann einfach wieder in den Socket schreibt. Letztendlich nichts anderes als ein kleines Wandler Programm. Sollte nicht so schwierig sein.
Die Kommandos bei Microcontrollern sind doch eh nicht tausende Bytes groß. Sollte also auch relativ fix gehen mit dem lesen und schreiben. Die Kommandos sind doch sicher eh nur Char-Arrays.
 

Icewind

Bekanntes Mitglied
hm interesannter microcontroller....
tja mir würde auch noch einfallen das protokoll selbst zu implementieren.... aber das dürfte schwieriger werden...
 

Grizzly

Top Contributor
bellmann29 hat gesagt.:
Wie wäre es denn, wenn Du einen simplen TCP/IP Server schreibst, der ständig lauscht auf bestimmten Port um entsprechende Kommandos über Netzwerk zu empfangen und dann einfach die die vielen Bytes aus dem Stream einfach weiterschreibt an den Stream für die Serielle Schnittstelle. Auf eine Antwort wartet und diese dann einfach wieder in den Socket schreibt. Letztendlich nichts anderes als ein kleines Wandler Programm. Sollte nicht so schwierig sein.
Die Kommandos bei Microcontrollern sind doch eh nicht tausende Bytes groß. Sollte also auch relativ fix gehen mit dem lesen und schreiben. Die Kommandos sind doch sicher eh nur Char-Arrays.

Wenn der Microcontroller TCP/IP über einen seriellen Anschluss verlangt, wird so etwas auch nicht helfen. Das Programm müsste nämlich das Packet auf der untersten Ebene empfangen - also noch als komplettes TCP/IP Packet - und an den Controller weiterschicken. Wahrscheinlich müsste man auch noch ein paar Parameter des Packetes anpassen.

Icewind hat gesagt.:
hm interesannter microcontroller....
tja mir würde auch noch einfallen das protokoll selbst zu implementieren.... aber das dürfte schwieriger werden...

Da würde ich mich eher noch im Internet umschauen, ob es nicht eine andere Möglichkeit gibt.



BTW: Ich habe gerade festgestellt, dass man zumindest unter Windows XP Home Edition so eine PPP Verbindung sprich TCP/IP Verbindung über die serielle Schnittstelle einrichten kann. Ich weiss allerdings nicht, ob das auch wirklich funktioniert - vor allem zusammen mit dem Mikrocontroller.
 

bellmann29

Aktives Mitglied
Also, ich bezweifele, daß der Microcontroller TCP/IP empfangen soll und kann, wenn er nur an einem seriellen Port hängt und keine eingebaute Möglichkeit für den Netzwerkempfang bietet.
Serielle Ports sind aber bei Einrichtungen für MSR (Messen, Steuern, Regeln) sehr häufig.
Ich habe vor kurzen erst damit bei einem Kunden zu tun gehabt.
Normalerweise sind Konfigurationsprogramme auf der Maschine installiert, an der der Microcontroller hängt. Diese sprechen dann direkt mit dem Seriellen Port. Hier will man aber scheinbar auch Remote auf den Microcontroller zugreifen bzw. Konfigurieren.
Meistens geht es darum, die Daten die Microcontroller von den Messinstrumenten bekommt weiterzuleiten über das Netzwerk. Denn am Microcontroller hängt ein Bus-System auf dem viele Meßinstrumente hängen.

Wir können also nur den Poster des Threads noch mal bitten, genauer zu beschreiben, was er machen soll.
 

bellmann29

Aktives Mitglied
@zaimon

Poste doch bitte mal, wie die genaue Bezeichnung des Microcontrollers ist.

Microcontroller kommen selten mit einem TCP/IP - Stack. Ich bezweifele, daß er nur TCP/IP versteht. Das ist untypisch.
 
Z

zaimon

Gast
Ich habe selber nur begrenzte Informationen über den Mikrocontroller. Ich weiss nur, dass er mit einem TCP/IP Stack ausgerüstet ist (und damit auch kommunizieren kann)

Unter Linux funktioniert das ganze nämlich einwandfrei, da kann man mit einem Shell Script die Serielle Schnittstelle "ethernetfähig" machen und dann eine "ganz normale" Verbindung zum Mikrocontroller aufbauen.

Mir wurde aber vorgegeben, dass das ganze auf Windows XP laufen soll. Und bevor ich Streams auf der untersten Ebene "durch die Gegend leite" - sprich Wandler - würde ich lieber wissen, ob man das mit irgendwelchen Einstellungen unter Windows XP nicht programmextern einstellen kann?
 

bellmann29

Aktives Mitglied
Dann sieh in das Shell-Skript, und sage uns mal was es macht. Welche Prozesse werden denn dort gestartet/gestoppt.

Poste doch einfach mal den Inhalt! Ist doch nur ein Skript.

Würde mich auch mal interessieren, wie man mit einem Shell-Skript die serielle Schnittstelle "ethernetfähig" macht.

Ist es OpenSource? Wo kann mehr informationen über dieses ShellSkript bekommen?

Danke.
 
Z

zaimon

Gast
Hier die entscheidenden Zeilen aus dem Shell Script, dürfte auch so verständlich sein (ohne einleitende Variablen). Auf jeden Fall wird das somit unter linux nur mit systemeinstellungen ermöglicht. das MUSS doch mit windows XP auch möglich sein!

NETMASK="255.255.255.0"
LOCKFILE="/var/lock/lpi2link$LPIIP"

case "$1" in
start)
if [ ! -f $LOCKFILE ]; then
echo "Connect Serial Port..."
$SLATTACH -p slip $TTY -s 115200 -q -L -l &
sleep 1
SLIPDEV=`$SLIPINFO /dev/$TTY`
if test -z $SLIPDEV; then
echo "No SLIP device found!"
exit 2
fi
$IFCONFIG $SLIPDEV $PCIP pointopoint $LPIIP mtu 1500 netmask $NETMASK up
sleep 1
$ROUTE add $LPIIP mss 1460 window 1460 dev $SLIPDEV
$TOUCH $LOCKFILE
echo "Ok!"
else
echo "Already connected!"
fi
;;
 

bellmann29

Aktives Mitglied
Wo kann ich noch mehr über darüber erfahren?

Hast Du vielleicht schon Resourcen aus dem Internet?

Bitte posten.

Danke.
 

Grizzly

Top Contributor
So wie ich das sehe legt das Skript einfach eine SLIP Verbindung über die serielle Schnittstelle. SLIP ist der Vorgänger von PPP.

@zaimon: Hast Du mal probiert PPP in Windows für die serielle Schnittstelle einzurichten?
 
Z

zaimon

Gast
Danke, aber ich habe auch (lange) gegoogelt.

@ angegebene Links, der Mikrocontroller ist kein Modem, und ich möchte keine Dial-Up connection herstellen und auch keine Verbindung zwischen zwei Rechnern, sondern eine Netzwerkverbindung!
 

Grizzly

Top Contributor
zaimon hat gesagt.:
Danke, aber ich habe auch (lange) gegoogelt.

@ angegebene Links, der Mikrocontroller ist kein Modem, und ich möchte keine Dial-Up connection herstellen und auch keine Verbindung zwischen zwei Rechnern, sondern eine Netzwerkverbindung!

Hast Du jetzt das mit Windows mal ausprobiert oder nicht?
 

Knoxx

Mitglied
sorry, aber wer lesen kann ist klar im Vorteil:

Zitat z.B. aus dem zweiten Link:
Serial Line Internet Protocol, usually referred to as SLIP, was once the most common means of running TCP/IP over a serial connection

Wenn sich Leute schon die Arbeit machen dir zu helfen, dann schau dir die Sachen wenigstens mal an.

Gruß,
Knoxx
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
I ASCII über serielle Schnittstelle Netzwerkprogrammierung 1
G Relaiskarte K8056 über serielle schnittstelle ansteuern -&gt Netzwerkprogrammierung 6
K Tabelle im Web über Listener aufrufen Netzwerkprogrammierung 1
F Verbindung zu einem LDAP Server über Java Netzwerkprogrammierung 4
S Socket Bilder über Socket Senden Netzwerkprogrammierung 0
B Zip Dateien über FTP laden Netzwerkprogrammierung 2
x46 byte[] über BufferedReader auslesen Netzwerkprogrammierung 18
E Socket Parameter über Sockets übergeben und auslesen ! Netzwerkprogrammierung 5
L Webbasierte Anwendung - Authentifizierung über LDAP/ActiveDirectory Netzwerkprogrammierung 5
J Probleme mit Multicast über IPv6, DatagramChannel Netzwerkprogrammierung 1
S Daten über TCP/IP senden Netzwerkprogrammierung 3
T Broadcast-message über spez. Netzwerk-Schnittstelle Netzwerkprogrammierung 1
T Mikrofonaudio über Java Server an Webbrowser streamen Netzwerkprogrammierung 13
M Erstelltes Programm über Internet Browser ausführen Netzwerkprogrammierung 26
T VPN-Verbindung über Java Netzwerkprogrammierung 4
V Einfachen Javaserver über das Internet erreichbar machen Netzwerkprogrammierung 2
J FTP Upload über Proxy funktioniert nicht Netzwerkprogrammierung 1
E Kurze Textnachrichten über einen Server von meinem Handy auf den Computer laden. Netzwerkprogrammierung 9
J FTP FTP Zugriff über Proxy Server Netzwerkprogrammierung 1
Thallius Java Application über ZScaler benutzer? Netzwerkprogrammierung 0
J Chat Server starten über GUI problem Netzwerkprogrammierung 4
V einfaches hin und her von Text über Server Netzwerkprogrammierung 2
P RMI Client Server Programm über Internet Netzwerkprogrammierung 2
antonbracke Multiuser Software über XMPP Server Netzwerkprogrammierung 1
Z Verbindung zwischen 2 Rechnern über ServerSockets nicht möglich Netzwerkprogrammierung 3
cezary Socket ServerSocket starten über GUIIm unterstehenden Code versuche Netzwerkprogrammierung 6
N RMI "RMI über Lan funktioniert nicht" & "RMI-Server im Lan scannen" Netzwerkprogrammierung 13
L Mit Java über PHP in MySQL anmelden (Login script) Netzwerkprogrammierung 3
M Socket String Arrays über Socket an Server schicken Netzwerkprogrammierung 2
T Socket Methoden über Internet aufrufen Netzwerkprogrammierung 1
S Socket Kommunikation über Internet Netzwerkprogrammierung 1
X Problem mit vielen Bytes über Socket Netzwerkprogrammierung 23
K ByteArray über Netzwerk senden klappt nicht Netzwerkprogrammierung 5
M allgemeine Frage über Server-Client-Kommunikation Netzwerkprogrammierung 5
P RMI Threads die über RMI auf Datenbank zugreifen Netzwerkprogrammierung 2
S Datei schreiben über Applet Netzwerkprogrammierung 8
G Klassen über Netzwerk kommunizieren lassen Netzwerkprogrammierung 6
J Erster Server-Client läuft auf lokalem Rechner problemlos. Zwei Rechner über das Internet nicht Netzwerkprogrammierung 8
Kjubert Synchronisieren von Objekten über Client/Server - bester Weg? Netzwerkprogrammierung 7
S ImageIcon über Socket schicken (Serialisierung) Netzwerkprogrammierung 6
H Socket Objekte über Socket? Allgemeine Verständnisprobleme in Sachen Socket Netzwerkprogrammierung 3
S Seltsames Verhalten beim Empfangen von Daten über DataInputStream Netzwerkprogrammierung 12
A TCP über UDP Verbindung? Netzwerkprogrammierung 10
C Datei über Socket schreiben und Ereignis lesen Netzwerkprogrammierung 9
D Socket Class über Netzwerk verschicken Netzwerkprogrammierung 2
D JNLP über Webstart funktioniert nicht... Netzwerkprogrammierung 2
J Socket Dateien über Socket auf Server speichern Netzwerkprogrammierung 3
D Socket Datei nur stückweise über Socket verschicken Netzwerkprogrammierung 6
G Bild über Socket schicken - Client/Server Netzwerkprogrammierung 10
A Computer über Internet verbinden Netzwerkprogrammierung 12
N über Java in eine Text-Datei auf einem Server schreiben Netzwerkprogrammierung 2
c_sidi90 ideale Lösung, Screen Capture über Netzwerk Netzwerkprogrammierung 3
S Socket Verschiedene Exceptions beim Übertragen von Bildern über Socket Netzwerkprogrammierung 20
T ArrayList über Netzwerk senden! Netzwerkprogrammierung 5
N Problem über http eine Datei zu senden Netzwerkprogrammierung 4
T Verbindungsversuche über TCP Sockets von mehreren Threads führt zu Serverabsturz Netzwerkprogrammierung 2
V Authentifikation über mehrere Server? Netzwerkprogrammierung 3
C Verbindung zu einem Hostrechner über das Internet herstellen Netzwerkprogrammierung 15
M Map über Webservice übertragen Netzwerkprogrammierung 3
D Mehrere Clients über Java-Sockets Netzwerkprogrammierung 13
P Socket Verbindung über das Internet Netzwerkprogrammierung 2
Z Socket Connection reset by peer nur per IP nicht über localhost Netzwerkprogrammierung 13
ruffio1978 Telnet über ein socket ansprechen Netzwerkprogrammierung 8
F Socket Verbindungen über mehrere Server Netzwerkprogrammierung 4
U Datei über das Netzwerk einlesen und speichern Netzwerkprogrammierung 8
G Klassen über JMX per URLClassloader laden? Netzwerkprogrammierung 2
E Zwei PCs über das Internet miteinander verbinden? Netzwerkprogrammierung 3
E Socketverbindung über das Internet - Timeout? Netzwerkprogrammierung 28
M Socket Bilder über das Netzwerk übertragen Netzwerkprogrammierung 4
E Java über Socket ins Internet? Netzwerkprogrammierung 4
F Socket Daten über verschiedene IP's schicken Netzwerkprogrammierung 5
M Socket JavaProg über einen Clienten steuern Netzwerkprogrammierung 5
M Mail über Exchange versenden Netzwerkprogrammierung 13
F C/S über HTTPS Netzwerkprogrammierung 2
D ...class.getResourceAsStream("/meine.properties") funktioniert nicht über RMI? Netzwerkprogrammierung 3
M ganymed-ssh2.har: ftp-Verbindung über ftp-Proxy Netzwerkprogrammierung 2
J Probleme bei RSA mit byte[] bei Versand über RMI Netzwerkprogrammierung 2
Z File über Socket lesen Netzwerkprogrammierung 3
A HTTP Binärdaten über PHP-Skript in Datenbank schreiben bzw auslesen Netzwerkprogrammierung 2
M Objekt über Object-Stream, empfange "alte" Daten Netzwerkprogrammierung 2
P FTP isFile() über FTP Netzwerkprogrammierung 3
I Socket HTTP Nachrichten über Sockets verschicken Netzwerkprogrammierung 2
N String als byte Array über Socket versenden Netzwerkprogrammierung 8
M Objekt über socket senden/empfangen Netzwerkprogrammierung 3
N Socket File über Socket vom Server an Client versenden Netzwerkprogrammierung 15
P Socket Problem mit Netzwerkverbindung über TCP Netzwerkprogrammierung 12
A UCP Connection über Proxy möglich? Netzwerkprogrammierung 7
V Verbindung zweier Rechner über das Internet mit Sockets Netzwerkprogrammierung 8
F Char über Netzwerk senden Netzwerkprogrammierung 6
S HTTP Login mit CAS Authentisierung über SSL Netzwerkprogrammierung 2
C Befehle über ein GUI an Server senden Netzwerkprogrammierung 15
M Socket Datei über Socket versenden Netzwerkprogrammierung 5
I Objekte über das Netzwerk Netzwerkprogrammierung 5
M Google Translate über Java ansprechen? Netzwerkprogrammierung 13
F Socket ImageIcon über Socket --> Fehler Netzwerkprogrammierung 14
N Datenaustausch zwischen Java-GUI und PHP-Programm über SOAP Netzwerkprogrammierung 19
L RMI Informationen über die Clients herausfinden Netzwerkprogrammierung 5
R HTTP Problem bei Authentifizierung über (Http)UrlConnection Netzwerkprogrammierung 2
1 Kommunikation mit externem Programm über TCP Netzwerkprogrammierung 2
U Informationen über Netzwerkclients herausfinden Netzwerkprogrammierung 2

Ähnliche Java Themen

Neue Themen


Oben