The one downside, or rather just an added analysis point, of using only OEM CAN components in the build is that I'll have to make sure that everything plays well together. Each component has CAN ID's that it uses for status messages and ones it listens to for commands. The complicated issue here is that these modules were designed for use on different vehicles, and different OEMs all together. If I threw everything on a single CAN bus two modules could use the same ID for status messages, or even worse, a status message from one module could be a command ID for another.
Now if I had the CAN documentation for each of these modules I could separate those with overlapping CAN ID's onto different buses, but I don't have these documents. I have a pretty good idea of what CAN messages these devices need to receive to turn on and operate, but there are a lot of unknowns on any random messages these modules would react to or any random status messages that they may broadcast under certain conditions.
In order to protect against any unforeseen CAN conflicts, I've grouped and separated CAN modules onto a total of 6 CAN buses. As a general rule of thumb, if modules were used on the same production vehicle it should be safe to place these onto the same CAN bus. Now I need to be careful that these weren't on separate buses on the original vehicle, but luckily for all the Azure Dynamics components that were found on the Ford Transit Connect EV I have the *.dbc file, so I know exactly what modules are on each bus and what message ID's they use.
The diagram below is the current CAN layout that I plan on using, with the 'CAN Logic Modules' being the custom CAN controller that I will be developing based upon the ASIL D rated hardware and the TI TMS570LC dual core processor.
CAN_VEH_HS: The main high speed CAN bus on the RX8. I know very little about this CAN bus other than some initial research a few individuals have done and then posted online. With my CAN tools I'll still have to figure out what ID and the message specifics of things such as throttle pedal and brakes to use, but that will come at a later phase than now. (hopefully not too far away)
CAN_EV: This is the basically all the components that were on the Ford EV Transit Connect. The DC/DC Converter, DMOC 645 Motor Controller, and the Air Conditioning Compressor.
CAN_BMS: This is the bus that will be used for the BMS and the high voltage battery chargers. The Orion BMS has two CAN buses and I have a feeling that this bus is only used for HV charger commands, and that the secondary bus is used for BMS status messages, but at least I'll be able to monitor and keep up to speed on everything that its doing. The CAN bus the BMS uses for status messages seems to have up to 24 bytes of information on each of its extended CAN ID's, so I assume its running in some unique CAN mode that I haven't figured out yet. That being said, I'm pretty confident that this extended CAN ID BMS bus must remain separate as to not cause internal module faults.
CAN_COM: The is the bus that I'm referring to as the common bus. its the bus that I will use to pass information from one CAN controller to the other. And because these are all signals that I will create and define, I can ensure that they don't conflict with any other messages on that bus if I know exactly what ID's the other modules use. This is exactly why I'm using Chrysler components on this bus as well... as I happen to know exactly what IDs these modules use. I eventually plan to build Adaptive Cruise Control and Lane Centering on this vehicle for a limited Highway Autonomy system, so this bus will be used for surrounding vehicle and environment sensors.
CAN_VEH_LS: This will be the RX8 low speed bus. I imagine this will have components such as radio and HVAC on this bus that I'll need to be able to control like the A/C compressor. This should also give me access to any buttons that I could later use for features like ACC and other automated features.
CAN_SW: This bus exists because not all CAN buses are identical. This component, the high voltage cabin heater, uses a Single Wire GM low speed CAN bus. Its the only component I plan to use with this specific type of CAN bus, but even so, it must live on a separate CAN bus that I can use a Single Wire CAN transceiver chip.