SW-Entwicklung embedded (embedded Software Design)
Unser Kerngeschäft, die Flachbaugruppe
Bei der Glück-Engineering GmbH steht die Flachbaugruppe im Mittelpunkt (fast) jeder Entwicklungsleistung. Unser Kerngeschäft ist die Entwicklung kundenspezifischer elektronischer Flachbaugruppen mit unterschiedlicher Komplexität. Klicken Sie hier um mehr zu unserem Geschäftsfeld Hardwareentwicklung zu erfahren.
Zu einer elektronischen Flachbaugruppe gehört in der heutigen Zeit meistens auch ein Mikrocontroller (uC, µC) oder ein sogenanntes programmable logic device (PLC, FPGA, CPLD). Diese uCs bzw. PLDs sind als einzelne Chips oder als Modul direkt auf der Platine verlötet oder gesteckt. Auf den µCs befindet sich die sogenannte embedded Software oft auch als Firmware (FW) bezeichnet. Die Verflechtung und Wechselwirkung zwischen HW- und FW-Entwicklung ist hier sehr groß und lässt sich oft kaum mehr trennen.
Es ist daher auch kein Wunder dass Sie im Entwicklungsteam der Glück-Engineering GmbH niemanden finden werden, der nicht wenigstens über Grundkenntnisse der Hardwareentwicklung verfügt. Das gilt für unsere Mechanikentwickler gleichermaßen wie für die Softwareentwickler.
Bei der Firma Glück-Engineering besteht die SW-Abteilung aus einem Team von erfahrenen Ingenieuren und Informatikern, die auch über fundamentale Hardwarekenntnisse verfügen. Sie entwickelt in enger Zusammenarbeit mit dem restlichen Entwicklungsteam methodisch strukturierte Firmware für embedded Systeme unterschiedlichster Branchen und Anwendungen.
Konzept & Prozess
Zum Firmware-Design gehört zunächst ein für Ihre Stückzahl, Ihre Anforderungen und Ihr Unternehmen individuell zugeschnittenes Konzept inkl. dem dazu passenden Entwicklungsprozess.
Zu unserer Philosophie gehört das Zuhören. Wir erfassen alle Ihre Anforderungen inkl. dem Termin- und Kostenvorstellungen und stellen Ihnen dann ein passendes Konzept zur Diskussion vor.
Bibliotheken
In 2 Jahrzehnten embedded Softwareentwicklung haben wir nicht nur umfangreiche Erfahrungen in unterschiedlichsten Branchen und Applikationen in der kompletten Bandbreite der Elektronik gesammelt, sondern haben auch eine umfangreiche Bibliothek mit erprobten wiederverwendbaren Modulen und Funktionen geschaffen von der unsere Kunden profitieren.
In folgenden Schlüsseltechnologien hat die Glück-Engineering GmbH beim Firmware-Design Entwicklungsprojekte durchgeführt und Erfahrungen und Kompetenzen für unterschiedliche Branchen aufgebaut:
- RFID Design
- Induktives Laden
- LiIOnen Battery Management Systeme (BMS)
- Supercapacitor Management Systeme (SCMS)
- Ultra low power, Energy Harvesting
- Motorsteuerungen
- Miniaturisierung
- Elektrische Sicherheit
- Funktionale Sicherheit
- Hochspannungsanwendungen (>10kV)
- Hochstromanwendungen (>1kA)
- Telemetriesysteme
- Leuchten (automotive)
- Meßtechnik
- Industriesteuerungen
Anwendungen
- Kommunikations-Protokolle für: I2C, SPI, RS485, UART, IO-Link, CAN, CAN-OPEN, ProfiBus, LIN, DIN-Meßbus, USB, Ethernet, UDP, TCP/IP, HTTP, FTP, BroadrReach, wireless (ZigBee, RFID, IrDa, ANT, Bluetooth, LonWorks), etc.
- Anzeigen: GUI, HMI, Displaytreiber für LCD, TFT
- Stromversorgung: digitale-Schaltregler (SMPS), polyphase-buck-boost-converter, Resonanzwandler, induktives Laden
- Motorsteuerungen: BLDC, ASM, SM, Schrittmotor
- Regler, Ablaufsteuerungen, Sensorik, LiIonen-BMS-Systeme
Mikrocontroller Portfolio
Als Entwicklungsdienstleister sind wir bzgl. der Auswahl von Mikrocontrollern oft von Kunden –Anforderungen oder –Wünschen bestimmt. Daher finden sich in unserem Portfolio viele Mikrocontroller Familien für die wir Firmware entwickelt haben.
Die Bandbreite reicht von 8-bit, 16-bit und 32-bit Typen bis hin zu DSP’s.
Im folgenden ein Auszug der populärsten Mikrocontrollerfamilien mit denen wir aktuell oder in den letzten Jahren gearbeitet haben:
Single Chip Systeme:
- 8051, 8bit uC-Familie (Infineon-XC800, silabs, Analog Devices))
- HCS12, 16bit uC-Familie (Freescale)
- MPC5xxx, 32bit uC-Familie (Freescale)
- MSP430, 16bit uC-Familie (TI)
- TMS320F2806x, 32bit uC-Familie (TI)
- PIC12, PIC16, PIC18, 8bit uC Familie (Microchip)
- dsPIC30, dsPIC33, 16bit uC Familie (Microchip)
- STM32xx, 32bit uC Familie, Cortex M3 (ST)
- LPC3268, 32bit uC Familie, ARM7 (NXP)
Single Board Computer:
Wenn die Anforderungen einen Mikrocontroller (single Chip) überfordern oder standardisierte Lösungen auf Basis von Windows (embedded), Linux oder Andoid Betriebsystemen eingesetzt werden sollen, verwenden wir sogenannte single board computer (SBC) oder computer on module (COM). Z.B.:
- RaspberryPi (SoC von Broadcom mit 700MHz ARMv6-CPU)
- BeagleBone black (TI AM3358, Sitara™ ARM® Cortex®-A8 32-Bit RISC Processor)
- Taskit-PortuxG20 (Atmel® AT91SAM9G20 mit ARM926EJ-S Prozessorkern)
- MX35 Modul
- verschiedene OEM Module in den Formaten: PC/104, ETX, COMexpress
Klicken sie hier um zu unserem Geschäftsfeld SW-Entwicklung unter Linux, Windows zu gelangen.
IP Soft Prozessor in FPGAs:
- TSK51x, 8bit MCU (Altium)
- TSK3000, 32bit RISK-MCU(Altium)
- MicroBlaze, 32bit MCU(Xilinx)
- Nios II, 32bit MCU (Altera)
Klicken sie hier um zu unserem Geschäftsfeld FPGA-Design zu gelangen.
Methoden und Werkzeuge beim SW-Design
Programmiersprachen:
- C, C++, C#, Java, Delphi, Visual Basic
- Assembler
- Skriptsprachen: bash, LUA, PowerShell
- UML
- VHDL
- Sonstige: CAPL
Werkzeuge (Tools):
- Viele verschiedene proprietäre C-compiler und Linker, IDEs für embedded Mikrocontroller (Keil, Microchip, IAR, Tasking, Cosmic, Eclipse-CCS, etc.)
- LabWindows/CVI™ (National Instruments)
- .NET framework
- Visual Studio™
- GCC, GTK+, Glade, GtkBuilder
- Doxygen (Software Dokumentationswerkzeug)
- Git (Softwareverwaltungsprogramm)
- Papyrus (UML-Tool)
Mindestanforderungen
Unsere Informatiker und Ingenieure entwickeln Software in methodisch strukturierter Form. Um unseren Kunden ein Höchstmaß an Qualität zu bieten muss jede von der der Glück-Engineering GmbH erstellte Software die folgenden Mindestanforderungen erfüllen:
- Strukturiertes Softwaredesign (Planen der Architektur und Modellierung von Konzepten z.B. mit UML)
- Funktionalität (alle technischen und funktionalen Anforderungen müssen erfüllt sein)
- Prüfbarkeit, Testbarkeit (Eignung für automatisiertes Testen, Einhalten von Programmier- Regeln und -Standards z.B. MISRA-C; damit Prüftools wie Splint, zur Codeanalyse angewendet werden)
- Zuverlässigkeit (Reifegrad (Anzahl Fehler pro Zeitintervall), Fehlertoleranz (Fehler, , Wiederherstellbarkeit (ob und wie schnell läuft das Programm nach einem Fehler bzw. crash wieder)
- Unempfindlichkeit (Unempfindlich gegen fehlerhafte Benutzung)
- Bedienung (Einfach, übersichtlich)
- Wiederverwendbar (Modular, gekapselte Funktionen und Module, die ohne Änderung in anderer Software wieder verwendbar sind)
- Wartbarkeit (Strukturiert, modular, gut dokumentiert z.B. mit doxygen, damit nachträgliche Änderungen durchführbar sind)
- Erweiterbarkeit (nachträgliche Erweiterungen sollen durchführbar sein)
- Versionsverwaltung ( git )
Standardisierte Software Module
- Betriebssysteme: FreeRTOS, KEIL-RTX, Linux, etc.
- SW-Pakete: SafeTI™ Design Packages; TI InstaSPIN™ Motor Control Solutions, etc., Vector™-Softwarekomponenten,
Softwarequalifizierung
Zu Beginn der Entwicklung wird ein für Ihre Stückzahl, Ihre Anforderungen und Ihr Unternehmen individuell zugeschnittenes Konzept, inkl. dem dazu passenden Entwicklungsprozess gewählt.
Wir die Firma Glück-Engineering, bieten maßgeschneiderte Lösungen und Produktentwicklungen ab der Stückzahl 1 bis zur Großserie an. Dabei gilt es natürlich die damit verbundenen unterschiedlichen Anforderungen an Zuverlässigkeit und Reifegrad, auch unter wirtschaftlichen Gesichtspunkten, zu erfüllen. Wir legen daher gemeinsam mit unseren Kunden, während der Angebotsphase, als vereinbarte Vertragsgrundlage, möglichst exakt fest welche Anforderungen erfüllet und welcher Reifegrad für das Produkt erreicht werden soll. Dazu gehören insbesondere auch die Qualitäts- und Testanforderungen.
Wir beraten Sie bei der Entscheidung welche Teile unseres SW-Test-Potfolio bei Ihrem Produkt, sinnvoller Weise und passend zu dem angesetzten Zeit und Budget Rahmen, zum Einsatz kommen sollten:
Im Rahmen unsers V-Modell-basierenden Entwicklungsprozesses unterscheiden wir zwischen:
- Komponententest (Modul bzw. Unit Test)
- Integrationstest
- Systemtest
- Abnahmetest (durch Kunde)
Parallel zur Anforderungsanalyse und dem Erstellen des Software-Pflichtenheftes (software requirement specification SRS) planen wir den Testprozess und erstellen die SW-Testspezifikation (sw test specification).
Sprechen Sie uns an falls Sie eine Software Test Dokumentation auf Basis des IEEE 829 standards wünschen.
Folgende Software-Tests bieten wir an:
- Statische Codeanalyse (automatisiert, toolbasiert, z.B. Splint, Code-Review im Team)
- Dynamische SW-Tests: White-Box-Tests, Black-Box-Tests
- White-Box Tests, Modul-Tests (Unit-Tests), Integrationstests (systematisch, automatisiertes Testen der internen Funktionsweise mit Kenntnis und unter Betrachtung des Prüflings-Code auf Modul-, Funktion- oder Klasse-Ebene mit dem Ziel Fehler aufzudecken; der code wird in einer Simulationsumgebunf ausgeführt und mit Eingabevariablen stimuliert und die Resultate bewertet; es werden z.B Endlosschleifen oder unerreichbare Programmpfade entdeckt; Tools CUNIT, gcov, Microsoft-Komponententestframework); zur Verifikation; Stichworte in diesem Zusammenhang: Testfälle, Testabdeckungsgrad, Analysetools
- Black-Box Tests Integrationstests, Systemtests, Funktionstests (systematisch, manuelles oder automatisiertes Testen der internen Funktionsweise OHNE Kenntnis des Prüflings-Code. Es wird gegen die Spezifikation getestet. zur Validierung.̈