A world wide ship engines manufactorer ran into component obsolescence problem of their 20 year old engine control system. The system was based on an 68003 with over 50 sensors attached, covering thermocouple, pt100, current, frequency and digital inputs. It had modbus and terminal console communication capabilities, as well as, an a 1Mbs SDLC redundant network. The source code was partly written in assembler. The goal was to create a backwards compatible product – fulfilling ‘form, fit, function’, in order to be used as replacement unit in a multiple unit setup.
Solution
A STM32F4 micro controller was selected due to the advanced features of the pll clock in order to deliver system timing for the SDLC network. The Zilog 85C30 Dual SDLC controller was register mapped onto the F4, faking a bus interface, using speed optimized low level routines. The original C-code and the by hand converted assembler was merged in a Visual Studio solution using VisualGDB’s comfortable cross platform tools for debugging. For firmware updates the old terminal interface was emulated using Kermit protocol download utilizing the F4 ‘s dual flash bank capabilities.