Erschienen in DESIGN & VERIFICATION 1+2/2001, S.60-62 (pdf-Version in toolbox unter "details")
Vorwort
Hersteller von elektronischen Produkten müssen auf Grund der starken Wettbewerbssituation flexibel auf Marktanforderungen reagieren. Voraussetzung für die erforderliche Flexibilität sind immer kürzere Produktentwicklungsphasen. Nicht weniger wichtig ist die Qualität und damit auch die Fehlerfreiheit. Eine vorausschauende Planung der eingesetzten Mikrocontroller und der Entwicklungswerkzeuge schafft hierfür die Grundlage, was am Beispiel eines Sportcomputerherstellers gezeigt wird.
Einleitung
Mikrocontroller erobern inzwischen auch den Bereich Hobbysport. So beschränken sich z.B. die Fahrradcomputer nicht mehr nur auf das Messen der Geschwindigkeit und der Kilometer, sondern lassen auch statistische Auswertungen zu. In Verbindung mit Höhenmessern und Puls- und Trainingsmetern sind durch Anschluss an einen PC komplette Trainingsprofile auswertbar. Auch für den Komfort wird immer mehr Elektronik eingesetzt, so werden die Schaltungen und Bremsen nicht mehr durch Züge sondern durch Elektronik gesteuert. Bei dem hier beschriebenen Projekt bei einem Hersteller von Sportcomputern handelt es sich um eine Neuentwicklung einer Produktreihe von Fahrradcomputern und Zubehör. Als guter Kunde von Hitex Development Tools, nahm der Hersteller zu Beginn des Projekts die Beratung von Hitex für die Auswahl der Mikrocontroller und der Entwicklungswerkzeuge in Anspruch. Während der Beratung stellte sich heraus, dass es sinnvoll ist, die Anforderungen weiter zu fassen als vom Hersteller ursprünglich geplant, um für die Zukunft auch andere Produktfelder in dieses Projekt mit einbeziehen zu können.
Hauptteil
Anforderungsprofil Die im Folgenden genannten erarbeiteten Anforderungen wurden aus Gründen der Geheimhaltung von Details verallgemeinert.
Systemanforderungen:
·Dass Produkt muss ohne Batteriewechsel mehrere Jahre betrieben werden können. ·Die CPU soll für die Folgeprodukte der nächsten Jahre genügend Performancereserven bieten ·Es müssen Anschlussmöglichkeit für LC-Displays, I/O-Ports und Kommunikationsschnittstellen vorhanden sein ·Die verwendete Single-Chip-MCU muss über integrierten FLASH- und RAM-Speicher verfügen ·Der Chip muss über eine schnelle Hardware-Multiplikationseinheit verfügen ·Für den Mikrocontroller müssen hochwertige Entwicklungswerkzeuge zur Verfügung stehen
Projektumgebung:
·Die geplante Produktpalette soll Low-cost- und High-end-Produkte umfassen ·Die Produkte sind kurzlebig und werden zwei bist drei Mal pro Jahr überarbeitet ·Die erstellte Software soll in möglichst vielen Produkten wiederverwendet werden können ·Die Einarbeitung und Übernahme von Softwaremodulen soll möglichst einfach sein, schnell gehen und keine Ursache von Softwarefehlern sein ·Es werden verschiedene Gruppen von Entwicklern auf die gleichen Programmquellen zugreifen ·Eine hohe Produktqualität ist erforderlich. Für den Qualitätsanspruch soll bereits beim Design der Grundstein gelegt und in der Testphase auch automatisiert verifiziert werden
Ergebnis der Anforderungsanalyse Die Analyse der Anforderungen führte zu folgenden Ergebnissen:
Eingesetzte Mikrocontroller Als Mikrocontroller werden Mitglieder der ‚MSP430‘-Familie eingesetzt. Diese Familie zeichnet sich durch extrem niedrigen Stromverbrauch aus. Typische Werte sind 250 µA im ‚active‘-Modus, 0,8 µA im ‚low power‘-Modus (den die CPU selbständig mit Hilfe eines internen Timers verlassen kann) und 0,1 µA im ‚off‘-Modus. Aufgrund der ‚single Chip‘-Architektur ist nur wenig zusätzliche Peripherie notwendig, was die Kosten senkt. Die ‚kleinsten‘ Mitglieder der Produktfamilie eigenen sich mit einem Stückpreis von 1 US-Dollar und des integrierten Speichers in ausreichender Größe für die ‚entry-level‘-Produkte geeignet. Die neuesten Derivate verfügen über bis zu 60k integrierten Flash-Speicher, so dass die MCU-Familie auch Komponenten für die geplanten High-end-Produkte bietet. Die 16-Bit-RISC-CPU mit orthogonalem Befehlssatz ist bis zu 8 MHz taktbar. Die CPU stellt genügend Performancereserven für ausgiebige Rechenoperationen bereit. Einigen Derivate bieten auch eine integrierte Hardware-Multiplikationseinheit. Als Entwicklungswerkzeuge stehen ein Starterkit, ein ANSI C-Compiler und In-Circuit-Emulatoren als preiswerte Grundsysteme zur Verfügung, die bei Bedarf auf High-end-Systeme erweiterbar sind. Zum Evaluierung des Microcontrollers und Durchführung erster Tests wurde ein preiswertes Starterkit (FET) von Texas Instruments ausgewählt. Es beinhaltet einen Assembler und eine eingeschränkte Version des C-Compilers von IAR. Hiermit wurde die Auswahl der Mikrocontrollerfamilie verifiziert und Leistungstests durchgeführt, die die Eignung für die geplanten Projekte bestätigten. Danach konnten die eigentlichen Entwicklungswerkzeuge bestimmt werden.
Eingesetzte Entwicklungswerkzeuge Bei der Auswahl der Werkzeuge wurde besonders auf die Einhaltung der Kundenvorgaben bezüglich Übertragungssicherheit, Wartungsfreundlichkeit und Flexibilität geachtet. Zusätzlich war zu berücksichtigen, dass die Software im Team erstellt werden sollte. Das einzusetzende Designsystems muss daher die Dokumentation und Source vereinen und an ein Versionskontrollsystem angeschlossen werden können. Die Wahl fiel in diesem Fall auf den ‚Development Assistant for C‘ von RistanCASE. Folgende Merkmale der Entwicklungsumgebung sprachen für diese Entscheidung:
·Die Darstellung des Quellcodes in Flowcharts oder Nassi-Schneidermann-Struktogrammen erhöht die Übersichtlichkeit. Ein Top-down-Design wird erleichtert und die Dokumentation ist im Quellcode enthalten und muss nicht extra gepflegt werden ·Die Call- und Type-Hirarchie-Darstellungen sorgt dafür, dass die Designidee zur Übernahme durch andere Entwickler transparent und die Einarbeitung einfacher und weniger fehleranfällig wird ·Die übersichtliche Darstellungen auf Modul-, Funktions- und Symbolebene erlaubt das Navigieren durch das komplette Projekt. Einfache Klicks oder lokale kontextsensitive Menüs führen zu Definitionen oder Referenzen im Quellcode ·Ein eingebauter Static-Code-Analyzer prüft den kompletten Code und gibt Warnungen bei unsicheren oder gewagten C-Konstrukten aus, die über die Warnungen von üblichen Compilern hinausgehen, da nicht nur ein Modul sondern das gesamte Projekt analysiert wird ·Die Qualität des Quellcodes kann mittels zu definierender Metriken überprüft werden. Diese Metriken gehen über die Qualitätsmetriken Dokumentation und Komplexität hinaus und erlauben es auch, z.B. den Status des Projekts und die Kapazitätsplanungen zu überwachen. ·Eine Anbindung an Versionskontrollsysteme und Benutzerschnittstelle von In-Circuit-Emulatoren ermöglichen das Verschmelzen der genutzten Entwicklungswerkzeuge.
Bei den relativ häufig vorkommenden Überarbeitungen und Nutzung der Module in verschiedenen Projekten, war ein Versionskontrollsystem unbedingt anzuraten. Diese Systeme bieten folgende Vorteile:
·Die Verwaltung jeglicher Veränderungen in Quelldateien und unterstützenden Dokumenten mit der Erzwingen von Änderungskommentaren ·Das Blockieren von bearbeiteten Dateien, die Überarbeitet werden, damit nicht gleichzeitige Änderungen von verschiedenen Entwicklern durchgeführt werden ·Die Überwachung und Freigabemöglichkeit von Änderungen durch automatisierte Meldungen an Gruppenleiter ·Die Verwaltung aller erzeugten Versionen mit der Möglichkeit, jederzeit Korrekturen in älteren Versionen durchzuführen und diese in spätere Entwicklungen wieder einfließen zu lassen.
Diese Merkmale zeichnen auch für das Projekt ausgewählte Versionskontrollsystem ‚Source Integrity‘ von MKS. Als Programmiersprache wurde die in der Embedded-Welt übliche Sprache C ausgewählt. IAR stellt hier ein Entwicklungspaket zur Verfügung, das für die MSP430-RISC-CPU optimierten Code erzeugt. Das Paket enthält einen Macro-Assembler, einen ANSI C-Compiler, eine C-Runtime-Bibliothek, und ein Bibliotheksverwaltungsprogramm. Die hohe Leistungsfähigkeit der Codeoptimierung hat das Programmieren von Code-Teilen in Assembler zur weiteren Optimierung überflüssig gemacht. Für die Integration von Hardware und Software sowie für die abschließenden Tests wurde ein modulares Emulationssystem von Hitex Development Tools ausgewählt. Es besteht aus einem Grundsystem ‚DProbe430‘ (Abb. 1), das durch verschiedene derivatspezifische Boards umgerüstet werden kann. Eine Erweiterungsmöglichkeit stellt die ‚DBox16‘ dar. Dieses Emulatorsystems bieten folgenden Nutzen:
·Den preiswerten Umstieg innerhalb der verschiedenen MSP430 Derivate und deren komplette Unterstützung ·Die Echtzeitemulation ohne Einschränkungen mit oder ohne Target-Hardware, die Applikation verhält sich im test genauso, wie später mit dem MSP430 Controller ·Die Möglichkeit mit der Softwareentwicklung auch ohne verfügbare Hardware zu beginnen ·Das komfortable symbolische Debugging wie es in der Entwicklung üblich ist: Entweder auf Hochsprachenebene durch Kopplungs-DLLs – sogar im Struktogramm – oder Flow-Chart. Ein Umdenken beim Wechsel zwischen Entwicklung und Test entfällt ·Die Transparenz aller Prozessor- und Applikationsinternas während des Tests ·Das Automatisieren der Tests ist durch eine in der Bedienoberfläche integrierte Scriptsprache möglich. ·Die Dokumentationsmöglichkeiten. Tests können protokolliert werden ·Möglichkeit der Erweiterung des Emulationssystems durch High-end-Features zum Optimieren der Applikation, zur Dokumentation der Testabdeckung und zum Auffinden komplexester Fehler
Zusammenfassung
Bei der Planung des Projektes entschied sich der Sportcomputerhersteller für einen kompletten Neuanfang, bei dem auf die Auswahl der Entwicklungswerkzeuge und deren Auswirkungen auf die Entwicklungszeiten und die Qualität der zu entwickelnden Produkte besonderen Wert gelegt wurde. Daraus entstehende Kosten und eventuelle Einarbeitungszeiten wurde bewusst in Kauf genommen, um zukünftig wettbewerbsfähig zu bleiben. Es zeigte sich, dass die Auswahl zusammenpassender Entwicklungswerkzeuge die Einarbeitungszeit verringerte und sehr schnell zu Zeitersparnissen in der Pflege und Überarbeitung der Projekte führte. Außerdem wurde die Notwendigkeit von Nachbesserung aufgrund von gefundenen Fehlern deutlich gesenkt und sowohl die Termintreue als auch die Qualität der Entwicklungen gesteigert.
|
| |
|
 |
|