Wie starte ich das Reverse Engineering einer Schaltung?

Ich habe eine alte Steuerkarte von einem PC, der einige Schrittmotoren steuern musste. Aber es gibt mehrere Probleme damit:

  • Der PC funktioniert nicht mehr und ich habe wegen eines Festplattendefekts keinen Zugriff auf das Programm, das die Karte steuert;
  • Für die angesteuerten Geräte habe ich im Moment keine Bedienungsanleitung, da es eine Sonderanfertigung ist.

Aber nachdem die Schaltung nur aus 8 ICs und 6 Kondensatoren besteht und jeder Draht auf der Platine klar dargestellt ist, möchte ich versuchen, die Karte zurückzuentwickeln, weil wir die angesteuerten Geräte wieder verwenden wollen.

Daher meine Idee zur Lösung des Problems:

  • 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 sinnvoller Ansatz? Wenn nein, was kann ich sonst tun?

Das Problem dabei ist, dass sich auf dieser Platine (P8255A) zwei programmierbare ICs befinden und ich nicht über die interne Programmierung verfüge. Daher meine zweite Frage: Gibt es eine Möglichkeit, die Programmierung dieser ICs herauszuholen?

Bearbeiten: Was ich möglicherweise nicht vollständig angegeben habe, ist, dass ich das Datenblatt für die Schrittmotoren nicht einfach bekommen kann, es gibt immer noch einen Controller zwischen den Schrittmotoren und meiner Karte, und alle Schrittmotoren sind in ein Spektrometer eingebaut, wo ich keinen Zugriff haben...

Bearbeiten 2: Einige Bilder:
Vorderseite:

Der Rücken:

Interessant. Ein paar Fotos wären schön.
Willst du das auch? Oder nur zum Spaß? Aber ich kann sie bald liefern.
Um ehrlich zu sein, nur zum Spaß :)
@Dzarda: Fertig, Bilder werden hinzugefügt
Hatten Sie keine Backups? Warum um alles in der Welt hattest du keine Backups! Erstmal reparieren!!!!
Jetzt ist es zu spät, aber der PC mit den Dateien ist älter als ich (486er mit 120 Mbyte HDD)...

Antworten (5)

Das P8255A hat keinen internen Programmspeicher – jegliche „Programmierung“ erfolgt extern, Sie brauchen sich also nicht darum zu kümmern – das Programm im PC ist der Ort, an dem die Konfiguration vorgenommen wird.

Das Reverse Engineering einer solchen alten Karte sollte möglich sein. Wenn es sich um eine Edge-Connector-ISA-Karte handelt, ist es nicht besonders billig, eine neue Karte herstellen zu lassen. 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 Perfboards mit einem ISA-Randsteckmuster darauf. Mit nur 8 ICs könnte es leicht in ein oder drei Stunden mit Magnetdraht auf einem Perfboard verdrahtet werden, aber es wäre leicht, etwas zu übersehen und eine Menge Zeit für die Fehlersuche zu haben.

Bearbeiten:

Auf Ihrer Platine haben sie sich nicht die Mühe gemacht, Lötstoppmasken oder Vergoldungen an den Randsteckerkontakten zu bekommen. Ziemlich infra-dig, aber ich denke, es hat eine Weile funktioniert. Sogar Goldblitz wäre besser.

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

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

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 unmöglich die Feinheiten erfahren können, die die PC-Karte beim Ansteuern der Motoren gemacht hat. Das P8255A ist eine programmierbare Peripherieschnittstelle und nimmt Befehle von der Software entgegen, die auf dem PC läuft, und wie gesagt, Sie wissen nicht, wie das funktioniert.

Siehe meine Erklärung, dieser Weg ist für mich nicht geeignet (auch wenn es ein einfacherer Ansatz wäre ...)
Sie sagten in Ihrer Frage "Ich habe im Moment keine Anleitungen für die Geräte, die kontrolliert wurden" - sagen Sie jetzt, dass Sie die Anleitungen nie bekommen werden?
Ich werde sie besorgen, sobald der Konstrukteur wieder an der Uni ist, aber das ist kein Fixtermin...
Update: Mein letzter Controller ist verbrannt, jetzt fange ich von vorne an und mache meinen eigenen ...

Der "interessante" Teil, der Ihre Zeit wert ist, beginnt an dem, wohin dieses Kabel führt, und kommt zu dieser Platine zurück, wo es mit dem wirren 7407 und dem 40-poligen DIP verbunden wird. Ist an der Buchse auch etwas dran?

Beginnen Sie mit einem Blockdiagramm. Eine Box für jeden IC, mit Sinn für die Zusammenhänge. 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 Goldfingern kommen, desto weniger Details möchten Sie. Dieses Teil ist etwas, das Sie kaufen.

Das Board ist halb kundenspezifisch - der 7407 unter einem 40-Pin-DIP befindet sich in einem "Prototyping-Bereich". Sie möchten einen genauen Schaltplan, wo jeder Draht im Kabel hinführt und was diese Punkte 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-poligen DIP (P8255?)

Entwickeln Sie den Rest der Platine nicht zurück. Das erfindet den Weißwandreifen neu. Kein Wert. Es bietet eine Busschnittstelle zum 40-poligen DIP. Die Verkabelung und 7407 sagen Ihnen, was das DIP tut. Die Software zum Einstellen und Betreiben des Dings wird dadurch definiert, welche Signale das Kabel hinaufgehen.

"Simulation" ist eine Art CSI-im-Fernsehen-Zeug - es gibt etwas, das so aussieht, aber dort wird nicht die eigentliche Arbeit geleistet.

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

Danke dir! Es ist schön, sich nützlich zu fühlen. Eine schnelle Google-Suche nach „XT Peripheral 8255“ liefert Bilder einer Reihe anderer Platinen mit ähnlichen Chipsammlungen, von denen eine 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 der gleichen 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 und Produkte, die jetzt im Bereich von 200 $ und darunter erhältlich sind. 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 du sein möchtest? Vielleicht möchten Sie USB oder was auch immer in Standard-PCs am beliebtesten ist, die morgen auf den Markt kommen.

Suchen Sie nach „Schrittmotor“ und dem Bus Ihrer Wahl, vielleicht finden Sie eine Komplettlösung. Sie benötigen jedoch auf jeden Fall eine vollständige Skizze dieses Kabels und die Verbindung zum 8255. Und über die Schnittstellenkarte zu den Motoren.

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

Ihr Ansatz scheint nützlich zu sein. Das Zeichnen von Schaltplänen ist der erste Schritt beim Reverse Engineering. Allerdings hilft nur eine Simulation nicht viel bei der Untersuchung der richtigen Reize. Sie müssen das Schema entschlüsseln und verstehen, wie es mit Ihrem eigenen Gehirn funktioniert.

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