Embedded Software Design for a Microcontroller-Based Data Logger for Stepper Motor Fault Diagnosis

Abstract

Two independent pieces of embedded software have been developed to operate a data logging system based on a PIC18F8722 microcontroller for a stepper motor diagnosis application. The first piece of embedded software is implemented with several state machines in a foreground/background (superloop) structure, while the second is implemented as an RTOS-enabled software based on the Salvo Lite cooperative real time operating system. The superloop implementation results in data for up to 8 stepper motor channels being logged to an SD card and RS-232 link at a rate of 10 Hz, with approximately 50% processor overhead time reserved for RS-232 communications. The RTOS-enabled implementation results in an improved high priority interrupt service routine execution time, but is overall slower to respond to interrupts compared to the superloop implementation due to the cooperative nature of the chosen operating system. A custom binary-to-ASCII conversion software is also developed for converting the resulting data log file produced by both software implementations to human readable text, as the result of both implementations is a binary data log file containing data of interest for up to 8 stepper motors. All of this software is designed for a stepper motor diagnosis application at the National Ignition Facility, with the objective being an increase in the overall operational availability of the facility through an improved stepper motor diagnosis process facilitated by resulting data log.