Page 17 of 90
CCT24
It is often desirable to limit the amount of data a CSMA remote can send in one transmission. This pre-
vents one remote from hogging network throughput. To accommodate this, the CCT24 provides a
CSMA_
RemtSlotSize
parameter that is user configurable. When a remote has transmitted CSMA_
RemtSlotSize
bytes on a given hop, it will stop transmitting until the next hop. Note that this remote will
have to contend for the channel on the next hop, so it is not guaranteed that it will be the first remote to
transmit on the next hop or that it will be able to transmit on the next hop at all. To allow multiple remotes
a chance to transmit on the same hop, the
HopDuration
parameter must be set long enough to support
the
BaseSlotSize
, plus the number of remotes to transmit per hop multiplied by the CSMA_
RemtSlotSize
,
plus the number of remotes to transmit per hop multiplied by the
CSMA_Backoff
. Because of the way
CSMA channel access works, this does not guarantee that the desired number of remotes to transmit on
a hop will always be able to transmit on a single hop. This is due to the fact that when a remote with data
to send finds the channel busy a second time, it waits for a longer period to time before testing the chan-
nel again. This time will continue to increase until the remote finds the channel clear. In practice this is
unlikely to present a problem, as CSMA networks are used with devices that infrequently have data to
send.
The
DNT Throughput Calculator
can be used to determine the
HopDuration,
but it will be necessary to
increase the number of slots to a value greater than the number of remotes to transmit on a single hop to
account for the backoffs. It is indeterminate how many backoffs may occur during a single hop, which is
why the number of remotes that transmit on a given hop cannot be guaranteed. Note that the
CSMA_
Backoff
parameter sets the length of time a remote will wait to recheck the channel when it has detected
that the channel is busy. The second time a remote detects that the channel is busy, it will increase the
amount of time it waits until it checks again. Every subsequent time it detects a busy channel it will in-
crease the amount of time it will wait in a geometric fashion. This continues until it detects an idle chan-
nel. So while a short
CSMA_Backoff
can decrease the time between when one remote transmits and the
next remote transmits, it can actually lead to a longer time between remote transmissions than a longer
backoff. This can occur when the remote checks the channel multiple times during the transmitting re-
mote’s transmission causing the back-off time to be increased.
2.11.4 Latency
The worst case latency for TDMA access (without routers), excluding retries, occurs when the radio
receives data just after its turn to transmit. In this instance, it will have to wait the length of time set by the
HopDuration
to begin transmitting the data. If the radio is receiving data over its serial port at a rate higher
than its throughput, this will only occur at the beginning of a transmission that spans several hops.
In a polling application, latency is affected by how long the remote and/or its host takes to respond, and
when in the hop data is ready to be transmitted. Since a remote can begin transmitting at practically any
time during the hop after the base has transmitted, the latency can be less than
HopDuration
. However,
the remote transmission may extend over two hops if it starts late in the first hop.
Latency for any given remote in a CSMA network is particularly difficult to characterize. If many remotes
have data to send, the latency for the last remote to send will be the length of time it takes all the other
remotes to send. The CSMA scheme used in the CCT24 is designed to allow each remote an equal
opportunity to transmit, so the concern is not that one remote is locked out, but just how long it will take a
number of remotes with data to sent to each gain access to the channel and send their data. The more
data that needs to be sent, the more time will be consumed checking the channel and backing off when
the channel is busy. Again, this is why CSMA networks are best used when there are a large number of
nodes that send data infrequently.