![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Данные по шине USB передаются битовыми последовательностями. Все данные кодируются с помощью метода, называемого NRZI (Non Return to Zero Invert - метод без возврата к нулю инвертированный).
Вместо кодирования логических уровней как уровней напряжения USB определяет логический 0 как изменение напряжения, а логическую 1 как не изменение напряжения. Если текущий бит имеет значение 0, то текущий потенциал представляет собой инверсию потенциала предыдущего бита, независимо от его значения. Если же текущий бит имеет значение 1, то текущий потенциал повторяет предыдущий.
Очевидно, что если данные содержат нули, то приемнику и передатчику достаточно легко поддерживать синхронизацию — уровень сигнала будет постоянно меняться. А вот если данные содержат длинную последовательность единиц, то уровень сигнала меняться не будет, и возможна рассинхронизация. Следовательно, для надежной передачи данных нужно исключить из кодов слишком длинные последовательности единиц. Это действие называется стаффинг (Bit stuffing): после каждых шести единиц автоматически добавляется 0 (рис. 2.10).
Рис. 5.21 Кодирование данных на шине USB
Цель кодирования: убрать постоянную составляющую для уменьшения потребления энергии, а также повысить надежность передачи.
Легко проверить существует только три возможных байта с шестью последовательными единицами: 00111111, 01111110, 11111100.
Стаффинг может увеличить число передаваемых бит до 17%, но на практике эта величина значительно меньше.
Для устройств, подключаемых к шине USB, кодирование происходит прозрачно: USB - контроллеры производят кодирование и декодирование автоматически. Конечно, кодирование данных затрудняет отладку схем с помощью осциллографа, но, с другой стороны, значительно повышает надежность передачи данных.
Дата публикования: 2015-07-22; Прочитано: 1375 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!