I am slowly getting into the field of wireless communications, in particular with WiFi based communications.

802.11 MAC mentions that

A station wishing to transmit first listens to the medium for a predetermined period and If it senses to be IDLE , then it transmits . If the medium is BUSY , it waits for some random time and then again senses the channel

I have two questions here:

  1. What exactly do you mean by SENSING here ? I have a radio A which wants to transmit on 2.45 GHZ. Do I transmit anything dummy data to know if its is buysy or idle ? I am thinking of programming wise

  2. how does radio A knows that channel is busy or idle ? Assuming there is no ACK concept here ?

  • $\begingroup$ If other transmitters are transmitting, then the the receive antenna will receive power above the noise power. This is what sensing is, and this is how the node knows if the channel is idle or busy. $\endgroup$ – BlackMath May 14 '19 at 20:36
  • $\begingroup$ @BlackMath . You mean to say that the RX chain of Radio A sees some power on the same frequency band above some threshold . Who decides the threshold ? $\endgroup$ – Jani May 14 '19 at 20:38
  • $\begingroup$ And Also If you dont mind commenting on this .. What parameter do a RX chain use ? like RSSI ? $\endgroup$ – Jani May 14 '19 at 20:41
  • $\begingroup$ RSSI only makes sense in relation to some desired signal. So, no, it just looks at power, exactly as BlackMath said. $\endgroup$ – Marcus Müller May 14 '19 at 21:40
  • $\begingroup$ Thank @BlackMath and Marcus for the clarification. If I am thinking right , the standard or protocol decides the threshold . $\endgroup$ – Jani May 15 '19 at 13:02
  1. The station here is continuously monitoring the energy in the medium. Let us say you want to transmit in channel 1 of 2.4GHz band. Your RF hardware is always in receive mode if you don't want to transmit anything. You are continuously sampling the incoming signal in this particular channel. You use ADC to sample and compute the energy $E = \sum |x[n]|^2 $ of these samples corresponding to window of say, 100us. This is a simplified concept of sensing. You don't need to transmit anything to sense the channel. The value $E$ is computed in terms of $dBm$ unit.
  2. After the above step, the $dBm$ value is compared against a threshold specified in standard. For example, let us say the minimum sensitivity needed for receiving QPSK modeulated data is -60dBm. You need to make sure that your transmission is above this. So you sense the channel. If the RSSI (that is $E$ computed above) is more than -60dBm, then you cannot transmit as the channel is BUSY. If it is less than -60dBm, you can transmit. But to be on safer side you can give a margin of say 5dBm. For higher modulation order (like 256QAM) the threshold will be lesser as you need to have very less ambient noise while transmitting 256QAM signals.

1/ To answer your first question, of course you can always program some dummy bytes to be transmitted, but you could try working with important control frames such as beacons or probe responses, so that you get more familiar with the Wifi standard. You can find the frame formats at https://standards.ieee.org

2/ Channel sensing is performed by the receiver to check if there is an ongoing transmission 'over-the-air'. The clear channel assessment (CCA) threshold determines if the channel is busy or not. For example, a CCA threshold of -60 dBm implies that if the receiver is able to detect a signal (not decode) that is above -60 dBm, then the channel is busy. If not, the channel is idle. There is yet another important parameter, the receiver sensitivity (or the energy detection threshold). The receiver sensitivity determines the power threshold over which a desired signal has to be received, before the whole decoding process.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.