www.mikrocontroller.net

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


Autor: Ich (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: V. Baumann (dr-robotnik)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht 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/

Autor: I_ H. (i_h)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: ex-mentor-user (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
PLX PCI9020 oder moderneres.

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.