Почему максимальная длина USB-кабеля меньше, чем в RS232?

Зачем нам буферизировать сигнал USB, если кабель длиннее 5 м?
Это из-за падения напряжения сигнала?
Это потому, что он управляет токами?

Rs232 использует +/-12 вольт, USB 0-5 вольт

Ответы (4)

Скорость передачи имеет значение, поскольку USB является полудуплексным: для передачи ответа шина должна быть развернута и данные переданы в другом направлении. Таким образом, хост отправляет данные и ждет подтверждения или ответа. Все переводы контролируются хостом. Затем у устройства есть определенное (довольно короткое) время для ответа. Это время примерно равно времени, затраченному на два прохождения сигнала по 5-метровому кабелю.

(Я не могу найти ссылки прямо сейчас, но соответствующие документы спецификации общедоступны)

Редактировать: спасибо psmears за то, что нашли этот раздел

Кабели и решения для дальней связи

  1. Почему существуют ограничения по длине кабеля и каковы они?

О: Длина кабеля была ограничена задержкой кабеля в 26 нс, чтобы обеспечить стабилизацию отражений в передатчике до того, как будет отправлен следующий бит. Так как USB использует оконечную нагрузку источника и драйверы режима напряжения, это должно иметь место, иначе отражения могут накапливаться и разрушать драйвер. Это не означает, что линейное напряжение полностью установилось к концу разряда; с наихудшим недотерминированием. Однако к концу долота было достаточно демпфирования, чтобы амплитуда отражения уменьшилась до приемлемого уровня. Длина низкоскоростного кабеля была ограничена 18 нс, чтобы эффекты линии передачи не влияли на низкоскоростные сигналы.

  1. Я хочу построить кабель длиннее 5 метров, почему это не сработает?

О: Даже если вы нарушите спецификацию, это буквально не продвинет вас далеко. Предполагая наихудшее время задержки, полноскоростное устройство в нижней части 5 концентраторов и кабелей имеет запас времени ожидания 280 пс. Уменьшение этого поля до 0 пс даст вам только дополнительные 5 см, что вряд ли стоит заморачиваться.

Так что мой ответ верен только наполовину: ограничение на поездку туда и обратно для наихудшего случая цепочки узлов и кабелей при общей глубине 25 м.

Дэн Нили также прав в том, что USB всегда считался самым дешевым решением для «медленных» периферийных устройств, таких как клавиатуры, мыши, принтеры и т. д. Если вам нужен полный дуплекс для большей скорости и большего расстояния, 100baseT ethernet — естественный выбор.

шляпа делает 20-метровый USB-кабель. что случилось бы? Вы говорите, что напряжение не меняется, а скорость имеет значение. так что же происходит в случае с 20-метровым кабелем, а USB не работает?
Хост отправляет запрос, не получает вовремя ответа и не может перечислить устройство на другом конце.
Ты уверен насчет этого? В соответствии со спецификацией USB задержка распространения сигнала по кабелю должна быть <26 нс (таблица 7-9), поэтому сигнал занимает менее 5,2 нс/м в стандартном 5-метровом кабеле. Ограничение на двустороннюю задержку составляет около 1,5 мкс. На такой скорости у сигнала достаточно времени, чтобы пройти туда и обратно по кабелю длиной более 100 м. Форум разработчиков USB приводит другую причину ограничения в 5 м.
Есть ли какая-то причина для того, чтобы USB 1.0-2.0 был полудуплексным вместо полного дуплекса с первого дня (например, USB 3.0)? Другими словами, есть ли какие-либо практические преимущества полудуплекса по сравнению с полным дуплексом?
tigrou: USB использует 2 провода передачи данных в качестве дифференциального сигнала. Для полного дуплекса им потребуется добавить еще 2 сигнальных провода, что увеличит стоимость разъемов и кабелей.
@tigrou в более широком смысле USB1 охватывал простые варианты везде, где только мог, потому что он должен был быть достаточно дешевым, чтобы реализовать его, чтобы он мог конкурировать с портами RS232 / PS2 / LPT / Game. С годами кремний стал намного дешевле; но наличие цены выше минимальной, необходимой для того, чтобы быть «достаточно хорошей» для целевых приложений, привело к тому, что USB2 убил FireWire; и Громовержец все чаще кажется мертворожденным.
@psmears спасибо за эту ссылку, она наполовину поддерживает мои воспоминания - см. Правку.
Хорошо, но что, если у меня нет пяти концентраторов?
В этом случае применяется первый из указанных ответов; если один участок кабеля слишком длинный, возможно, что отражение сталкивается со следующим битом, и напряжение на источнике выходит за пределы его силовых шин. Это может сжечь драйвер. Это предполагает параметры наихудшего случая; если вы проложите 25-метровый кабель с дополнительным окончанием для стока, вы сможете заставить его работать большую часть времени.
Я попробовал цепочку из четырех удлинителей USB (один из которых был самодельным 8-метровым). Устройства ввода работали хорошо, запоминающее устройство переключилось в режим низкой скорости, а адаптер Wi-Fi не работал.

См. эту страницу, https://superuser.com/questions/64744/maximum-length-of-a-usb-cable .

Q1: Какой длины кабель я могу использовать для подключения моего устройства? A1: На практике спецификация USB ограничивает длину кабеля между полноскоростными устройствами до 5 метров (чуть менее 16 футов 5 дюймов). Для низкоскоростного устройства ограничение составляет 3 метра (9 футов 10 дюймов).

Q2: Почему я не могу использовать кабель длиннее 3 или 5 м? A2: Электрическая конструкция USB не позволяет этого. При разработке USB было принято решение обработать распространение электромагнитных полей по линиям передачи данных USB таким образом, чтобы максимальная длина кабеля USB была ограничена чем-то в диапазоне 4 м. Этот метод имеет ряд преимуществ, и, поскольку USB предназначен для среды рабочего стола, ограничения диапазона были сочтены приемлемыми. Если вы знакомы с теорией линий передачи и хотите получить более подробную информацию по этой теме, загляните в раздел USB-сигналов часто задаваемых вопросов разработчиков.

все равно ничего не объясняет много туманной информации
Возможно, вам покажется туманным, но нет простого способа объяснить теорию сигналов в помещении, которое позволяет этот формат.
Я думаю, что этот ответ указывает на определенные причины, по которым существуют ограничения. Довольно легко продолжить изучение этих областей, выполнив поиск в Интернете. Например, по теории линий электропередач. Вот почему я опубликовал этот ответ.
Я редко минусую, поэтому сейчас чувствую себя обязанным оправдать это. Вопреки комментарию Wouter van Ooijen, я действительно не чувствую, что этот ответ дает что-то более конкретное, чем возможное предложение поиска по «ограничению длины USB-кабеля». Кроме того, ответ, на который вы ссылаетесь, содержит мертвую ссылку, поэтому его предложение для дальнейшего чтения даже не так уж полезно. Если бы вы нашли правильный первоисточник и цитировали его, как это сделали psmears и pjc50, это было бы другое дело, потому что в нем подробно объясняется, почему существует это ограничение.

На самом деле невозможно «буферизировать» USB, по крайней мере, в обычном смысле этого слова. Как правило, буферизация означает электрическое усиление и, возможно, регенерацию сигнала.

При использовании USB хост управляет всей шиной. Хост отправляет запрос, и устройство должно дать хосту ответ. Начало ответа должно поступить на хост через определенное время после завершения передачи запроса. При слишком длинном кабеле задержка распространения слишком велика, чтобы ответ вовремя достиг хоста.

Таким образом, есть обходные пути, и ни один из них не предполагает простой «буферизации», поскольку буферизация добавляет дополнительные задержки, и нам нужно как-то сделать хост более терпимым к более длительной задержке.

Существует два класса обходных путей:

  1. Обходные пути, которые вставляют физические или виртуальные концентраторы. Если хост перечисляет концентратор на шине, сам концентратор добавляет дополнительную задержку, и между концентратором и хостом есть еще один потенциально полноразмерный кабель. Любые запросы устройств, которые подключаются ниже по течению от концентратора, планируются с дополнительными задержками.

    1. Вы можете вставить однопортовый концентратор через каждые 4 м кабеля, до 7 концентраторов последовательно. Ограничение составляет 7 уровней концентраторов от хоста до конечного устройства, поэтому, если перед вашей штуковиной есть какие-либо концентраторы, вам необходимо соответственно уменьшить количество концентраторов. Многие хосты USB включают в себя одноуровневый внутренний концентратор, поэтому реалистичным ограничением будет кабель длиной 28 м с 6 концентраторами последовательно. Все концентраторы, кроме первого, должны будут притворяться автономными.

    2. Вы можете добавить виртуальные концентраторы с более мощным приемопередатчиком с предыскажением прямо к штекеру, который входит в хост, а затем передавать USB-трафик по более длинному кабелю. Пока сигналы, полученные устройством на конце такого удлиненного кабеля, находятся в пределах спецификации, и пока ваш приемник может восстановить данные, отправленные стандартным устройством по длинному кабелю, все будет в порядке. Виртуальные концентраторы добавляются, чтобы хост допускал длительную задержку, но, конечно, физических концентраторов нет, а только их олицетворение.

  2. Обходные пути, эмулирующие устройство, которое кажется «медленным» на более высоком уровне протокола. Вот как работают некоторые USB-удлинители Cat-5. Здесь пять партнеров: реальный хост (rHost), эмулируемое устройство, которое он видит (eDev), длинный кабель, эмулируемый хост (eHost) и устройства, которые его видят на дальнем конце кабеля (rDev). .

    Сначала eDev делает вид, что его нет. В какой-то момент eHost видит, что был подключен rDev. Он перечисляет его и пересылает данные в eDev. Затем eDev эмулирует событие подключаемого модуля, а rHost перечисляет его. rHost считает, что видит rDev, но это всего лишь eDev, притворяющийся. Точно так же rDev думает, что видит rHost, но это только eHost, притворяющийся.

    В конце концов, rHost хочет выполнить некоторые передачи на rDev, который, по его мнению, находится там, чтобы использовать его. Для передачи IN eDev делает вид, что не имеет данных (отвечает NAK). Запрос на передачу пересылается на eHost, который повторно выполняет его с помощью rDev. Результаты этого пересылаются обратно в eDev, который использует результаты при следующей попытке хоста выполнить передачу.

    Для передачи OUT eDev должен угадать, каким будет поведение rDev. Здесь можно попробовать различные эвристики и модели поведения. Один из способов для eDev — всегда получать данные и отвечать ACK. Передача пересылается на eHost, который затем воспроизводит передачу на rDev. В идеале rDev в конечном итоге будет потреблять данные и подтверждать их. Если это не удается, или если rDev отвечает STALL, лучшее, что может сделать eDev, — это действовать таким образом при следующей передаче от хоста. В качестве альтернативы, eDev всегда может отменить передачу, обычно правильно предполагая, что хост просто повторит попытку идентичной передачи позже. Несмотря на то, что первоначальная передача была NAK-ed, она перенаправляется на eHost, который затем выполняет передачу с помощью rDev. Каким бы ни был ответ rDev, он становится ответом eDev, как только узнает об этом.

    Реалистичные реализации начнутся с консервативной эвристики, предполагающей полное обращение к rDev для всех передач, которые могут быть отложены NAK. По мере того, как передачи продолжаются, ожидаемое поведение rDev может быть изучено, и eDev может стать менее консервативным. «Расширитель» может использовать знания о стандартных классах USB, а также некоторые сведения о классах/устройствах/черных/белых списках, специфичных для производителя, для повышения производительности.

Разве альтернативные концентраторы не могут притворяться, что питаются от шины? Я думаю, что концентратор с питанием от шины может питать концентратор с автономным питанием, не так ли?
С питанием от шины ничего общего - это общая задержка ответа на ACK.
@supercat Да, могут быть альтернативные притворные центры. Неважно, как вы это сделаете, пока мнимое дерево устройств выглядит совместимым с хостом.
@ pjc50 согласно спецификации USB максимальная задержка ACK составляет около 400 нс. Сигнал времени может пройти 40 метров меди в обоих направлениях. Здесь это не ограничивающий фактор.

Большинство схем передачи данных по кабелю имеют достойный международно признанный стандарт, описывающий, как их реализовать, включая спецификацию «характеристического импеданса» кабеля (подумайте об этом как о сопротивлении, но относится к переменному току), согласующем импедансе ( «сопротивление» в конце соединения, которое необходимо, чтобы избежать отражений вашего сигнала, отражающегося обратно по кабелю обратно к отправителю), часто заданная «скорость нарастания» (время, необходимое сигналу (ам) для перехода от 0-состояние в 1-состояние или наоборот), и, следовательно, максимальное количество переходов между 0/1 в секунду (т. вещи перестают работать правильно.

По сравнению с USB, RS232 имеет все характеристики по типу кабеля, характеристическому импедансу, скорости нарастания, длине кабеля, типу разъема. Конечно, 25-контактные и 9-контактные разъемы «D» были обычным явлением, но на самом деле RS232 был разработан для всех видов разъемов, кабелей и продуктов без каких-либо реальных спецификаций, говорящих иначе. На практике с RS232 вы обычно можете преодолевать большие расстояния, снижая скорость передачи битов в секунду (также называемую «бод»). Максимальное расстояние, которое вы можете достичь, также будет в значительной степени определяться импедансом вашего кабеля, независимо от того, экранирован он или нет, заделка на конце и так далее.

и сравнивая RS232 с USB, вы сравниваете «стандарт» 1960-х годов, который в значительной степени превышал 115k2 (за редкими исключениями), со стандартом 1990-х и 2000-х годов, который начинался со скорости 1,5 Мбит/с, что на порядок быстрее, затем 12 Мбит/с (почти в 100 раз быстрее), затем 480 Мбит/с (почти в 5000 раз быстрее), но это означало, что параметры кабеля и его длина играли важную роль в обеспечении надежной работы . Он был разработан как стандарт подключения к периферийным устройствам для настольных ПК, поэтому 5 м считались приемлемыми, а затем все параметры кабелей, разъемов и скоростей были установлены с этой точки. Если бы был способ заставить USB работать медленнее, вы, вероятно, могли бы заставить его работать на более длинных кабелях (без повторителя).

RS232, возможно, «преодолел» 115 КБ, но я помню, когда это была связь со скоростью 110 или 300 бит в секунду между телетайпом и модемом. Сигналы были несбалансированными, напряжение колебалось от -12В до +12В, витой пары, оконечной нагрузки и экранирования не было. На такой скорости и на таких коротких дистанциях характеристики провода ничего не значили. Позже, когда люди захотели передавать данные на более высоких скоростях на сотни метров, мы получили RS422 и RS485, которые говорили гораздо больше о проводной линии передачи.