OpenLCB Example: CAN Segment Startup

OpenLCB nodes on a CAN segment emit and receive a number of frames during startup of the segment. This is an example calculation of the number of messages and how long it takes.

See also the "Messages Types for Simple Nodes" note.

Message Counts

A simple CAN node, in the typical case (no contention, no non-unique MUIDs, etc) will generate the following messages at startup:


Assume a segment of 100 simple nodes, each producing or consuming 32 events (Npc = 32).

Then a total of

  100 * (8+32) = 4000 messages

will be emitted at startup.

An extended-header CAN frame is 65 bit times plus data content. Assuming (for now) 8-byte data contents, this is approximately 4000*16*8 = 512,000 bits, or about 4 seconds at 125kbps.

CAN is very good at contention management, so it's quite capable of reaching (close to) 100% utilization for something like this. Therefore, each node will be presented with those 4000 packets at about 1000 packets per second during startup.

Routing/Gateway nodes need to be able to handle the full rate. They don't have to forward the RIM/CIM frames off the segment, so the bandwidth requirements are a little less, but they still have to process those to keep an alias table.

Simple nodes that only act on P/C messages need only listen to the CIM/RIM messages at the beginning.

Site hosted by

This is SVN $Revision: 721 $