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.
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.
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/
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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.