Wie starte ich das Reverse Engineering einer Schaltung?

7

Ich habe eine alte Controller-Karte von einem PC, der einige Schrittmotoren steuern musste. Es gibt jedoch mehrere Probleme:

  • Der PC funktioniert nicht mehr und ich habe keinen Zugriff auf das Programm, das die Karte aufgrund eines Festplattenfehlers gesteuert hat.
  • Ich habe im Moment keine Handbücher für die Geräte, die gesteuert wurden, weil es maßgeschneidert ist.

Aber da die Schaltung nur aus 8 ICs und 6 Kondensatoren besteht und jeder Draht auf der Platine deutlich dargestellt ist, möchte ich versuchen, die Karte zurückzuentwickeln, da wir die gesteuerten Geräte wieder verwenden möchten.

Daher ist meine Idee, wie ich das Problem lösen kann:

  • Verwenden Sie Adler, um das Brett und die Geräte zu zeichnen;
  • Simulieren Sie es;
  • Versuchen Sie herauszufinden, was passiert, wenn ich mit der Eingabe herumspiele.

Ist das ein nützlicher Ansatz? Wenn nein, was kann ich sonst noch tun?

Das Problem dabei ist, dass sich auf dieser Karte zwei programmierbare ICs befinden (P8255A) und ich keine interne Programmierung habe. Meine zweite Frage lautet also: Gibt es eine Möglichkeit, die Programmierung dieser ICs herauszubringen?

Bearbeiten: Was ich möglicherweise nicht vollständig angegeben habe, ist, dass ich nicht einfach das Datenblatt für die Schrittmotoren erhalten kann, es gibt immer noch eine Steuerung zwischen den Schrittmotoren und meiner Karte, und alle Schrittmotoren sind in ein Spektrometer eingebaut, in dem ich habe keinen Zugang zu ...

Bearbeiten 2: Einige Bilder:
Vorderseite:

Zurück:

arc_lupus
quelle
1
Interessant. Einige Fotos wären schön.
Dzarda
Willst du das auch? Oder nur zum Spaß? Aber ich kann sie bald zur Verfügung stellen.
arc_lupus
Um ehrlich zu sein, nur zum Spaß :)
Dzarda
1
@ Dzarda: Fertig, Bilder werden hinzugefügt
arc_lupus
4
Hattest du keine Backups? Warum um alles in der Welt hatten Sie keine Backups! Repariere das zuerst !!!!
Connor Wolf

Antworten:

4

Der P8255A verfügt über keinen internen Programmspeicher - jede "Programmierung" erfolgt extern, Sie müssen sich also keine Sorgen machen - das Programm auf dem PC ist der Ort, an dem die Konfiguration vorgenommen wird.

Was das Reverse Engineering einer solchen alten Karte angeht, sollte dies möglich sein. Wenn es sich um eine ISA-Karte mit Edge-Connector handelt, ist die Herstellung einer neuen Karte nicht besonders günstig. Möglicherweise verstoßen Sie gegen einige Urheberrechtsregeln, wenn Sie die Software mit Ihrer eigenen Karte verwenden, aber ich lasse Sie dieses (nicht technische) Problem untersuchen. Früher gab es Perf-Boards mit einem ISA-Kantenverbindungsmuster. Mit nur 8 ICs könnte es in ein oder drei Stunden leicht mit einem Magnetkabel auf einer Perf-Platine verkabelt werden, aber es wäre leicht, etwas zu übersehen und eine verdammt lange Zeit damit zu verbringen, Fehler zu beheben.

Bearbeiten:

Auf Ihrer Platine haben sie sich weder die Lötmaske noch die Vergoldung der Kantenanschlusskontakte vorgenommen. Ziemlich infra-dig, aber ich denke, es hat eine Weile funktioniert. Sogar Goldblitz wäre besser.

Hier ist das Vector Prototyping Board # 4613-1, Digikey hat noch 15 auf Lager (aber sie werden nicht nachbestellt).

Spehro Pefhany
quelle
Ich habe keine Urheberrechtsprobleme (wie ich annehme), alles wurde in unserer Arbeitsgruppe hier an der Universität gemacht ...
arc_lupus
1
Vector 4613-3 ISA Prototyping Board für viel weniger Geld als Digikey. Mehr als 10 auf Lager.
Roman Starkov
3

Holen Sie sich die Datenblätter für die Schrittmotoren und beginnen Sie mit einer neuen Hardwareschnittstelle und Software von vorne.

Ich sage das, weil Ihre Festplatte tot ist und Sie daher möglicherweise nie die Feinheiten kennen, die die PC-Karte beim Antreiben der Motoren getan hat. Der P8255A ist eine programmierbare Peripherieschnittstelle und nimmt Befehle von der auf dem PC ausgeführten Software entgegen. Wie ich bereits sagte, wissen Sie nicht, wie dies funktioniert.

Andy aka
quelle
Siehe meine Erklärung, dieser Weg ist nicht für mich geeignet (auch wenn es ein einfacher Ansatz wäre ...)
arc_lupus
Sie sagten in Ihrer Frage "Ich habe im Moment keine Handbücher für die Geräte, die gesteuert wurden" - sagen Sie jetzt, dass Sie die Handbücher niemals bekommen werden?
Andy aka
Ich werde sie bekommen, sobald der Konstrukteur an die Universität zurückgekehrt ist, aber das ist kein fester Termin ...
arc_lupus
Update: Mein letzter Controller ist verbrannt, jetzt
fange
3

Der 'interessante' Teil, der Ihre Zeit wert ist, beginnt an dem Punkt, zu dem das Kabel führt, und kehrt zu dieser Platine zurück, die mit dem verdrahteten 7407- und 40-Pin-DIP verbunden ist. Ist auch etwas am Steckdosenstecker angebracht?

Beginnen Sie mit einem Blockdiagramm. Eine Box für jeden IC mit einem Gefühl für die Verbindungen. Holen Sie sich Datenblätter für die ICs und fügen Sie die IC-Diagramme in einen Arbeitsbereich (physisch oder digital) ein und skizzieren Sie die Verbindungen. Je näher Sie den goldenen Fingern kommen, desto weniger Details möchten Sie. Dieser Teil ist etwas, das Sie kaufen.

Die Platine ist halbkundenspezifisch - der 7407 unter einem 40-poligen DIP befindet sich in einem "Prototyping-Bereich". Sie möchten ein genaues Schema dafür, wohin jeder Draht im Kabel führt und was diese Stellen dann tun. Der gesamte Prototyping-Bereich. Sobald Sie das haben, können Sie nach einem anderen kommerziellen Produkt suchen, das dieselbe Schnittstelle zu demselben 40-Pin-DIP unterstützt (P8255?)

Den Rest der Platine nicht rückentwickeln. Das erfindet den Weißwandreifen neu. Kein Wert. Es bietet eine Busschnittstelle zum 40-poligen DIP. Die Verkabelung und der 7407 zeigen Ihnen, was der DIP tut. Die Software zum Einstellen und Bedienen des Objekts wird dadurch definiert, welche Signale über das Kabel übertragen werden.

"Simulation" ist eine Art CSI-on-TV-Zeug - es gibt etwas, das so aussieht, aber dort wird die eigentliche Arbeit nicht erledigt.

am nächsten Tag hinzugefügt: Ich habe noch keine "Kommentar" -Privilegien .. anscheinend!

Vielen Dank! Es ist schön, sich nützlich zu fühlen. Eine schnelle Google-Suche nach "XT Peripheral 8255" erzeugt Bilder einer Reihe anderer Boards mit ähnlichen Chipsammlungen, von denen eines einen Prototyping-Bereich hat: http://www.pci8255.net/windows-2.htm . Dort gibt es auch einen Link zu einem 8255-Datenblatt, Tutorial-Zeug.

Der Katalog derselben Firma http://www.pci8255.net/catalog.htm enthält eine Schrittmotorsteuerung und Software ist für Windows und Linux verfügbar.

Suchen Sie nach "pci 8255" und Sie finden Pressemitteilungen aus dem Jahr 2001 sowie Produkte, die ab sofort im Wert von 200 US-Dollar und darunter erhältlich sind. Es sieht so aus, als wäre es kein Problem, einen 8255 in diesen Bus zu bekommen. Nächste Frage: Ist das der Bus, in dem Sie sein möchten? Vielleicht möchten Sie USB oder was auch immer bei Standard-PCs, die morgen auf den Markt kommen, am beliebtesten ist.

Suchen Sie nach "Schrittmotor" und wählen Sie einen Bus, um eine Komplettlösung zu finden. Sie benötigen jedoch eine vollständige Skizze dieses Kabels und müssen auf jeden Fall eine Verbindung zum 8255 herstellen. Und über die Schnittstellenkarte zu den Motoren.

Bill IV
quelle
2

Da Sie sagen, dass sich zwischen der PC-Karte und den Schrittmotoren ein anderer Controller befindet, würde ich versuchen, das Protokoll zu bestimmen, das zur Steuerung dieses anderen Controllers erforderlich ist, und mithilfe der aktuellen Technologie den besten Weg zu finden, um mit diesem Controller zu sprechen.

Peter Bennett
quelle
1

Ihr Ansatz scheint nützlich zu sein. Das Zeichnen eines Schaltplans ist der erste Schritt im Reverse Engineering. Nur eine Simulation hilft jedoch nicht viel bei der Untersuchung der richtigen Reize. Sie müssen den Schaltplan entschlüsseln und verstehen, wie er mit Ihrem eigenen Gehirn funktioniert.

'Programmierbar' in P8255A bedeutet nicht, dass es werkseitig vorprogrammiert ist. Sie wird bei jedem Start vom Treiber programmiert. Das Datenblatt gibt Ihnen eine Vorstellung davon, wie es gemacht wird (sollte). Die Programmierung von 8255 ist recht einfach: Es gibt einen Satz von vier Registern, drei sind direkt den Ports A, B, C IO-Pins zugeordnet und einer steuert den Betriebsmodus. Ich nehme an, dass Schrittmotortreiber direkt mit den Pins des Ports (A, B, C) verbunden sind. Bits in Portregistern würden also nur die entsprechenden Spulen ein- und ausschalten.

Vovanium
quelle