Сначала мерять время между фронтами входного сигнала и разделить на 4 группы: Если меньше 1/2 короткого импульса - начинать прием сначала, если от 1/2 до 3/2 короткого импульса то считать что принят короткий импульс, если от 3/2 до 5/2 то считать что принят длинный импульс , если длиннее то начать прием сначала.
После этого сделать сдвиговый регистр на 9 байт. При длинном импульсе сдвинуть этот регистр на один бит влево и установить младший бит младшего байта равный иннверсному значению соседнегно слева бита.
При каждом втором коротком сдвинуть этот регистр на один бит влево и установить младший бит младшего байта равный значению соседнегно слева бита. Проверить значение старших четырех байт - если оно равно 0х55 0х55 0х55 0хЕ6 - то в остальных - принятые данные. Желательно иметь еще и контрольную сумму или исключить последовательность байтов заголовка в теле данных.
E-mail: info@telesys.ru