Vielkanal-Logic-Analyzer mit Protokoll- und Konfigurationserkennung

Art der Arbeit: Masterarbeit

Fachlicher Hintergrund:

Beim Reverse-Engineering von komplexen Leiterplatten (PCB) mit Microcontrollern oder zwischen Gerätekomponenten stellt sich oftmals die Frage, wo wichtige digitale Schnittstellen zugreifbar sind. Dazu gehören z.B. GPIO, SPI, I2C, I2S, UART, JTAG, SWD und viele andere mehr. Moderne System on a Chip Controller / Computer (SoC) mit CPU Kernen und Microcontroller verfügen zudem über interne Duplexer, die es ermöglichen, viele Funktionen vom Core an wenige Pins am Gehäuse zu schalten.

Aufgabenbeschreibung:

Im Rahmen der Arbeit soll ein modulares System zur Erkennung und Analyse von Signalen auf PCBs entwickelt werden.

Folgende Problemstellungen sind zu erwarten:

  • Die zu erwartenden Taktraten erfordern eine häufige Abstastung. Die dabei zu erwartenden Datenrate erfordert mehrere Baugruppen in einem modularen Logic Analyzer.
  • Ein modularer Logic Analyzer mit sehr vielen Eingängen erfordert eine präzise Synchronisation (Zeit, Takt) zwischen den beteiligten Komponenten.
  • Zu einer Schnittstelle gehören eventuell mehrere Daten-, Takt- und Steuerleitungen. Bei einer großen Anzahl von Eingängen steigt die Komplexität der Zuordnung schnell an.
  • Die Konfiguration könnte sich im laufenden Betrieb ändern.

Es sollen folgende Fragestellungen beantwortet werden (sinnvolle Auswahl entsprechend der Bearbeitungszeit):

  • Lässt sich durch reine Beobachtung des Datenverkehrs feststellen, welche Pins eines bekannten Microcontrollers wie konfiguriert sind, also welches Protokoll sie eventuell führen? Alle möglichen Konfigurationen sind hierbei bekannt.
  • Lassen sich beliebige Protokolle auf einer kleinen Anzahl von Leitungen erkennen?
  • Lassen sich zugehörige Leitungen in einer großen Anzahl von Leitungen finden (Logic Analyzer mit sehr vielen Eingängen und vielen Signalgruppen)?
  • Welche Abtastraten sind in einem modularen System möglich?
  • Welche Architektur ist am ehesten für einen solchen Vielkanal-Logic-Analyzer geeignet (z.B. CPU oder FPGA)

Mögliche Arbeitsschritte:

  • Einarbeitung Microcontroller und genannte Schnittstellen.
  • Erarbeitung einer Möglichkeit zur abstrakten Beschreibung von digitalen Protokollen (Grammatik).
  • Abstrakte Beschreibung der häufigsten digitalen Protokolle auf PCBs auf unterer Ebene (ohne Nutzdaten).
  • Entwurf eines modularen Logic Analyzers für viele Kanäle. Berücksichtigung der zuvor genannten Problemstellungen.
  • Prototyp und Test
  • Auswertung der Ergebnisse

Die genaue Festlegung des Themas erfolgt in Abstimmung mit dem Betreuer unter Berücksichtigung eventuell schon an andere Studenten vergebener Themengebiete. Eine gemeinsame Bearbeitung verschiedener Teilthemen durch mehrere Studenten ist unter Umständen möglich. 

Literatur und Ressourcen:

  • Spezifikation der genannten Protokolle (SPI, I2C, I2S, UART, JTAG, SWD)
  • Karambelkar, Varsha, and A. A. Shinde. "Testing Digital Signals by Low Cost ARM Based Logic Analyzer." International Journal of Engineering and Advanced Technology (IJEAT) 1.5 (2012).
  • Babich, Fulvio, and Lia Deotto. "Formal methods for specification and analysis of communication protocols." IEEE Communications Surveys & Tutorials 4.1 (2002): 2-20.

Betreuer: Dr. Thomas Mundt (thomas.mundt@uni-rostock.de) 

Voraussetzungen: Keine besonderen, Programmierkenntnisse in einer höheren Programmiersprache sind von Vorteil. Ein grundlegendes Verständnis der elektrischen Eigenschaften von Netzwerken ist hilfreich.