Forum: Mikrocontroller und Digitale Elektronik GPIB Controller


von Thomas R. (thomas-rudloff)


Angehängte Dateien:

Lesenswert?

Hi,

ich möchte mir einen GPIB Controller designen. Als Treiber mit kleiner 
Verarbeitung dachte ich an drei Stück XC9536XL oder 9572XL von Xilinx. 
Mit drei Pins für eine Leitung kann man die abschaltbaren Pullups 
realisieren und hat auch genügend Strom für den Bus. Den Datenpfad habe 
ich 7bittig designt. Das achte Bit braucht man nur, wenn man Binärdaten 
überetragen will. Das kommt ggf in den Buscontroller.

Da ich das Teil für mehre Zweckke brauche und skalibare Designs mag 
möchte ich für Daten eine Option mit Parallelem Bus und eine mit SPI 
Schnittstelle.

Der Bus-Controller soll optional Device, Controller und Controller in 
Charge sein.

Die Schnittstelle an sich ist sehr simple und mutet irgendwie wie ein 
Vorgänger von SCSI an. Und, by the way, ist heute immer noch sehr 
verbreitet. Man findet sie in praktisch jedem Messlabor. Die Geräte sind 
sehr robust und überdauern Jahrzehnte. Man kann sich öfter auch Geräte 
aus der Bucht ziehen, die länger gehalten haben als die Firma für die 
sie gearbeitetet haben.

Was mir nicht richtig klar ist, wie die Übergänge von z.B. der 
Selektionsphase in die Datenphase aussehen. Wer treibt welche Leitung? 
Auch über Timings schweigt sich praktisch jede Dokumentation aus.

Ich stelle hier mal das MC68488 Manual ein, das ich gekauft und gescannt 
habe. Vielleicht bekommt das jemand noch kleiner bevor man mich dafür 
haßt. Die original Scans kann ich zusenden falls die jemand braucht. Das 
sind zwei PDFs. Eins mit den Vorder- und eins mit den Rückseiten.

Ich kann auch die original IEEE488.1 einstellen. Muß sie nur vorher von 
meinem Namen befreien, da ich die gekauft habe. Die IEEE488.2 SCPI Spec 
findet man überall im Web und den jeweils relevanten Teil in den Manuals 
der betreffenden Geräte.

PS: Bitte keine "GPIB ist nicht mehr zeitgemäß" Kommentare, es sei Denn 
Ihr wollt mir NXI Equipment schenken.

von hp-freund (Gast)


Lesenswert?

Im Datenblatt des 9914 ist das Timing und der Ablauf der Kommunikation 
gut beschrieben:

http://www.datasheetarchive.com/dlmain/Datasheets-115/DSAP001905.pdf

von Pandur S. (jetztnicht)


Lesenswert?

> Auch über Timings schweigt sich praktisch jede Dokumentation aus.


Ich bin auch grad an so einem Teil (iteration 3). Ein Mega645 mit ALS160 
& ALS162 als Businterface. Die insgesammt erhaeltliche Dokumentation 
erscheint vollstaendig. Es gibt da noch ein Buch, Piotrowski, IEC Bus, 
von Franzis, das oder aehnlich sollte man auch haben. Dort sind die 
Zustaende des Busses beschrieben. Den Datenbus mit nur 7 Bits zu nehmen 
ist fahrlaessig. Damit spart man gar nichts und erwartet Aerger.

PS, das 9914 Datenblatt ist wie immer bei den Trittbrettfahrern nicht 
vollsatendig.

: Bearbeitet durch User
von Pandur S. (jetztnicht)


Lesenswert?

Ein Timing ist nahezu unnoetig, denn der Bus ist quasistatisch. Alles 
ge-handshaked. Es gibt nur einen Stolperstain, wo man einen Zustand 
verpassen kann... irgendwas mit ATN ... muesst ich aber nachschauen.

von Thomas R. (thomas-rudloff)


Lesenswert?

Die 7Bit passen genau in einen XC9536XL inkl. Adressvergleicher für 
TALK/UNTALK bzw. LISTEN/UNLISTEN. Den Teil habe ich fertig. Das achte 
bit kann man sonstwo hinpacken, da es nicht verarbeitet werden muß. 
Wichtig ist, daß es die gleiche Impedanz wie die anderen sieben hat. 
Sonst geht das wirklich in die Hose.

Kritisch ist ein ATN nach einer Übertragung, da der Talker die Daten bis 
nach dem Handshake halten muß, aber der Bus rechtzeitig für den 
Controller in Charge frei sein muß. Hier habe ich irgendwo etwas von 
200ns gelesen IIRC. Sollte aber mit Deinem AVR in Software gehen. 
Ansonsten kann man da ein Flip-Flop (z.B. 74LVC74) in die Enable 
frickeln, daß die Treiber automatisch abschaltet sobald das letzte Byte 
übertragen wurde. Muß ich mir aber noch im Detail ansehen.

Als ersten Test wollte ich die zwei CPLDs an ein FTDI Modul hängen und 
ein bischen Sniffen. Den Logicanalyzer oder das Logicscope anzuschließen 
war mir bisher zu stressig. Somal man da dann auch Gefahr läuft fremde 
Fehler zu kopieren.

Die eierlegende Wollmilchsau, die am Ende rauskommen soll ist mit SAM3X 
mit USB, Ethernet und POE geplant. Das Teil einfach hinten dran hängen 
und über den Switch versorgen. Oder über die USB Buchse.

Die Device Variante soll in ein Netzteil. Von Meanwell gibt es ein 300W 
Teil, das mit dem Schuhlöffel in ein Schroff Interscale Gehäuse paßt. Da 
habe ich gerade den PIC als LCD Controller fertig und Platinen für einen 
TI Microcontroller mit High Res PWM schon da liegen.

Ich habe vor, das straight forward zu machen. Für jeden Zweck den am 
besten geeigneten µC einbauen. Die kosten heute nichts mehr. Und aus dem 
Alter, in dem hunderte Stunden reinsteckt um zehn Euro zu sparen bin ich 
raus.

von Pandur S. (jetztnicht)


Lesenswert?

Das 68488 Datenblatt scheint das Noetige zu enthalten. Ich habe nur den 
Anspruch einen Controller zu bauen. Kein Device. Den Controller steckt 
man hinten auf das Mess- oder Steuergeraet und hat es von den IEEE 
Fesseln befreit. Und benoetigt keine laestigen IEEE Treiber mehr.

von m.n. (Gast)


Lesenswert?

Jetzt Nicht schrieb:
> Ich habe nur den
> Anspruch einen Controller zu bauen. Kein Device. Den Controller steckt
> man hinten auf das Mess- oder Steuergeraet und hat es von den IEEE
> Fesseln befreit. Und benoetigt keine laestigen IEEE Treiber mehr.

Da kannst Du Dir auch die Bustreiber sparen und direkt mit den Ports das 
Protokoll ablaufen lassen. 'Füher' reichte ein 6522/6532 dafür - inkl. 
timeout-Erkennung ;-)

von Ralph B. (rberres)


Lesenswert?

Thomas Rudloff schrieb:
> Das achte
> bit kann man sonstwo hinpacken, da es nicht verarbeitet werden muß.

Parallel Poll-Response 8 verwendet z.B. das 8te Bit.

Und dann gibt es außer ASCII Daten ja auch noch Binärdaten welche 
übertragen werden. Da ist auch 8 Bit angesagt. z.B. Bildschirminhalte.

m.n. schrieb:
> Da kannst Du Dir auch die Bustreiber sparen und direkt mit den Ports das
> Protokoll ablaufen lassen.

Das mag gehen, wenn man via IEC-Bus nur ein Gerät anschließen will.

Aber der Bus ist für 16 Geräte zu treiben gedacht. Und da muss der 
Treiber locker 48mA treiben. Die Abschlusswiderstände in den einzelnen 
Geräten ist auch standarisiert.

Ralph Berres

von Thomas R. (thomas-rudloff)


Angehängte Dateien:

Lesenswert?

Das ging mir auch schon durch den Kopf. Einen SAM3X mit USB und Ethernet 
und fertig ist der Lack. Als ersten Proto reicht ein Due und etwas 
Heißkleber :-)

Hier dann noch die 488.1-1987.

von m.n. (Gast)


Lesenswert?

Ralph Berres schrieb:
> m.n. schrieb:
>> Da kannst Du Dir auch die Bustreiber sparen und direkt mit den Ports das
>> Protokoll ablaufen lassen.
>
> Das mag gehen, wenn man via IEC-Bus nur ein Gerät anschließen will.

Davon war ja die Rede.

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
Noch kein Account? Hier anmelden.