Atmel, Microchip i inne firmy wykorzystuję dodatkowe bloki konfigurowalne do kodowania/dekodowania kodu manchester w nowszych mikrokontrolerach. Chwilę może zająć zapoznanie się z tym tematem.
Jeśli masz miejsce to użyj sprzętowego dekodowania:
http://citeseerx.ist.psu.edu/viewdoc/do ... 1&type=pdfOdczytasz całą ramkę równolegle po zliczeniu określonej liczby cyklów zegara.
Z kodowaniem jest łatwiej i najlepiej już kod manchester ramki wysłać przez SPI. Użycie bramki EXOR i sygnałów SDO i SCK nie będzie zbyt dobre jeśli ramka wysyłana nie jest wielokrotnością 4 bitów. Można wykorzystać UART w trybie synchronicznym, ale ograniczeniem jest liczba bitów (5,6,7,8,9) i start/stop, które nie w każdej ramce występują. Należy to sobie porównać.