Packet Communications: Difference between revisions
No edit summary |
|||
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
- QPSK Modulation / Demodulation
- BPSK Demodulation
- Polymorphic Types (PMTs)
- Stream Tags
- Message Passing
- Understanding ZMQ Blocks
- Packet Communications
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:
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.