реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Определение USB устройства
Kruftin
сообщение Jul 9 2012, 06:02
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 115
Регистрация: 30-05-11
Из: Екатеринбург
Пользователь №: 65 365



Подскажите что должно быть выполнено со стороны устройства slave usb для того, чтобы данное устройство было определено ПК(какое должно быть состояние сигналов)? Т.е. есть устройство slave usb и его надо протестировать(записать, прочитать из него), какие программы для этого необходимы?
Ну или чем можно послать данные по определенному порту, если устройство usb slave не отобразилось.

Сообщение отредактировал Kruftin - Jul 9 2012, 06:47
Go to the top of the page
 
+Quote Post
Alex11
сообщение Jul 9 2012, 16:29
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 106
Регистрация: 23-10-04
Из: С-Петербург
Пользователь №: 965



Процесс называется энумерация. При этом должно выполниться очень много чего, согласно USB протокола. Тут нельзя говорить про состояние сигналов. Сигналы - это самое начало процесса. Нужно подтянуть D+ или D- к 3.3 В (+ для full speed, - для low speed). Если устройство не подключено, то на него ничего нельзя послать. Если подключилось - то нужен в общем случае для начала драйвер. Если устройство стандартного класса - то драйвер уже есть в системе. Какая программа с ним будет общаться, зависит от класса устройства. Так что ответа в общем виде не существует. Рассказывайте подробнее.
Go to the top of the page
 
+Quote Post
Kruftin
сообщение Jul 16 2012, 17:37
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 115
Регистрация: 30-05-11
Из: Екатеринбург
Пользователь №: 65 365



Ну а например с процессора с поддержкой usb можно сэмулировать флэшку, дескриптор который вычитал программой мониторинга usb порта?
Go to the top of the page
 
+Quote Post
Konst_777
сообщение Jul 17 2012, 08:49
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 549
Регистрация: 1-06-05
Пользователь №: 5 644



Цитата(Kruftin @ Jul 16 2012, 20:37) *
Ну а например с процессора с поддержкой usb можно сэмулировать флэшку, дескриптор который вычитал программой мониторинга usb порта?

Можно. Но нужно прочитать следующие книги:
П. Агуров "Интерфейс USB. Практика использования и программирования" 2004 г.
П. Агуров "Практика программирования USB" 2006 г.
Jan Axelson "USB Complete. The Developer's Guide. Fourth Edition" 2009 г.
Jan Axelson "USB Mass Storage. Designing and Programming Devices and Embedded Hosts" 2006 г.

Go to the top of the page
 
+Quote Post
Kruftin
сообщение Jul 17 2012, 17:42
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 115
Регистрация: 30-05-11
Из: Екатеринбург
Пользователь №: 65 365



Спасибо! Почитаю, правда там что-то так много всего надо заполнять я гляжу. Ну и что будет если у меня проц с интерфейсом usb определится как флешка? При попытке записи я так понимаю usb выдаст ошибку доступа.
Go to the top of the page
 
+Quote Post
Xenia
сообщение Jul 17 2012, 17:47
Сообщение #6


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(Kruftin @ Jul 16 2012, 21:37) *
Ну а например с процессора с поддержкой usb можно сэмулировать флэшку, дескриптор который вычитал программой мониторинга usb порта?


Конечно можно! Причем, именно так, как вы сами сказали - вычитать дискрипторы, которыми представляется оригинальная флешка.
Работа того же типа описана в интернете в отношении джейлбрейка для приставок PlayStation (PS3), чтобы в нелицензированные игры можно было играть. sm.gif. Там тоже подсмотрели протокол и сделали эмулятор.
Вы тоже можете, подсмотрев дискрипторы, сделать так, что ваше устройство будет опознаваться, как флешка или как любое другое USB-устройство, однако проблема в том, чтобы и далее своей роли соответствовать. А то назваться-то можно и груздем, но потом придется полезать в кузов sm.gif, когда комп начнет на псевдофлешку писать. sm.gif
Go to the top of the page
 
+Quote Post
Kruftin
сообщение Jul 17 2012, 18:40
Сообщение #7


Частый гость
**

Группа: Участник
Сообщений: 115
Регистрация: 30-05-11
Из: Екатеринбург
Пользователь №: 65 365



Ну т.е. я просто беру вычитываю дескриптор и нужные мне данные любого устройства, которым хочу представиться для ПК, а затем просто посылаю их без всяких задержек через процессор на ПК и все должно быть гуд? Т.е. не начнет ли ПК что-нибудь посылать по поводу драйвера и т.п. инфы. Или лучше сначала взять флешку и поставить к ней драйвер, а потом уже подключать процессор с usb?
Go to the top of the page
 
+Quote Post
Xenia
сообщение Jul 17 2012, 19:10
Сообщение #8


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(Kruftin @ Jul 17 2012, 22:40) *
Ну т.е. я просто беру вычитываю дескриптор и нужные мне данные любого устройства, которым хочу представиться для ПК, а затем просто посылаю их без всяких задержек через процессор на ПК и все должно быть гуд? Т.е. не начнет ли ПК что-нибудь посылать по поводу драйвера и т.п. инфы. Или лучше сначала взять флешку и поставить к ней драйвер, а потом уже подключать процессор с usb?


То, что "сначала сидело" в USB-гнезде никакой роли не играет. Новое устройство обязательно проходит свой процесс енумерации и привязки к соответствующему ему драйверу. Опять же для флешек, начиная с WinXP, отдельные драверы не практикуются - практически все флешки работают под управлением стандартного драйвера USBSTOR.SYS.
Go to the top of the page
 
+Quote Post
редактор
сообщение Jul 18 2012, 11:39
Сообщение #9


Местный
***

Группа: Участник
Сообщений: 356
Регистрация: 9-06-07
Пользователь №: 28 315



Цитата
а затем просто посылаю их без всяких задержек через процессор на ПК и все должно быть гуд?

Совсем НЕ ГУД. Каждому дескриптору свое время и строго по запросу от ПК.


--------------------
Хорошую систему делают из стандартных блоков нестандартно мыслящие инженеры.
Go to the top of the page
 
+Quote Post
Ноль с переносом
сообщение Aug 3 2012, 09:24
Сообщение #10


Участник
*

Группа: Участник
Сообщений: 16
Регистрация: 6-01-09
Пользователь №: 42 957



Вопрос к знатокам, может кто знает? Не по теме, но на всякий случай. Не люблю я новые темы создавать

Как под Windows скоростное устройство USB 2.0 заставить работать на медленной скорости как по USB 1.1 ?

Только, пожалуйста, не нужно доказывать, что мне это не надо. Ещё как надо, и надо всем: половина 3G модемов глючат из-за скоростного USB, а когда втыкаешь в медленный USB, работают нормально.

Заранее спасибо!
Go to the top of the page
 
+Quote Post
Konst_777
сообщение Aug 3 2012, 10:07
Сообщение #11


Знающий
****

Группа: Свой
Сообщений: 549
Регистрация: 1-06-05
Пользователь №: 5 644



Цитата(Ноль с переносом @ Aug 3 2012, 12:24) *
...Как под Windows скоростное устройство USB 2.0 заставить работать на медленной скорости как по USB 1.1 ?...

Использовать внешний USB хаб, поддерживающий только USB 1.1
Go to the top of the page
 
+Quote Post
Xenia
сообщение Aug 3 2012, 16:22
Сообщение #12


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(Konst_777 @ Aug 3 2012, 14:07) *
Использовать внешний USB хаб, поддерживающий только USB 1.1


Но ведь флешка-то на USB2.0 нормально работает в порту USB1.1 без всяких промежуточных хабов. Разве не так? sm.gif
Go to the top of the page
 
+Quote Post
Ноль с переносом
сообщение Aug 4 2012, 05:46
Сообщение #13


Участник
*

Группа: Участник
Сообщений: 16
Регистрация: 6-01-09
Пользователь №: 42 957



Всё так. Глючат только модемы. Хабы USB 1.1 уже не сохранились, не достанешь. Порты 1.1 тоже не в моде.

Говорят, на некоторых биосах можно выставить режим USB 1.1, но не у всех такие биосы. Поэтому нужен чисто программный способ.


Сообщение отредактировал Ноль с переносом - Aug 4 2012, 05:47
Go to the top of the page
 
+Quote Post
Xenia
сообщение Aug 4 2012, 06:45
Сообщение #14


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(Ноль с переносом @ Aug 4 2012, 09:46) *
Всё так. Глючат только модемы. Хабы USB 1.1 уже не сохранились, не достанешь. Порты 1.1 тоже не в моде.
Говорят, на некоторых биосах можно выставить режим USB 1.1, но не у всех такие биосы. Поэтому нужен чисто программный способ.


Что касается устройства, то любое из расчитанных на 2.0 может работать, как 1.1. Только частоту PLL оно у себя должно другую выставить и в дескрипторе, когда тот попросят, указать USB_SPECIFICATION не 0x200, а 0x110.

Плохо только то, что устройство не может знать, к какому порту его присоединили, потому что именно ему дают команду представиться, запросив посылку, где кроме PID/VID должно указать еще и USB_SPECIFICATION. Т.е. процедура такова, что компьютер должен подстраиваться к устройству, а не наоборот. При большом желании, конечно, можно рычажок или джампер поставить, по состоянию замкнутости которого МК будет активировать разные скорости USB, только вряд ли кто захочет этим делом заморачиваться.
Go to the top of the page
 
+Quote Post
Konst_777
сообщение Aug 4 2012, 17:48
Сообщение #15


Знающий
****

Группа: Свой
Сообщений: 549
Регистрация: 1-06-05
Пользователь №: 5 644



Цитата(Ноль с переносом @ Aug 4 2012, 08:46) *
...Хабы USB 1.1 уже не сохранились, не достанешь.... Поэтому нужен чисто программный способ.

В Диспетчере устройств в ветке "Контроллеры USB" отключите "Стандартный расширенный PCI - USB хост-контроллер". После этого все USB порты компьютера будут поддерживать только протокол обмена USB 1.1, соответственно только скорости обмена Full Speed (12 Мбит/сек) и Low Speed (1.5 Мбит/сек).
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 12:44
Рейтинг@Mail.ru


Страница сгенерированна за 0.01502 секунд с 7
ELECTRONIX ©2004-2016