Embedded-Programmierung Mehr Performance bei weniger Testzeit für Mikrocontroller und Mikroprozessoren

Ein Gastbeitrag von Ralf Möhring* 5 min Lesedauer

Anbieter zum Thema

Für den Test und die Programmierung von Mikrocontrollern bietet sich VarioTAP an. Durch gezielte Optimierungen der Software konnten die Test- und Programmierzeiten deutlich reduziert werden.

Test und Programmierung von Mikrocontrollern: Mit dem VarioTAP lassen sich Test- und Programmierzeiten deutlich senken.(Bild:  frei lizenziert /  Pixabay)
Test und Programmierung von Mikrocontrollern: Mit dem VarioTAP lassen sich Test- und Programmierzeiten deutlich senken.
(Bild: frei lizenziert / Pixabay)

Das technische Konzept der Embedded-Programmierung eröffnet zahlreiche Anwendungsmöglichkeiten, die hauptsächlich durch die Leistungsfähigkeit des Mikrocontrollers begrenzt werden. Durch die ineinandergreifenden Softwareebenen ergeben sich insbesondere bei der Speicherprogrammierung erhebliche Optimierungspotenziale. Das VarioTAP-Konzept aus dem Bereich Embedded JTAG Solutions (EJS) von Göpel electronic adressiert diese Optimierung gezielt und ermöglicht eine vollständige Ausschöpfung der jeweiligen Testaufgabe.

Ein Blick in die Details von VarioTAP und was es für Anwender bietet

VarioTAP wird hauptsächlich für Embedded-Programmierung und das Testen von Mikroprozessoren, Mikrocontrollern und anderen programmierbaren Logikbausteinen eingesetzt. Es basiert grundsätzlich auf dem JTAG-Standard und nutzt das JTAG-Protokoll (Joint Test Action Group), das ursprünglich für das Testen und Debuggen von integrierten Schaltungen entwickelt wurde. Es ermöglicht den Zugriff auf die internen Register und Ressourcen von Mikroprozessoren und anderen digitalen Bausteinen.

Einer der Vorteile von VarioTAP ist, dass als Kommunikationsinterface nicht zwingend das JTAG-Protokoll genutzt werden muss. Es kommen immer häufiger Two-Wire-Protokolle wie SWD (Serial Wire Debug) oder sogar One-Wire-Protokolle, wie zum Beispiel die SWIM-Schnittstelle (Single Wire Interface Module) für die STM8 Bausteine von STMicroelectronics zum Einsatz.

Testen, Programmieren und Debuggen von Mikrocontrollern und Mikroprozessoren

Bild 1: Anwendungsmöglichkeit und Einordnung des VarioTAP-Konzepts.(Bild:  Göpel electronic)
Bild 1: Anwendungsmöglichkeit und Einordnung des VarioTAP-Konzepts.
(Bild: Göpel electronic)

Weiterhin ermöglicht VarioTAP das direkte Testen, Programmieren und Debuggen von Mikrocontrollern und Mikroprozessoren, ohne dass ein zusätzlicher Hardwarezugriff erforderlich ist. Der Zugriff erfolgt durch eine standardisierte Schnittstelle, wie beispielsweise JTAG. Die Technik ist sehr flexibel und unterstützt in ihrer Kernbibliothek eine Vielzahl von Bausteinen verschiedener Hersteller, zu denen unter anderem auch programmierbare Logikbausteine (FPGAs) zählen. Dadurch ist es für eine breite Palette von Anwendungen geeignet.

VarioTAP gehört zu den In-System-Programmieranwendungen, die in der Lage sind, Bausteine in bereits eingebautem Zustand zu programmieren. Damit ist es möglich, Firmware und Software direkt in den Speicher des Mikrocontrollers oder Prozessors zu laden, der sich bereits im Zielsystem befindet. Dies vereinfacht den Produktionsprozess und ermöglicht Updates und Änderungen auch nach der vollständigen Montage der Baugruppe. Für Testingenieure bietet VarioTAP eine umfassende Kontrolle und Analyse von Mikrocontrollern und macht diese durch die chipinternen Ressourcen nutzbar.

Fakten zu VarioTAP

Mit VarioTAP können Mikrocontroller direkt im eingebauten Zustand programmiert werden. Programmier- und Testzeiten sinken, was sich positiv auf die Serienfertigung auswirkt. Der Datendurchsatz beträgt rund 1,0 MByte/s bei einer Gesamttestzeit von 16,6 Sekunden. Zudem unterstützt VarioTAP neben dem JTAG-Protokoll auch Schnittstellen wie SWD oder SWIM.

Mehr Programmierperformance durch veränderte Software

Bild 2: Highspeed-Technologie VarioTAP im Vergleich zum klassischen Boundary Scan und den Nachfolgetechniken JEDOS und X-BUS.(Bild:  Göpel electronic)
Bild 2: Highspeed-Technologie VarioTAP im Vergleich zum klassischen Boundary Scan und den Nachfolgetechniken JEDOS und X-BUS.
(Bild: Göpel electronic)

Als es noch wenige Anbieter von Programmieranwendungen für die Fertigungslinie gab, entwickelte Göpel electronic mit dem ersten Release eines VarioTAP-Modells ein stabiles Emulationsmodell, das die On-Chip-Flash-Programmierung für den Infineon TC2 ermöglichte. Allerdings dauerte zu diesem Zeitpunkt eine Programmierung von 8 MByte inklusive Löschen und Datenverifikation je nach Test- und Umgebungs-Setup ungefähr 90 Sekunden.

Im Laufe des Produktlebenszykluses der VarioTAP-Modelle für die AURIX 32-Bit TriCore-Familie von Infineon wurde im letzten Jahr viel Aufwand in Optimierung und Wartung investiert. Ziel war es, jeden einzelnen Prozess sicherer und performanter zu gestalten. Durch diese Softwareoptimierungen wurden beispielsweise die Performance der Datenübertragung und der eigentliche Durchsatz der Speicherprogrammierung erheblich und um ein Vielfaches verbessert.

Basiskommunikation zum Prozessorkern schneller und stabiler

Zwei Hauptpunkte haben bei diesen Softwareänderungen den entscheidenden Performancevorteil gebracht: Zum einen wurde das komplette Two-Wire-DAP-Protokoll (Device Access Port), über das die Low-Level-Kommunikation erfolgt, überarbeitet und optimiert. Dadurch wurde die Basiskommunikation zum Prozessorkern deutlich schneller und stabiler. Der zweite große Punkt war die On-Chip-Flash-Programmierung selbst. Hier wird ein Monitor-Konzept verwendet, bei dem der Quellcode in den RAM des Zielbausteins geladen wird und somit die eigentliche Schnittstellenansteuerung der On-Chip-Flash-Befehle direkt im Controller stattfinden kann.

Jetzt Newsletter abonnieren

Verpassen Sie nicht unsere besten Inhalte

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung. Die Einwilligungserklärung bezieht sich u. a. auf die Zusendung von redaktionellen Newslettern per E-Mail und auf den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern (z. B. LinkedIn, Google, Meta).

Aufklappen für Details zu Ihrer Einwilligung

Von außen betrachtet findet also nur noch eine elementare Befehlskommunikation zwischen Host und Client sowie die eigentliche Datenübertragung statt. Das war der letzte große Engpass, der analysiert und optimiert werden musste. Durch ein intelligentes Buffer-Management ist es möglich, alle für den aktuellen Befehl notwendigen Quelldaten direkt im RAM-Speicher des Chips vorzuhalten und bei Bedarf abzurufen.

Mit neu entwickelten Streaming-Verfahren ist es sogar möglich, Prozesse parallel ablaufen zu lassen, beispielsweise das gleichzeitige Programmieren und Nachladen von konsekutiv benötigten Daten. Schließlich wurden zusätzliche Funktionen zu den üblichen Memory Mapped Flash Actions eingeführt, wie ein MD5-Prüfsummenvergleich zur Verifikation großer Daten­blöcke.

Drei Signale für eine On-Chip-Flash-Programmierung

Bild 3: Testaufbau SCANFLEX II CUBE mit angeschlossenem TC39x Evaluation Board von Infineon „TriBoard TC3X9 TH V2.01“.(Bild:  Göpel electronic)
Bild 3: Testaufbau SCANFLEX II CUBE mit angeschlossenem TC39x Evaluation Board von Infineon „TriBoard TC3X9 TH V2.01“.
(Bild: Göpel electronic)

Mit der aktuellen SFX-II-Hardwaregeneration und der angesprochenen Softwareoptimierung wird der bei der Modelleinführung erreichte Wert heute deutlich unterschritten. Bevor auf einige Zahlen und Programmierszenarien eingegangen wird, soll noch kurz auf einen weiteren Vorteil des VarioTAP-Modells hingewiesen werden, der gleichzeitig eine enorme Kostenersparnis bietet. Wie das Bild 3 zeigt, arbeitet das Modell lediglich mit drei Prozessor-Signalen (DAP0 -> CLK; DAP1 -> TMS und optional dem Prozessor-Reset /PORST). Das bedeutet, dass effektiv drei Signale plus GND für eine On-Chip-Flash-Programmierung ausreichen, um mit dem VarioTAP-Modell zu arbeiten. Das Reset-Signal ist optional und nicht bei jeder Anwendung notwendig. Dieser Fakt bietet einen Vorteil gegenüber dem Standard-JTAG-Protokoll, welches sechs Signale benötigt – das Prozessor-Reset-Signal nicht mitgezählt.

Folgende Zahlen und Benchmarkdaten veranschaulichen die Einsparungen noch deutlicher: Das Hardwaresetup für die Programmierung sind Göpel electronic Controller SFX II CUBE und ein Infineon TC39x EvalBoard mit verbautem TC399XP-Chip (Bild 3). Durch die Softwareoptimierung und die SFX-II-Hardware ist es möglich, das VarioTAP-Modell mit einer Testbusfrequenz von 52 MHz (je nach Setup variabel) auszuführen.

Bild 4: Ausgabe Logdatei für die On-Chip-Flash-Programmierung von 8 MByte eines TC399-Chips.(Bild:  Göpel electronic)
Bild 4: Ausgabe Logdatei für die On-Chip-Flash-Programmierung von 8 MByte eines TC399-Chips.
(Bild: Göpel electronic)

Die Testaufgabe ist das Löschen, Programmieren und Verifizieren von 8 MByte Daten, welche in den P-FLASH des TC399 Bausteins programmiert werden sollen. Die eigentliche Programmaktion für die 8 MByte benötigt acht Sekunden, was einem Durchsatz von rund 1 MByte/s entspricht. Dazu kommt eine Löschzeit von sechs Sekunden, für das Verifizieren der Daten mittels MD5-Checksumme fallen nochmals zwei Sekunden an. Als Gesamtzeit ergibt sich für die Programmierung eine Testlaufzeit von 16,6 Sekunden (Bild 4). Mit dem Stand-Alone-Programmer FlashFOX von Göpel kann man die gleiche Programmierung noch schneller durchführen. Hier wird ein Datendurchsatz von 1,4 MByte/s und eine Gesamttestzeit von 14,9 Sekunden erreicht.

Testzeit von 51 auf 19 Sekunden reduzieren

„Einer unserer Kunden, der bereits VarioTAP als Programmierlösung einsetzt, konnte durch die Modelloptimierung seine Testzeit für ein laufendes Projekt von 51 Sekunden auf 19 Sekunden reduzieren“, erklärt Ricardo Wenzel, Teamleiter EJS-IPS Softwareentwicklung bei Göpel electronic. Die Rahmenbedingungen sind im Setup deutlich anders: Zwar sollen Baugruppen getestet und programmiert werden, allerdings in einem serientauglichen Nadelbettadapter. So muss unter anderem mit einer deutlich geringeren Testfrequenz gearbeitet werden. Die Zeitersparnis von mehr als 60 Prozent ist für jeden Serienfertiger interessant und erstrebenswert. Der Arbeits- und Ressourcenaufwand, der in die Softwareoptimierung des VarioTAP-Modells investiert wurde, hat sich für die Kunden enorm gelohnt und ist eine kleine Erfolgsgeschichte für das Entwicklungsteam rund um das VarioTAP-Konzept.

Zwischen Erstrelease und heutigem Stand des Modells wurde eine Verbesserung von 90 auf 16 Sekunden erarbeitet. Das bedeutet, dass die gleiche Programmieraufgabe weniger als ein Fünftel der ursprünglichen Zeit in Anspruch nimmt. Mit dem Know-how aus der Modellentwicklung und -überarbeitung sollen in Zukunft weitere gängige Modelle auf ihr Optimierungspotenzial hin untersucht werden. Die Einsatz- und Erweiterungsmöglichkeiten das VarioTAP-Softwarekonzept sind bei weitem noch nicht ausgeschöpft. (heh)

* Ralf Möhring ist Softwareentwickler für EJS – IPS bei Göpel electronic.

(ID:50157053)