A board already in production have an expansion header because this was anticipated: There is need of a second MCU (almost ALL resources of MCU #1 were used)
At this stage:
MCU #2 has to communicate via canbus, asking and reading back from devices on the bus and communicating the values to the master MCU.
MCU #1 doesn't need to say much to #2.
I think a simple UART should be more than adequate.
In the future, however, MCU #2 will also have to do signal handling and manipulation and faster communication will be nedded from #1 to #2 and vice-versa.
For example, maps are saved in external eeprom, which can be accessed only by #1. Communication with computer host is also possible from #1 only
this is the scheme:
+------------+ +-------+ +-------+ +----------------+
| An/Dig IOs | | | | | | |
| EEPROM | /---\ | MCU | /---\ | MCU | /---\ | CAN |
| Host Comm | \---/ | #1 | \---/ | #2 | \---/ | Maybe Add. IOs |
| Port | | | | | | |
+------------+ +-------+ +-------+ +----------------+
and of course, much higher bandwidth would be needed, for example at startup when loading maps from eeprom to #2 using #1 as a buffer in the middle. what did you do in such situations?
Changing from UART or other standards at any point is possible as i have four reprogrammable pins (aah, the beauty of PPS)
*** the boards will be stacked on top of each other. i don't expect the comm traces lenght to be more than 5-6 cm ****