Проект, над которым я работаю, создает любопытную техническую проблему.Как передать двоичную информацию через одну форму волны
Цифровое устройство должно передавать данные на iPhone через разъем для подключения микрофона.
Мне нужно закодировать интерфейс как с микроконтроллера, так и с конца iPhone.
Есть ли установленный протокол для этой конкретной проблемы? У меня нет роскоши двойных часов и линии передачи данных (протокол ala PS/2 https://en.wikipedia.org/wiki/PS/2_connector).
Я знаю F2F (https://en.wikipedia.org/wiki/Biphase_mark_code), но это королевская PITA для декодирования.
Существует также проблема оптимизации полосы пропускания (с некоторым разумным балансом между эффективностью и алгоритмической сложностью). Образцы iPhone на частоте 44,1 кГц; теоретически каждый образец мог передавать по крайней мере один бит в зависимости от того, является ли он высоким или низким (т. е. какая сторона нуля - теоретически, конечно, каждый образец составляет 16 бит, но попытка действительно оптимизировать пропускную способность до теоретического максимума будет ... что это слово ... безумное?), реалистично мне, возможно, потребуется использовать 3 длины выборки для каждого бита, чтобы убедиться, что все получилось, а бит не падает между двумя последовательными образцами.
Есть ли какой-то открытый код, который я могу поднять, чтобы сделать это? Я бы предположил, что разработчики программного обеспечения взламывают эту проблему с первых дней цифровых технологий. Я действительно не хочу изобретать велосипед здесь.