|
|
|
|
|
by DanielHB
408 days ago
|
|
I worked in similar systems and you are 100% right. 80% of the time was spent on communication protocols between the different boards and microcontrollers. QAing and solving issues from short-sighted dozens of unique custom protocols that worked in non-standard ways (every time a component needs to talk to another component a new protocol was invented). When you have dozens of communication lines required between different parts of the system it becomes just as complicated as your average micro-service cloud. Really, a car is a distributed system with dozens of "services". An analogy is that each microcontroller-microcontroller communication use their own custom binary-encoding API that runs on multiple different, incompatible versions of HTTP. We actually spent considerable amount of time just developing our own custom protocol for communication that could run on all sorts of different physical interfaces (CAN, ethernet, modbus, etc) as well as a series of proxies between devices (so component A can talk to component C through a proxy in component B). And if we had to use a custom protocol from an external manufacturer we had to wrap it into our own custom protocol. That protocol was actually used for our cloud data reporting as well, so eventually all our data communication would use a single unified protocol from micro-controller to IoT Linux to cloud data-ingestion pipeline to database. |
|
Ultimately it's a price control strategy to pit these suppliers against each other to lower costs. But it means that designing these electronic sub-systems isn't just a question of the design itself, but also of managing all of these supplier relationships as well, they all have different contracts, you would have to coordinate all of them at once to make sure things are interoperable, etc.