Abo
  • Services:
Anzeige
Schaltbild des Panels
Schaltbild des Panels (Bild: Christer Weinigel)

Den echten DDR-Bus identifizieren

Am FPGA ist ein echter DDR-Speicherbaustein angeschlossen. Ich hoffe, dass die Hardware-Ingenieure dafür die gleiche Pin-Belegung verwendet haben, wie sie Xilinx im MIG (Memory-Interface-Generator) vorgeschlagen wird. Ich habe meine Zeichnung entsprechend ergänzt.

  • Legende der FPGA-Pins (Bild: Christer Weinigel)
  • Die FPGA-Pins (Bild: Christer Weinigel)
  • Pins des SoC-Bus (Bild: Christer Weinigel)
  • Pins zum RAM (Bild: Christer Weinigel)
  • Pins zum ADC (Bild: Christer Weinigel)
  • Vollständig dokumentierte Karte der Pins (Bild: Christer Weinigel)
  • Matrix-Schaltung der Bedientasten am Oszilloskop (Bild: Christer Weinigel)
  • Noch keine Sinuskurve (Bild: Christer Weinigel)
  • Mit viel Phantasie eine Sinuskurve (Bild: Christer Weinigel)
  • Eine echte Sinuskurve (Bild: Christer Weinigel)
  • Das gleiche Spiel mit zwei Kanälen (Bild: Christer Weinigel)
  • Noch etwas Chaos (Bild: Christer Weinigel)
  • Wenigstens keine Ausreißer mehr (Bild: Christer Weinigel)
  • Beide Kanäle sind klar erkennbar. (Bild: Christer Weinigel)
  • Beide Kanäle mit größer Dämpfung (Bild: Christer Weinigel)
Pins zum RAM (Bild: Christer Weinigel)

Der Speicherbaustein sitzt über dem FPGA auf der Platine, so dass die Pin-Belegung auch hier sinnvoll ist. SSTL kommt erneut als Verbindungsstandard zum Einsatz, der VREF-Pin wird also auch hier mit 0,9 Volt Spannung versorgt.

Anzeige

So weit, so gut, allerdings gibt es hier auch ein Problem.

Wie zu sehen ist, habe ich neun Pins der Bank 3 als unbenutzt markiert. Diese wurden bei meinem Test ständig beschaltet und sind wahrscheinlich Teil des SoC-Busses. Das sollte üblicherweise kein Problem bereiten. Zum Beispiel fungiert der Pin B1 als M3BA2, er dient damit zur Adressierung des Speicherbausteins durch den FPGA-Speichercontroller. Da DDR2-Speicher nur aus zwei Bänken besteht, sind lediglich M3BA0- und M3BA1-Pins erforderlich und M3BA2 verbleibt ungenutzt - die Namen der Pins entstammen der Xilinx-Dokumentation. Beim Pin F4 sollte es sich um den Pin M3CKE (Clock Enable) handeln, der zum entsprechenden Pin des DDR2-Speicherbausteins führt. Es ist aber auch möglich, dass dieser Pin beim Speicherbaustein fest verdrahtet wurde und das Signal nicht durch den FPGA geschaltet wird.

Das große Problem an dieser Stelle ist die Aussage der Xilinix-Dokumentation, dass einer der Pins M4, M5, N4 oder B3 für die RZQ-Kalibrierung benutzt und nicht beschaltet werden sollte. So können Umwelteinflüsse auf die Datenleitungen erkannt und ausgefiltert werden. Das entsprechende Zitat aus der Dokumentation: "The RZQ pin is required and cannot be removed from the design". Aber alle Pins sind mit dem SoC-Bus verbunden. Ich habe nicht genug Erfahrung mit dem MIG-Werkzeug, um eine solche Verschaltung zum Laufen zu bekommen und dabei die Empfehlung von Xilinix zu ignorieren.

Ansonsten sollte es recht einfach sein, mit Hilfe von MIG den Speichercontroller auf dem FPGA zu konfigurieren.

Es fehlt nur noch der ADC-Bus

Es bleibt nun noch ein großer Bus übrig: Er verbindet den FPGA mit dem Analog-Digital-Konverter (ADC). Wenn ich das Oszilloskop normal starte, dann per OpenOCD den SoC neu starte und Linux boote, läuft der ADC normal weiter und dessen Pins liefern weiterhin Signale. Das ist praktisch zur Analyse.

Die ADC-Signale sind symmetrische (differenziale) Signale, und als ich die Frequenzen der Signale an den Pins analysiere, wird deutlich, dass die Frequenzen stets paarweise auftreten und es insgesamt 32 Stück davon gibt. Das entspricht genau meinen Erwartungen. Denn der ADC lieferte 32 symmetrische Signale (zwei Kanäle mit je 2 x 8 Bits).

  • Legende der FPGA-Pins (Bild: Christer Weinigel)
  • Die FPGA-Pins (Bild: Christer Weinigel)
  • Pins des SoC-Bus (Bild: Christer Weinigel)
  • Pins zum RAM (Bild: Christer Weinigel)
  • Pins zum ADC (Bild: Christer Weinigel)
  • Vollständig dokumentierte Karte der Pins (Bild: Christer Weinigel)
  • Matrix-Schaltung der Bedientasten am Oszilloskop (Bild: Christer Weinigel)
  • Noch keine Sinuskurve (Bild: Christer Weinigel)
  • Mit viel Phantasie eine Sinuskurve (Bild: Christer Weinigel)
  • Eine echte Sinuskurve (Bild: Christer Weinigel)
  • Das gleiche Spiel mit zwei Kanälen (Bild: Christer Weinigel)
  • Noch etwas Chaos (Bild: Christer Weinigel)
  • Wenigstens keine Ausreißer mehr (Bild: Christer Weinigel)
  • Beide Kanäle sind klar erkennbar. (Bild: Christer Weinigel)
  • Beide Kanäle mit größer Dämpfung (Bild: Christer Weinigel)
Pins zum ADC (Bild: Christer Weinigel)

Der ADC befindet sich auf der Platine unterhalb des FPGA, das Layout ergibt auch hier Sinn.

Diesmal ist alles recht einfach.

Die Signalwechsel des symmetrischen Signals an den Pins E7 und E8 liegt selbst dann an, wenn der ADC ausgeschaltet war. Wahrscheinlich handelt es sich um den Takt, mit dem der ADC über die Pins DCLK+/DCLK- betrieben wurde. Ich starte das Oszilloskop erneut, ändere die horizontale Auflösung der Signaldarstellung und starte erneut Linux. Darüber spiele ich wieder mein FPGA-Image ein und die Frequenz (Häufigkeit) der Signalwechsel an den Pins hat sich geändert. Ich bin mir sicher, es handelt sich um den Sampling-Takt, mit dem der ADC die gemessenen Signale an den angeschlossenen Tastköpfen erfasst.

Als ich später an einigen Pins des ADC herumstochere, führt das ebenfalls zu Schaltvorgängen an den Pins F13 und F14. Ich bin mir nicht sicher, was sie tun. Es könnte sich um die Pins des ADC handeln, die einen Überlauf und einen Kalibrierungsvorgang signalisieren.

Ich weiß nicht direkt, welche symmetrischen Signale am FPGA zu den Datenausgabe-Pins am ADC passen, aber das sollte nicht zu schwer herauszufinden sein. Wenn es mir gelingt, das Analog-Frontend zum Laufen zu bringen und eine Signalquelle anzuschließen, könnte ich den Gain-Wert (Verstärkung) so weit verändern, dass nur das niederwertigste Bit in der Datenausgabe auf dem zugehörigen FPGA-Pin auftaucht. Erhöhe ich dann den Gain-Wert, sollten schrittweise auch die höherwertigen Bits in der Datenausgabe auftauchen. So kann ich herausfinden, welches Pin-Paar welchem Bit entspricht, statt per Brute-Force alles durchzuprobieren. Doch das ist am Ende gar nicht notwendig, wie sich zeigen wird.

 Reverse Engineering: Signale auslesen an bunten PinsDie restlichen FPGA-Pins 

eye home zur Startseite
grslbr 26. Nov 2016

Du bist mit Abstand der coolste Typ auf dieser Erde. Wahrscheinlich wirst du eigentlich...

grslbr 26. Nov 2016

Jo, das Trollen bei Heise war schon mal lustiger. Früher konnte man da sicher sein, mit...



Anzeige

Stellenmarkt
  1. Robert Bosch GmbH, Leonberg
  2. Daimler AG, Stuttgart
  3. operational services GmbH & Co. KG, Frankfurt
  4. Robert Bosch GmbH, Stuttgart-Vaihingen


Anzeige
Top-Angebote
  1. (u. a. 20% Rabatt auf ausgewählte FSP-Netzteile)
  2. (u. a. Hydro X 550 W 80 Gold Plus für 59,99€ statt 78€ im Vergleich)
  3. 155€

Folgen Sie uns
       


  1. Smartphone

    Neues Huawei Y6 für 150 Euro bei Aldi erhältlich

  2. Nahverkehr

    18 jähriger E-Ticket-Hacker in Ungarn verhaftet

  3. Bundesinnenministerium

    Neues Online-Bürgerportal kostet 500 Millionen Euro

  4. Linux-Kernel

    Android O filtert Apps großzügig mit Seccomp

  5. Computermuseum Stuttgart

    Als Computer noch ganze Räume füllten

  6. ZX-E

    Zhaoxin entwickelt x86-Chip mit 16-nm-Technik

  7. Microsoft

    Windows 10 Redstone 3 streicht einige Funktionen

  8. Smartphone

    LG stellt Q8 mit zweitem Display vor

  9. Francois Piednoël

    Principal Engineer verlässt Intel

  10. Surface Laptop im Test

    Microsofts Next Topmodel hat zu sehr abgespeckt



Haben wir etwas übersehen?

E-Mail an news@golem.de


Anzeige
Anker Powercore+ 26800 PD im Test: Die Powerbank für (fast) alles
Anker Powercore+ 26800 PD im Test
Die Powerbank für (fast) alles
  1. Toshiba Teures Thunderbolt-3-Dock mit VGA-Anschluss
  2. Asus Das Zenbook Flip S ist 10,9 mm flach
  3. Anker Powercore+ 26800 PD Akkupack liefert Strom per Power Delivery über USB Typ C

Matebook X im Test: Huaweis erstes Ultrabook glänzt
Matebook X im Test
Huaweis erstes Ultrabook glänzt
  1. Huawei Neue Rack- und Bladeserver für Azure Stack vorgestellt
  2. Matebook X Huaweis erstes Notebook im Handel erhältlich
  3. Y6 (2017) und Y7 Huawei bringt zwei neue Einsteiger-Smartphones ab 180 Euro

Handyortung: Wir ahnungslosen Insassen der Funkzelle
Handyortung
Wir ahnungslosen Insassen der Funkzelle
  1. Bundestrojaner BKA will bald Messengerdienste hacken können
  2. Bundestrojaner Österreich will Staatshackern Wohnungseinbrüche erlauben
  3. Staatstrojaner Finfishers Schnüffelsoftware ist noch nicht einsatzbereit

  1. Re: Exploit - Wettannahme hier

    Füchslein | 14:37

  2. T-Systems...

    vankooch | 14:35

  3. Re: Softwareunschärfe

    Netspy | 14:35

  4. Daraus lernt man

    Mopsmelder500 | 14:35

  5. Re: Sollte ihm eine Lehre sein

    koki | 14:35


  1. 14:30

  2. 14:00

  3. 13:29

  4. 13:13

  5. 11:59

  6. 11:58

  7. 10:51

  8. 10:30


  1. Themen
  2. A
  3. B
  4. C
  5. D
  6. E
  7. F
  8. G
  9. H
  10. I
  11. J
  12. K
  13. L
  14. M
  15. N
  16. O
  17. P
  18. Q
  19. R
  20. S
  21. T
  22. U
  23. V
  24. W
  25. X
  26. Y
  27. Z
  28. #
 
    •  / 
    Zum Artikel