Anbieter zum Thema
Schaltungsaufbau rund um den Controller
Für die Erzeugung des SCI-Taktes (Serial Communication Interface) wird das PLL-Modul mit dem Takt des internen Oszillators beaufschlagt. Die Ausgangsfrequenz beträgt 192 MHz. Diese wird dann durch zwei geteilt, um den Peripherietakt von 96 MHz zu gewinnen. Der Baudratengenerator des SCI nutzt diesen 96-MHz-Takt für eine Kommunikation mit bis zu 6 MBit/s.
Die Schaltung rund um den Controller besteht aus folgenden Komponenten:
- JTAG-Schnittstelle zum Programmieren des im Controller integrierten Flashspeichers und zum Debuggen von Softwareanwendungen. Für die JTAG-Schnittstelle sind vier Pins am Controller vorgesehen: TDI, TDO, TMS und TCK
- Drei PWM-Kanäle übernehmen über Feldeffekttransistoren die Ansteuerung des Schaltwandlers für die Stromversorgung der LEDs
- Acht I/Os werden für die Adressierung und die Konfiguration des Systems genutzt
- Drei Eingänge des A/D-Wandlers werten den Stromfluss durch die LEDs aus
- Die Verbindung der seriellen Kommunikationsschnittstelle mit einem RS-485-Transceiver wird über drei Anschlüsse hergestellt: Tx, Rx sowie einen Universal-I/O für Data Enable
Wie die LED angesteuert wird

Die LEDs werden über einen DC-DC-Schaltwandler versorgt, der in Step-Down-Konfiguration arbeitet. Mithilfe dieser Schaltung kann die Eingangsspannung von 5 Volt auf einen geringeren Wert reduziert werden, mit dem dann über die PWM_Module des Controllers die entsprechende LED-Vorwärtsspannung eingestellt wird.
Um die Leuchtfarbe der LED zu kontrollieren, wird der Eingang des A/D-Wandler-Moduls mit Sensorwiderständen verbunden, die mit der LED in Reihe geschaltet sind. Der Controller tastet die Werte des A/D-Wandlers ab und berechnet den durch die LED fließenden Strom. Daraus bestimmt er dann, ob das Tastverhältnis des PWM nachgeregelt werden muss.
Die Adressierung der Pixel
Auf jede Pixelplatine kann unabhängig von den anderen zugegriffen werden. Es gibt verschiedene Alternativen für die Realisierung des Adressschemas für die Pixelplatine, und jeder haften ihre eigenen Vor- und Nachteile an. Am einfachsten lässt sich das Problem über einen an die Controller-I/Os angeschlossenen Hardware-DIP-Schalter lösen.
Der Controller liest den Zustand dieser Pins und bestimmt daraus beim Softwarestart seine Adresse in der Pixelmatrix. Eine Alternative wäre, fest codierte Adressen auf dem internen Flashspeicher des DSC oder einen Algorithmus auf dem Network-Master zu verwenden, über den jeder Platine ihre Adresse dynamisch zugewiesen wird.
Dabei sollte sichergestellt sein, dass das gewählte Adressierungsverfahren die Anforderungen der Applikation erfüllt, also beispielsweise eine ausreichende Zahl von Pixelplatinen für die Matrix unterstützt.
Netzwerkschnittstelle: Kommunikation der Pixelplatinen
Bei der Realisierung des Protokolls für die Kommunikation zwischen den Pixelplatinen müssen unterschiedliche Applikationsanforderungen berücksichtigt werden: Beispielsweise der Abstand der Platinen zueinander und die über den Kommunikationskanal abzuwickelnde Datenrate.
Für diese Aufgabe kommen spezielle Lichttechnikprotokolle wie auch eigene Lösungen in Frage. In unserem Beispiel setzen wir für die physikalische Verbindung den RS-485-Standard ein. Darauf setzt dann ein proprietäres Messageprotokoll auf. RS-485 ist ein Industrieprotokoll für Simplex- und Halbduplex-Betrieb. Das Signal wird über eine zweiadrige Leitung mit den Adern A und B übertragen.
Mit einigen RS-485 Transceivern lassen sich bis zu 20 MHz bewältigen. Der von RS-485 angebotene differenzielle Betrieb, durch den Störungen minimiert werden können, erweist sich als weiterer Pluspunkt.
Hardwareunabhängig durch Softwareblöcke

Die Software wurde in einfache Module unterteilt, die jeweils über eine bestimmte Funktionalität oder Funktion verfügen. Durch diesen modularen Ansatz in verschiedene Softwareblöcke kann hardwareunabhängig konzipiert werden. So kann der Softwarecode einfach auf andere Controller portiert werden.

Für einen Hersteller von Lichttechnikprodukten kann es sich als vorteilhaft erweisen, für mehrere Hardwareplattformen auf die gleiche Software zurückgreifen.
Die modulare Struktur sorgt darüber hinaus für ein einfacheres Testen in der ersten Entwicklungsphase, da die Softwaremodule unabhängig von einander getestet werden können.

Insgesamt wurde die Applikationssoftware in sechs verschiedene Module aufgegliedert. Jedes einzelne Modul wird durch eine C-Sourcedatei und eine entsprechende Headerdatei beschrieben.
Die hardwareabhängigen Low-Level-Routinen, die auf die Peripheriemodule des Digitalen Signal Controllers wie SCI, A/D-Konverter und Pulsbreitenmodulation zugreifen, werden in unten stehendem Diagramm durch die Blöcke RS-485, ADC und PWM repräsentiert.
Die Steuerungsfunktionen werden in den Protocol-Manager- und Color-Manager-Dateien realisiert. Der Application-Manager schließlich ruft diese einzelnen Steuerungsfunktionen auf.
- Application Manager: Seine Hauptaufgabe besteht darin, Initialisierungsfunktionen und einzelnen Tasks der Applikation aufzurufen.
- Protocol Manager: Er liest die über die serielle Kommunikation ankommenden Daten und übernimmt deren Auswertung. Außerdem dekodiert er die empfangenen Messages und speichert nach einer Gültigkeitsprüfung Parameter im Speicher ab oder leitet Befehle an den Color Manager weiter.
- Color Manager: Er wertet die Eingänge des A/D-Wandlers kontinuierlich aus und berechnet, ob Änderungen am Tastverhältnis des PWM erforderlich werden, um den gewünschten Farbton einzustellen. Daneben empfängt er Messages vom Protocol Manager, die eine Änderung der gewünschten Farbe vorgeben. Der Algorithmus für die Farbtonerkennung ist aus unserer Sicht das wichtigste Knowhow, auf das sich der Lichttechnikhersteller konzentrieren sollte. Bewegungs- und Effektroutinen könnten auf dieser Ebene eingefügt werden.
Drei wesentliche Low-Level-Funktionen
Wir müssen drei Low-Level-Funktionen realisieren: RS-485, PWM und A/D. Dafür lassen sich die I/O-Pins bzw. Peripheriemodule des DSC nutzen. Die Funktionen kommunizieren mit den Steuerungsalgorithmen über gemeinsame Variablen, die mithilfe von Interrupt-Serviceroutinen aktualisiert werden.
Die RS485-Funktion hängt am SCI-Modul und generiert jedes Mal einen Interrupt, wenn ein Byte empfangen wird. Die Daten werden dann in einem Puffer zwischengespeichert, und wenn der Protocol Manager ausgeführt wird, prüft dieser den Status dieses Puffers und gibt die Daten aus.
Ist eine Analog-Digital-Wandlung abgeschlossen, generiert der ADC einen Interrupt. Anschließend speichert dieser die Daten in einem Puffer zwischen und fordert einen neuen Abtastwert für einen anderen Kanal an: Rot, Grün oder Blau.
Durch eine ständige Umschaltung seiner Kanäle füllt der ADC die Puffer für die drei Farben mit A/D-Abtastwerten, die dann gefiltert und vom Color Manager weiterverarbeitet werden. Und schließlich stellt die PWM-Funktion den entsprechenden PWM-Kanal des DSC auf das vom Color Manager berechnete Tastverhältnis ein.
Der Test des Systems

Wir haben vier Prototypen der Pixelplatine gebaut, um das in diesem Artikel beschriebene Konzept zu testen und zu validieren, und diese zu einer kleinen, jederzeit erweiterbaren Matrix zusammengefügt. Diese haben wir schließlich über eine zwischengeschaltete Gatewayplatine per USB-Kabel an einen PC angeschlossen. Die auf dem PC laufende Software greift über den USB-Port auf das System zu und sendet die benötigten Daten zur Steuerung der Matrix-LEDs.
Gerade bei Lichttechnikanwendungen dieser Klasse ist es wichtig, Kosten und Funktionalität in die richtige Relation zueinander zu setzen. Hard- und Software müssen von Anfang an gründlich geplant und strukturiert werden, um Freiräume ebenso wie eine flexible Abstimmung auf die jeweiligen Bedürfnisse der Applikation zu gewährleisten und um das Design beispielsweise in unterschiedlichen Plattformen wieder verwenden zu können.
Die gewählten Protokolle und Algorithmen stellen quasi das Herz der Applikation dar und ermöglichen eine zusätzliche Differenzierung, selbst wenn Projekte in der Lichttechnik keine besonderen Anforderungen voraussetzen; wollen wir aber komplexere Aufgaben lösen, so sollten wir entsprechende Leistungsreserven in der Hinterhand haben.
Die Wahl des richtigen Controllers für die Applikation spielt eine wichtige Rolle für die Zukunftsfähigkeit des Designs. Der hier eingesetzte Digitale Signal Controller MC56F8006 von Freescale wird mit seinen Peripheriefunktionen und den verfügbaren Toolsets allen Bedürfnissen gerecht.
*Renato Frias ist Applikationsingenieur bei Freescale Semiconductor in München.
(ID:321658)