Kfz-Elektronik Einklemmschutz fürs Auto

Redakteur: Martina Hafner

Elektrisch betätigte Fenstersysteme in Kraftfahrzeugen unterliegen internationalen Normen wie z.B. dem MVSS118 in den USA oder der Richtlinie 74/60/EWG in Europa. Was die Beseitigung

Firmen zum Thema

( Archiv: Vogel Business Media )

Die meisten Fahrzeuge in der Mittel- und Oberklasse sind mit voll automatisierten motorbetätigten Fensterheber- und Türsystemen ausgestattet. Umfangreiche Sicherheitseinrichtungen sind vonnöten, um Personen- oder Sachschäden zu vermeiden. Dieser Beitrag befasst sich mit der Implementierung eines Einklemmschutzalgorithmus, der ursprünglich für ein motorbetätigtes Fenster entwickelt wurde. Er kann aber problemlos an andere bewegliche Teile angepasst werden.

Elektrisch betätigte Fenstersysteme in Kraftfahrzeugen unterliegen internationalen Normen wie z.B. dem MVSS118 in den USA oder der Richtlinie 74/60/EWG in Europa. Was die Beseitigung von Gefahren für Kinder betrifft, so lassen sich die Anforderungen wie folgt zusammenfassen:

Bildergalerie
  • Erkennungsbereich: 4 mm bis 200 mm
  • Maximale Klemmkraft = 100N
  • Richtungsumkehr bei Einklemmen
  • Tests mit Gegenständen mit definiertem Ablenkverhältnis: 5N/mm bis 20N/mm

Um festzustellen, ob ein Gegenstand in den kritischen Klemmbereich eintritt, sind erschiedene Erkennungsstrategien möglich:

  • Berührungslos: Das System reagiert, bevor eine Klemmkraft auf den Gegenstand einwirkt. Dies ist der optimale Schutz, da auf das Hindernis keinerlei Kraft einwirkt. Außerdem arbeitet ein solches Verfahren unabhängig von Schwingungen, aerodynamischen Schwankungen oder Verformungen. Andererseits benötigt ein solches System integrierte Sensoren (Infrarot, Ultraschall etc.) mit der zugehörigen Elektronik und Verdrahtung, was zusätzliche Kosten verursacht.
  • Mit mechanischem Kontakt: Über Druckmesswerte erkennt das System, ob ein Gegenstand eingeklemmt wird. Auch hier stehen den Konstrukteuren prinzipiell zwei Technologien zur Verfügung. Die Direktmessung erfolgt über die Integration von Kraftaufnehmern oder Kontaktgebern in die Türdichtung.

Erkennung über direkte oder indirekte Messung

Diese Lösungen sind extrem kostenaufwändig und beinhalten Einschränkungen für das Styling der Fenster oder Türen. Die indirekte Messung erfolgt durch Überwachung physikalischer Größen. Global gesehen, ist dies die kostengünstigste Lösung.

Der Einklemmschutz-Algorithmus muss zunächst die Vorschriften der entsprechenden Normen erfüllen (FMVSS118 & 74/60/EEC):

  • Erkennungsbereich 4 bis 200 mm,
  • maximal ausgeübte Kraft 100N,
  • Richtungsumkehr bei Erkennung eines eingeklemmten Objekts,
  • standardisierte Prüfung zur Validierung.

Außerdem muss er adaptiv sein, und zwar aus den folgenden Gründen:

  • Die mechanischen Bauteile des Hebersystems unterliegen im Laufe der Zeit Änderungen (Alterung, lokale Verformung, Verschleiß etc.).
  • Die elektrischen Kennwerte können sich u.U. erheblich verändern.
  • Die Reibkräfte werden durch Umgebungsfaktoren beeinflusst (Temperatur, Feuchtigkeit, Kälte, etc.).

Das System darf nicht auf Störungen reagieren und darf auch keine Fehlerkennungen von einklemmten Objekten liefern. Es muss unempfindlich gegenüber Luftreibung, Straßenschwingungen, Leistungsausfällen etc. sein.

Die auf die Scheibe einwirkende Kraft kann aus dem den Motor durchfließenden Strom extrapoliert werden. Die Position der beweglichen Elemente liefert ständig Geschwindigkeitsdaten. Diese beiden Parameter lassen sich nutzen, um Hindernisse zu erkennen und festzustellen, ob sich ein Hindernis im Erkennungsbereich befindet oder die Kraft den Grenzwert überschreitet.

Einklemmschutz-Algorithmus von Atmel

Der von Atmel entwickelte Einklemmschutz-Algorithmus arbeitet auf der Grundlage von Motorstrommessungen und mit Hilfe von Hall-Sensoren gewonnenen Geschwindigkeitsdaten. Er lässt sich mit minimalen Änderungen auch an andere Systeme wie Schiebetüren oder Schiebedächer anpassen.

Normale Einklemmerkennungsalgorithmen verwenden indirekte Messungen von Strom (Moment) und Weg (Geschwindigkeit), die aus dem Fensterhebersystem gewonnen werden. Der hier beschriebene Algorithmus verbindet zwei Techniken basierend auf:

  • Dem kalibrierten Drehmoment, das im nicht flüchtigen Speicher abgelegt ist. Vorab erfolgt ein Lernvorgang, und die Drehmomentwerte werden im Speicher abgelegt. Dieser Vorgang benötigt relativ viel Speicher und regelmäßige Kalibrierabläufe.
  • Der Berechnung der Geschwindigkeitsableitung. Dies ist ein interessantes Verfahren, das weniger Speicher, aber eine höhere Rechenleistung erfordert. Damit werden die Vorteile beider Techniken genutzt.

Der Algorithmus wurde auf einer Leiterplatte auf der Basis eines AVR ATmega88 implementiert. Die dafür verwendete Hardware zeigt Bild 2. Das System umfasst einen Standard-ATmega88 sowie eine analoge Kette zur Messung des Motorstroms. Außerdem beinhaltet das System zwei Hall-Sensoren. Die Steuerung der Motordrehrichtung erfolgt über ein zweipoliges Relais, das Ein-/ Ausschalten des Motors wird über einen MOSFET erreicht.

In-System Programming ermöglicht die Programmierung bzw. Neuprogrammierung eines AVR-Mikrocontrollers im Einsatzsystem. Mit Hilfe einer einfachen dreidrähtigen SPI-Schnittstelle kommuniziert das In-System-Programmiergerät seriell mit dem AVR-Mikrocontroller. Damit können alle nicht flüchtigen Speicher auf dem Chip neu programmiert werden. Dank dieser Methode müssen die Chips nicht mehr aus dem System ausgebaut werden. Dies spart Zeit und Kosten, sowohl bei der Entwicklung als auch bei der Aktualisierung der Software oder Parameter im Einsatz. Auch die Bestandsführung vereinfacht sich durch den Einsatz eines Standard-AVR-Flash-Mikrocontrollers für mehrere Anwendungen oder bei Verwendung kundenspezifischer Versionen durch Uploaden des Codes in das Flash Memory im letzten Fertigungsschritt.

Implementierung des C-Codes

Der gesamte Code ist in der Programmiersprache C implementiert unter Einsatz von IAR EWAVR 4.1. Die Basisfunktionen (Positionsmanagement, Initialisierungen, Strommessungen, Fensterbedienvorgänge und Einklemmüberwachung) benötigen 2KByte Flash-Speicher. Erweiterte Funktionen wie Kalibrierung, Blockierstellenerkennung und -speicherung vergrößern den Code bis zu 4KByte.

Der im Zusammenhang mit einer Anwendungsbeschreibung auf der Atmel-Website zu Verfügung stehende Softwarecode hat die folgende Struktur:

  • void init_window_peripherals (void) Initialisieren des Pin Change Interrupt in Zusammenhang mit einem Hall-Wegaufnehmer (reagiert auf steigende und fallende Flanken). Die Funktion initialisiert außerdem Zeitglieder und den A/D-Wandler, der für die Messung von Geschwindigkeit und Motorstrom verwendet wird.
  • void init_window_parameters (signed char *go_down)Diese Funktion lädt die Fensterheberparameter aus dem EEPROM bzw. Default-Werte zur Initialisierung des Fensterhebevorgangs. Es handelt sich bei diesen Werten um Fensterabmessungen, Sensorwerte, Einklemmschwelle, Einklemmbereich, letzte bekannte Position, etc. Wenn ein Positionsfehler festgestellt wird, kann ein Befehl Absenken angefordert werden, um den Fensterhebevorgang in der unteren Endstellung zu initialisieren.
  • void save_window_parameters(void)Diese Funktion speichert die Fensterhebeparameter im EEPROM.
  • U8 window_ctrl (signed char *up_cmde, signed char *down_cmde ,U8 no_anti_pinch)Enthält die Zustandsmaschine für den Fensterhebevorgang. Überwacht Position, obere und untere Endstellung und Einklemmschutzbedingung. Gibt den Zustand des Fensterhebevorgangs zurück (der gleiche Wert wie die Funktion get_window_state).
  • __interrupt void hall_sensor_ISR (void)Diese Interrupt -Subroutine wird an den Flanken des Hallsensors ausgeführt. Sie berechnet Drehrichtung, Position, Geschwindigkeitsableitung und Motorstrom-Referenz. Außerdem kann die Funktion durch Zählen der aufeinanderfolgenden Richtungswechsel einen Fehler am Hall-Sensor erkennen (der nicht an einen Interrupt-Pin angeschlossen ist). Sie wird verwendet, um das Fenster nach einem definierten Schritt zwangsweise anzuhalten.
  • signed char get_window_state (void)Gibt den Zustand der Fensterhebemaschine zurück (den Wert, der in der Funktion window_ctrl verwendet wird).
  • signed char force_window_state (signed char temp)Einrichten des Zustands des Fensterhebevorgangs: Nützlich, um bestimmte Vorgänge zwangsweise durchzuführen (Stopp-Anforderung, etc.)
  • unsigned char mean (unsigned char)Berechnet einen Mittelwert über die letzten 8 Abtastwerte. Wird zur Filterung des Motorstroms verwendet.
  • void push_button (signed char *push)Diese Funktion überwacht einen Taster und erzeugt Bedienbefehl-Ereignisse, die an die Funktion window_ctrl übermittelt werden.

Mit diesem Beitrag wurden die grundlegenden Funktionsprinzipien des Einklemmschutzes erklärt. Eine vollständige Beschreibung der Implementierung steht in Form einer Anwendungsbeschreibung bei Atmel im Internet zur Verfügung.

Atmel, Tel. +49(0)7131 670

*Thierry Corbière ist Technischer Marketingmanager für MCUs für die Automobiltechnik, Atmel

(ID:182706)