Perfektes Timing

Anwendungsbeispiele für die eTPU

Anhand einiger typischer Anwendungen lässt sich die Funktionsweise des eTPU-Moduls zeigen.

Ein ColdFire-Prozessor MCF5235 steuert das Kommunikations-Gateway, das Daten zwischen Computern in einem TCP/IP-Netzwerk und einer Reihe von Sensoren überträgt, die an das Gate über serielle Schnittstellen angeschlossen sind. Der MCF5235 verfügt über drei UART-Module für die serielle Kommunikation. Es ist möglich, weitere acht Sensoren anzuschließen, indem 16 eTPU-Kanäle für acht eTPU-UART-Funktionen reserviert werden. Bei einer Übertragungsrate von beispielsweise 8 x57,6 kbit/s liegt die Auslastung des eTPU-Moduls bei 56 %.

Dieses Projekt basiert ebenfalls auf einem ColdFire-Prozessor MCF5235, der auf einem Evaluationsboard in Scheckkartengröße Platz findet. Es stellt ein gutes Beispiel dar für die Trennung zeitkritischer Aufgaben und komplexer Steuervorgänge zwischen eTPU und CPU. Das eTPU-Modul kümmert sich um die Abtastung der Logiksignale an den Eingängen. Es tastet das Eingangssignal nicht wie normale Logikanalysatoren periodisch ab – nur dann, wenn sich der Zustand eines Eingangs ändert (steigende oder fallende Flanke), wird die Zeit des Übergangs erfasst. Dies geschieht in der eTPU. Die CPU übernimmt die Datenblöcke und verarbeitet sie. Auf dem Prozessorkern läuft ein „uClinux“-Betriebssystem, das unter anderem auch die TCP/IP-Unterstützung und einen Webserver bereitstellt. Der Logikanalysator wird ans LAN angeschlossen, jeder PC im Netzwerk kann ihn steuern und erfasste Signale anzeigen. Man muss lediglich die Adresse des Webservers, der auf dem Logikanalysator läuft, in den Internet-Browser eintippen. Man kann Messparameter verändern, den Triggerpunkt setzen, das gemessene Signal anzeigen und die Dokumentation auf den Webseiten des Logikanalysators lesen.

  • Vektorsteuerung von zwei PMSM-Motoren

Der Power-Architecture-Prozessor MPC5554 umfasst ein eTPU-Modul mit 64 Kanälen, zwei Micro-Engines und einen gemeinsamen Daten- und Programmspeicher. Die eTPU wird genutzt, um eine Vektorsteuerung für zwei getrennt voneinander laufende Permanentmagnet-Synchron-Motoren (PMSM) zu realisieren. Über ein CPU-Programm wird lediglich das benötigte Drehmoment für jeden Motor eingestellt.

Für das Timing scheint folgende Konfiguration optimal: Eine eTPU-Engine verarbeitet nur Signale von den Lagesensoren (Quadratur-Encodern) beider Motoren. Es ist dabei möglich, 500 000 Impulse pro Sekunde zu verarbeiten. Beide Motoren – jeweils ausgestattet mit Encodern, die 1024 Impulse pro Umdrehung ausgeben – laufen gleichzeitig bis zu einer theoretischen Geschwindigkeit von 15 000 U/min. Die zweite Engine übernimmt die Erzeugung der PWM-Signale und steuert beide Motoren. Die Auslastung ist unabhängig von der Motordrehzahl konstant und beträgt bei einer PWM-Frequenz von 20 kHz und einer Aktualisierung der Regelschleife mit ebenfalls 20 kHz 78 %.

eTPU erfreut sich zunehmender Beliebtheit

In Embedded-Systemen für die Automobiltechnik nimmt die eTPU eine starke Position ein. Doch sie kann auch auf anderen Gebieten eingesetzt werden. Die eTPU ist ein programmierbares Peripheriemodul – in der Grauzone zwischen Embedded-Software und einem Hardwaremodul. Software-Ingenieure sehen sich bei der Programmierung mit Problemen konfrontiert, weil sie sich nach der eTPU-Hardware richten müssen. Hardware-Ingenieure sind oft der Meinung, dass nur Hardware zuverlässig ist und alles Probleme verursacht, was mit Software verbunden ist.

Mit der Bibliothek einsatzbereiter eTPU-Funktionen versucht Freescale, den goldenen Mittelweg zu bieten. Die Bibliothek kann Software-Entwicklern helfen, Fehler zu vermeiden. Basierend auf einer Auswertung der Zugriffe auf das Webtool für die eTPU ist festzustellen, dass die eTPU immer häufiger eingesetzt wird. Ein ähnlicher Trend zeigt sich bei der Auswertung der Anzahl übers Internet abgerufener eTPU-Bibliotheken, Source-Module, Dokumentation und Konfigurations-tools. Man darf daher davon ausgehen, dass Entwickler dieses Gebiet aufmerksam beobachten und dass sie mit den kostenlosen Tools und Bibliotheken ihre Optionen ausloten.

Literatur:

[1] „eTPU“-Homepage von Freescale: www.freescale.com/etpu
[2] Tool-Anbieter für die eTPU von Freescale: Bytecraft Ltd., Waterloo/Ontario/Kanada: www.bytecraft.com;
Ashware Inc., Beaverton/Oregon: www.ashware.com

Dr. Milan Brejl
studierte an der Technischen Universität Brno, wo er 1997 abschloss. Anschließend promovierte er auf dem Gebiet der Digitalen Signalwiederherstellung und erwarb 2001 den Grad des Ph. D. Seit 2000 arbeitet er als System Application Engineer bei Freescale Semiconductor. Er beschäftigt sich hauptsächlich mit Motorsteuerungen, in letzter Zeit intensiv mit der Programmierung der „enhanced Time Processor Unit“ (eTPU).
milan.brejl@freescale.com