There are several ways to approach this and each has unique benefits. This section will describe how to implement two different methods. To start we will look at the steps that are needed for either methodology.
1.The data rate clock must be either known or discovered (we will assume a known
2.We must synchronize to the clock (distinguish a bit edge from a mid-bit transition)
3.Process the incoming stream and recover the data using the previous two steps
4.Buffer or store this data for further processing.
This provides the basic outline for how we will perform Manchester decoding. All that remains is to implement this in software. As mentioned, we have two different options for consideration. One is based on timing while the other utilizes sampling.