The gr-plc module includes the following GNU Radio blocks:
The important blocks are the PHY Rx and PHY Tx which contain the actual implementation of the IEEE 1901 physical layer.
The MAC block implements a simplified IEEE 1901 MAC layer and performs master-slave channel access (see more details).
A typical two-transceiver flow graph is given in examples/plc.grc and is illustrated below:
The top part is the master station transceiver, and the bottom part is the slave station transceiver. The master station includes a file source that feeds the APP Out block with a continuous bit stream. The data is processed through the MAC and PHY blocks and then goes to the USRP block. The USRP block sends the signal to an actual USRP hardware through the Ethernet port. The USRP hardware is connected to the powerline.
The powerline is also connected to another USRP hardware, representing the slave station. The USRP sends the data through the same Ethernet port to the slave station USRP block shown in the bottom part of Figure 3.8. Samples from the USRP block are processed through the PHY and MAC blocks and eventually saved to a file through the APP In block.
The two USRP physical devices are paired using a special MIMO cable. This connection synchronizes the two USPRs internal oscillators to avoid a carrier frequency offset.
The return path, from the slave to the master, is not going through the USRP blocks. Instead, the slave PHY block output is fed directly to the master station PHY block.
Several parameters in the MAC block are easily configurable. The parameters are described as follows:
The PHY block parameters are described as follow:
The Log parameter controls the amount of trace information generated by the block.
NOTE: when running the flow graph inside GNU Radio Companion, make sure that the Log parameter is set to “Notice” in all blocks. Otherwise, GRC will become unresponsive as the output window is filled with trace information