|
О том, как работает USB.
|
|||
---|---|---|---|
#18+
Клавиатура - это "слейв", а в компе стоит хост. Слейвы, вроде как, не могут генерить что-то по своей воле, пока не получат запрос от хоста. Почему нажатия на USB-клавиатуре так быстро доходят до ОС? Клавиатура 99% времени находится в режиме "приняла запрос, тяну с ответом"? Т.е. после инициализации клавиатуре, ей посылается запрос, на который она отвечает как только будет нажата клавиша, остальное время вися в состоянии "запрос принят, ответ будет скоро"? А если запрос потеряется? Они повторяются периодически? Как часто? Или всё не так вообще? Просьба художественным языком описать работу других типов запросов - булк, масс сторадж и т.п. Спасибо от всего филологического факультета, кафедры индийского языка. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2011, 11:53 |
|
О том, как работает USB.
|
|||
---|---|---|---|
#18+
а usb разве не дуплекс? п.с. попобуйте в блокноте зажать сразу 4567890 клавиш... (больше 4х только на крутых игровых клавах работает емнмп) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2011, 12:31 |
|
О том, как работает USB.
|
|||
---|---|---|---|
#18+
Гордый Кореньа usb разве не дуплекс? п.с. попобуйте в блокноте зажать сразу 4567890 клавиш... (больше 4х только на крутых игровых клавах работает емнмп) Вопрос не в дуплексе. Хоть триплекс и квадрекс. Вопрос в том, что пока тебя не спросили ты не можешь базарить. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2011, 13:01 |
|
О том, как работает USB.
|
|||
---|---|---|---|
#18+
по сути интерфейс юсб это две линии каждой линии соответствует пара проводов одна линия передача данных - вторая прием и прием и передача независимы друг от друга, роль хоста в другом всегда есть юсб хост который должен определить скорость линий приема-передачи, запросить у подключаемого устройства его тип идентификатор, в зависимости от того какого типа устройство в системе подгружается определенный драйвер который и определяет протокол обмена между компьютером и перефирийным устройством. подключив юсб клавиатуру к компу юсб посылает запрос идентификатора и поняв что эта клавиатура подгружает хид драйвер, драйвер посылает клавиатурному процессору сигнал сброс и сигналы установки всяких капслоков итд. клавиатура состоит из кнопок которые включены в решетку рядов и строк по рядам клавиатурный процессор циклически пускает сигнал а по строкам смотрит через какие перекрестья возвращается сигнал тем самым определяя какие клавиши зажаты. определив зажатые клавиши он посылает соответствующий код по линии передачи данных от клавиатуры к компу (именно изза сеточного типа подключения клавиатуры не могут точно определить какие кнопки зажаты при множественном зажатии) хид драйвер ловит коды и передает их ОС инициализируя события в определенных библиотеках. в случае установки в юсб флешки или плеера роль юсб хоста остается также лишь в определении скорости и типа подключенного устройства - дальнейший обмен осуществляется под управлением соответствующего устройству драйвера зы: сугубо личное мнение, возможно имеет смысл почитать какие нить википедии ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2011, 13:42 |
|
О том, как работает USB.
|
|||
---|---|---|---|
#18+
MsDatabaseruпо сути интерфейс юсб это две линии каждой линии соответствует пара проводов одна линия передача данных - вторая прием и прием и передача независимы друг от друга, роль хоста в другом Ой, дальше не надо ибо лучше спецификацию прочитайте. Физически USB двухнаправленная диф пара. На каждый фрейм передачи ( IN|OUT) отводится 1ms для FULL|LOW speed и 125 us для HI speed девайсов. В общем случае после подключения ( физического ) хост по EP0 ( end point ) назначает адрес устройства ( в терминах usb -функции ) и запрашивает дескрипторы функции . На логическом уровне шины присутствут передачи через EP - control размерам 8 , 16, 32 или 64 байта для конфигурации/комманд/статуса, isochronous - гарантирует доставку пакетов в пределах пропускной способности и постоянства скорости обмена, при ошибках не повторяет предачу на физическом уровне. Пакеты размером до 1024 байта. Interrupt - 64 или 1024 (HIspeed) байт. Период данного пакета задаётся от 1ms до 255ms. и Bulk повторяет трансфер при ошибках, гарантирует доставку, но не гарантирует когда и с какой скоростью. Размер пакетов 8 16 32 64 или 512 для HI Speed. Дескрипторы все стандартизированы и описаны в соответсвующих спецификациях HID, CDC .... . ч0 хотел автор и с какой целью - так и не понял . ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2011, 18:04 |
|
О том, как работает USB.
|
|||
---|---|---|---|
#18+
Ken@tMsDatabaseruпо сути интерфейс юсб это две линии каждой линии соответствует пара проводов одна линия передача данных - вторая прием и прием и передача независимы друг от друга, роль хоста в другом Ой, дальше не надо ибо лучше спецификацию прочитайте. Физически USB двухнаправленная диф пара. На каждый фрейм передачи ( IN|OUT) отводится 1ms для FULL|LOW speed и 125 us для HI speed девайсов. В общем случае после подключения ( физического ) хост по EP0 ( end point ) назначает адрес устройства ( в терминах usb -функции ) и запрашивает дескрипторы функции . На логическом уровне шины присутствут передачи через EP - control размерам 8 , 16, 32 или 64 байта для конфигурации/комманд/статуса, isochronous - гарантирует доставку пакетов в пределах пропускной способности и постоянства скорости обмена, при ошибках не повторяет предачу на физическом уровне. Пакеты размером до 1024 байта. Interrupt - 64 или 1024 (HIspeed) байт. Период данного пакета задаётся от 1ms до 255ms. и Bulk повторяет трансфер при ошибках, гарантирует доставку, но не гарантирует когда и с какой скоростью. Размер пакетов 8 16 32 64 или 512 для HI Speed. Дескрипторы все стандартизированы и описаны в соответсвующих спецификациях HID, CDC .... . ч0 хотел автор и с какой целью - так и не понял . именно поэтому обычная ps/2 клавиатура произведенная до того как был придуман сам юсб его протоколы фреймы исправление ошибок легко работает через переходник не содержащий в себе активных компонентов ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2011, 22:14 |
|
О том, как работает USB.
|
|||
---|---|---|---|
#18+
mriadusКлавиатура - это "слейв", а в компе стоит хост. Слейвы, вроде как, не могут генерить что-то по своей воле, пока не получат запрос от хоста.Это только по управляющему каналу не могут. А вот канал прерывания: викиКанал прерывания позволяет доставлять короткие пакеты и в том, и в другом направлении, без получения на них ответа/подтверждения, но с гарантией времени доставки — пакет будет доставлен не позже, чем через N миллисекунд. Например, используется в устройствах ввода (клавиатуры/мыши/джойстики). ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2011, 16:16 |
|
О том, как работает USB.
|
|||
---|---|---|---|
#18+
нашел весьма занятное описание как функционирует USB на русском тынц ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2011, 11:37 |
|
О том, как работает USB.
|
|||
---|---|---|---|
#18+
Обмен в интерфейсе USB представляет собой классическую циклограмму, характерные моменты которой задаются хостом. Большой ее период - 1 мс (это во вмного-много-мнго раз меньше, чему нужно для для интерактивности, неощутимой "невооруженным взглядом"). Малый период -- вовсе 125 мкс. Для ввода текста этого достаточно с запасом в десятки и сотни раз. Это для приложений РВ, иногда, USB сильно плохо. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2011, 17:13 |
|
|
start [/forum/topic.php?fid=30&msg=37259755&tid=1530659]: |
0ms |
get settings: |
11ms |
get forum list: |
11ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
94ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 189ms |
0 / 0 |