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

Hallo,

erlaubt.

Steckplatz (also nicht mal eben am Notebook verwendbar), die Kabel sind AFAIR recht unflexibel.

angesprochen werden.

praktisch jeder Rechner eine USB-Schnittstelle mitbringt (auch Macs). Die

Nur frage ich mich:

kosten?

Gibt es irgendwo gute Tutorials, wie man die USB-Schnittstelle unter Linux anspricht (Python, Ruby, C++, C)? Es handelt sich nicht um mein Projekt,

und sei es nur zur Demonstrationszwecken (und z.T. noch aus DOS-Zeiten. LEDs schalten, Voltmeter auslesen).

Bye, Robert

x-post&f'up2 de.sci.electronics

Reply to
Robert Gummi
Loading thread data ...

Robert Gummi schrieb:

Wer will diesen Kabelsalat verantworten ? Bei richtigen

bekommen die Teilnehmer eine Adresse. PCI-Schnittstellenkarten fuer viele RS232 gibt es natuerlich auch.

Deine Fragestellung ist eine Zumutung, schon eine Frechheit. Man stelle sich vor, jeder wollte solche Fragen mit der Schrotflinte in mehrere Newsgruppen losschiessen.

Notebooks funktionieren ! Stelle gescheite Fragen, wenn du gescheite Antworten haben willst.

In diesem Sinn Joachim Riehn

Reply to
Joachim Riehn

Joachim Riehn schrieb...

H=E4ngt vom Aufbau ab. Ich sehe da keinenen gro=DFen Unterschied zu einem= =20 Netzwerkhub mit 16 Anschl=FCssen. In beiden F=E4llen f=FChren 16 Leitungen = zu=20 einer zentralen Stelle.

Bei diesen Multi-Seriell Karten wird sich auch jeder Port einzeln=20 adressieren und konfigurieren lassen.

Da gab's hier aber schon wesentlich unspezifischere Fragen. Als=20 Frechheit kann man die Fragestellung nicht bezeichnen. Wildes=20 Crossposting kann man Robert auch nicht vorwerfen.

Hat er was von Notebooks gesagt?

Wie sollte denn die Frage Deiner Meinung nach konkretisiert werden? Ich=20 habe verstanden: 16 serielle Me=DFger=E4te sollen an einen Linuxrechner=20 angeschlossen und mit eigener Software ausgelesen werden. Wie kann man's=20 elegant l=F6sen?

Ich hab zwar keine L=F6sung, w=FCrde aber, da die Me=DFger=E4te seriell=20 arbeiten, auf eine PCI Karte mit mehreren seriellen Schnittstellen=20 zur=FCckgreifen, z.B. 2 Karten mit je 8 seriellen Schnittstellen, bei=20

formatting link
zu finden. Treiber f=FCr Linux ist auch vorhanden.

- Heinz

Reply to
Heinz Saathoff

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 USBseriell werden fuer ca. 20.-Euro angeboten. Z.B. bei

formatting link
(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 ...

Nein, nicht in dieser Newsgruppe.

Nein, nicht in dieser Newsgruppe.

Du weisst, dass das nicht stimmt.

Mit Gruss Joachim Riehn

Reply to
Joachim Riehn

Joachim Riehn wrote: [...]

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.).

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.)

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.

[...]

Ich glaube 5m kommt eher hin.

Muß ich fragen.

Du meinst z.B. den Terminalserver? Werde ich auch nochmal nachfragen.

[...]

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

Bye, Robert

Reply to
Robert Gummi

In article , Robert Gummi writes: |> Joachim Riehn wrote: |> [...] |> > Konverter USBseriell werden fuer ca. 20.-Euro angeboten. |> > Z.B. bei

formatting link
(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
Reply to
Georg Acher

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 /

formatting link
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

formatting link
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

Reply to
Karl M. Prager

Hi,

oder mehr dieser virtuellen COM-Ports verwalten ?

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

  1. Dies nur als Anmerkung :-)

nie....

Reply to
ka-long

"ka-long" schrieb:

Windows 2000 kann bis zu 256 virtuelle/echte COM-Ports. Zumindest was den Treiber angeht. Ich durfte schon mal einen virtuellen COM-Treiber

Zumindest was das BIOS verwalten konnte. Eigene Treiber waren auch

In Software geht (fast) alles, theoretisch zumindest ;-)

ciao, Martin

Reply to
Martin Hoch

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.