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)
 
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki