|
Re: Can the CAN bus be overloaded with too many transactions ?
Sorry for the slow response -- travelling with little time and not very good connectivity...
This is mostly speculation/educated guesswork, but the 2CAN basically just gets packets from the Ethernet side and takes the message payload and puts it onto the CAN bus. So, messages (in a single packet) get serialized on the Ethernet side, and they won't get interleaved as they are placed on the CAN bus, even if somehow the 2CAN were to have multiple messages ready to place onto the CAN bus. If the Ethernet side is faster (as it likely is) it would be possible for multiple messages to arrive on the Ethernet side while a prior message were still being sent on the CAN side. In this case, these would be buffered and sent in order.
From the CAN side to the Ethernet side, it is very similar. So, the 2CAN is not involved in serialization in the sense of not sending another command while waiting for a response to a prior command at all. Given this, it doesn't matter if the commands are to the same Jaguar or different ones. The main thing you get with the 2CAN is just a fatter pipe that lets you get more commands through and also reduces the time for even single commands to make it from one end to the other (and back). In other words, the 2CAN winds up looking like a faster wire than the serial scheme but not different in terms of functionality. Of course, there is the whole web interface but this isn't part of the communications path when it is being used in the robot.
For bus saturation, you need to work out how much data is flowing across the bus in a unit of time (typically one second). This has to account for traffic in both directions. You have to compare this to the bandwidth of the bus. If the utilization is more than a certain percentage of the available bandwidth, you are likely going to have issues. For example, commands may spend a long time waiting before they make it out onto the wire. Once you get into this situation, things can continue to back up more and more. Synchronous execution may limit this, but you could still see some of it when using multiple threads. With serial connectivity, the serial bus is going to have the lower/limiting bandwidth. When using the 2CAN, the CAN bus itself is going to be the limiting factor.
Last edited by nuttle : 20-02-2014 at 23:20.
|