Home Projekte Builds Elektronik Programme Makes 3D-Druck About Me
MIMO-Technology MIMO-Technology

MIMO TECHNOLOGY

SLC Timing Decoder

Bei unseren Geräten wird öfters auf ein sogenanntes SLC Protokoll zurückgegriffen. Dies ist ein internes Protokoll und kommuniziert über die RS485 Schnittstelle. Leider treten ab und zu Timing Fehler auf. Diese entstehen durch Toleranzunterschiede der Baudrate beider HW Komponenten. Durch längere Datenpakete wird die Zeitverschiebung grösser und führt schlussendlich zu einem Übertragungsfehler. Es soll ein Produkt entwickelt und aufgebaut werden, mit dem Timing- Fehler detektiert und ausgewertet werden können. Sobald ein Fehler detektiert wird, soll ein Trigger Signal an ein Oszilloskop übergeben werden, welches mit einer Live Überwachung den Fehler aufzeichnen kann.

1 Das fertige Produkt

1 Timing Decoder und dessen Dokumentation

1 Grobes Flussdiagramm

1 Struktogramm

1 Prototyp der Hardware

1 Um dem schwingen der HighSpeed Operationsverstärkern vorzubeugen, wurde die GND-Fläche vergrössert

Es sollen folgende Zeiten überprüfbar sein:
  • Pre- und Postdrive time beim Versenden eines Paketes
  • Zeit zwischen 2 Bytes innerhalb eines Paketes
  • Zeit zwischen Frage und Antwort (Minimum und Maximum einstellbar)
  • Minimale Zeit zwischen 2 beliebigen Frames
  • Auswertung ungültiger Frames (CRC- Error, ungültige Länge, usw.)
Das System muss echtzeitfähig bleiben, da der Trigger zur rechten Zeit ausgelöst werden muss. Das Protokoll wird mit einer Datenübertragungsrate von 9600 Baud übertragen. Somit werden pro Sekunde 9600 Bits Übertragen, bzw. 1 Bit alle 104,2us. Da im Protokoll jedes Byte (8-Bit) mit einem Start und Stop bit gesendet werden, erstreckt sich eine Bytezeit über 10Bit bzw 1,042ms. Dazu wurde ein 32 Bit Timer des LPC1227 Cortex-M0 Microkontrollers verwendet, da nur dieser genügend Match und Capture Register besitzt um den Decoder richtig betreiben zu können. Dieser kann ohne Probleme mit voller Auflösung (24MHz) zählen, ohne Overflows in einer zu messenden Zeit auszulösen. Dabei werden insgesamt 4 Capture Register und 2 Match Register gebraucht. Zwei Capture Register werden für die Software gesteuerte UART gebraucht und die beiden anderen werden für die zeitliche Detektion der TxEn Signale gebraucht.

Mittels verschiedener Logik werden die Interrupts der Timer ausgewertet und bei Fehlern ein Triggerimpuls ausgelöst. Als Beispiel die Auslösung bei einem PostDrive Fehler. In diesem Beispiel Löst der Timing decoder aus, da das Stopframe kürzer als 4 Bytes ist.

Download

Downloads nicht verfügbar