Did you know that most modern engine control units (ECUs) for racing cars are FPGA-based? Factory car ECUs are made for only a few select production engines, and since they are tied to hard silicon to reduce costs, they lack the flexibility to perform the on-the-track miracles that can be achieved by modern racing ECUs.
A fast-revving Formula 1 or Grand Prix engine might hit 15,000RPM or more! At that speed, there are scant microseconds per revolution to determine the optimal fuel and firing timing. On its own, a conventional MCU may not be responsive enough at that critical moment, resulting in a misfire on a cylinder.
FPGAs have come to the rescue, allowing the customization required to support high-end engine features like 12 cylinders, twin turbochargers, and variable valve timing -- all in addition to ignition and fuel timing, of course. The FPGA's flexibility allows just a few ECU configurations to accommodate a very wide range of engine and vehicle types.
As an example, consider the F88 ECU from Life Racing, a company that specializes in creating custom engine, chassis, and gearbox electronic control systems for professional motorsports.
The F88 ECU uses a high-speed RISC processor for code execution combined with a large FPGA for high-speed engine position tracking. This allows the scheduling of code to be independent of signal patterns, increasing flexibility, efficiency, and accuracy under transient conditions. This powerful combination also supports advanced control algorithms that are easy for the end user to implement.
The unit is designed to control the most complex engines, including turbocharged, supercharged, twin drive-by-wire, quad-cam, and many more. All this hardware is packaged in a lightweight CNC billet aluminum case designed to withstand the harshest of motorsport environments. Here's a brief summary of the features.
Processing
- A powerful RISC CPU for advanced strategy execution
- A custom synchronous FPGA processor for engine position tracking and output diagnostics up to 25,000RPM
Inputs
- Twenty-four user-configurable general-purpose analog sensor inputs, including up to 16 bipolar, inductive, or hall-effect speed/engine position inputs
- Six dedicated inputs: two acoustic knock sensor inputs, two wideband (NTK) lambda sensor interfaces, and two K-type thermocouple sensor interfaces
Outputs
- Twenty-eight user-configurable general-purpose pulse width modulated (PWM) power outputs, including:
- Eight ignition coil outputs -- IGBT or TTL (software configurable)
- Sixteen fuel injector outputs
- Two full bridges, which are also configurable as four half-bridges or four PWMs (DbW and HDP-5)
Interfaces
- 100MHz full duplex Ethernet for calibration, configuration, and data download
- Three CAN 2.0B interfaces for communication with other controllers or logging systems
- An RS-232 serial interface for communication with other controllers or logging systems
Memory
- 4MB or 8MB battery-backed internal logging memory
- Downloaded in less than 10 seconds via Ethernet
- Time/date stamped data via real-time clock
You may be surprised to learn that all the major FPGA vendors are players in the racing ECU game. Each team has its favorite. Anyone who studies past press releases can get a flavor for some of the many different racers using FPGAs.
Some of these ECUs are programmed graphically using a GUI on a laptop. In this case, items like PID (proportional/integral/differential) controller loops and other hardware elements are dragged and dropped to form a block diagram of the control system, which is subsequently downloaded into the ECU (a bit like Simulink from MathWorks).
The interesting thing is that high-end features that start in sport cars and luxury automobiles tend to trickle down into mainstream consumer vehicles over time. What FPGA-based features would you like to see in your next car or truck?