Fahrzeugkommunikation via RS232: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Zeile 28: Zeile 28:
== Ausgangslage und Konzept ==  
== Ausgangslage und Konzept ==  
In diesem Artikel wird davon ausgegangen:  
In diesem Artikel wird davon ausgegangen:  
* dass das Bild bereit verarbeitet wurden und die Spurparameter versandbereit sind.
* dass das Bild bereit verarbeitet wurden und die Spurparameter versandbereit sind
* dass ein bereits existierenden RS232-Bibliothek aus der dSPACE-Karte und auf der C/C++-Code vorhanden sind   
* dass ein bereits existierenden RS232-Bibliothek aus der dSPACE-Karte und auf der C/C++-Code vorhanden sind   



Version vom 6. Februar 2020, 19:50 Uhr

→ zurück zum Hauptartikel: Praktikum SDE

→ zurück zum Kommunikationsseite: Kom - Kommunikation

Betreuer: Prof. Dr.-Ing Ulrich Schneider

Autor: Isaac Mpidi Bita 20:21, 16. Nov. 2019 (UTC)

  • Bitte Rechtschreibfehler korrigieren.

Einleitung

Dieser Artikel befasst sich mit dem Fahrzeugskommunikation mittels RS232-Bus. Das Carolo-Cup-Fahrzeug soll wird über den RS232-Bus die Parameter des Spurpolynom an die dSPACE-Karte senden. Der Spurpolynom wird von der Kamera ermittelt und daraus werden A-,B- und C-Parameter des aktuellen Spur ermittelt (Siehe Bildentzerrung und KOS-Transformation). In dieser Artikel geht es hauptsächlich, um die Datenübertragung. via RS232-Bus.

Anforderungen

Programmierung

Für die Umsetzung der Anforderung wird das System in drei wesentliche Komponenten unterteilt. Dieser sind:

  • Kamera
  • PC
  • dSPACE

Die Kamera kommuniziert mit dem PC über Ethernet-Bus. Der PC wiederum kommuniziert mit der dSPACE Karte. Im PC läuft einen C/C++-Code mit eines Bildverarbeitungsalgorithmus, der als Ausgang die a-, b-, c-Parameter der erkannten Fahrspur. Diese werden an der dSPACE-Karte zur Weiterverarbeitung über RS232-Bus übertragt.

Ausgangslage und Konzept

In diesem Artikel wird davon ausgegangen:

  • dass das Bild bereit verarbeitet wurden und die Spurparameter versandbereit sind
  • dass ein bereits existierenden RS232-Bibliothek aus der dSPACE-Karte und auf der C/C++-Code vorhanden sind

RS232-Bus

RS232-Headerdatein

Datenübertragung

Empfang und Verarbeitung der Daten auf der dSPACE-Karte

PAP des Kameraprogramms mit KOS-Transformatin
PAP des Kameraprogramms mit KOS-Transformatin


Für den Datenempfang wurde einen Simulink-Modell erstellt. Dies liegt unter ..\Teams\Kom\dSPACE_RX_Test (Aktueller Kommunikationsansatzt). Desweiteren wurden einen ControlDesk-Umgebung für den Kommunikationsansatz erstellt und liegt unter ..\Teams\Kom\dSPACE_RX_Test (Aktueller Kommunikationsansatzt)\ControlDesk_Experiment\Rx_Tester.

Konzeptvorstellung

Datenempfang

Für den Empfang der Daten auf der dSPACE-Seite wird ein Simulink-Modell erstellt. Diese hat den Zweck die Daten zu empfangen und zu interpretieren. Für den Empfang wird die DS1104SER_RX Block der RTI-Bibliothek verwendet. Dieser liefert drei Ausgänge:

  • Data
  • Status
  • NumRx

Der Status geht auf kurz auf Low-Pegel, wenn Daten empfangen werden soll. Damit Daten nicht verloren geht wird dieser Ausgang mit einem Flankendetektor verbunden. Um die Flanken abzufangen wird das Signal parallele mit einer diskretisierten Verzögerung geschaltet. Diese wird mittels einer Unit Delay von Simulink realisiert. Da die Pegeländerung zu schnell ist, wird des weiteren eine Zustandsmaschine bzw. Stateflow-Machine aufgebaut. Dieser hat zum Zweck der Low-Pegel 10 ms lang zu halten für die Weiterverarbeitung.

Datenverarbeitung

Für die Datenverarbeitung wird einen S-Function in Simulink erstellt. Die Funktion hat den Zweck die Daten zu interpretieren und die Spurparameter zu rekonstruieren. Hierfür werden zwei Eingänge benötigt:

  • Nutzdata
  • Statusbit

und der wesentliche Ausgängen sind:

  • a-Parameter
  • b-Parameter
  • c-Parameter.

Empfangt werden 8-Bit-Zeichen und diese müssen zusammengepfügt werden und einer 32-Bit-Zeichen als Ausgabeparameter zurückgeben. Hierfür werden zwei Zähler in der Funktion benötigt:

  • zaehler_param
  • zaehler_uebertragung

Der erste Zähler wird für die Zusammenfügung der Parameter benötig. Diese wird ein wert von 0 bis 3 einnehmen. Um ein 32-Bit-Zeichen wird erst 4 mal 8-Bit-Zeichen empfängt. Der zweite Zähler wird für die Übertragung von alle Spurparameter verwendet. Dieser nimmt den Wert von 1 bis 12 ein.

Als erstes werden immer die Daten als 8-Bit-Zeichen empfängt. Die Datenverarbeitung fängt, wenn der Start_Flag gesetzt ist. Dieser wird nur gesetzt wenn:

  1. der empfängte Byte der Start Byte (170) entspricht
  2. der Start_Flag und der Parameter Zähler null sind

Wenn der Flag gesetzt ist, fangen sowohl der Übertragungs- als auch der Parameterzähler hochzuzählen. Der Parameterzähler fasst immer 4-Datenbyte zusammen, dies ergibt einen Spurparameter. Der a-Parameter wird nach 4 Durchläufe komplett zusammengebaut, der b-Parameter nach 8 und der c-Parameter nach 12. Anschließend werden die alle Variablen der Funktion auf null zurückgesetzt.

Testing

Zusammenfassung und Ausblick