Writing software for a car gets very tricky. A racing car such as DUT series has or at least uses software and simulation in every part inside the car. Although in general the code can be divided into two parts. One of them is the controls and simulation aspect of it which optimizes how the car is running according to real-time conditions around it. The other part is software for all the circuit boards around the car which manage different systems which is very essential for the car to function as it basically defines the car.
What do you write the software for and what processes it?
Nearly all racing cars use micro-controllers and so does the DUT series. In general, we divide circuit boards for different functionality and use several micro-controllers for a group of functions. For example the battery management system (BMS) has a micro-controller of its own. The dashboard which is the driver’s user interface with the car has a micro-controller too. The micro-controller is basically the brain of the car. When the throttle is pressed the signal is transferred in percentage to the electric control unit and motor controllers are activated accordingly.
How do these micro-controllers communicate with each other?
In general, all cars use controller area network (CAN). Best part about communication with this bus is that it uses peer to peer that means there is no central processer. This allows the car to not lose most of its functionality if an error occurs. Of course, you can always expect errors in software in racing cars from Karting to F1. Designing a racing car software requires the cleanest and most redundant systems to handle errors. CAN Bus is very flexible for the same reason.
Safety features are very essential part of Software. One if statement prevents the car from spinning around in the pits if the throttle is pressed by mistake. Thus, software is one of the most integral parts of the car, in terms of safety. This is also the reason the motto the electronics department has is reliability.