Telemetry receiving
This page describes how acquire telemetry from Vaisala weather radio sonde RS92. It comprises demodulation, descrambling, and conversion of bite stream to bytes and frames. Detailed description of packet structure is available in Telemetry decoding.
Demodulation
GFSK block from GNURadio can be used to demodulate this signal. Custom block are used for data decoding.
Decoding
conversion of demodulated signal into bite stream
demodulated data stream contains symbols
2 adjescent symbols represent one bite of data
symbols to bites mapping (Manchester code is used):
Data stream atructure (symbols)
2 start symbols
||
...sSsSsSsS0110sSsSsSsSsSsSsSsS0110sSsSsSsSsSsSsSsS0110sSsSsSsS...
16 data ||
symbols 2 stop symbols
conversion of bite stream into byte stream
Data stream atructure (bites)
Start bite
|
...xxxx10xxxxxxxx10xxxxxxxx10xxxx...
8 data |
bits Stop bite
LSB first
conversion of byte stream into frames (packets)
Frame start pattern (8B)
|
SSSSSSSSDDD....DDD
frame have attached Reed-solomon correction code, RS(255,231)
frame is divided into 4 subblocks
Frame structure 240B
offset (B) | lenght (B) | name | (content) description |
0 | 6 | FRAME_HDR | (0x2A 0x2A 0x2A 0x2A 0x2A 0x10) frame header |
6 | 210 | FRAME_PAYLOAD | frame payload data |
216 | 24 | FRAME_PAYLOAD_ECC | RS(255, 231) Reed-Solomon correction code for frame payload |
Reed-Solomon
It si common RS(255, 231) code.
symbol size: 8
generating polynomial: 0x11d
first consecutive root: 0
correction code is computed only for frame payload.
byte order is reverser
RS block is prepend with zeroes
RS blob structure:
padding (21 x 0x00)
FRAME_PAYLOAD, byte order is reversed (firt byte in frame payload is last byte for RS evaluation)
24B of FRAME_PAYLOAD_ECC, byte order is reversed (firt byte of RS in frame is last byte for RS evaluation)