project:weathersonde:telemetry_receiving
Table of Contents
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
- radiosode type: RS92-SGPD
- modulation: GFSK - 4800 baud
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):
- 10 → 0
- 01 → 1
- 00, 11 → invalid (error in reception or stream is shifted by one symbol)
Data stream atructure (symbols) 2 start symbols || ...sSsSsSsS0110sSsSsSsSsSsSsSsS0110sSsSsSsSsSsSsSsS0110sSsSsSsS... 16 data || symbols 2 stop symbols
conversion of bite stream into byte stream
- bite stream have structure identical to 8bit asynchronous serial protocol
- 1 start bite (0), 8 data bites (LSB first), 1 stop bite (1)
Data stream atructure (bites) Start bite | ...xxxx10xxxxxxxx10xxxxxxxx10xxxx... 8 data | bits Stop bite LSB first
- removing synchronization bits allow us create stream of bytes
conversion of byte stream into frames (packets)
- byte stream is dividen into frames 240B long
- each frame starts with predefined byte sequence
Frame start pattern (8B)
| SSSSSSSSDDD....DDD
- frame have attached Reed-solomon correction code, RS(255,231)
- frame is divided into 4 subblocks
- each subblock have different, but fixed length
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)
related links
project/weathersonde/telemetry_receiving.txt · Last modified: 2013/11/20 18:25 by pinky