Forum: PC Hard- und Software Logic analyzer / Pattern generator mit PCI


von Ich (Gast)


Lesenswert?

Hat schonmal jemand versucht mit den PCI-Ports von einem alten 
Motherboard einen Logic analyzer / digital patttern generator zu bauen?

Theoretisch hätte man doch mit den 33 MHz Taktrate und dem 32Bit breiten 
Bus einen relativ guten Datendurchsatz und im PC-RAM mehr als genug 
Speicher.

Wenn man dort nen CPLD mit 4 fachem PLL auf Bustakt laufenlassen würde, 
könnte man doch eigentlich 8 Bit mit 133 MHz einlesen oder ausgeben. Man 
würde einfach für die Ausgabe (pattern generator) den 32 Bit Bus allt 4 
Takte im CPLD-Eingangslatch zwichenspeichern und dann jeden Takt 8 Bit 
ausgeben. Als Logic analyzer auf einer anderen Karte eben andersrum.

Mich würde interessieren, ob die CPU und das Betriebssystem in der Lage 
ist, fortlaufend und ohne Unterbruch am PCI-port Daten einzulesen und zu 
speichern, bzw. Daten im RAM zu lesen umd am PCI-Port auszugeben. Da es 
PCI-Graphikkarten gibt, sollte es doch eigenlich mit nem geeigneten 
Treiber möglich sein, denn das Bild kann dort nicht einach 
stehenbleiben.

Wenn man mehr als eine solcher Karte basteln würde hätte man mit 5 
PCI-Slots 40 Kanäle mit 133 MHz und unmengen an Speicher, allerdings 
wäre man dann mit der Datendurchsatzrate von 133 MHz SDRAM am Ende.

Was meint ihr dazu, wenn alles theoretich funktionieren würde, wäre das 
doch ne gute Anwendung für alte PC's.

von V. B. (dr-robotnik)


Lesenswert?

Also wenn es konrekete Ideen für eine solche Umsetzung gibt, wäre ich 
auch sehr interessiert. Ich habe auch schon mal daran gedacht einen LA 
zu bauen und dazu meinen alten Rechner zu benutzen zu können finde ich 
klasse.

von Christian R. (supachris)


Lesenswert?

Hm...erst mal müsste man ja erst mal das gesamte PCI-Interface bauen, 
das ist nicht ohne. Gibts aber mittlerweile als IP-Core für FPGAs. Dann 
müsstest du ein Echtzeit-OS haben, denn mit Linux und Windows kannst du 
es vergessen, äquidistant da was zu machen.
Grafikkarten haben ja einen eigegen Bild-Speicher, und machen das 
Bild-Timing unabhängig von der CPU.

Die Sache ist doch viel zu kompliziert. Ein FPGA mit bissl RAM reicht 
doch vollkommen zu, als Interface einen USB Controller wie den Cypress 
FX2 dran und gut.

Schau mal hier: http://www.sump.org/projects/analyzer/

von I_ H. (i_h)


Lesenswert?

Vergiss es. Wie willst du die Zugriffsmuster einhalten? Wie willst du 
dafür sorgen, dass du nicht sämtliche Peripherie lahmlegst?

Eher noch wäre der ISA Bus geeignet, aber der ist einfach zu lahm. 
Vielleicht auch VLB, aber einen 486er treibt man mit der vollen VLB 
Datenrate in den Grenzbereich, und VLB ist 486er spezifisch weil der 
direkt an der CPU hängt.

von ex-mentor-user (Gast)


Lesenswert?

PLX PCI9020 oder moderneres.

von Jens (Gast)


Lesenswert?

Die ganze Idee ist so wie beschrieben nicht realisierbar. PCI ist
ein Bus, d.h. da hängen auch noch andere Sachen dran und brauchen
gelegentlich Bandbreite. Ich müßte nochmal nachschlagen, aber
wenn ich mich richtig erinnere sorgt der Arbiter auch dafür das
kein Device den Bus zu lange belegt. Deswegen sind die theoretischen
Werte (32MHz * 4 Byte) nie erreichbar. Durch die Zugriffe auf andere
Peripherie (Video, je nach Chipsatz auch Timer, DMA, usw.) kommt
außerdem nie ein kontinuierlicher Datenstrom zustande.
Die günstigste Selbstbaulösung sieht aus wie der bereits verlinkte
Sump-LA, wobei man bei Bedarf das Interface zum PC auch anders
ausführen kann. Mit einer neuen Platine könnte das auch PCI sein.
Wenn da die Speichertiefe oder die Geschwindigkeit nicht reicht
wird es entweder teurer oder abenteuerlich.

Jens

von Christian R. (supachris)


Lesenswert?

Im Prinzip kann man sagen, dass alle Busse im PC nicht dazu geeignet 
sind, kontinuierlich und zeitdeterministisch irgendwwas abzutasten. Wenn 
man richtig messen will, muss da immer eine extra Logik für die 
zeitkritische Aufnahme hin. Im einfachsten Fall ein kleines CPLD für die 
Ablaufsteuerung mit einem FIFO-Speicher, der die Werte aufnimmt, und aus 
dem man dann gemütlich mit Pausen lesen kann. Schon kleinste Jitter 
erzeugen digitales Rauschen. Ist bei einem Logic-Analyser nicht so 
schlimm, aber äquidistant bekommt man das mit einem PC-Bus-System (und 
einem Betriebssystem wie Windows oder Linux) nicht auf die Reihe. Selbst 
die Realtime Aufsätze für Linux und Windows können nur µs garantieren.

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.