ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
18 мая
979871 Топик полностью
Evgeny_CD, Архитектор (19.02.2020 17:33, просмотров: 246) ответил Evgeny_CD на [Универсальный самосинхронизирующийся код для проводных шин]. По мотивам идей троичного кодирования в I3C -> Да здравствуют системы счисления по основанию 7!
Итак, [доводим канальный уровень до завершенного состояния] У нас моту быть такие события -- передача символа данных длиной T -- передача разграничителя битовых полей длиной , который тоже символ данных по сути два раза подряд. -- передача начала кадра - два символа данных длиной 2Т каждый. В сумме Как работает начало кадра. Два двойных символа подряд. Когда такое встречается, декодер сбрасывает память предыдущего состояния в дефолтную величину. При этом первый двойной символ может принимать любое из 8 значений, там нет исключений. Т.е. символ начала кадра передает 3 двоичных бита. Второй двойной символ как обычное кодирование. Есть тонкость. Поскольку первый двойной символ абсолютный, он может совпасть с символом данных от предыдущего поля. Получится символ длиной 3T. Но это ни на что не влияет, кроме задержки декодирования последнего бита на 2Т. Временной декодер на самом деле не сложный - он определяет был ли интервал постоянства линий 1Т или более 1Т. Насколько более 1Т ему различать не надо. Отдельный таймер на случай, если все повисло, но от него хитрости не надо. В сумме эти элементы канального кодирования позволят описать любую ситуацию на шине. И восстановить декодирование с начала следующего кадра как минимум , но можно "с обратной стороны" кинуть два двойных символа в любом месте потока, чтобы прервать передачу кадра и запустить заново. Выбор конкретики зависит от задачи и целей - простота, эффективность, вероятность ошибок в канале и прочая.