Как работают USB порты-часть III.
Источник данных — или контроллер или устройства в зависимости от направления — то посылается пакет данных. В большинстве случаев операция завершается назначением отправки данных Пакеты ACK, указывают на данные которые были приняты, НАК, указывают, что данные не были приняты, или STALL, который сигнализирует о том, что конечная точка застопорилась.
Движение на USB регулируется единицей времени кадра. Длина каждого кадра определяет время,и работает на скорости 1 кГц, поэтому есть 1000 кадров в секунду: одна в миллисекунду. В начале каждого фрейма начала кадра (SOF) пакет отправляется по шине, что позволяет изохронным устройствам сделать синхронизацию с каналом связи.
Концепция кадров имеет ключевое значение для того, что бы канал связи имел пропускную способность шины между различными конкурирующими устройствами. USB-разработчики считают, что было бы невозможно поддерживать несколько одновременных потоков изохронной связи с быстрыми темпами образца с помощью системы, в которой каждое устройство должно прерывать хост для каждой выборки данных, которые будут переданы. Поэтому они разработали систему так, чтобы изохронные устройства имели гарантированное полосы пропускания путем выделения им доли времени в каждом кадре.
По меньшей мере 10 процентов каждого кадра зарезервированы для использования в управляющих передачах. Эта доля может быть увеличена путем системного программного обеспечения, если производительность будет признана маленькой путём контроля пакетов, которые чрезмерно задерживаются. Максимальная непрерывная пропускная способность выше скорости USB должна быть менее 90 процентов скорости передачи.
Часть или всё оставшееся время в каждом кадре можно передать по каналам связи изохронных устройств. Фактическая доля выделяемых каждому каналу связи заранее оговорено , когда канал связи установлен. Это гарантирует, что определенный объем данных может быть передаваться каждую миллисекунду. Любая оставшаяся пропускная способность доступна для других типов передачи.
Изохронные устройства должны иметь буфер данных и один кадр и возможность отправить каждому блоку по шине в качестве одной транзакции. На приемном конце небуферизованные данные восстановливаются в режиме реального времени. Например, аудио устройство работает с CD-качеством и частотой дискретизации 44,1 кГц пошлет девять кадров с 44 выборками на кадр, а затем один кадр с 45 образцами. После буферизации на источник и unbuffering в пункте назначения будет задержка пару миллисекунд в предоставлении данных, но скорость доставки — которая, что важно для сохранения качества — будет сохранена.
Прерывание перевода также в определенной степени имеет критическое время. Когда создаются каналы связи для прерывания конечной точки, требуемый период доступа к шине от 1 до 255ms (10 и 255ms в случае низкой скорости устройств) не указан. Системное программное обеспечение опрашивает прерывание конечной точки в интервале, который гарантирует, что если операция прерывание еще не завершена она рассматривается в течение желаемого периода времени.
Обработка ошибок
Значительные функции проверки ошибок и обработки ошибок были встроены в USB, чтобы гарантировать, что это надежный способ подключения периферийных устройств к ПК. Целостность данных должна быть сопоставима с внутренней шиной расширения.
Иммунитет от повреждения данных благодаря шуму был обеспечен за счет использования дифференциальной логики каналов связи и экранированным кабелям. Если ошибки происходят, циклическая избыточная проверка (контрольные суммы) проводится отдельно на каждом контрольном поле данных пакетов,и позволяет на 100 процентов восстановлению как одиночной, так и двойных ошибок бита. Неустранимые ошибки могут быть обнаружены с высокой степенью достоверности.
Механизм самовосстановления встроен в протокол обмена сообщениями, с тайм-аутом для потерянных и недействительных пакетов. Некоторые ошибок встроены в аппаратные средства. Хост-контроллер будет отправлять транзакции приводящие к краху три раза, прежде чем сообщить об ошибке клиентского программного обеспечения.
Прерывание и передача данных объединяются в пакет , что бы предоставить подтверждение того, что данные были получены, или опросить, чтобы он был повторно отправлен, если этого не было. Таким образом гарантируется доставка этих данных, даже если время, необходимое для доставки меньше.
С изохронными данными, невозможно повторение не удачной передачи данных. Так как только один «Слот» выделяется в канале связи во время каждого кадра, повторная отправка данных приведет к задержке передачи последующих образцов данных, нарушая время элементов передачи данных. Поэтому отправляется не пакет , а данные которые должны быть приняты «как есть».
Заключение
Universal Serial Bus обеспечивает универсальный, гибкий способ подключения широкого спектра низкоскоростных и средне скоростных периферийных устройств к ПК при относительно низких затратах. Его установка , подключение и конфигурация означает, что установка и поддержка периферийных устройств значительно проще по сравнению с устройствами, использующими последовательный, параллельный или собственные интерфейсы.