Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Шедевр!
Не менее интересный вопрос, зачем устройству передается его адрес, ведь кроме него в данный конкретный порт все равно ничего не воткнуть. Это сделано для упрощения разработки USB-хабов. Они могут быть достаточно «тупыми» и просто транслировать сигналы от хоста всем устройствам, не заботясь о сортировке.
Ну и потом передача адреса может быть нужно всякому USB over IPТак а устройству-то зачем адрес? Или IP адрес? Или адрес еще чего-то через что оно подключено?
Так а устройству-то зачем адрес? Или IP адрес? Или адрес еще чего-то через что оно подключено?Устройство — это транслятор в IP. А вот софту на другой стороне IP-тоннеля адрес может быть полезен. При перезапуске, например.
Так что во времена USB 1.0 просто не было особой нужды в умных хабах.
Даже тогда было разделение low-speed / full-speed, оно было с самого начала.Я про Hi speed (до 480 мегабит). Именно он и потребовал умных хабов. Точнее, использующие его флэшки.
Иначе говоря, причина больше практическая, чем философская. Думаю, что причина историческая, но мне лень искать старые спецификации для доказательств. Хабы описаны в последней главе спецификации USB 1.1, возможно это признак, что они появились позже остального. Но это надо смотреть USB 0.6 и ранее.
Хабы описаны в последней главе спецификации USB 1.1, возможно это признак, что они появились позже остального.Мне казалось, что они входят в стандарт изначально, просто исходя из топологии и философии шины. Ведь пространство адресов изначально было 7-битным, а 127 портов на плату расширения не ставят. И просто соединить устройства впараллель нельзя, подтягивающие резисторы будут мешать.
Название USB намекаетГде-то читал, что это маркетинговый ход, не больше. Ничего в структуре USB не соответствует топологии «шина», даже адреса. На шине адреса обычно задаются вручную, и уж точно никто не полагается на поочередное включение-отключение отдельных портов, чтобы на 0-й адрес отозвалось только одно устройство.
127 не 127, но 3-4 устройства вполне реальноОсобенно если половина high-speed, а вторая — low-speed, то есть тянут своими резисторами в разные стороны. В RS485 резисторы нужны для создания токовой петли, а не для определения скорости устройства. Там вообще не важно какой номинал, лишь бы источник сигнала потянул, да помех не слишком много было.
Изобретаем библиотеку vusb