UDS-basierter Kommunikationsstack für Drehgeber

Projekt: August 2015 – Mai 2016 (10 Monate)

Projektbeschreibung

Entwicklung der Server-seitigen Application Layer Services nach ISO-14229 im Rahmen einer Plattformsoftware für Drehgeber. Das Arbeitspacket umfasst die folgenden Aufgaben:

  • Definition der Software Architekturkomponenten
  • Erfassen der Komponenten Requirements (in Polarion)
  • Erstellen des Komponenten- und Klassendesign (in Enterprise Architect)
  • Implementierung der Sourcecode-Module in C unter Berücksichtigung von Coding-Rules für sicherheitsrelevante Software
  • Statische Codeanalyse mit PC-lint (MISRA-C:2012)
  • Implementierung von White-box Tests mit GoogleTest
  • Continuous Integration (Jenkins)
  • Dokumentation der Softwaremodule mittels Doxgen-Kommentaren und UML-diagrammen (activity diagrams, sequence diagrams, state charts)
  • Weiterentwicklung der Softwarearchitektur und Sourcecode-Module der Plattformsoftware (Persistent Data Memory, Firmware-Update, HAL for SPI, on-chip Flash, CRC-32)
  • HAL: Code-Refaktorisierung (Non-STLibrary)

Projektsteckbrief

Projekt UDS-basierter Kommunikationsstack für Drehgeber
Zeitraum August 2015 – Mai 2016 (10 Monate)
Kunde darf aus Gründen des Kundenschutzes nicht genannt werden
Branche Industrie / HeavyDuty Drehgeber
Rolle im Projekt Softwaredesign, Implementierung, Dokumentation, Code-Reviews
Software / Tools / Methoden Polarion ALM (Polarion Software), Enterprise Architect (Sparx), ARM GCC, SCons, Keil uVision 5, PC-lint (MISRA-C)
Hardwareplattform STM32F0 (ARM Cortex-M0)

Induktivkoppler mit CAN-Interface

Projekt: Juni 2015 – Juli 2015 (2 Monate)

Projektbeschreibung

Planung und Entwicklung der Firmware für einen CAN-Repeater (Quasi-Repeater) als Stecker-Ersatz zur Sensordatenerfassung in Tunnelbohrmaschinen. CAN Nachrichten werden auf UART umgesetzt, um sie mithilfe eines FSK-Modems über einen Luftspalt zu übertragen. Zur Versorgung der Sensoren im Bohrkopf stellt der Koppler 500mA bereit.

Projektsteckbrief

Projekt Induktivkoppler mit CAN-Interface
Zeitraum Juni 2015 – Juli 2015 (2 Monate)
Kunde darf aus Gründen des Kundenschutzes nicht genannt werden
Branche Industrielle Kommunikation / Feldbus
Rolle im Projekt Softwareentwurf, Implementierung, Funktionstests, Dokumentation, Auftragsabwicklung
Software / Tools / Methoden Atmel SAM4E Microcontroller, Rigol Oscilloscope, Multimeter, CAN Interface Boards (Peak, Vector, IXXAT)
Hardwareplattform Atmel Studio (Version 6.2), Enterprise Architect (Sparx)

CAN Monitor App for macOS

Download: MacCAN Monitor App

Description

The MacCAN Monitor App is a little demo program to show the functionally of the PCBUSB library – macOS Library for PCAN-USB Interfaces.

The program displays received CAN messages in a table view; its size is limited to 1024 rows. Furthermore it is possible to send single standard CAN messages with 0 to 8 data bytes. Only PCAN-USB devices from PEAK-System Technik GmbH are supported; and only the first channel of a device. The PCAN-USB interface number is taken from the IO registry. USB interface and CAN baud rate must be chosen once the program is started; they cannot be changed afterwards.

CAN Monitor App for OS X

Please note: Do not connect your PCAN USB device to a real CAN network when using this program. This can damage your application.

Summary

Program MacCAN Monitor App
Current Version Version 0.4 of December 10, 2021
Documentation Readme file and a screen video
License BSD 2-Clause “Simplified” License
Source Code PCBUSB-Monitor repo on GitHub
Standard CAN Specification 2.0
Driver macOS Library for PCAN-USB Interfaces
Category Industrial Communication, CAN, MacCAN
Operating System OS X 10.9 (x86_64), since version 0.4 macOS 11.0 (x86_64 & arm64)
Older Versions http://www.uv-software.com/files/downloads/MacCAN/PCANUSB/Applications/MacCAN_Monitor_App/

CAN Monitor goes Mac OS X

Download: CAN Monitor for macOS

Description

This is a port of the CAN Monitor program can_moni from Linux to Mac. It is running with a PCAN-USB device or PCAN-USB FD device on OS X Mountain Lion and hopefully on later versions of the world´s mostest advanced OS.

Syntax

Usage: can_moni <interface> [<option>...]
Options:
  -m, --mode=(2.0|FDF[+BSR])  CAN operation mode: CAN 2.0 or CAN FD format
      --listen-only           monitor mode (transmitter is off)
  -b, --baudrate=<baudrate>   CAN 2.0 bit timing in kbps (default=250)
      --bitrate=<bit-rate>    CAN FD bit rate (as a string)
  -v, --verbose               show detailed bit rate settings
  -t, --time=(ABS|REL|ZERO)   absolute or relative time (default=0)
  -i  --id=(HEX|DEC|OCT)      display mode of CAN-IDs (default=HEX)
  -d, --data=(HEX|DEC|OCT)    display mode of data bytes (default=HEX)
  -a, --ascii=(ON|OFF)        display data bytes in ASCII (default=ON)
  -x, --exclude=[~]<id-list>  exclude CAN-IDs: <id>[-<id>]{,<id>[-<id>]}
  -L, --list-boards           list all supported CAN interfaces and exit
  -T, --test boards           list all available CAN interfaces and exit
  -h, --help                  display this help screen and exit
      --version               show version information and exit
Interfaces:
   PCAN-USB1
   PCAN-USB2
   PCAN-USB3
   PCAN-USB4
   PCAN-USB5
   PCAN-USB6
   PCAN-USB7
   PCAN-USB8
CAN 2.0 baud rate index (default=3):
   0 = 1000 kbps
   1 = 800 kbps
   2 = 500 kbps
   3 = 250 kbps
   4 = 125 kbps
   5 = 100 kbps
   6 = 50 kbps
   7 = 20 kbps
   8 = 10 kbps
CAN FD bit rate as comma-separeted <key>=<value>-list:
   f_clock=<value>      frequency in Hz or
   f_clock_mhz=<value>  frequency in MHz
   nom_brp=<value>      bit-rate prescaler (nominal)
   nom_tseg1=<value>    time segment 1 (nominal)
   nom_tseg2=<value>    time segment 2 (nominal)
   nom_sjw=<value>      sync. jump width (nominal)
   nom_sam=<value>      sampling (only SJA1000)
   data_brp=<value>     bit-rate prescaler (FD data)
   data_tseg1=<value>   time segment 1 (FD data)
   data_tseg2=<value>   time segment 2 (FD data)
   data_sjw=<value>     sync. jump width (FD data)
Examples:
   125kbps:1000kbps     f_clock_mhz=80,nom_brp=2,nom_tseg1=255,nom_tseg2=64,nom_sjw=64,data_brp=2,data_tseg1=31,data_tseg2=8,data_sjw=8
   250kbps:2000kbps     f_clock_mhz=80,nom_brp=2,nom_tseg1=127,nom_tseg2=32,nom_sjw=32,data_brp=2,data_tseg1=15,data_tseg2=4,data_sjw=4
   500kbps:4000kbps     f_clock_mhz=80,nom_brp=2,nom_tseg1=63,nom_tseg2=16,nom_sjw=16,data_brp=2,data_tseg1=7,data_tseg2=2,data_sjw=2
   1000kbps:8000kbps    f_clock_mhz=80,nom_brp=2,nom_tseg1=31,nom_tseg2=8,nom_sjw=8,data_brp=2,data_tseg1=3,data_tseg2=1,data_sjw=1
   2000kbps:10000kbps   f_clock_mhz=80,nom_brp=1,nom_tseg1=31,nom_tseg2=8,nom_sjw=1,data_brp=2,data_tseg1=2,data_tseg2=1,data_sjw=1

Summary

Program can_moni (CAN Monitor for macOS)
Current Version Version 0.5 SR4 Build 1153 of February 5, 2022
Documentation README and program option --help
License UVS Freeware License (without warranty or support)
Standards CAN Specification 2.0 and CAN FD Specification
Driver OS X Library for PCAN-USB Interfaces
Category Industrial Communication, CAN, CAN FD, MacCAN
Operating System OS X 10.8 (x86_64), since version 0.5 SR3 macOS 11.0 (x86_64 & arm64)
Older Versions http://www.uv-software.com/files/downloads/MacCAN/PCANUSB/Utilities/can_moni/

MacCAN – macOS Library for PCAN-USB Interfaces and more

Projekt: Juni 2012 – heute (aktuell)

Projektbeschreibung

The PCBUSB library realizes a ‚PCAN-USB Driver for macOS‘ using Apple´s IOUSBKit. It supports up to 8 PCAN-USB and PCAN-USB FD devices from PEAK-System Technik, Darmstadt. The library offers an easy to use API to read received CAN messages from a 64K message queue and to transmit CAN messages. The PCAN-USB FD device can be operated in CAN Classic and CAN FD mode. Standard CAN frames (11-bit identifier) as well as extended CAN frames (29-bit identifier) are supported.
The library comes with an Objective-C wrapper and a demo application: MacCAN Monitor App.

Projektsteckbrief

Projekt MacCAN – macOS Library for PCAN-USB Interfaces and more
Zeitraum Juni 2012 – heute (aktuell)
Kunde Own development (www.mac-can.com)
Branche Industrielle Kommunikation / Feldbus
Rolle im Projekt Systemspezifikation, Softwarearchitektur, Softwareentwurf, Implementierung, Funktionstests, Dokumentation
Software / Tools / Methoden Enterprise Architect (Sparx), Apple LLVM (clang, x86_64), CUnit Test Framework, Doxygen, JIRA
Hardwareplattform PCAN-USB Adapter (PEAK), PCAN-USB FD Adapter (PEAK)

Active Steering Wheel

Projekt: Januar 2012 – Mai 2015 (41 Monate)

Projektbeschreibung

Aktivlenkung für US-amerikanischen Automobilhersteller. Unterstützung des Projektteams in Berlin mit folgender Aufgabenstellung:

  • Implementation of the software design (modules)
  • Documentation of the modules and interfaces
  • Integration of software components
  • Design and execution of Unit Tests
  • Code Reviews

Projektsteckbrief

Projekt Active Steering Wheel
Zeitraum Januar 2012 – Mai 2015 (41 Monate)
Kunde darf aus Gründen des Kundenschutzes nicht genannt werden
Branche Automotive
Rolle im Projekt Softwaredesign, Implementierung, Softwareintegration, Unit-Tests, Code-Reviews, Issue Analysis
Software / Tools / Methoden Enterprise Architect (Sparx), GHS C-Compiler (Green Hills), PC-lint (MISRA-C 2004 rules), CANoe (Vector), DET (Ford), DOORS (IBM), FuSi (IEC 26262-6), Telcon / Webex / Workshop
Hardwareplattform Freescale MPC5643 Dual-Core Microcontroller, Lauterbach Trace32 Debugger, CAN Interface Board (Vector)

Hardwarenahe Softwareentwicklung

Projekt: Dezember 2010 – Dezember 2011 (13 Monate)

Projektbeschreibung

Unterstützung der Entwicklung beim Kunden. Die Aufgabe beinhaltet:

  • Entwicklung von hardwarenahen Softwareapplikationen
  • Erstellen von hardwarenahen Treibern
  • Implementierung von Echtzeitbetriebssystemen auf Embedded Plattform
  • Anpassung von BIOS- und Treibersoftware
  • Projektbegleitung vom Requirement Engineering bis zur Validation

Arbeitspaket 1: Analog-CAN-Transmitter für Force-Feedback-Sidestick-Steuerung

Der Transmitter dient zur Übertragung von analogen und digitalen Signalen einer redundanten Sidestick-Steuerung über den CAN-Bus. Über zwei kraftgekoppelte Sidesticks im Cockpit werden das Lenksystem wie auch das Gas-/Bremssystem angesteuert. Von diesen Systemen werden die aktuellen Winkelinformationen zurück an die Systeme im Cockpit übertragen.

Aufgabe: Implementierung der Transmitter-Software (CAN-Bus).

Arbeitspaket 2: End-Of-Line Testsoftware für Flurfahrzeuge-Bedienteil

Die Truck Data Unit (TDU) wird optional im Fahrzeug installiert. Zu Beginn der Fahrzeugnutzung identifiziert sich der Fahrer über eine ihm zugeordnete Kennung an (optional über eine Tastatur mit PIN-Nummer oder über einen Kartenleser mit RFID Kennung) und zeigt damit die Nutzung des Fahrzeugs an. Beim Verlassen des Fahrzeugs meldet sich der Fahrer ab.

Aufgabe: Implementierung der Testsoftware auf dem Target für End-Of-Line Test von analogen und digitalen E/A-Signalbaugruppen, Speicherbausteinen (F-RAM, NAND-Flash, Data-Flash), LEDs, CAN-Kommunikation, Matrixtastatur, Wake-up Funktion, Card-Reader (RFID), Bluetooth-Modul.

Arbeitspaket 3: Komprimierter Download über CANopen

Bedienteil für Schwarzdeckenfertiger mit Display und CAN-Interface. Softwareupdates erfolgen über CANopen-Bootloader.

Aufgabe: Integration des zlib Inflate-Algorithmus in vorhandenen Bootloader.

Arbeitspaket 4: SPI-Bootloader für HVAC Frontpanel

Frontpanel für Klimasteuerung, zum Einbau in einen Radio DIN Schacht. Bedien- und Anzeigeeinheit mit integriertem Farbdisplay, beleuchtbaren Tasten und Drehreglern. Kommunikation mit der Hauptplatine erfolgt über Datenbussystem SPI und steuert alle Tasten- udn Encoder-Eingaben, sowie die Displayvisualisierung.

Aufgaben:
a.) Implementierung des Bootloaders (SPI-Slave).
b.) Implementierung von Testprozeduren.

Projektsteckbrief

Projekt Hardwarenahe Softwareentwicklung
Zeitraum Dezember 2010 – Dezember 2011 (13 Monate)
Kunde darf aus Gründen des Kundenschutzes nicht genannt werden
Branche Automotive
Rolle im Projekt Systemspezifikation, Systemarchitektur, Softwareentwurf, Implementierung, Funktionstests, Dokumentation
Software / Tools / Methoden Keil C166 C Compiler (uVision3), Keil ARM C Compiler (uVision4) , Microsoft Visual C++ 2008 , Enterprise Architect (Sparx) , PC-lint (MISRA-C 2004 rules) , Understand (SciTools) , CAN Analyser (IXXAT) , Doxygen, Python
Hardwareplattform Infineon XC164CS Microcontroller, Infineon XC2368B Microcontroller, NXP LPC2478 (ARM7/TDMI-S core), Keil U-Link On-chip Debugger, CAN Interface Boards (IXXAT), SPI-to-USB Adapter (Elite)

CANopen Object Browser for Linux

Download: CANopen Object Browser for Linux

Description

The CANopen Object Browser is a tool to display and browse through a CANopen Object Dictionary based on EDS-files. The program allows an online access to any connected CANopen device. This means to read and to write individual parameter values of a connected device.

The CANopen Object Browser for Linux is a Qt3 GUI application running on Linux systems (Kernel 2.6.x) and uses BerliOS SocketCAN to access the CAN-Bus. Furthermore the program offers a gateway function for interfacing CANopen with TCP/IP.

CANopen Object Browser using SocketCAN on Linux

Please note: Do not connect the program to a real application with a running CANopen network. This can damage your application.

Summary

Program CANopen Object Browser (Linux)
Current Version Version 0.2 Build 61 (testing) of November 09, 2009
Documentation Getting started and Online-help (context-sensitive)
License UVS Freeware License (without warranty or support)
Standards CANopen Specifications: CiA DS-301, CiA DS-306, CiA DS-309
Drivers BerliOS SocketCAN, CANopen-over-TCP/IP
Category Industrial Communication, CANopen, CAN, TCP/IP
Operating System Linux 2.6.x
Older Versions http://www.uv-software.com/files/downloads/COPbrowser/

Primary Flight Control System

Projekt: Juli 2009 – September 2010 (15 Monate)

Projektbeschreibung

Zertifizierungsreifmachung einer Fly-by-Wire Flugsteuerung:

  • Softwareentwicklung nach V-Modell und RTCA DO-178B für das Primary Flight Control System des Superjet 100
  • Durchführung der Softwaretests gemäß RTCA DO-178B
  • Erstellung der erforderlichen Dokumentation gemäß RTCA DO-178B

Projektsteckbrief

Projekt Primary Flight Control System
Zeitraum Juli 2009 – September 2010 (15 Monate)
Kunde darf aus Gründen des Kundenschutzes nicht genannt werden
Branche Luftfahrttechnik
Rolle im Projekt Design und Code Reviews, Softwareerweiterung, Softwaretests, Dokumentation
Software / Tools / Methoden Ameos (Aonix) UML Modeling Tool, CodeWarior (Metrowerks) C Compiler for Power Architecture Processors, QA-C/MISRA (QA Systems) Static Code Analysis, PolySpace (MathWorks) MISRA-C Code Checker, CTE (DaimlerChrysler AG) Classification Tree Editor, ClearCase / ClearQuest (Rational) Unified Change Management, Reqtify (geensys) Requirements Management / Traceability Tool, SmarTeam (Dassault Systemes) Product Data Management / Product Lifecycle Management, DO-178B (RTCA) Software Considerations in Airborne System and Equipment Certification
Hardwareplattform Freescale MPC5554 32-bit Microcontroller

Notantrieb für Blutpumpe

Projekt: Februar 2009 – März 2009 (2 Monate)

Projektbeschreibung

Anpassung der Firmware für Kompaktantriebe um Kunden-spezifische Sonderfunktion. Der Antrieb wird zur Vervollständigung des Notfallkonzepts in einer mobilen Blutpumpe eingesetzt. Hierzu wurde die Funktion des digitalen Bedien-Interface nach Kunden-spezifischen Vorgaben angepasst.

Projektsteckbrief

Projekt Notantrieb für Blutpumpe
Zeitraum Februar 2009 – März 2009 (2 Monate)
Kunde Schneider Electric Motion Deutschland GmbH & Co. KG
Branche HW- und SW-Entwicklung Mechatronik
Rolle im Projekt Softwareentwurf, Implementierung, Funktionstests, Dokumentation, Auftragsabwicklung
Software / Tools / Methoden Keil C166 C Compiler (uVision3), CAN/CANopen Tools (IXXAT)
Hardwareplattform Infineon XC164 Microcontroller, Keil U-Link On-chip Debugger, USB Oscilloscope, Multimeter