Hallo, ein Messaufbau wird per GPIB gesteuert. Jetzt könnte ich ein paar digitale Ausgänge gebrauchen um Relais zu schalten. Will aber nicht ein paar Hundert Euro für eine fancy Lösung von NI&Co. ausgeben. Bastelprojekte hab ich bisher nur umgekehrt gesehen, um einen GPIB-Bus zu steuern. das geht aber bei mir schon, ich will einen "Slave" an eine freie Adresse hängen der mir 8 oder 16 Ausgänge zur verfügung stellt die ich dann mit Labview schalten kann. Kennt jemand so ein (Bastel-)Projekt das die Schaltpläne im Netz veröffentlich hat? Vielen Dank Georg
Ich bezweifle mal das es dafür Bastellösungen gibt, ich habe zwar schon einige Implementierungen von GPIB auf USB und umgekehrt (mal mit Host-Funktionalität, mal nur zum Abreifen von Bildschirm-Inhalten eines Scopes) aber noch nichts was deinem Wunsch nahekommt. In unserem Labor verwenden wir daher GPIO-Karten, wie diese: http://www.techsoft.de/german/documents/gpio_interfaces.html Wie du aber schon bemerkt hast, wird das nicht wirklich günstig. Da wirst du wahrscheinlich selbst ein "Listener-Device" basteln müssen.
Hab noch ein paar 96LS488 rumliegen (GPIB Bus Controller). Single Chip Controller mit allen Schikanen. Gegen Schutzgebühr 5 Euro um Freiumschlag schicke ich einen zu Neupreis war mal Richtung 900 DM / St. Den Slave kann man auch komplett in Software machen. Ist nicht allzuschwer wenn man die Statusdiagramme hat. Alles TTL Pegel und es gibt vielleicht Sources im Netz. Man braucht für den Listener/Slave nur eine Bruchteil der Spezifikation umsetzen.
Hallo zum 94ls488 hab ich auch noch 2 Schaltungen. Könnte ich scannen.
Hmm... hatte gehofft dass es eine mehr oder weniger fertige Bauanleitung gibt... zwecks Zeitersparnis... bevor ich zum Basteln anfange und mich erst in das Thema einarbeiten muß mache ich meine Digital-Outs an die RS232 dran. Dann hängt das zwar nicht mehr so schön einheitlich alles am selben Bus, ist aber schneller fertig... Vielen Dank an alle für die Tipps.
Dieses Projekt scheint komplett ohne gekauften GPIB Controller aufgebaut zu sein: http://www.dingeldein-online.de/basteln/gpib.html
Um digitale Ausgänge zu erhalten, reicht es doch, allein die Listener-Funktion zu realisieren (habe allerdings 20 Jahre nichts mehr mit IEEE488 gemacht). Ein ATmega sollte dafür locker reichen, zumal diese Controller so schnell sind, dass sie den Bus nicht ausbremsen. Wenn ich die Zeit dafür hätte, würde es mich locken, es mit heutiger Technik in Software zu machen. Im Gegensatz zum obigen Beispiel würde ich aber nie auf richtige Bustreiber verzichten. Ports direkt auf den Bus zu legen und nicht sauber abzuschließen, wird in der Regel böse enden.
Hallo, wie oben schon erwähnt geht es auch mit reiner Software. Das habe ich vor zwei Jahren gemacht und hier beschrieben. Der Code kann da auch runtergeladen werden. Geschwindigkeit ist dabei kein Thema. http://www.dingeldein-online.de/basteln/gpib.html Dennis
DennisD schrieb: > Geschwindigkeit ist dabei kein Thema. Nur, solange du keinen Controller am Bus hast (außer ggf. deinem eigenen natürlich). Ansonsten musst du innerhalb von 200 ns auf ein ATN reagiert und den Bus freigeräumt haben. Das wird mit einer reinen Software-Lösung im AVR knapp. Btw., »PINA ^ 0xff« und »~PINA« sind das gleiche.
Soweit ich mich erinnern kann. darf es gemäß dem Highlander-Prinzip auf dem GPIB-Bus immer nur nur einen Controller geben. Das wäre also kein Problem.
DennisD schrieb: > Soweit ich mich erinnern kann. darf es gemäß dem Highlander-Prinzip auf > dem GPIB-Bus immer nur nur einen Controller geben. Nein, es gibt nur einen System Controller (oder wie der heißt), aber der kann auch weitere Controller aktivieren. Viele brauchen aber durchaus eine reine Geräteimplementierung, d. h. sie werden von einem Controller angesprochen und nach Daten gefragt. Da schlägt dann die Forderung nach dem -ATN-Timing wieder zu.
Normalerweise ist der Systemcontroller der PC, an dem die ganzen Geräte angeschlosssen sind. Es gibt aber die Möglichkeit, das der PC die Controllerfunktion an ein Gerät abgeben kann, ( z.B. Pc gbit Controllerfunktion an Oszillografen ab und wird selbst zum Listner, der Oszillograf übermittelt sein Image direkt an den Plotter ohne den Umweg über den PC zu nehmen und gibt hinterher die Controllerfunktion an den PC zurück ). Das wird zwar selten gemacht, aber die Möglichkeiten ( wenn Controllerfunktion im angeschlossenen Gerät vorhanden sind ) gibt es. Die Busgeschwindigkeit wird durch das 3 Draht Handshaking gesteuert. Das heist das langsamste adressierte Gerät bestimmt die Busgeschwindigkeit. Geräte die nicht adressiert sind beeinflussen die Geschwindigkeit in der Regel kaum, da das Handshaking des internen IEC-Bus Kontroller meist schnell genug ist. ( Er muss ja nur feststellen ob er adressiert wurde ). Adressierte Geräte bestimmen die Busgeschwindigkeit durch die Zeit, die ein Gerät braucht um Daten zu erfassen und zu übermitteln. Das kann bei adressierten Voltmeter schon sehr langsam sein. Dafür kann aber der Bus nichts. Die maximal mögliche Geschwindigkeit beträgt je nach Controller im PC zwischen 300 Kbyte bis 1Mbyte / Sekunde. Ich kenne aber kein Gerät welche diese Geschwindigkeit wirklich ausnutzt. ( Mag sein das es solche gibt ). IEC-Bus Controller ICs gibt es relativ preiswert von National Instruments. Es sind Nachfolger vom ÜPD7210 und heist NAT7210. Der kann direkt von einen Mikrocontroller angesprochen werden, ähnlich wie ein 8255. Das IEC-Bus Handshaking regelt das IC selber, ebenso die Adressauswertung. Ein Gerät muss nicht zwingend 200nsek schnell auf ein ATN reagieren, allerdings bremst so ein langsames Gerät dann den gesamten Bus aus, da das langsamste Gerät die Busgeschwindigkeit vorgibt. Ralph Berres
Ralph Berres schrieb:
> Ein Gerät muss nicht zwingend 200nsek schnell auf ein ATN reagieren,
Doch. ATN ist keine der von dir genannten Handshake-Leitungen, bei
denen man beliebig langsam sein darf, sondern es ist die Anforderung
des (aktiven) Controllers, dass er jetzt den Bus belegen will. Dieser
müssen die Geräte schnell nachkommen und den Bus frei räumen.
Jörg Du hast recht. ATN ist kein Handshakeleitung sondern die Leitung, die dem Listner mitteilt ob es sich um ein Daten oder Gerätebefehl handelt. Das hatte ich verwechselt. ( Geräteadresse oder Pollbefehl sind z.B. Gerätebefehle ). Der steht aber solange an bis der langsamste Listner mit seinen Handshake reagiert hat. So reagieren wenigstens die Agilent IEC-Bus PC Karten. Das habe ich mal mit einen Logikanalyzer produkolliert, weil ich einen Fehler in einen Gerät gesucht hatte. ( Iecbus hatte sich immer aufgehangen, sobald das Gerät nur eingeschaltet wurde. Ralph Berres
Die ursprüngliche Frage ist jetzt fast 10 Monate her. Wurde inzwischen eine günstige/einfache Lösung gefunden? Gibt es neue Vorschläge? Ich stehe gerade vor exakt dem selben Problem: Ich möchte ein einziges Relais ansteuern und dazu nach Möglichkeit GPIB nutzen (genau wie oben beschrieben wird der gesamte Messaufbau über GPIB gesteuert).
Alex so einfach ist das nicht. Du must ja letztendlich das Gerät mit seiner eingestellten geräteadresse ansprechen. Erst dann kannst du ein Datenstring an das Gerät senden. Wobei üblicherweise der Ascii code verwendet wird. Dabei must du noch das Handshake auf dem IEC Bus beachten und dich um das EOI kümmern. Entweder das das Gerät die extra dafür existierende Leitung EOI setzt, oder was mittlerweile häufiger ist, das das Gerät als Antwort ein LF oder CR zurücksendet. Für das Handshake und das Handling der Gerätebefehle wie Adresse GTL usw gibt es fertige Bausteine wie z.B. der abgekündigte NEC UPC7210 oder das noch erhältliche NAT7210 von National Instruments. Beide ICs muss man aber erst durch setzen von Registern initialisieren, so das es kaum ohne Mikroprozessor abgeht. Es gab mal ein Baustein von Phillips HEF4738 für den IEC Bus. Dieser konnte man mit viel externer Hardware auch ohne Mikroprozessor betreiben. Es gibt aber fertige Geräte zu kaufen. z.B. von Agilent, welche drei Steckkarten a ich glaube 32 Relais aufnehmen konnte und über IEC-Bus programmierbar war. Es gab von diesem Gerät auch eine Option mit integrierten 6,5 stelligen DC Anzeige. Ralph Berres
Bei einem allereinzigsten Bit, würde ich nach einem GPIB <-> RS232 Umsetzer suchen und dort dann eine Handshake-Leitung umschalten. Hier ein Beispiel: http://www.webalice.it/hotwater/PicPlot.htm Es gibt mehrere Schaltungsvorschläge mit PICs. Diese scheinen so 'gut' zu sein, dass sie /ATN an einem einzigen Pin ohne Zusatzhardware verarbeiten können. Das zu glauben, fällt mir allerdings schwer :-)
Entwickler schrieb: > Es gibt mehrere Schaltungsvorschläge mit PICs. Diese scheinen so 'gut' > zu sein, dass sie /ATN an einem einzigen Pin ohne Zusatzhardware > verarbeiten können. Nö, die Schaltung hat einfach Serienwiderstände drin für die Zeit der Datenkämpfe beim Umschalten. Bzw. Dioden für die Handshakesignale, damit die open-drain sind. Die Pegel des GPIB-Standard werden damit natürlich nicht eingehalten. Peter
>Nö, die Schaltung hat einfach Serienwiderstände drin für die Zeit der >Datenkämpfe beim Umschalten. Da finden, glaube ich, garkeine Datenkämpfe statt, da der PIC implizit immer der Controller ist, der /ATN "assertieren" darf. Aber so richtig verstehe ich das nicht; bin kein Picker.
Danke für eure Antworten! Ralph Berres schrieb: > so einfach ist das nicht. Deswegen frag ich ja euch ;) Ralph Berres schrieb: > Beide ICs muss man > aber erst durch setzen von Registern initialisieren, so das es kaum ohne > Mikroprozessor abgeht. [...] > mit viel externer Hardware Ok, ich seh's langsam ein, dass es nicht einfach geht. Ralph Berres schrieb: > Es gibt aber fertige Geräte zu kaufen. z.B. von Agilent, welche drei > Steckkarten a ich glaube 32 Relais aufnehmen konnte und über IEC-Bus > programmierbar war. Es gab von diesem Gerät auch eine Option mit > integrierten 6,5 stelligen DC Anzeige. Ich hätte nichts gegen eine fertige Lösung, aber ich brauch ein Relais und nicht 32 und hab auch keinen Platz für eine große Kiste. Ideal wäre so eine Fertiglösung, die aber ganz klein und kompakt ist ;). Gruß, Alex Entwickler schrieb: > Bei einem allereinzigsten Bit, würde ich nach einem GPIB <-> RS232 > Umsetzer suchen und dort dann eine Handshake-Leitung umschalten. Ja, in die Richtung hatte ich auch schon gedacht... ...dann ist das aber andererseits auch schon wieder umständlicher als es sein muss, weil: Das ist jezt die Lösung: Da ich sowieso vom Rechner erstmal mit USB weggehe und dann auf einen USB-GPIB-Umsetzer, kommt da ein Hub dazwischen. Dann gehts einmal USB - GPIB - Geräte und einmal USB - RS232 - Relais (das ist einfacher als USB - GPIB - RS232 - Relais und hat bei uns auch schon jemand aufgebaut, das kann ich weiterverwenden).
Danke für eure Antworten! Ralph Berres schrieb: > so einfach ist das nicht. Deswegen frag ich ja euch ;) Ralph Berres schrieb: > Beide ICs muss man > aber erst durch setzen von Registern initialisieren, so das es kaum ohne > Mikroprozessor abgeht. [...] > mit viel externer Hardware Ok, ich seh's langsam ein, dass es nicht einfach geht. Ralph Berres schrieb: > Es gibt aber fertige Geräte zu kaufen. z.B. von Agilent, welche drei > Steckkarten a ich glaube 32 Relais aufnehmen konnte und über IEC-Bus > programmierbar war. Es gab von diesem Gerät auch eine Option mit > integrierten 6,5 stelligen DC Anzeige. Ich hätte nichts gegen eine fertige Lösung, aber ich brauch ein Relais und nicht 32 und hab auch keinen Platz für eine große Kiste. Ideal wäre so eine Fertiglösung, die aber ganz klein und kompakt ist ;). Entwickler schrieb: > Bei einem allereinzigsten Bit, würde ich nach einem GPIB <-> RS232 > Umsetzer suchen und dort dann eine Handshake-Leitung umschalten. Ja, in die Richtung hatte ich auch schon gedacht... ...dann ist das aber andererseits auch schon wieder umständlicher als es sein muss, weil: Das ist jezt die Lösung: Da ich sowieso vom Rechner erstmal mit USB weggehe und dann auf einen USB-GPIB-Umsetzer, kommt da ein Hub dazwischen. Dann gehts einmal USB - GPIB - Geräte und einmal USB - RS232 - Relais (das ist einfacher als USB - GPIB - RS232 - Relais und hat bei uns auch schon jemand aufgebaut, das kann ich weiterverwenden). Gruß, Alex
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.