I created a PSoC4200-L project,did some tests. The CAN TX/RX pins can only be routed to dedicate fixed-function pins, so we cannot use OR gate or digital Multiplexer/De Multiplexer to realize the combination directly inside PSoC.
I tired some ways to bypass the internal routing limitation, but this consumes additional pins. Below schematic is a example, but it consumes 8 IOs finally, so a bad idea i think, except the unused pins are sufficient.
Sorry, it's a bad idea to use multiplexers because the CAN-bus component is fully autonomous, so what about the timing of the control register, also the Rx side needs to listen to both busses at the same time.
I just made an example of how I think it should work:
If one of the Tx lines is TTL low the combined Tx line will be low or '0'. According to the can_bus protocol, the CAN-controller with the highest priority-ID will win the conversation when they collide and the other CAN-Tx will stop talking, so a possible conflict between the CAN-bus controllers is automatically solved.
I just ordered some CY8CKIT-043 because I don't own any kits with CAN-bus. The CY8C4247AZI-M485 chip in this cheap kit has 2 CAN-bus controllers and the above scheme I could build with it. I will try to make 2 kits communicate without a transceiver, then I need to connect the Rx with Tx lines also otherwise the automatic CAN-conflict-solving won't work. So in a few days, I can report if it is working or not.
It's ideal for me to start debugging my project without the need for CAN-bus transceivers or expensive kits, the distance is limited though.
I also ordered 32kHz crystals for this kit because I figured out that this option is needed for the CAN-bus to be in sync according to the max. clock deviation.
The CY8CKIT-043 seems to have already the capacitors to cooperate with the optional WCO crystal.