TokaMundo said:
One does not need to send the entire datagram twice. Just package
it up with FEC and let the error correction manage lost packets.
Once the bit error rate gets up over around ten percent, one would
then hear dropouts or other anomalous audio.
Yup. There are various solutions to the problem though. Some are more oriented to fixing corrupted data (
the occasional bit or so ) - other techniques can deal with lost packets.
Here's an extract from the data sheet of the part I'm now rather interested in.
4.3.3 Quality of Service engine
The primary function of the quality of service engine is to deliver a robust communication channel
between the audio transmitter and audio receiver in an audio streaming application. Several data streams
with different properties are handled. The available bandwidth is shared between audio data, service data
and remote data.
Data integrity is ensured through a number of RF protocol features:
1. Packets of data are sent in frames and integrity of each packet is ensured as every packet has a
complete build of RF address, payload and CRC.
2. Packets that are lost or received with errors are handled by the error correction level of the quality
of service engine; a two way, acknowledge protocol:
When a packet is received by ARX, it’s registered and CRC is checked.
After ARX has received a frame it sends a packet back to ATX
acknowledging the packets that where successfully transferred. Packets lost
or received with errors will be re-sent from ATX in the next frame.
3. Finally the information (audio data) is spread over the 2.4 GHz band by use of an adaptive frequency
hopping algorithm. Through this a nRF24Z1 link can handle RF propagation challenges like reflections and
multi-path fading and not least avoid heavily trafficked areas of the 2.4 GHz band. The 2.4 GHz band is a
world wide open RF band and co-existence with RF systems such as Bluetooth, ZigBee,
WLAN/WiFi as well as other nRF applications, is increasingly important.
nRF24Z1 constantly monitors the quality of the RF link and numbers indicating total link quality are
available for external control devices in registers. nRF24Z1 can also be set to interrupt external
controller devices upon poor link quality before RF link is lost. An external controller device can hence
take further actions to improve link quality or warn end user if RF link margins are poor.
The secondary function of the QoS module is to run a link initialization algorithm which manages initial
connect and re-connect if link is lost (ex: out of range) between paired nRF24Z1’s. Several schemes are
available to enable nRF24Z1 connection without end user involvement.
Graham