Using more antennas than the hardware has MIMO radios for

So even with the advent of MIMO, there have still been requests for adding even more antennas to the system. Obviously these aren't able to all have separate radios; so how are they supposed to work?

Overview

The MIMO devices have a switch table, just like other devices. But instead of having a switch table with entries for two antennas, it just relies on the MIMO behaviour to implement receive diversity.

Why?

Well, the belief here is that having multiple antennas increases the chance of finding an antenna combination that maximises received signal quality. The trick is implementing a way that determines which antenna configurations to use.

How

But, there are a handful of card models that have a 2-chain device (eg AR9220) with 3 external antennas. So what have they done?

In short - they've added an external antenna switch to one of the two chains. That antenna switch selects between one antenna or the other based on TX or RX behaviour.

The antenna switch table on the MIMO chips have one antenna switch table that's common to each radio chain, and then a switch table for each radio chain. A vendor could select one of the bits of the common antenna switch table and wire it into selecting between two physical antennas.

Since there's separate table entries for TX and RX, it's also possible to use a separate antenna configuration for TX versus RX.

Implementation

There's a d-link AR9220 NIC which has three antennas but only two radio chains. What they've done is overloaded the 16 bit common chain field with two 16-bit antenna configuration fields, one for each antenna configuration.

It's then up to the driver to alternate antenna configurations between the two and determine which one gives better behaviour. Since this is done by rewriting the antenna switch table rather than being done in hardware, it's going to be "slow". Ie, it's not "fast diversity." This kind of thing would be done by the rate control code, where it would track the RSSI of packet reception and success/fail rates of packet transmissions and try to maximise this.

Also, since this is done by reprogramming the switch table, it's not going to be easy to do outside of station operation. There's no way to do this switch table reprogramming for each station (well, doing it this way... but there's the shift register antenna configuration method!)

There's also at least one Mikrotik device that supports multiple external antenna configurations, again with the AR9220. Instead of using an antenna configuration stored in the EEPROM it writes hard-coded configurations from the driver.

dev/ath_hal(4)/SlowMimoDiversity (last edited 2013-06-09T08:13:36+0000 by AdrianChadd)