In a bus system, having a bus and a plurality of nodes coupled to the bus, each node having a predetermined priority, an apparatus for implementing decentralized arbitration comprising a plurality of arbitration devices, one provided for each node and coupled to the bus, each device comprising:
- means for self-enabling the node corresponding to the arbitration device for arbitration;
- means for monitoring the bus to detect a bus idle condition and for measuring an amount of time elapsed after the bus enters into the bus idle condition;
- means for determining whether the node corresponding to the arbitration device is an enabled message node an enabled message node being an enabled node that has a message to send on the bus;
- means for interacting with other arbitration devices when the node corresponding to the arbitration device is an enabled message node to arbitrate and select an enabled message node after the bus is in the bus idle condition for a first period of time, such that the enabled message node having a highest pre-determined priority among the enabled message nodes is selected to use the bus;
- and
- means for self-disabling the node corresponding to the arbitration device from arbitration once the node is selected;
- said means for enabling responsive to the bus being in an idle condition for a second period of time which is longer than the first period of time to enable the node corresponding to the arbitration device for arbitration, while the plurality of nodes and said bus are running and stable.