Wir entwerfen das Verhalten des Geräts

Entwicklung von Embedded-Software und Embedded-Systemen

Wir entwickeln Embedded-Software, die Sensoren ausliest, Motoren und Ausgänge steuert und mit anderen Geräten kommuniziert. Die Mikrocontroller- oder Embedded-Linux-Architektur wählen wir anhand von Zeitverhalten, Speicherbedarf, Energieverbrauch und Fehlerverhalten. Den Firmwareumfang für Ihre neue Platine oder Ihr vorhandenes Gerät stimmen wir mit der Hardware ab. Wir testen die definierten Funktionen und übergeben Quellcode und Build-Informationen.

Spezielle Steuerplatine mit Debug-Sonden- und Sensoranschlüssen für eingebettete Softwaretests
Repräsentatives Anwendungsbild.
SchichtVom Treiber bis zur Anwendung
IntegrationHardware + Kommunikation
FokusVorhersehbares Geräteverhalten

Ihr Projekt, Ihr Produkt

Wir entwickeln vertraulich und übergeben die Quelldateien.

Vor dem Austausch technischer Details können wir mit einer Geheimhaltungsvereinbarung (NDA) arbeiten. Zum Projektabschluss übergeben wir Ihnen die von uns entwickelten Quellcodes, Designdateien und technischen Dokumente.

  • Vor der Weitergabe technischer Informationen NDA
  • Von Beginn an eine klare Übergabeliste
  • Quell- und technische Dateien am Ende des Projekts
Unser Datenschutz- und Lieferprozess

VOMRO Engineering-Ansatz

Wir entwickeln die Software am Board und im realen Szenario.

Eingebettete Software funktioniert innerhalb anderer Grenzen als eine Desktop-Anwendung. Prozessorzeit, Speicher, Energie und Timing der Peripheriegeräte sind begrenzt. Das regelmäßige Auslesen eines Sensors, das rechtzeitige Stoppen des Motors oder das Versetzen des Geräts in einen definierten Zustand bei Kommunikationsunterbrechung betreffen das gesamte System. VOMRO legt die Softwarearchitektur entsprechend den Prioritäten dieser Funktionen fest.

So wie wir Software für eine neue elektronische Leiterplatte entwickeln können, können wir auch die Verbesserung eines bestehenden Geräts bewerten. Zunächst werden Schema, Prozessor, Quellcode, verwendete Protokolle und bekannte Probleme untersucht. Sobald die Nutzungsrechte an bestehender Software und Dokumentation sowie der Lieferumfang geklärt sind, wird ein nachhaltiger Entwicklungsplan erstellt.

01

Treiber, Steuerung und Timing im eingebetteten Systemdesign

In Mikrocontroller-Anwendungen, die auf C/C++ basieren, sind Startup-Code, Peripherietreiber, Kommunikation und Produktfunktionen in separaten Schichten organisiert. Wenn Bedarf an eingebettetem Linux besteht, werden Betriebssystem, Anwendung und Geräteverbindungen gemeinsam bewertet. Ziel ist eine Struktur, die nicht das Umschreiben der gesamten Anwendung erfordert, wenn sich die Prozessor- oder Kartenrevision ändert.

Je nach Timing-Anforderung werden schleifenbasierte Strukturen, Interrupts, Zustandsmaschinen oder Echtzeit-Betriebssystemoptionen evaluiert. Aufgabenprioritäten und Ressourcenzuweisung werden durch das Verhalten des Produkts bestimmt. Das Hinzufügen weiterer Softwareschichten allein ist kein Qualitätsmaßstab; Es ist wichtig, dass die Struktur nachvollziehbar und prüfbar ist.

  • Peripherie- und Sensortreiber
  • Zustandsmaschinen und Steuerfunktionen
  • Prozessor-, Speicher- und Timing-Budget
Ingenieur arbeitet mit Laptop im kabelgebundenen Prüfstand
Entwicklungsarbeit bei der computergestützten Systemprüfung an einem Versuchsaufbau.
02

Kommunikations-, Aufzeichnungs- und Aktualisierungsinfrastruktur

Kommunikationsschichten, von karteninternen Schnittstellen wie I²C, SPI und UART bis hin zu CAN, RS485, Ethernet und drahtlosen Verbindungen, werden entsprechend den Anforderungen des Projekts entwickelt. Das Format der Datenpakete, Timeout, Wiederholungsversuche und Fehlercodes werden definiert. Somit interpretieren das Gerät und das übergeordnete System dieselbe Nachricht im gleichen Sinne.

Parameterspeicherung, Ereignisprotokollierung, Geräte-ID und Softwareversion vereinfachen den Serviceprozess. Wenn ein lokales oder Remote-Update erforderlich ist, werden Bootloader, Versionskontrolle, Autorisierung und Wiederherstellungsdesign bewertet. Die Update-Methode wird entsprechend der Speicherkapazität und Anschlussmöglichkeiten der Hardware ausgewählt.

  • Geräteprotokolle und Datenmodell
  • Persistente Parameter- und Ereignisdatensätze
  • Für das Projekt geeigneter Software-Update-Ablauf
Kabelgebundene Kommunikation und Softwaretests zwischen zwei benutzerdefinierten eingebetteten Steuerkarten
Repräsentatives Anwendungsbild.
03

Fehlerzustände sind auch eine Funktion des Produkts

Es wird festgelegt, wie die Software auf Sensorunterbrechung, niedrige Versorgungsspannung, unerwarteten Neustart und Verbindungsverlust reagiert. Watchdog, Datenprüfung und Fehlerbehandlung sind nicht nur im Code enthalten, sondern werden mit den zugehörigen Szenarien getestet. Start- und Fehlerzustände der Steuerausgänge werden gemeinsam mit dem Hardwaredesign betrachtet.

Zum Projektabschluss übergeben wir Quellcode, Build-Konfiguration, Programmierdateien, Protokollbeschreibungen und Versionshinweise. Die Übergabeliste wird zu Beginn geklärt. Testbefunde werden bestimmten Hardware- und Software-Revisionen zugeordnet; Feldprobleme lassen sich anhand der Version und Bedingungen ihres Auftretens untersuchen.

  • Funktions- und Fehlerszenariotests
  • Erstinbetriebnahme gemeinsam mit der Hardware
  • Bearbeiten von Versions- und Buildinformationen
Eingebettete Softwarearchitektur, die Mikrocontroller-, Sensor-, Kommunikations- und Steuerungsfunktionen kombiniert
Konzeptionelle Darstellung des technischen Prozesses.

Wie es funktioniert

Es ist ein offener Prozess vom Start bis zur Auslieferung.

Nicht jedes Projekt sieht gleich aus; Die messbaren Anforderungen, die kontrollierte Überarbeitung und die Schritte zur Feldverifizierung bleiben jedoch unverändert.

  1. 01

    Wir definieren Verhalten

    Wir dokumentieren Funktionen, Zeitablauf, Zusammenhänge und Fehlerzustände.

  2. 02

    Wir bauen die Infrastruktur

    Wir verifizieren Treiber, Aufgabenstruktur und Kommunikationsschnittstellen mit Hardware.

  3. 03

    Wir entwickeln die Anwendung

    Wir kombinieren nach und nach Steuerungs-, Mess- und Benutzerfunktionen.

  4. 04

    Wir überprüfen die Version

    Wir testen definierte Szenarien und bearbeiten Liefergegenstände und Freigabedokumente.

häufig gestellte Fragen

Vor Beginn des Projekts

Der technische Umfang, die zu liefernden Leistungen und der Testplan werden gemeinsam entsprechend den Anforderungen Ihres Projekts geklärt.

Können Sie Embedded-Software für meine bestehende Platine entwickeln?

Der Umfang kann anhand des Kartenschemas, der Prozessorinformationen, des Programmierzugriffs und der erforderlichen Nutzungsrechte ermittelt werden. Hardwarebedingte Einschränkungen werden zunächst bewertet.

Kann das Gerät ohne Internet funktionieren?

Lokale Steuerung und Datenprotokollierung können verbindungsunabhängig gestaltet werden. Welche Funktionen offline weitergeführt werden und wie die Daten bei der Verbindung synchronisiert werden, wird im Projekt festgelegt.

Werden Quellcode und technische Dokumentation geliefert?

Ja. Zum Projektabschluss übergeben wir projektspezifischen Quellcode, Build-Informationen und technische Dokumente. Dateiformate und Übergabeliste werden zu Beginn geklärt; Lizenzen verwendeter Bibliotheken Dritter werden gesondert definiert.

Können wir mit NDA arbeiten, bevor wir technische Details weitergeben?

Ja. Bevor Sie technische Einzelheiten Ihres Projekts teilen, können wir gemeinsam eine Geheimhaltungsvereinbarung (NDA) abschließen.

Beginnen wir mit Ihrer Idee

Lassen Sie uns über das Produkt sprechen, von dem Sie träumen, und über den Bedarf, den Sie lösen möchten.