Viele Messgeräte (RS232) gleichzeitig anschließen und ausles

R

Robert Gummi

Guest
Hallo,

es geht darum (bisher) 16 Meßgeräte, die über ein RS232 Interface verfügen,
an einen Linux-Meßrechner anzuschließen. Auf diesem Rechner soll dann eine
(noch zu schreibende) Software laufen, die ständig Status und Meßwerte der
Geräte ausließt und auch Steuerung einiger Schalter, Blenden, LEDs u.ä.
erlaubt.

Eine mögliche Lösung wäre, alle Geräte über Umsetzer von RS232 nach RS422 an
einen GPI-Bus (HPIB) zu hängen.
Diese Lösung ist nicht unbedingt günstig, man braucht einen freien
Steckplatz (also nicht mal eben am Notebook verwendbar), die Kabel sind
AFAIR recht unflexibel.

Eine andere Lösung würde für jede serielle Schnittstelle einen abschaltbaren
Baustein vorsehen (LT1039), die über die parallele Schnittstelle adressiert
werden und dann normal über die serielle Schnittstelle im Rechner
angesprochen werden.
Mir persönlich gefällt es nicht, gleich zwei Schnittstellen belegen zu
wollen, die außerdem bei neueren Rechnern nicht mehr Standard sind und bei
älteren möglicherweise schon belegt (z.B. mit Dongle, Drucker...).

Die vermutlich eleganteste Lösung wäre USB. Vielleicht könnte man an jedes
Meßgerät einen RS232/USB Umsetzer hängen und dann alle über eine
baumförmige Verkabelung mit USB-Hubs anschließen. Der Vorteil wäre, daß
praktisch jeder Rechner eine USB-Schnittstelle mitbringt (auch Macs). Die
USB-Kabel sind flexibel, überall zu bekommen, lassen sich per HUB
vervielfachen (man muß keine 16 Kabel vom Meßrechner zu den Geräten legen).

Nur frage ich mich:
- Welche RS232/USB Konverter müßte man kaufen, wo, und wieviel würden die
kosten?
- Wie spricht man die Geräte dann softwaremäßig an? Nett wäre es, wenn die
Software auf dem Meßrechner mit Python oder Ruby gestrickt werden könnte
(weil es eine verhältnismäßig einfache Einarbeitung ermöglichen und
plattformübergreifend verfügbar sein soll).

Gibt es irgendwo gute Tutorials, wie man die USB-Schnittstelle unter Linux
anspricht (Python, Ruby, C++, C)? Es handelt sich nicht um mein Projekt,
ich frage für jemand anders nach (vielleicht brauche ich etwas ähnliches
auch demnächst). Kernel-Sourcen lesen ist eher nicht die Wunschoption...

Für die serielle und parallele Schnittstelle gibt es einige Codebeispiele,
und sei es nur zur Demonstrationszwecken (und z.T. noch aus DOS-Zeiten.
LEDs schalten, Voltmeter auslesen).
So kleine Beispielprogramme, um Werte aus einem Meßgerät über USB auszulesen
und LEDs zu schalten, möglichst in Python oder Ruby, das wär's.

Bye,
Robert

x-post&f'up2 de.sci.electronics
 
In article <oeaka1-7l4.ln1@sinolan.geratewohl.de>,
Robert Gummi <smachaga@sp.zrz.tu-berlin.de> writes:
Die vermutlich eleganteste Lösung wäre USB. Vielleicht könnte man an jedes
Meßgerät einen RS232/USB Umsetzer hängen und dann alle über eine
baumförmige Verkabelung mit USB-Hubs anschließen. Der Vorteil wäre, daß
praktisch jeder Rechner eine USB-Schnittstelle mitbringt (auch Macs). Die
USB-Kabel sind flexibel, überall zu bekommen, lassen sich per HUB
vervielfachen (man muß keine 16 Kabel vom Meßrechner zu den Geräten legen).
Leider bekommst du Probleme mit der Zuordnung der Schnittstellen.
Wie willst du die 16 Konverter unterscheiden?
Diese Adapter lassen sich ansprechen wie jede andere serielle Schnitstelle,
mit dem Problem daß sie nach der Erkennungsreihenfolge durchnummeriert
werden.
Die Doku findest du vieleicht auf deinem Rechner:
/usr/src/linux/Documentation/usb/usb-serial.txt

Ich würde aber einen Terminalserver (rs232/Netzwerk) verwenden wenn das
deine Preislichen vorstellungen nicht sprengt.

--
MFG Gernot
 
Robert Gummi schrieb:
.. 16 Meßgeräte, die über ein RS232 Interface verfügen,
an einen Linux-Meßrechner anzuschließen.
Wer will diesen Kabelsalat verantworten ? Bei richtigen
Bussystemen (485er Pegel wären wahrscheinlich angebracht)
bekommen die Teilnehmer eine Adresse. PCI-Schnittstellenkarten
fuer viele RS232 gibt es natuerlich auch.

... Es handelt sich nicht um mein Projekt,
ich frage für jemand anders nach ...
Deine Fragestellung ist eine Zumutung, schon eine
Frechheit. Man stelle sich vor, jeder wollte solche
Fragen mit der Schrotflinte in mehrere Newsgruppen
losschiessen.
Das alles soll auch noch Plattformübergreifend und auf
Notebooks funktionieren !
Stelle gescheite Fragen, wenn du gescheite Antworten
haben willst.

In diesem Sinn
Joachim Riehn
 
Joachim Riehn schrieb...
Robert Gummi schrieb:
.. 16 Meßgeräte, die über ein RS232 Interface verfügen,
an einen Linux-Meßrechner anzuschließen.

Wer will diesen Kabelsalat verantworten ?
Hängt vom Aufbau ab. Ich sehe da keinenen großen Unterschied zu einem
Netzwerkhub mit 16 Anschlüssen. In beiden Fällen führen 16 Leitungen zu
einer zentralen Stelle.

Bei richtigen
Bussystemen (485er Pegel wären wahrscheinlich angebracht)
bekommen die Teilnehmer eine Adresse. PCI-Schnittstellenkarten
fuer viele RS232 gibt es natuerlich auch.
Bei diesen Multi-Seriell Karten wird sich auch jeder Port einzeln
adressieren und konfigurieren lassen.


... Es handelt sich nicht um mein Projekt,
ich frage für jemand anders nach ...

Deine Fragestellung ist eine Zumutung, schon eine
Frechheit. Man stelle sich vor, jeder wollte solche
Fragen mit der Schrotflinte in mehrere Newsgruppen
losschiessen.
Da gab's hier aber schon wesentlich unspezifischere Fragen. Als
Frechheit kann man die Fragestellung nicht bezeichnen. Wildes
Crossposting kann man Robert auch nicht vorwerfen.

Das alles soll auch noch Plattformübergreifend und auf
Notebooks funktionieren !
Hat er was von Notebooks gesagt?

Stelle gescheite Fragen, wenn du gescheite Antworten
haben willst.
Wie sollte denn die Frage Deiner Meinung nach konkretisiert werden? Ich
habe verstanden: 16 serielle Meßgeräte sollen an einen Linuxrechner
angeschlossen und mit eigener Software ausgelesen werden. Wie kann man's
elegant lösen?

Ich hab zwar keine Lösung, würde aber, da die Meßgeräte seriell
arbeiten, auf eine PCI Karte mit mehreren seriellen Schnittstellen
zurückgreifen, z.B. 2 Karten mit je 8 seriellen Schnittstellen, bei
www.kolter.de zu finden. Treiber für Linux ist auch vorhanden.

- Heinz
 
Robert Gummi wrote:
[..]
Warum so umständlich und teuer?
Es gibt genueged aktive Multiportkarten (schaue z.B. mal im Linuxmagazin);
ein n-Portserver (also rs232/ethernet) wäre auch eine einfache Lösung.
Bei ersteren kannste direkt auf die Schnittstelle zugreifen; bei
letzerem z.B. ueber eine rtty-Lsg.

S.
 
Heinz Saathoff schrieb:
Ich habe verstanden:
16 serielle Messgeraete sollen an einen Linuxrechner
angeschlossen ... werden.
Als Frechheit kann man die Fragestellung nicht bezeichnen.
Ja, der Original-Poster faengt vernuenftig an. Aber dann
nervt das Posting immer mehr.

* es handelt sich nicht um seinen konkreten
Linux-Rechner, sondern er fragt "fuer jemand anders"
* er fragt nach allen moeglichen Eventualitaeten:
Anschluss an aeltere Rechner, an neuere Rechner mit
USB-Schnittstelle, Anschluss an Macs, Anschluss an
Notebooks (daher wohl auch der ausdrueckliche
Wunsch nach flexiblen Kabeln)

Nichts dagegen, wenn eine konkrete Person ein konkretes
Problem hat, auch wenn mal eine Frage ungeschickt formuliert
ist.
Vielleicht muss jemand teure Belichtungsmessgeraete mit
RS232-Schnittstelle transportabel irgendwo aufbauen.
Vielleicht geht es um eine Modelleisenbahn, die fest
installiert ist. Wer weiss das schon ?
Ich glaube aber nicht, dass der Original Poster ein
konkretes Problem hat, das ihn drueckt. Er fragt
"fuer jemand anders". Vielleicht geht es um
eine ganze Gruppe von Interessenten. Der eine
hat nur eine USB-Schnittstelle, der andere hat
kein USB ...

Lies dir das Original-Posting durch. Du wirst
mir recht geben.

Ich .. wuerde .. auf eine PCI Karte mit mehreren
seriellen Schnittstellen zurueckgreifen, z.B. 2 Karten
mit je 8 seriellen Schnittstellen
Einverstanden. Sowas gibt es auch bei Reichelt. Vielleicht
muss man sich noch vergewissern, wie man von der Karte
auf seine 8 9-Pin D-SUB-Stecker kommt.

Mit Gruss
Joachim Riehn
 
Joachim Riehn wrote:
[...]
Ja, der Original-Poster faengt vernuenftig an. Aber dann
nervt das Posting immer mehr.
Glaub mir, ich habe beides ausprobiert:
Schreibt man eine kurze knappe Frage, dann bekommt man jede Menge
Vorschläge, von denen die meisten trivial oder für die konkrete Situaltion
unbrauchbar sind.
Beschreibt man die Rahmenbedingungen und die bisherigen eigenen Überlegungen
dazu, dann bekommt entweder gar keine Antworten (weil das Problem zu
speziell erscheint) oder man wird angepflaumt, daß man zuviel wolle.

* es handelt sich nicht um seinen konkreten
Linux-Rechner, sondern er fragt "fuer jemand anders"
Auf den ersten Blick erstaunlich, aber Usenet wird nur von einer Minderheit
unter den Natur- und Ingenieurwissenschaftlern genutzt. Wilde Spekulationen
und Anfeindungen wie in deinem Posting lassen das aber auf den zweiten
Blick verständlich werden...

* er fragt nach allen moeglichen Eventualitaeten:
Anschluss an aeltere Rechner, an neuere Rechner mit
USB-Schnittstelle, Anschluss an Macs, Anschluss an
Notebooks (daher wohl auch der ausdrueckliche
Wunsch nach flexiblen Kabeln)
So what? Ich habe schon in Labors gearbeitet, in denen für die eine Messung
ein alter Mac aus dem Nebenlabor geholt und angeschlossen werden mußte (mit
den schönen steifen HPIB-Kabeln), für die nächste Messung mußte wieder ein
Windows-PC dran. Und am Meßgerät daneben dann ein alter 286er ohne
Netzwerkanschluß und mit 5 1/4" Laufwerk...

Nichts dagegen, wenn eine konkrete Person ein konkretes
Problem hat, auch wenn mal eine Frage ungeschickt formuliert
ist.
Vielleicht muss jemand teure Belichtungsmessgeraete mit
RS232-Schnittstelle transportabel irgendwo aufbauen.
Vielleicht geht es um eine Modelleisenbahn, die fest
installiert ist. Wer weiss das schon ?
Keine Modellbahn. Es geht um ein Forschungsprojekt des MPI Stuttgart.
Meßzeit ist nur wenige Wochen im Jahr, daher wäre eine gewisse Mobilität
nicht schlecht.
Ein Bekannter von mir macht sich Gedanken, wie er die Meßgeräte und einige
zu schaltende Funktionen am besten anschließt. Nicht daß er damit größere
Probleme hätte; notfalls nimmt er halt einfach die GPIB- Lösung oder die
Bastelei mit den 16 ein/abschaltbaren Bausteinen. Oder auch die 8-fach
seriellen Karten (keine Ahnung, ob sie diese Option auch schon angedacht
hatten).

Aber da ich mich in der Uni oft genug mit irgendwelchen Uraltmeßsystemen
rumschlagen muß, die inkompatibel zu allem aktuellen sind (ziemlich viele
aktuelle Computer besitzen eben z.B. kein Diskettenlaufwerk mehr...), habe
ich mir im Interesse nachfolgender Studenten und HiWi-Generationen eben
auch Gedanken gemacht, wie eine _universelle_ Lösung aussehen könnte (von
Betriebssystem und Einsteckkarten unabhängig).

Ich glaube aber nicht, dass der Original Poster ein
konkretes Problem hat, das ihn drueckt. Er fragt
"fuer jemand anders". Vielleicht geht es um
eine ganze Gruppe von Interessenten. Der eine
hat nur eine USB-Schnittstelle, der andere hat
kein USB ...
Ich hätte auch schreiben können: "Ich suche eine Möglichkeit, 16
RS232-Schnittstellen über einen USB-Port anzusprechen. Programmiersprache
Python, Betriebssystem Linux."
Dann hätte ich die nächsten zwei Tage damit verbringen dürfen zu erklären
warum USB, warum Python, warum Linux, warum überhaupt 16 Schnittstellen...

Und mit einem Crossposting in zwei Gruppen erzeuge ich weniger Traffic als
mit zwei Postings zu unterschiedlichen Schwerpunkten (einmal die Hardware-
einmal die Softwareseite). Zumal ich dann in der electronics-Gruppe erst
wieder erklären müsste, daß mich Lösungen, die auf mitgelieferter
Windows-Software basieren, nicht interessieren.

Bye,
Robert
 
Ich sehe da 4 Möglichkeiten:

1) Multi-I/O-Karte in PC-Card-Ausführung
Kann mit einem PC-Card-Laufwerk dann nicht nur am Notebook sondern auch
am PC verwendet werden.

2) Der bereits genannte Terminal-Server

3) 16 USB<->RS232-Selbstbau-Konverter mit FT232 und MAX232, da kann man den
Dingern via Konfigurations-EEPROM eindeutige Device-Namen geben

4) Eine uC-Lösung mit FT232 hostseitig, AVR-uC und 16 x die Kombi aus
MAX3100 (UART mit SPI-Ansteuerung) und TI SN75Cxxx (die MAX232-Variante
mit 3 in, 2 out und Ladungspumpe - Nummer nicht zur Hand). Damit kann
man die 1 PC-Schnittstelle Byte-für-Byte an die 16 MG verteilen.

Etwas mehr Info hätte in der Frage aber schon stehen können...y

cu,

Aguja

::Update:: www.PROuC.de ==> Free AVR-, PIC- & 8051-Programmers, Apps & Tips
 
Robert Gummi wrote:

Eine mögliche Lösung wäre, alle Geräte über Umsetzer von RS232 nach RS422
an einen GPI-Bus (HPIB) zu hängen.
Diese Lösung ist nicht unbedingt günstig, man braucht einen freien
Steckplatz (also nicht mal eben am Notebook verwendbar), die Kabel sind
AFAIR recht unflexibel.
es gibt auch externe RS232/RS422 Konverter

Wilfried
 
Robert Gummi wrote:

es geht darum (bisher) 16 Meßgeräte, die über ein RS232 Interface
verfügen, an einen Linux-Meßrechner anzuschließen. Auf diesem Rechner
soll dann eine (noch zu schreibende) Software laufen, die ständig
Status und Meßwerte der Geräte ausließt und auch Steuerung einiger
Schalter, Blenden, LEDs u.ä. erlaubt.
Da RS232 kein Bussystem ist, wirst du wohl oder übel 16 Stecker
brauchen. Aber extra für solche Situationen gibt es eigene Bussysteme,
eines was sogar nur einen Draht braucht.
http://www.linux-automation.de/
Vielleicht hilft dir die Seite weiter!

Eine mögliche Lösung wäre, alle Geräte über Umsetzer von RS232 nach
RS422 an einen GPI-Bus (HPIB) zu hängen.
Vielleicht wäre eine eigene Platine die eine RS232 in 16 RS232 per
Multiplexer aufspaltet eine mögliche Lösung?

Eine andere Lösung würde für jede serielle Schnittstelle einen
abschaltbaren Baustein vorsehen (LT1039), die über die parallele
Schnittstelle adressiert werden und dann normal über die serielle
Schnittstelle im Rechner angesprochen werden.

Mir persönlich gefällt es nicht, gleich zwei Schnittstellen belegen zu
wollen, die außerdem bei neueren Rechnern nicht mehr Standard sind und
bei älteren möglicherweise schon belegt (z.B. mit Dongle, Drucker...).
Ok, dann fällt meine Möglichkeit wohl auch aus.

Nur frage ich mich:
- Welche RS232/USB Konverter müßte man kaufen, wo, und wieviel würden
die kosten?
Ganz schön teuer, über 20 Euro pro Stück. Kann man auch selber bauen, es
gibt Schaltpläne dazu.

mfg Markus

--
Linux, the choice | Wie die Frage, so die Antwort --
of a GNU generation -o) | Sprichwort
Kernel 2.4.23 /\ |
on a i686 _\_v |
 
Robert Gummi schrieb:
Ich hätte auch schreiben können: "Ich suche eine Möglichkeit,
16 RS232-Schnittstellen über einen USB-Port anzusprechen.
Programmiersprache Python, Betriebssystem Linux."
Genau das waere nuetzlich gewesen. Ueberhaupt ist dein
letztes Posting informtiv. Jetzt wissen alle handfest,
um was es geht.
Konverter USB<->seriell werden fuer ca. 20.-Euro angeboten.
Z.B. bei www.reichelt.de (oder andere Bezugsquellen, siehe FAQ).
Wie man mittels USB auf die serielle Schnittstelle
zugreift, muesste aus der beiliegenden Kurzbeschreibung
hervorgehen.
Mit dieser Kombination (USB/seriell) kommt man also an
alle gaengigen Cumputersysteme heran.

Von jetzt an lautet die Hauptfrage an dich:
Kannst du / willst du eine Mikro-Controller Loesung
akzeptieren ? Also auch in Assembler programmieren ?
Jedenfalls bekaeme jedes angeschlossene Messgeraet
(koennen auch mehr als 16 sein) eine Adresse. Diese
Adresse ist das einzige, was das Steuerprogramm
auf dem Computer wissen muss, einerlei ob
Mac, Linux oder Bill Gates.
Den Kabelsalat kann man so gut reduzieren. Weitere Fragen:
- welche raeumliche Ausdehnung hat das Mess-System ?
(500m ? dann 485er Bus) (5m ? dann geht RS232)
mit USB kommt man auch, glaube ich, nicht weit.
- welche Geschwindigkeiten (9600 Baud ?), welche
Reaktionszeiten ( 1/10 Sek. ? ) werden verlangt.
Der 485er Bus ist sehr tolerant. Man kann fast jedes
Kabel nehmen (bei niedrigen Geschwindigk.). Wandler
zu TTL-Pegel gibt es (LTC485, ca. 2.40 Euro).

Loesungen ohne Mikro-Controller wurden bereits genannt.
Die sind teurer, aber nicht so arbeitsintensiv ...

Ich hätte auch schreiben können: "... 16 .. RS232-Schnittstellen
über einen USB-Port ... Betriebssystem Linux."
ich hätte die zwei Tage damit verbringen dürfen zu erklären ...
Nein, nicht in dieser Newsgruppe.

Beschreibt man die Rahmenbedingungen, dann bekommt entweder
gar keine Antworten (weil das Problem zu speziell
erscheint) oder man wird angepflaumt, daß man zuviel wolle.
Nein, nicht in dieser Newsgruppe.

... Usenet wird nur von einer Minderheit ... genutzt.
Wilde Spekulationen und Anfeindungen wie in deinem Posting
lassen das aber ... verständlich werden...
Du weisst, dass das nicht stimmt.

Mit Gruss
Joachim Riehn
 
Markus Raab wrote:

Robert Gummi wrote:
[...]
Eine mögliche Lösung wäre, alle Geräte über Umsetzer von RS232 nach
RS422 an einen GPI-Bus (HPIB) zu hängen.
Hier habe ich einen Fehler gemacht: natürlich meinte ich nicht RS422,
sondern GPIB. Keine Ahnung, wie ich auf RS422 kam...

Vielleicht wäre eine eigene Platine die eine RS232 in 16 RS232 per
Multiplexer aufspaltet eine mögliche Lösung?
Ja, etwas ähnliches hatte ich schon erwähnt. Aber wenn schon Platine, dann
wäre USB auf 16* RS232 sinnvoller als 1* RS232 auf 16* RS232.

[...]
- Welche RS232/USB Konverter müßte man kaufen, wo, und wieviel würden
die kosten?

Ganz schön teuer, über 20 Euro pro Stück. Kann man auch selber bauen, es
gibt Schaltpläne dazu.
Im Verhältnis zu den Gesamtkosten erscheint das gar nicht soo teuer. Und
_wenn_ es so einfach funktionieren würde, wie ich mir das vorstelle, dann
würde man auch bei jedem Aufbau Zeit sparen.

Hast du eine Empfehlung für eine Bezugsquelle?
Und wie sieht es mit Links zu Bauanleitungen zum selber löten aus? Und die
Softwareseite, gibt es da irgendwo Beispielcode?
Es wäre natürlich blöd, wenn (wie jemand anmerkte) die Gerätenummern von der
Erkennungsreihenfolge abhängen. Gibt es vielleicht Konverter, bei denen man
diese Nummer festlegen kann?

Bye,
Robert
 
Joachim Riehn wrote:
[...]
Konverter USB<->seriell werden fuer ca. 20.-Euro angeboten.
Z.B. bei www.reichelt.de (oder andere Bezugsquellen, siehe FAQ).
Den hatte ich schon gesehen. Dort steht leider nichts darüber, ob er auch
unter Linux funktioniert. Bei ebay gibt auch einige Angebote für 10-12 Euro
(Dafür bietet das Reichelt-Gerät Anschlüsse für 9 und 25-polig.).

Wie man mittels USB auf die serielle Schnittstelle
zugreift, muesste aus der beiliegenden Kurzbeschreibung
hervorgehen.
Hm, ich hätte vermutet, daß da einfach eine Treiber-CD für Windows beiliegt,
die dann unter Win eine Art virtuelle COM-Schnittstelle einrichtet. Das
würde hier aber nichts nützen. Muß man hier vielleicht darauf achten, ein
Produkt mit einem bestimmten Chip zu erhalten, der bekanntermaßen von den
Linux USB-Treibern unterstützt wird? (Beim Kauf eines Bluetooth-USB-Dongles
gab hatte ich z.B. eine Liste mit Herstellern, verwendeten Chips und
Treiberstatus unter Linux.)

Mit dieser Kombination (USB/seriell) kommt man also an
alle gaengigen Cumputersysteme heran.

Von jetzt an lautet die Hauptfrage an dich:
Kannst du / willst du eine Mikro-Controller Loesung
akzeptieren ? Also auch in Assembler programmieren ?
Mikro-Controller Lösung statt der oben genannten USB-Seriell-Lösung, oder um
die einzelnen Geräte eindeutig adressieren zu können?
Ich selbst habe noch nie etwas mit Assembler gemacht. Mein Bekannter schon,
aber das ist lange her. Ich werde ihn fragen.

[...]
Den Kabelsalat kann man so gut reduzieren. Weitere Fragen:
- welche raeumliche Ausdehnung hat das Mess-System ?
(500m ? dann 485er Bus) (5m ? dann geht RS232)
mit USB kommt man auch, glaube ich, nicht weit.
Ich glaube 5m kommt eher hin.

- welche Geschwindigkeiten (9600 Baud ?), welche
Reaktionszeiten ( 1/10 Sek. ? ) werden verlangt.
Muß ich fragen.

Der 485er Bus ist sehr tolerant. Man kann fast jedes
Kabel nehmen (bei niedrigen Geschwindigk.). Wandler
zu TTL-Pegel gibt es (LTC485, ca. 2.40 Euro).

Loesungen ohne Mikro-Controller wurden bereits genannt.
Die sind teurer, aber nicht so arbeitsintensiv ...
Du meinst z.B. den Terminalserver? Werde ich auch nochmal nachfragen.

Ich hätte auch schreiben können: "... 16 .. RS232-Schnittstellen
über einen USB-Port ... Betriebssystem Linux."
ich hätte die zwei Tage damit verbringen dürfen zu erklären ...

Nein, nicht in dieser Newsgruppe.
[...]

Vielleicht übertrage ich meine Erfahrungen aus den Linux-Gruppen etwas zu
leichtfertig auf andere Newsgruppen... sorry.

Bye,
Robert
 
In article <8ubna1-ji6.ln1@sinolan.geratewohl.de>,
Robert Gummi <smachaga@sp.zrz.tu-berlin.de> writes:
|> Joachim Riehn wrote:
|> [...]
|> > Konverter USB<->seriell werden fuer ca. 20.-Euro angeboten.
|> > Z.B. bei www.reichelt.de (oder andere Bezugsquellen, siehe FAQ).
|>
|> Den hatte ich schon gesehen. Dort steht leider nichts darüber, ob er auch
|> unter Linux funktioniert. Bei ebay gibt auch einige Angebote für 10-12 Euro
|> (Dafür bietet das Reichelt-Gerät Anschlüsse für 9 und 25-polig.).

Sollte schon. Es gibt einen "Standard" dazu. Und für Abweichler sind noch zig
Extratreiberchen in usr/src/linux/drivers/usb/serial...

--
Georg Acher, acher@in.tum.de
http://wwwbode.in.tum.de/~acher
"Oh no, not again !" The bowl of petunias
 
Hi!

An den der's dann eigeltlich braucht ;-)

Hab' sowas (von 1 x RS232 weg mit RXD, TXD und GND aber alles galvanisch
getrennt) mal vor 10 Jahren gemacht um die damals sauteuren Terminalserver
(Ethernet auf X RS232) zu ersetzen. Leider ist das Teil nicht mehr sinnvoll
zu reproduzieren. Ich habe auch keine Rechte daran.

Busloesungen (RS485/RS422) halte ich nur fuer machbar wenn das Verhalten der
vielen versch. Geraete vorhersehbar ist - sprich halb duplex bzw.
Slave-Betrieb. Sonst wird's knirschen. GBIB halte ich schon wegen der Kabel
fuer unbezahlbar. Ausserdem ist die RS232 Hardware ja auch auf den Geraeten
gegeben. Bleib einfach dabei sag ich!

Wie hier ja auch schon in anderen Postings dazu erwahnt, kommen die vom
Linux-Kernel bereits unterstuetzten PCI Multiport-Karten (ich arbeite
meistens mit der Cyclom Y-Serie, mit je 8 Ports auf RJ12 von Cyclades /
http://www.cyclades.de) in Frage. Da kann man dann ganz normal auf die tty
zugreifen. Damit wuerde das ganze dann schon mal nur mehr zu einem
Software-Projekt werden.

Wem das aber nicht behagt (warum auch immer) dem bleibt IMHO nur der
Loetkolben. Dazu wuerde ich persoenlich heutzutage also folgendes machen:

USB mit FT232BM (www.ftdichip.com) ans interne schnelle (!) UART eines mit
freien Tools (in C) programmierbaren FLASH-Kontrollers dazu Mehrfach-UARTS
(ev. 2 x 8) mit der entsprechenden Handshake-Ausruestung (nur falls
wirklich notwendig). Dann auf irgendwelche billigen Schnitstellen-Treiber
auf RJ-Buchsen.

Die FT232-SW-Treiber stellen dem OS, wie ich gelesen habe, auch ein
virtuelles Port zur Verfuegung und Du arbeitest per SW wie normal zur
Seriellen.

Der Rest kann je nach Sicherheitsbeduerfnis (der DUe) eigentlich ganz
einfach gehalten werden. Betrachte den Dispatcher (ich nenn das Ding jetzt
einfach mal so) wie einen Drehwaehler. Wenn DU per SW Bytes an einen
bestimmten Port senden willst schalte vor dem eigentlichen Telegramm mit
"ESC-Byte Portnummer-Byte" auf das Port um (ein ESC als Ausnahme wird mit
ESC ESC gesendet). Das gleiche macht der Dispatcher wenn er auf einem Port
was hoert. Er bastelt einen Datenstrom der immer wieder den Daten die
ESC-Sequenz mit dem Ursprungsport hinzufuegt. Die Applikation im PC sammelt
das dann wieder ein. Unter Linux kann man sich dann bei der Realisierung
wirklich austoben (ein grosses Programm das alles macht oder eines das die
Daten nur auf Pipes verteilt und dann ein Programm pro externem Geraet usw.
- der Phantasie sind da keine Grenzen gesetzt). Je nachdem wie zeitkritisch
das ganze ist muss man den "Drehwaehler" mit seinen Puffern optimieren bzw.
apassen. Aber nachdem was ich so ueber die Endgeraete gelesen habe scheint
mir das nicht sehr schnell zu sein? Etwas anspruchsvoller wird der
Dispatcher natuerlich wenn tatsaechlich die Hardware-Hanshakes auch mit
behandelt werden muessen.

Ach ja, falls der PC weit vom Dispatcher weg sein sollte dann verwende fuer
diese einzelne interne Schnittstelle des Kontrollers eine RS422 Punkt zu
Punkt Verbindung und nimm direkt am PC einen fertigen FTD-USB-RS232-Adapter
und dann einen RS232/422-Adapter (mit TX auf Dauertastung). Dann sollte
aber jede Eventualitaet (PC, Laptop, RS232, USB...) auch abgedeckt sein.


Falls Du aber wirklich pfuschen willst - das mit dem parallel-Port. Auch
dazu gibt es USB-Umsezter. Unter der Annahme das das "Auslesen" der 16
Geraete nur dann stattfinden soll wenn der PC es will geschieht und die
Geraete wirklich sonst passiv sind (keine Spontanmeldungen an den PC), kann
man das obige Dispatcher-Prinzip auch per Hardware zusammenschustern. 2 x
4067 pro Richtung (nur als Beispiel = 16-channel Analog
Multi./Demultiplexer) die legen je nach den 4 Bit (vom LPT) einen Pin auf
einen von 16 Pins und damit die Schnittstelle auf 5V-Level zwischen den
RS232-Treibern "verdrahten". Bei HS-Leitungen das gleiche.

D.h. dann Ausgabe der 4-Bitadresse zur Anwahl des Geraetes. Datenverkehr an
bzw. von dem Geraet. Neues Geraet anwaehlen usw.

Falls das auch reicht soll's recht sein.
Man muss halt beruecksichtigen was die Geraete brauchen. Und die kenne ich
halt nicht.

Tschau,
Charlie
 
Robert Gummi wrote:
Die vermutlich eleganteste Lösung wäre USB. Vielleicht könnte man an jedes
Wie schon erwähnt wurde, hast Du hier das Problem der Zuordnung.
Aber mir fällt da spontan dere Igorplug ein.
http://www.cesko.host.sk/IgorPlugUSB_RS232/IgorPlug-USB%20(AVR)%20RS232_eng.htm

Benutzt einen AT90S2313( sonst nix), um einen USB nach RS232 Konverter
zu bauen, nebst 8 I/O Pins.
Da man die I/O Pins bequem abfragen kann, kann man sie benutzen um
die Messgerätenummer zu kodieren (256 Adressen) und so die Geräte
fest zuzuordnen.
Allerdings sind Treiber und Software momentan nur für Windows verfübar,
es ist aber wohl auch für Linux was in der Mache.
Möglicherweise kann man da mit libusb was machen
(libusb.sourceforge.net), damit kann man vom userspace aus direkt auf
USB Geräte zugreifen, ohne Kerneltreiber schreiben zu müssen.
 
Hi,

Nur mal zu überlegen:
Wieviele virtuelle COM-Ports kann WinXP überhaupt verwalten ?
Jedes RS232-Device an USB hängen, ist ja kein Problem, aber kann XP 8
oder mehr dieser virtuellen COM-Ports verwalten ?

DOS konnte ja mit keinen virtuellen Ports umgehen, da gabs nur maximal
4.

Dies nur als Anmerkung :)

Ich selber würde sagen, es geht. Aber bei Software weiss man ja
nie....

Gruß ka-long
 
"ka-long" <kiqmarvin@web.de> schrieb:
Nur mal zu überlegen:
Wieviele virtuelle COM-Ports kann WinXP überhaupt verwalten ?
Jedes RS232-Device an USB hängen, ist ja kein Problem, aber kann XP 8
oder mehr dieser virtuellen COM-Ports verwalten ?
Windows 2000 kann bis zu 256 virtuelle/echte COM-Ports. Zumindest was
den Treiber angeht. Ich durfte schon mal einen virtuellen COM-Treiber
schreiben. WinXP wird vermutlich mind. soviel können.

DOS konnte ja mit keinen virtuellen Ports umgehen, da gabs nur
maximal 4.
Zumindest was das BIOS verwalten konnte. Eigene Treiber waren auch
damals möglich.

Ich selber würde sagen, es geht. Aber bei Software weiss man ja
nie....
In Software geht (fast) alles, theoretisch zumindest ;-)

ciao,
Martin
 
Moin Martin,

In Software geht (fast) alles
.... schief

SCNR

Rainer

--
Ich hab nur nen feuchtes Weißbrot, also hau ich den Nagel
damit in die Wand, weil einen Hammer zu besorgen wär ja ne
Metatätigkeit. (Michael Bode in ger.ct)
 
ka-long wrote:
Jedes RS232-Device an USB hängen, ist ja kein Problem, aber kann XP 8
oder mehr dieser virtuellen COM-Ports verwalten ?

Gruß ka-long

???


Deswegen habe ich ja den "Dispatcher" vorgeschlagen der ja nur einen
einzigen seriellen Port braucht.

Ausserdem sind mindestens 16 gekaufte USB-RS232-Adapter und das noetige
Zubehoer auch teuer!


Falls Du Dich aber auf die Ports der Multiportkarten beziehst - unter Linux
habe ich schon 3 PCI Karten in Betrieb gehabt. Es gehen aber 4! Das waeren
schon 32 serielle Ports. Bei der Installation (MAKEDEV-Links) reicht die
moegliche Angabe der Ports bis 256.

Na gut aber wohin mit den ganzen 32 PCI-Karten?

NEIN - Spass beiseite, es gibt tatsaechlich Karten mit je 64 Ports (z.B.
Cyclades-64Ze), damit kommt man dann auf eben die moeglichen 256 seriellen
Schnittstellen bei 4 Karten.

Auf das Konfigurationsmanagment der Applikationen waere ich dann aber echt
gespannt ;-)

Und: ich ging eigentlich immer davon aus, dass die Treiber von Cyclades fuer
MS-OS dann zumindest nicht weniger unterstuetzen wuerden.


Gruss zurueck,
Charlie
 

Welcome to EDABoard.com

Sponsor

Back
Top