SELENIS · Fall Studium Nippon Seiki

Architektonische Standardisierung in sicherheitsrelevanter Embedded-Software

Nippon Seiki – Automotive Head-Up-Display Systeme

Rolle: Senior Software & System Architect · Zeitraum: initiale Stabilisierung über mehrere Monate, danach kontinuierliche Weiterentwicklung

Problem und Komplexität

Vor dem Umbau griffen zahlreiche Module direkt über AUTOSAR/MCAL auf CAN-Daten und Diagnosedienste zu. Schon kleine Änderungen führten zu neuer DaVinci-Konfiguration, vollständiger Neukompilierung und erweiterter Systemintegration. Die enge Kopplung erhöhte Aufwand, Fragilität und Kosten – insbesondere unter ASPICE/ISO 26262.

Zusätzlich erforderten Themen wie Schrittmotor-Seriellmodus, DMA-basierte Kommunikation und PWM-Backlight spezielle Prozeduren (Register, Interrupts, Synchronisation), die im Team gemieden wurden und die Gesamtkomplexität weiter steigerten.

Ansatz

Statt Einzelbugs zu fixen, habe ich eine architektonische Abstraktion etabliert: Verbot direkter AUTOSAR-Zugriffe, Einführung klar zugeschnittener Komponenten und typsicherer C-Templates mit bewährten Patterns (Proxy, Observer-Provider, State Machine, RingBuffer, LinkedList, Facade).

Zentrale Komponenten

  • ParameterManager / EventProvider: zentraler Zugriff auf NvM nur via Parameter-ID, RAM-Pufferung (RingBuffer/LinkedList), automatische Benachrichtigungen.
  • InputDataManager / SystemInfoService: zentrale CAN-Datenhaltung; Module entkoppelt von AUTOSAR.
  • SystemErrorManager / EventProvider: vereinheitlichtes Fehlermanagement (inkl. DTC/Sperrlogik).
  • Facade-Layer: abstrahierter Zugriff für Execution, MCAL, Diagnostics; ermöglicht PC-Lauf ohne AUTOSAR via Simulation → frühe Integrationstests.
  • Strikte Schichtendisziplin: top-down Zugriff; untere Layer nur als Observer registriert.

Ergebnisse

  • Wartung/Test deutlich reduziert: zentrale, validierte Implementierungen wiederverwendbar ohne erneute Volltests und globale Re-Konfiguration.
  • Simulation: Firmware auf PC ohne AUTOSAR ausführbar → schnelleres Debugging & frühe Integration.
  • ASPICE-Erfolg: Layered Architecture mit bidirektionaler Traceability in Audits verteidigt.
  • Team-Produktivität: Onboarding jüngerer Engineers ohne tiefes AUTOSAR möglich.
  • Low-Level-Durchbruch: Oszilloskop-Analysen, Register-Rekonfiguration (SPI/DMA/IRQs) und systematisches Debugging stabilisierten Stepper/DMA/PWM/Errors als Referenzimplementierungen.

Lessons Learned

  • Starke Abstraktion + Design Patterns senken Kopplung, Komplexität und Kosten.
  • Facade-Layer und AUTOSAR-Abschirmung machen Firmware portabel & simulationsfähig.
  • Persistenz auf Hardware-Ebene entscheidet, wenn niemand das Thema anfassen will.
  • Wissenstransfer (Guidelines, Webinare, Wiki) ist so wichtig wie der Code selbst.
  • Architektur befähigt Teams, konsistent und effizient zu arbeiten.
„Architektur bedeutet nicht nur technische Korrektheit – sondern Teams so zu befähigen, dass Qualität reproduzierbar wird.“