embedded power for your project embedded power for your project

| Home | Software | Services | Product Manager | Contact |

 Embedded Prozessor
   8-Bit Prozessoren
   16-Bit Prozessoren
   32-Bit Prozessoren
   64-Bit Prozessoren
   ARM
   DSPs
   FPGA
   Intel
   MIPS
   PowerPC
 Tool Information
   BDM/JTAG tool
   Hardware design
   Logikanalysator
   Eval Boards
   Simulator
   Compiler
   Real Time OS
   Software Tools
   Debugger
 Services
   Consulting
   SystemDesign
   Productmanager
   Links
   Literatur

 embedded 16-bit Mikrokontroller

16-bit Prozessoren für coole Anwendungen

Nicht Fisch nicht Fleisch, zwängen sich 16-bit Prozessoren in die Lücke zwischen den 8-bit Arbeitstieren und den 32-bit Rennern.

16-Bit Prozessoren: Die Guten, die Schlechten und unsere Optionen

übersetzt von Bernhard Kockoth

Heutzutage bekommen 16-bit Prozessoren Druck von allen Seiten. Anfang der 80er Jahre hatten 16-bit Prozessoren klare Leistungs- und Speichervorteile gegenüber 8-bit CPUs. So konnte der 16-bit Prozessor im Vergleich zur 8-bit Maschine in einem Arbeitsgang die doppelte Datenmenge, oder komplexere Befehle verarbeiten. Aber mit 8-bit Prozessoren wie der 100 MHz CPU von Scenix, besteht dieser Geschwindigkeitsvorteil nicht mehr.

Dann gab es den großen Addressbereich, viele 16-bit Systeme boten Addressierung weit jenseits der 64k Beschränkung der 8-bit Welt. Nun - nicht mehr. Viele Prozessoren der 8051 Familie bieten bank-switching für Megabytes externen Speichers. Compiler von Firmen wie Keil übernehmen die Auswahl der Speicherbereiche automatisch, so daß sich der Programmierer nicht mehr um diese low-level Details zu kümmern braucht.

Von oben drängen die 32-bit Embedded Prozessoren, und da hat es seit Mitte der 90er Jahre eine wahre Explosion gegeben, mit MIPS, PowerPC, 68K, ARM, Pentium, M-Core, und so weiter . Neue Varianten von 32-bit Prozessoren erscheinen fast täglich, und sie haben sich Plätze in Embedded Systemen vom Spielautomaten bis zur Industriellen Steuerung erobert. 32-bit hat Adressraum, Geschwindigkeit, und, am wichtigsten, eine gesunde Infrastruktur mit Entwicklungstools für Soft- und Hardware. Sogar der Preis von einigen 32-bit Derivaten bewegt sich in Richtung 16-bit.

Dabei ist der 16-bit Markt lebendig und wachsend. Und wenn wir die Definition eines 16-bit Prozessors etwas weiter ziehen, kommen neue Alternativen in Betracht, auf einem Markt, der sonst kaum neue Architekturen bieten kann.

Was ist 16-bit?

Jeder, der einen Artikel über Prozessoren schreibt, wird nicht um die Definitionsfrage herum kommen. Was exakt ist nun ein 16-bit Mikroprozessor?

Nur eine Antwort würde nicht genügen, schon die Hersteller von Mikroprozessoren lassen das nicht zu. Viele 8-bit Prozessoren erlauben die Zusammenschaltung von zwei acht-bit Registern zu einem 16-bit Register, und das seit den Tagen des 8080. Also sind es auch 16-bit Systeme. Auf der anderen Seite binden sich einige 32-bit Prozessoren über einen 16-bit Datenpfad an Speicher an (M-Core); so handelt es sich auch hier um eine Art 16-bit Lösung.

Um auf die ursprüngliche Frage zurückzukommen, es gibt zwei Trends, die unsere Aufmerksamkeit erwecken: Der erste existiert seit 1997, zumindest auf dem Papier, und besteht aus einem reduzierten Befehlssatz. Zwei konkrete Beispiele sind die MIPS16 Architecture (TinyRISC by LSI) und ARM Thumb.

RISC Instruktionen haben typischerweise eine fixe Bit-Breite (32 bits für ARM und MIPS). Die Befehlssätze MIPS16 und Thumb sind, präziser, 16-bit Untermengen. Die MIPS16 und Thumb 16-bit Instruktionen entsprechen vollwertigen Untermengen des gesamten 32-bit-weiten Befehlssatz beider Prozessoren. Innerhalb jedes Prozessors (Thumb ist ein Core) gibt es eine 32-bit RISC engine. Jeder 16-bit Befehl wird zu einer 32-bit Instruktion expandiert.

Verständlicherweise benötigt dieses Verfahren intelligente Einschränkungen. Zum Beispiel hat Standard MIPS Architektur 32 General Purpose Register; MIPS16 kann davon nur acht adressieren. Und der MIPS16 Befehlssatz beinhaltet keine Möglichkeit, den Floating-Point Coprozessor anzusprechen. Sowohl Thumb als auch MIPS16 können zwischen 16-bit und 32-bit Mode umschalten, so daß rechenintensive Routinen in Echtzeit abgearbeitet werden.

So bieten ‘reduced RISC’ Prozessoren eine Alternative für Entwickler von Embedded-Lösungen. Wenn die Rechenleistung eines 32-bit Prozessors gebraucht wird, aber die Speichergröße eher zu einer 16-bit Maschine tendiert, wird es vielleicht einen MIPS16 oder Thumb in Zukunft geben? (Und wie schon erwähnt, M-Core sollte hier auch in Betracht kommen).

Der zweite Trend ist analog zu einem Spiegel. So wie viele MCU Mikrokontroller mehr und mehr DSP Eigenschaften wie Befehle zur Signalverarbeitung (MAC Befehl, z.B. bei Hitachi H8 und Motorola HC16) bekommen haben, werden DSPs mehr wie Mikrokontroller. Sechzehn-bit DSPs wie Motorola’s DSP 568xx Familie werden wie Mikrokontroller beworben. Und die 568xx Dokumentation läßt keinen Zweifel, daß diese Architektur sich besonders effizient für C-Compiler erweist. Wir schauen hier später noch einmal.

Warum 16-Bit?

Bei so vielen 16-bit Prozessoren, wie soll ein Projekt eine 16-bit MCU auswählen? Meine Fragen helfen hier schnell weiter:

1. Bedienung durch Menschen oder 2. Maschine-Maschine?

1.0 Eingabe über Tastatur ist kein Auswahlkriterium, selbst einfach gestrickte 8-bit Kontroller kommen mit unseren langsamen Fingerbewegungen klar. Einzige Ausnahme: Touch-Tastatur auf TFT Flachdisplay, siehe 1.2: 1.1 Anzeige über Dot-Matrix LCD, zum Beispiel 2 Zeilen a 40 Zeichen - Dies ist die Domäne der 8- und 16-bit Controller, oft per Ansteuerung über I2C Bus Interface.
1.2 Anzeige über LCD TFT "Flachdisplay" - Hier wird oft mehr oder weniger komplexe Grafik verlangt, so daß 32-bit Kontroller mehr Möglichkeiten bieten.
1.3 Ausgabe über Audio - Dies kann durchaus von 8-bit Kontrollern gewährleistet werden doch sind 16-bit Mikros oft die leistungsfähigere Variante mit oft schon vorkonfigurierter Audio-Peripherie
2.1 Verbindung über serielle / USB 2 / Lin / CAN / I2C oder ähnliche low-speed Verbindung bis ca. 2 MBits Übertragungskapazität - 8-bit und 16-bit ist hier die ideale Lösung, die meisten 8-bit Mikros kommen mit diesen Datenmengen gut zurecht.
2.2 Verbindung über Ethernet / LVDS / USB 3 oder ähnliche high-speed Verbindung ab ca. 5 MBits Übertragungskapazität - 32-bit ist hier die ideale Lösung.

3. Zusatzfrage Low Power Betrieb

Diese Frage kann nicht einfach beantwortet werden, bis in die 90er Jahre war die Entscheidung meist zugunsten wenig leistungshungriger Controller beantwortet worden, aber heutzutage bieten selbst 32-bit Controller Betriebsmodi in denen Ambient Energy Harvesting interessant wird, sprich die Elektronik und der Mikrokontroller werden aus umgewandelter Vibration, Hitze, oder durch über Antennen aufgenommene elektromagnetische Strahlung mit Energie versorgt.

Der DSP Effekt

Es gab den Trend in der Mikrokontroller-Industrie zu mehr DSP-ähnlichen Features. Der Trend ist weiterhin da. Wohl jeder bessere 16-bit Prozessor der letzten 5 Jahre konnte zumindest single-cycle multiply-and-accumulate (MAC) Befehle vorweisen. Eine kleine Suche auf dem Internet findet Application Notes über Filter Algorithmen für populäre Mikrokontroller. Selbst 8-bit Prozessoren kommen ins Bild. Die Scenix Webseite beschreibt Signalverarbeitungsalgorithmen für den SC18/28AC100 Prozessor. Selbst die krummen 14-bit Prozessoren von Microchip werden signalverarbeitungsfähig, siehe Application Note AN616: Digital Signal Processing with the PIC16C74.

Seit dem Ende der 90er Jahre gibt es auch einen Gegentrend: DSPs bekommen mehr MCU-Features. Ein gutes Beispiel wäre der C compiler-freundliche Befehlssatz des Motorola DSP568xx Digitalen Signal Prozessors. Und natürlich möchte Texas Instruments nicht nachstehen und kündigte im Frühling ’98 vollmundig die TMS320C27x DSP Familie an, eine ‘Architektur, die Mikrokontroller überflüssig macht.’

Obwohl Mikrokontroller noch nicht überflüssig sein mögen, auf der Suche nach einem 16-bit Prozessor für ihre nächste Anwendung bringt das Erscheinen von DSPs im Kontroller-Territorium neue Lösungswege für embedded Systeme (der TMS320C27x ist ein 16-bit Prozessor). Vielleicht sollten sie einen DSP, anstelle eines ‘konventionellen Mikrokontrollers’ als den Prozessor in der nächsten Anwendung vorsehen? Wenden sie sich nicht ab, während meiner 10 Jahre DSP Erfahrung haben diese Bausteine eine weite Wandlung vollzogen.

Viele Ingenieure sehen DSPs als esoterische Prozessoren mit beschränktem Einsatzgebiet und denken, daß die Programmierung ausgefuchste Assembler-Magie verlangt, die besser den Spezialisten überlassen wird. Nun entfalten sich spezielle Signalverarbeitungs-Funktionen besser in Assembler (so daß der Programmierer die Vorteile der DSP Architektur voll ausnützen kann), aber ein Großteil des Anwender-Interfaces und auch der sogenannte ‘glue code’, das Gerüst einer Anwendung, kann ohne Weiteres in C geschrieben werden.

Zugegeben haben DSPs eine Prozessor- und Speicherarchitektur, die auf die Digitale Signalverarbeitung zugeschnitten ist, und wirkt etwas ungewohnt für jemanden ,der mit herkömmlichen CPU Architekturen vertraut ist, vor allem Ingenieure aus der Intel x86 Welt tun sich schwer. Mit den Jahren sind die C Entwicklungspakete für DSPs sehr viel leistungsfähiger und komfortabler geworden und werden erfolgreich für 16-bit DSPs angeboten. Mit einem guten Entwicklungstool fällt die Handhabe der unvertrauten DSP Aspekte leichter.

Von der Hardware gesehen besteht eine reiche Auswahl an 16-bit DSP Prozessoren, und das nicht erst seit gestern, so existieren vielfältigste Library- und Programmier-Pakete zum schnellen Start. Diese Faktoren zeichnen die 16-bit DSPs als ideal für den Einsatz in Embedded Systems aus.

Darüberhinaus sind nicht alle DSPs nur für Signalverarbeitungsanwendungen entwickelt worden. TI’s TMS320C/ F24X (ein Mitglied der ehrwürdigen 320 Familie) und Motorola’s DSP568xx, zum Beispiel, wurden speziell für Steuerungen elektrischer Motoren entwickelt, wie auch Analog Device’s ADMC331 16-bit DSP. Die meisten dieser DSPs haben umfangreiche On-Chip Peripherie, wie Timer, ADCs, parallele und serielle I/O und bieten sich für allgemeine Anwendungen in der Meß- und Regeltechnik an.

Letztendlich gibt es keinen Grund, die 16-bit DSPs nicht in die engere Wahl zu ziehen, nur weil niemand bei ihnen über DSP-Erfahrung verfügt. Es sind schnelle effiziente Prozessoren, die Unterstützung durch Entwicklungstools hat das Niveau von konventionellen Mikrokontroller-Entwicklungsumgebungen erreicht.

Die Zeit steht nicht still

Unabhängig der Verlockungen von Seiten der 8- und 32-bit Prozessoren, wird ihr embedded Werkzeugkasten auch in Zukunft voller 16-Bitter sein. Es gibt 8-bit Prozessor Familien, die in 16-bit Anwendungen wachsen und die Ingenieuren weiche Aufstiegsmöglichkeiten bieten, auch wenn sie sich zunächst für die kleinen 8-bit Brüder entscheiden. Eine Tour auf dem Internet zeigt genügend 16-bit 80x86-basierte Single Board Computer, ein Beweis, daß die Welt noch immer voller MS-DOS-Entwickler ist.

Ich habe auch die Möglichkeiten mit 16-bit DSPs aufgezeigt. Dort gibt es eine reichhaltige Auswahl; die MCU-ähnlichen DSPs sind ideal für embedded Anwendungen und die Entwicklungs Software Umgebung ist so gut wie für herkömmliche Prozessoren. Und umgekehrt drängt Infineon mit der XC Baureihe in die Domaine der DSP und die Unterscheidung zwischen DSP und 16-bit wird fließend.

Übersetzt und bearbeitet von Bernhard Kockoth - http://www.embeddedexpert.com/

Rick Grehan war senior editor bei Computer Design und BYTE. Er ist der Hauptautor von Real-Time Programming: A Guide To 32-bit Embedded Development, Addison-Wesley.

Neue Horizonte - von 16 auf 32-bit in 7 Wochen?!

Sie stellen ein Produkt her, in dem seit vielen Jahren ein Microcontroller, Microprozessor, DSP eingebaut ist? Die internationale Wettbewerbssituation verlangt von Ihrem Produkt zum einen ständige Innovation und steigenden Mehrwert für den Endnutzer, auf der anderen Seite ständig fallende Preise. Mit den bekannten Mitteln, 8- und 16-bit Prozessoren, einen Ausweg aus der Sackgasse zu finden, ist selten einfach. Einige Hersteller von Microcontrollern bieten klare Upgrade-Lösungen für eine reibungslose Migration zu effizienten 32-bit Lösungen, zumindest in Hochglanzbroschüren und PowerPoint-Präsentationen.

Im 21sten Jahrhundert allerdings ist die Hardware - der Prozessor oder Controller - in vielen System nicht mal mehr die halbe Miete, denn immer mehr Entwicklungsaufwand und muss in die Software gesteckt werden. Denn bei immer gleicher werdender Hardware - es gibt meist eine Handvoll Anbieter, die in die engere Wahl bei der Auswahl kommen - ist es die Software, die Ihr Produkt von denen der Mitbewerber unterscheidet.

Während bei Mechanik und Elektronik die qualitätsfördernden Prozesse schon seit Jahren gut eingeführt sind, und messbare Verbesserungen erzielt werden, ist dies bei der Software in auch großen Firmen oft noch ein Problemfeld.

Zwar ist die wilde Assembler-Programmierung selbst bei einfachen 16-bit Prozessoren auf dem Rückzug, aber auch standard ANSI-C wird vielen Ansprüchen nicht mehr gerecht. Effiziente Softwarearchitektur, mit Blick auf Skalierbarkeit und Sicherheit, verlangt oft nach C++, Java, und anderen mächtigen Sprachen, um Ihre Anwendung zukunftssicher zu implementieren. Diese mächtigen Sprachen oder allein die Komplexität der Endanwendung verlangen nach 32-Prozessoren, bei denen sich heutzutage das Optimum der Leistungsfähigkeit bei zunehmend geringerem Preis findet.

Wie nun zu neuen Ufern streben? Die schnelle Integration von Ihrer anwendungsbezogenen Software für Ihr Produkt auf eine neue Hardware wird mehr und mehr zum Flaschenhals, je öfter diese Hardware gewechselt wird, oder je unflexibler Ihr Software-System aufgebaut ist. Auf einen speziellen 8- oder 16-bit Controller von-Hand-optimierte Software auf den nächsten Level zu hieven, ist keine einfache Aufgabe, bei der auch die vollmundigen Migrationsversprechungen der Halbleiterhersteller wenig helfen. Sei der alte Code nun in Assembler oder C geschrieben, meist gibt es auf dem neuen Zielsystem ein Betriebssystem mit Fähigkeiten, für die die alte Lösung wenig Verwendung hatte.

Bitte senden Sie uns Ihre Fragen zu Embedded Systemen: info@embeddedexpert.com

| Home | Services | Product Manager | Impressum |

Embedded Expert 2017 - Alle Marken, Warenzeichen und Handelsnamen sind Eigentum der jeweiligen Inhaber.

© BK media systems 2002, 2017.

All trademarks and registered names are property of their respective owners. German law requires Impressum