Difference between revisions of "Packet Communications"

From GNU Radio
Jump to: navigation, search
(Simulating Baseband Packet Processing)
Line 24: Line 24:
  
 
<hr>
 
<hr>
 +
 +
This flowgraph can be downloaded from [[Media:Pkt_7_base.grc]].
  
 
==== Message Strobe ====
 
==== Message Strobe ====
Line 39: Line 41:
 
==== Protocol Parser ====
 
==== Protocol Parser ====
 
The entry for the Format Obj. is 'hdr_format'
 
The entry for the Format Obj. is 'hdr_format'
 +
 +
==== PDU to PMT ====
 +
 +
This block is an Embedded Python Block which converts a PDU string into a PMT string. The code is contained in Pkt_7_base.grc
  
 
=== Testing ===
 
=== Testing ===
 +
 +
To test the flowgraph, click the "Execute the flowgraph" icon, or press F6. An example of the output is:
 +
 +
<pre>
 +
***** VERBOSE PDU DEBUG PRINT ******
 +
()
 +
pdu length = 4 bytes
 +
pdu vector contents =
 +
0000: 0d 10 00 3a
 +
************************************
 +
***** VERBOSE PDU DEBUG PRINT ******
 +
()
 +
pdu length = 13 bytes
 +
pdu vector contents =
 +
0000: 47 4e 55 20 52 61 64 69 6f 8f aa 09 f1
 +
************************************
 +
 +
----------------------------------------------------------------------
 +
Tag Debug:
 +
Input Stream: 00
 +
  Offset: 13  Source: n/a    Key: packet_len  Value: 13
 +
  Offset: 13  Source: n/a    Key: packet_num  Value: 1
 +
----------------------------------------------------------------------
 +
******* MESSAGE DEBUG PRINT ********
 +
GNU Radio
 +
************************************
 +
</pre>
 +
 +
The first PDU DEBUG PRINT is the header data containing the payload length, packet number, and a CRC16 of the header.
 +
 +
The second PDU DEBUG PRINT is the payload including a CRC32 of the data.
 +
 +
The Tag Debug shows the length tag and the packet number tag.
 +
 +
The MESSAGE DEBUG PRINT shows the payload data as a string.
  
 
== Using BPSK and Hardware ==
 
== Using BPSK and Hardware ==

Revision as of 10:51, 9 October 2021

DRAFT (A Work in Progress)

This tutorial presents methods to transmit and receive packet data using burst transmissions. The data can originate from a message source or a stream source. A hardware implementation is shown using BPSK modulation.

Prerequisites

Simulating Baseband Packet Processing

In order to grasp the basics of packet processing, this section presents a transmitter and receiver without any modulation or channel impairments.

Building the flowgraph

Build the following flowgraph using the details given below:

Pkt 7 base fg.png


This flowgraph can be downloaded from Media:Pkt_7_base.grc.

Message Strobe

For the Message Strobe to generate a PDU, the Message PMT must be of the form

 pmt.cons(pmt.PMT_NIL,pmt.init_u8vector(9,(71,78,85,32,82,97,100,105,111)))

This specific vector has a length of 9 and the character values of "GNU Radio".

Variable, Id: hdr_format

The Protocol Formatter uses a Format Object to define its parameters. The one used in this example is

 hdr_format digital.header_format_crc(len_key, num_key)

Protocol Formatter

The entry for the Format Obj. is 'hdr_format'

Protocol Parser

The entry for the Format Obj. is 'hdr_format'

PDU to PMT

This block is an Embedded Python Block which converts a PDU string into a PMT string. The code is contained in Pkt_7_base.grc

Testing

To test the flowgraph, click the "Execute the flowgraph" icon, or press F6. An example of the output is:

***** VERBOSE PDU DEBUG PRINT ******
()
pdu length = 4 bytes
pdu vector contents = 
0000: 0d 10 00 3a 
************************************
***** VERBOSE PDU DEBUG PRINT ******
()
pdu length = 13 bytes
pdu vector contents = 
0000: 47 4e 55 20 52 61 64 69 6f 8f aa 09 f1 
************************************

----------------------------------------------------------------------
Tag Debug: 
Input Stream: 00
  Offset: 13  Source: n/a     Key: packet_len   Value: 13
  Offset: 13  Source: n/a     Key: packet_num   Value: 1
----------------------------------------------------------------------
******* MESSAGE DEBUG PRINT ********
GNU Radio
************************************

The first PDU DEBUG PRINT is the header data containing the payload length, packet number, and a CRC16 of the header.

The second PDU DEBUG PRINT is the payload including a CRC32 of the data.

The Tag Debug shows the length tag and the packet number tag.

The MESSAGE DEBUG PRINT shows the payload data as a string.

Using BPSK and Hardware

Transmitting a Signal

Receiving a Signal