User Tools

Site Tools


en:developers:documentation:ieee80211:802.11n

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

en:developers:documentation:ieee80211:802.11n [2015/01/26 09:49] (current)
Line 1: Line 1:
 +
 +Go back –> [[en/​developers/​Documentation/​ieee80211|IEEE-802.11 standards]] ​
 +
 +
 +===== Review of IEEE-802.11n =====
 +
 +IEEE-802.11n was designed to allow transmissions of up to 100Mbps, thanks to this work, devices are theoretically capable of transmitting at rates of up to 600Mbps (PHY data rate). This section summarizes what 802.11n is for developers. ​
 +
 + 
 +
 +
 +===== Spatial streams =====
 +
 +802.11n capable hardware can have more than one spatial stream. You can have multiple spatial streams all capable of transmitting and receiving concurrently. Each stream can use multiple RX or TX chains. Streams are different than chains, each TX or RX chain consists of a dedicated radio and at least one antenna (a chain can also use //antenna diversity//​). One stream can use one chain or move between them intelligently (this is called //selection diversity//​). Theoretically,​ you can use as many chains as needed for one stream. This differs from the notion of //antenna diversity// on 802.11abg hardware. In //antenna diversity// you are switching the antenna you use to TX or RX dynamically. ​
 +
 +The NxM nomenclature tells us about the number of TX/RX chains, and has nothing to do with streams. It should be noted that each stream increases the overall throughput. See below for nSS on the table. ​
 +
 +
 +===== MCS Rates =====
 +
 +With 802.11n you can use a new set of rates designed specifically for high throughput (HT). Below are the HT Modulation and Coding Schemes (MCS) rates and its dependent symbols. These come from section 20.6 from 802.11n D5. 
 +
 +Legend ​
 +|**nSS** |number of spatial streams |
 +|**R** |coding rate |
 +|**nBPCSS(iSS)** |Number of coded bits per signal carrier for each spatial stream, iSS = 1..., nSS |
 +|**nSD** |Number of complex data numbers per spatial stream per ODFM symbol |
 +|**nSP** |Number of pilot values per OFDM symbol |
 +|**nCBPS** |Number of coded bits per OFDM symbol |
 +|**nDBPS** |Number of data bits per OFDM symbol |
 +
 +
 +==== HT20 rates ====
 +
 +HT20 mode uses 20 MHz width channels. ​
 +|**MCS Index** |**nSS** |**Modulation** |**R** |**nBPCSS(iSS)** |**nSD** |**nSP** |**nCBPS** |**nDBPS** |**Mbps (800 ns GI)** |**Mbps (400 ns GI)** |
 +|0 |1 |BPSK |1/2 |1 |52 |4 |52 |26 |6.5 |7.2 |
 +|1 |1 |QPSK |1/2 |2 |52 |4 |104 |52 |13.0 |14.4 |
 +|2 |1 |QPSK |3/4 |2 |52 |4 |104 |78 |19.5 |21.7 |
 +|3 |1 |16-QAM |1/2 |4 |52 |4 |208 |104 |26.0 |28.9 |
 +|4 |1 |16-QAM |3/4 |4 |52 |4 |208 |156 |39.0 |43.3 |
 +|5 |1 |64-QAM |2/3 |6 |52 |4 |312 |208 |52.0 |57.8 |
 +|6 |1 |64-QAM |3/4 |6 |52 |4 |312 |234 |58.5 |65.0 |
 +|7 |1 |64-QAM |5/6 |6 |52 |4 |312 |260 |65.0 |72.2 |
 +|8 |2 |BPSK |1/2 |1 |52 |4 |104 |52 |13.0 |14.4 |
 +|9 |2 |QPSK |1/2 |2 |52 |4 |208 |104 |26.0 |28.9 |
 +|10 |2 |QPSK |3/4 |2 |52 |4 |208 |156 |39.0 |43.3 |
 +|11 |2 |16-QAM |1/2 |4 |52 |4 |416 |208 |52.0 |57.8 |
 +|12 |2 |16-QAM |3/4 |4 |52 |4 |416 |312 |78.0 |86.7 |
 +|13 |2 |64-QAM |2/3 |6 |52 |4 |624 |416 |104.0 |115.6 |
 +|14 |2 |64-QAM |3/4 |6 |52 |4 |624 |468 |117.0 |130.0 |
 +|15 |2 |64-QAM |5/6 |6 |52 |4 |624 |520 |130.0 |144.0 |
 +|16 |3 |BSSK |1/2 |1 |52 |4 |156 |78 |19.5 |21.7 |
 +|17 |3 |QPSK |1/2 |2 |52 |4 |312 |156 |39.0 |43.3 |
 +|18 |3 |QPSK |3/4 |2 |52 |4 |312 |234 |58.5 |65.0 |
 +|19 |3 |16-QAM |1/2 |4 |52 |4 |624 |312 |78.0 |86.7 |
 +|20 |3 |16-QAM |3/4 |4 |52 |4 |624 |468 |117.0 |130.0 |
 +|21 |3 |64-QAM |2/3 |6 |52 |4 |936 |624 |156.0 |173.3 |
 +|22 |3 |64-QAM |3/4 |6 |52 |4 |936 |702 |175.5 |195.0 |
 +|23 |3 |64-QAM |5/6 |6 |52 |4 |936 |780 |195.0 |216.7 |
 +|24 |4 |BPSK |1/2 |1 |52 |4 |208 |104 |26.0 |28.9 |
 +|25 |4 |QPSK |1/2 |2 |52 |4 |416 |208 |52.0 |57.8 |
 +|26 |4 |QPSK |3/4 |2 |52 |4 |416 |312 |78.0 |86.7 |
 +|27 |4 |16-QAM |1/2 |4 |52 |4 |832 |624 |156.0 |173.3 |
 +|28 |4 |16-QAM |3/4 |4 |52 |4 |832 |624 |156.0 |173.3 |
 +|29 |4 |64-QAM |2/3 |6 |52 |4 |1248 |832 |208.0 |231.1 |
 +|30 |4 |64-QAM |3/4 |6 |52 |4 |1248 |936 |234.0 |260.0 |
 +|31 |4 |64-QAM |5/6 |6 |52 |4 |1248 |1040 |260.0 |288.9 |
 +
 +
 +==== HT40 rates ====
 +|**MCS Index** |**nSS** |**Modulation** |**R** |**nBPCSS(iSS)** |**nSD** |**nSP** |**nCBPS** |**nDBPS** |**Mbps (800 ns GI)** |**Mbps (400 ns GI)** |
 +|0 |1 |BPSK |1/2 |1 |108 |6 |108 |54 |13.5 |15.0 |
 +|1 |1 |QPSK |1/2 |2 |108 |6 |216 |108 |27.0 |30.0 |
 +|2 |1 |QPSK |3/4 |2 |108 |6 |216 |162 |40.5 |45.0 |
 +|3 |1 |16-QAM |1/2 |4 |108 |6 |432 |216 |54.0 |60.0 |
 +|4 |1 |16-QAM |3/4 |4 |108 |6 |432 |324 |81.0 |90.0 |
 +|5 |1 |64-QAM |2/3 |6 |108 |6 |648 |432 |108.0 |120.0 |
 +|6 |1 |64-QAM |3/4 |6 |108 |6 |648 |486 |121.5 |135.0 |
 +|7 |1 |64-QAM |5/6 |6 |108 |6 |648 |540 |135.0 |150.0 |
 +|8 |2 |BPSK |1/2 |1 |108 |6 |216 |108 |27.0 |30.0 |
 +|9 |2 |QPSK |1/2 |2 |108 |6 |432 |216 |54.0 |60.0 |
 +|10 |2 |QPSK |3/4 |2 |108 |6 |432 |324 |81.0 |90.0 |
 +|11 |2 |16-QAM |1/2 |4 |108 |6 |864 |432 |108.0 |120.0 |
 +|12 |2 |16-QAM |3/4 |4 |108 |6 |864 |648 |162.0 |180.0 |
 +|13 |2 |64-QAM |2/3 |6 |108 |6 |1296 |864 |216.0 |240.0 |
 +|14 |2 |64-QAM |3/4 |6 |108 |6 |1296 |972 |243.0 |270.0 |
 +|15 |2 |64-QAM |5/6 |6 |108 |6 |1296 |1080 |270.0 |300.0 |
 +
 +Note that MCS [16-76] exist going up to 600 Mbps but too lazy to write that from the docs, feel free to expand – the section with this table on the 802.11n specification is on tables 20-29 up to 20-43. These rates also require the addition of another entry in the table, the nES (number of BCC encoders for the DATA field). ​
 +
 +See [[http://​mcsindex.com/​|http://​mcsindex.com/​]] for all of them.  Raw tables are available at [[https://​github.com/​ewa/​802.11-data|https://​github.com/​ewa/​802.11-data]]. ​
 +
 +
 +===== Block Acks =====
 +
 +Block Acks let you acknowledge a set of frames with a single new modified type of ACK. This is extremely useful when you use aggregation. If a transmitter did not get a block ack back it will send a //block ack request// to the receiver after a period of time. 
 +
 +
 +===== Aggregation =====
 +
 +802.11n introduces two types of aggregation to increase throughput. ​
 +
 +
 +==== A-MPDU ====
 +
 +This is the most common form of aggregation supported and used by drivers. mac80211 has full support for this type of aggregation. With it you pack together frames and each frame has its own dedicated CRC. The receiver can send a [[BlockAck|BlockAck]] with a bitmap of each successful frame. In the bitmap it can also specify which frame failed to force the transmitter to retransmit the single unsuccessful frame. ​
 +
 +
 +==== A-MSDU ====
 +
 +This is not commonly used, but the standard and [[WiFi|WiFi]] certification requires support for receiving A-MSDUs. mac80211 has support for this, so drivers don't need to do anything. With A-MSDUs you cannot check each individual frame as each of them does not have a dedicated CRC. If a frame is corrupt you will have to retransmit the entire aggregate. ​
 +
 +
 +===== More references =====
 +
 +You can read this paper written for computer scientists without a strong EE/RF signal processing background called "​802.11 with Multiple Antennas for Dummies": ​
 +
 +[[http://​www.cs.washington.edu/​homes/​dhalperi/​pubs/​mimo_for_dummies.pdf|http://​www.cs.washington.edu/​homes/​dhalperi/​pubs/​mimo_for_dummies.pdf]] ​
  
en/developers/documentation/ieee80211/802.11n.txt · Last modified: 2015/01/26 09:49 (external edit)