Key Takeaways

  • A bus conflict is two drivers active on one pair, producing a level the receiver cannot resolve into either message.
  • Contention is electrical, not logical: the stronger driver dominates and every listener decodes garbage.
  • Most half-duplex conflicts trace to direction-control timing, where the driver is still on when the peer replies.
  • Carrier sense and a master-slave order prevent conflict by allowing a single transmitter at a time.

1. What Is a Bus Conflict?

A bus conflict is two or more transceivers driving the same conductors at once, so the receiver sees a level that represents neither transmission.

  • Electrical, not logical: the two output stages fight over the same pair, and the resulting differential voltage sits inside the receiver threshold band or follows whichever driver is stronger. Firmware does not see a protocol error; it sees a byte that nobody sent.
  • Intermittent by nature: a conflict lasts for as long as the overlap between two transmissions lasts. One frame in a thousand may be corrupted, which makes the fault easy to dismiss as ordinary noise.
  • Timing-driven on half-duplex links: the most common trigger is a direction-control edge that arrives late, leaving the local driver enabled while the remote node answers.
  • Shared-channel equivalent: on a radio channel the same failure appears when two nodes key up in the same slot, and both packets are lost rather than merged.

2. How Does a Bus Conflict Corrupt a Frame?

A conflict corrupts a frame by handing the receiver a level that is defined by the contention rather than by either transmitter.

  1. Two drivers assert opposite levels. One transceiver drives the pair toward a differential high while the other drives it toward a differential low. A transceiver is built to drive a terminated cable, not to fight a second driver, so this is an abnormal mode for both of them.
  2. The receiver sees a non-decidable level. The differential voltage at the receiver is the result of the two outputs and the cable impedance. It can land inside the input threshold band, or it can follow the stronger driver, and either way the comparator output does not cleanly represent a one or a zero.
  3. Current is limited by drive strength and cable resistance. The two output stages are joined through the twisted pair and its series resistance, so the current that flows is set by driver capability and loop resistance, not by any protocol limit.
  4. Every listener decodes garbage. Because the bus carries neither intended message, all nodes on the segment receive bits drawn from the contention, and each frames them differently depending on where its sampling point falls.
  5. Longer overlaps raise the damage risk. A short overlap produces a corrupted byte, while a driver that stays enabled through an entire reply keeps that current flowing and heats the output stages.

3. What Is Listen-Before-Talk?

Listen-before-talk is an access method in which a node senses the medium and waits until the channel has been quiet for a defined period before it transmits.

  • Carrier sense is the core rule: the transmitter checks the channel before it keys up, which is the physical-layer version of looking before crossing.
  • Backoff separates simultaneous listeners: two nodes that both hear idle at the same instant will both transmit, so a random or scheduled backoff spreads their attempts apart.
  • Orderly access removes the guesswork: a master-slave order gives each station a turn, so a single transmitter is addressed at a time and contention cannot arise.
  • Direction control is the same idea on a wire: in half-duplex RS485 the driver must be switched off before the peer replies, which is a scheduled handover rather than a sensed one.
  • Hidden nodes remain a limit: carrier sense detects only the stations it can hear, so two nodes out of range of each other can still overlap at the receiver.

4. Bus Conflict vs Listen-Before-Talk: What Is the Difference?

Bus conflict describes the failure, while listen-before-talk and a disciplined access order describe the methods that keep a single transmitter on the medium.

Dimension Bus conflict (uncontrolled access) Listen-before-talk and polling
What protects the bus Nothing at the physical layer; a protocol timeout is the recovery Carrier sense plus a turn order, so a single driver is active at a time
What it costs in latency No added delay while idle, but retries reuse the bandwidth of the frames that failed A listen window and a backoff add a small delay to each transmission attempt
Behaviour under heavy traffic Collisions rise with load, and useful throughput can fall as more nodes transmit Access is serialised, so latency grows predictably instead of collapsing
What happens on a hidden node The two transmissions overlap at the receiver and both are lost Carrier sense cannot hear the hidden node, so an access order or routing layer has to cover it
What to verify in the field Direction-pin timing, echo, and whether two masters are enabled on the segment Listen window length, backoff range, and that the driver is off before the reply starts

The decision rule: use listen-before-talk or a polling order whenever more than one station can transmit, and treat uncontrolled access as acceptable only when a single master is guaranteed by design.

5. Bus Conflict Parameters and Direction-Control Timing

The parameters below decide whether contention appears on a shared pair or a shared channel.

  • Direction-control timing: the enable and disable edges must bracket the frame with a guard interval of at least one character time. A late disable edge leaves the driver on while the peer answers.
  • Carrier sense threshold: the receiver should report busy a few decibels above its own noise floor. Set too high, a distant but valid transmission looks idle.
  • Listen window and backoff: a quiet period of a few milliseconds, then a random backoff in the tens of milliseconds, separates stations that sensed idle together. A short window misses a slow transmitter.
  • Bus idle detection: the idle state of a differential pair comes from fail-safe biasing, not from the absence of data. Without bias the pair floats and idle detection is unreliable.
  • Echo suppression: on a half-duplex radio the transmitter hears its own packet, and an unfiltered echo can be read as an incoming frame, which creates the conflict it was meant to avoid.
  • Retry and timeout values: a timeout must exceed the worst-case listen window, backoff and air time combined, otherwise retries land in an occupied channel.
  • Termination and the contested level: 120 ohm at both trunk ends defines the loaded level a driver has to produce, and a missing terminator widens the eye.
  • Watchdog recovery: a node stuck with its driver enabled holds the bus permanently, so a watchdog that disables the driver on a stalled transmit path returns the segment to service.
  • Logging that separates corruption from loss: count checksum errors and timeouts in separate registers, because corruption points at contention while loss points at timing.

6. When to Use Listen-Before-Talk and When Not To

Good fit for carrier sense and orderly access

  • Shared radio channels where several nodes report to one gateway and no time slot is reserved in advance.
  • Multi-drop RS485 trunks where more than one device could be enabled by a firmware fault.
  • Networks where a hidden node is possible and the routing layer already retries lost packets.

Poor fit for carrier sense

  • A single master with a strict request-response order, where carrier sense adds delay to a channel that is idle by construction.
  • Deterministic control loops, where the extra listen window and backoff would break the required cycle time.
  • Very short, always-idle frames between two fixed peers, where turn-taking is already guaranteed.

7. Real-World Applications

In industrial telemetry a shared radio channel often carries several remote nodes that report to one concentrator, and the physical problem matches a wired bus: if two transmitters key up together, the receiver captures a mixture and the frame is lost. Because the medium is shared over the air, the access rule has to be enforced by the radio or by the host protocol above it.

Ebyte modules support both routes. The E22-400T33S is a UART wireless serial port module built on the Semtech SX1268, 410.125 to 493.125 MHz with a default of 433.125 MHz, at 33 dBm, with listen-before-talk and RSSI so the host can sense the channel before keying up. The E22-400T22D-V2 adds relay networking and a wide 2.3 to 5.5 V supply with a 2 uA sleep current, which suits nodes that spend most of their life listening. On the wired side, the E90-DTU(400SL30L) is a 30 dBm LoRa radio with RS485 and 3.3 V TTL ports, positioned for Modbus slave polling, where the master imposes the turn order and the radio has to turn its driver around cleanly. The MA01-AACX2220 is a Modbus RTU I/O module with two digital inputs, two analogue inputs, two switch outputs and a watchdog, and that watchdog releases a segment if a driver is left enabled.

Antenna placement decides whether carrier sense sees a realistic picture of the channel. A poorly matched antenna lowers the received level, so a node transmitting nearby can fall below the carrier-sense threshold and be treated as idle. Keep the antenna clear of metal and verify the RSSI readings of the far nodes rather than assuming they match the near ones.

8. FAQ: Bus Conflict in Practice

Q1: What causes a bus conflict on an RS485 network?

A bus conflict on RS485 is caused by two drivers being enabled at the same time, and the usual reason is direction-control timing. The driver is still on when the slave begins to answer, or two firmware paths transmit without a shared order. The overlap corrupts the level rather than raising a clean protocol error.

Q2: How do I tell a bus conflict from ordinary noise?

A conflict corrupts data while two drivers overlap, so it appears as occasional checksum errors that cluster around specific traffic patterns, while noise tends to scale with cable length and nearby motor activity. Watch the direction pins and count errors against retries.

Q3: Why do my RS485 frames arrive corrupted only sometimes?

Intermittent corruption points at a physical contention window rather than a configuration error. Check the following in order:

  • Frames fail only at higher baud rates -> the direction-disable guard interval is shorter than one character time, so the driver is still on at the reply.
  • Corruption follows a specific poll -> two nodes answer the same request, or a repeater echoes the request back.
  • Errors rise when a second master is added -> two controllers are transmitting into the same segment.
  • Errors appear with long cable only -> termination or biasing is missing, so the contested level fails sooner.

Q4: How does carrier sense prevent collisions on a shared channel?

Carrier sense makes a node check whether the channel is in use before it transmits, so a station that hears traffic defers. Two stations that hear idle at the same instant still collide, which is why the rule is paired with a random or scheduled backoff. Together they hold collisions to the cases carrier sense cannot observe.

Q5: What is a hidden node and why does it still cause collisions?

A hidden node is a station whose transmissions are audible to the receiver but not to another transmitter, so carrier sense reports idle even though the channel is busy. Hidden nodes are common when range or obstacles differ between paths. The fix is an access order, a routing layer or repeated transmissions.

Q6: Is listen-before-talk the same as collision detection?

No. Listen-before-talk checks the medium before transmitting, while collision detection checks it during transmission and reacts after a conflict has begun. A half-duplex radio cannot reliably hear its own signal while transmitting, so it relies on listen-before-talk, backoff and acknowledgement instead of detection.

9. Bus Conflict Pre-Flight Checklist

  1. Confirm that a single station enables its driver at any instant, and that firmware enforces the rule rather than assuming it.
  2. Set the direction-control guard interval to at least one character time, and switch the driver off before the peer can reply.
  3. Choose a carrier-sense threshold a few decibels above the receiver noise floor, then verify it with RSSI from the farthest node.
  4. Fit fail-safe biasing and 120 ohm termination at both trunk ends, so idle is a defined state rather than a floating one.
  5. Log checksum errors and timeouts in separate counters, and add a watchdog that disables a stalled driver.