Manchester code (phase encoding) library.
Dependents: Manchester_Transmitter Manchester_Receiver
Manchester code (phase encoding) library
It implements Manchester code according to both IEEE 802.3 and G.E. Thomas' conventions.
- A '0' is expressed by a high-to-low transition, a '1' by low-to-high transition in the IEEE 802.3 convention. The reverse is true in the G.E. Thomas' convention.
- The transitions which signify '0' or '1' occur at the midpoint of a period.
- Transitions at the start of a period are overhead and don't signify data.
- Least significant bit is sent first
- There are synchronization pulses (the number can be set) at the begin of transmission
Select a convention to be used by commenting or uncommenting the line below in theManchester.h
header file.
Manchester.h
#define G_E_THOMAS 1
The IEEE 802.3 convention is used by default.
A Manchester encoded message (using G.E. Thomas' convention), with one sync pulse in the preamble, carrying four bytes:
ACKNOWLEDGEMENT: The code in this library was based on this article published by Robert Guastella.
Import programManchester_Transmitter
Manchester transmitter demo.
Import programManchester_Receiver
Manchester receiver demo.
NOTE: To perform a simple test (without radio modules) connect the txPin on transmitter board to the rxPin on the receiver board and make sure that grounds are also connected one another.
Diff: Manchester.h
- Revision:
- 6:7454ad91f714
- Parent:
- 5:3b2c7e9fda3f
- Child:
- 8:c1b5893191fe
diff -r 3b2c7e9fda3f -r 7454ad91f714 Manchester.h --- a/Manchester.h Sun May 21 19:17:28 2017 +0000 +++ b/Manchester.h Mon May 22 09:35:26 2017 +0000 @@ -3,7 +3,7 @@ * @file Manchester.h * @author Zoltan Hudak * @version - * @date 16-May-2017 + * @date 2017-May-16 * @brief Manchester code for mbed ****************************************************************************** * @attention @@ -28,10 +28,10 @@ /* This library implements Manchester code according to both IEEE 802.3 - and G.E. Thomas' convention. + and G.E. Thomas' conventions. • A '0' is expressed by a high-to-low transition, a '1' by low-to-high transition in the IEEE 802.3 convention. The reverse is true in the G.E. Thomas' convention. - • The transitions which signify 0 or 1 occur at the midpoint of a period. + • The transitions which signify '0' or '1' occur at the midpoint of a period. • Transitions at the start of a period are overhead and don't signify data. • Least significant bit is sent first • There is one synchronization pulse at the begin of transmission @@ -73,7 +73,7 @@ PinName txPin, /* transmitter pin name */ PinName rxPin, /* receiver pin name */ uint32_t speed = 1200, /* speed in bits per second */ - uint8_t tol = 25 /* pulse width tolerance (+/-) in % */ + uint8_t tol = 25 /* pulse width tolerance (+/-) in % */ ); ~Manchester(void) { } void transmit(ManchesterMsg& msg);