ну так SPI, клок кондёрами развязывается на раз. а данные гоним по 9 бит. городим 8b/9b ну или что-то подобное. а дальше софтово обрабатываем лишний бит. такое тоже получится кондёрами развязать. я что-то подобное в плисине завернул. добавил на короткие пакетики CRC16, так два штырька замыкаешь влажным пальцем - уже всё достоверно передаётся, при том что сетевая наводка уводит линию в насыщение >70% времени.