Форум программистов, компьютерный форум, киберфорум
Python: Сети
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
0 / 0 / 0
Регистрация: 10.03.2018
Сообщений: 20
1

Чтение данных из usb-порта

22.08.2018, 20:45. Просмотров 3301. Ответов 13
Метки нет (Все метки)

Здравствуйте, уважаемые форумчане! Надо организовать передачу данных от самодельного устройства к компьютеру через usb-порт (COM-порт не подходит по скорости передачи данных). Нашел библиотеку PyUSB и столкнулся с проблемой, надо указать VID и PID, но поскольку устройство самодельное, оно не имеет VID и PID, и к моему сожалению, просто так читать данные из usb-порта нельзя. После чего возникла идея выбрать два рандомных числа и передать их как VID и PID (Я понимаю, что тогда устройство может определиться как флешка, камера, джойстик, клавиатура и т.д., но по идеи, компьютеру будет без разницы, т.к. драйвер для этого устройства напишу я.) Вопрос, как устройство передает свои VID и PID (т.е. как часто, это происходит, есть ли специальные биты, которые отделяют VID, PID и полезную информацию) и как, собственно, происходит передача данных по usb?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.08.2018, 20:45
Ответы с готовыми решениями:

MathCAD: чтение из COM- (либо USB-) порта
Добрый день, Товарищи! Подскажите, плиз, следующее. Можно ли напрямую из MathCAD считывать...

Получение данных с USB/COM-порта
Добрый день! Необходимо получить данные с USB-порта. Можете подсказать с чего начинать? ...

Получение данных с USB-порта
Есть Электронное средство измерения с программным обеспечением для фиксирования данных в ПК....

Захват данных с USB порта
Подскажите пожалуйста, можно ли как-то получить захватить происходящее на USB порту? То есть...

13
Эксперт Python
4178 / 3071 / 1007
Регистрация: 28.10.2013
Сообщений: 7,980
22.08.2018, 23:31 2
Цитата Сообщение от Wine Посмотреть сообщение
и как, собственно, происходит передача данных по usb?
Мы, конечно, тут знаем вообще про все (ну наш раздел так ведь и называется: Python и все все все), но пожалуй вам стоит начать с официальной спецификации от Intel и K. На 482 страницах этого потрясающего бестселлера вы найдете исчерпывающие ответы о жизни и судьбе увлекательнейшего протокола шины USB.
1
0 / 0 / 0
Регистрация: 10.03.2018
Сообщений: 20
23.08.2018, 12:41  [ТС] 3
Цитата Сообщение от Garry Galler Посмотреть сообщение
но пожалуй вам стоит начать с официальной спецификации от Intel и K
За документацию спасибо.
Цитата Сообщение от Garry Galler Посмотреть сообщение
Мы, конечно, тут знаем вообще про все (ну наш раздел так ведь и называется: Python и все все все)
Цитата Сообщение от Garry Galler Посмотреть сообщение
На 482 страницах этого потрясающего бестселлера вы найдете исчерпывающие ответы о жизни и судьбе увлекательнейшего протокола шины USB
Если не хотите отвечать, то не отвечайте, не надо ерничать.
0
Эксперт .NET
7425 / 4933 / 1176
Регистрация: 25.05.2015
Сообщений: 15,075
Записей в блоге: 14
23.08.2018, 12:56 4
Лучший ответ Сообщение было отмечено Wine как решение

Решение

Есть покомпактнее описание:
USB in a NutShell (перевод).
Интерфейс USB. Практика использования и программирования.

Цитата Сообщение от Wine Посмотреть сообщение
Если не хотите отвечать, то не отвечайте, не надо ерничать.
Ваш вопрос вообще никакого отношения к Python не имеет. Вам туда: https://www.cyberforum.ru/electronics-beginners/
Вопрос слишком объёмный, чтобы кто-то на форуме вам взялся объяснять в деталях, как всё это работает.
Цитата Сообщение от Wine Посмотреть сообщение
Вопрос, как устройство передает свои VID и PID (т.е. как часто, это происходит, есть ли специальные биты, которые отделяют VID, PID и полезную информацию)
Однократно, при инициализации, в ответе на служебные запросы от хоста.
0
0 / 0 / 0
Регистрация: 10.03.2018
Сообщений: 20
23.08.2018, 13:39  [ТС] 5
Цитата Сообщение от Rius Посмотреть сообщение
Есть покомпактнее описание:
Спасибо большое.
Цитата Сообщение от Rius Посмотреть сообщение
Ваш вопрос вообще никакого отношения к Python не имеет. Вам туда: https://www.cyberforum.ru/electronics-beginners/
Извините, совсем задумался о том, что хочу реализовать это на Python.
Цитата Сообщение от Garry Galler Посмотреть сообщение
Мы, конечно, тут знаем вообще про все (ну наш раздел так ведь и называется: Python и все все все)
Извините, что я спросил не в том разделе. Но ерничать как-то не очень.
Цитата Сообщение от Rius Посмотреть сообщение
Вопрос слишком объёмный, чтобы кто-то на форуме вам взялся объяснять в деталях, как всё это работает.
После беглового просмотра документации и статей, понял что usb шина работает по-сложнее чем я это себе представлял.
Цитата Сообщение от Rius Посмотреть сообщение
Однократно, при инициализации, в ответе на служебные запросы от хоста.
Спасибо.
PS, насчет возмущений "Не разберутся в теме, тут же лезут на форум, думают им все объяснят", которые могут возникнуть. Извините, поскольку я думал, что usb-шина работает проще, искал в основном программную реализацию, после недели тщетных попыток полез на форум. Большое спасибо, за приведенные ссылки
0
Эксперт .NET
7425 / 4933 / 1176
Регистрация: 25.05.2015
Сообщений: 15,075
Записей в блоге: 14
23.08.2018, 14:08 6
UART работает легко и понятно, поэтому новички мастерят связь на USB-UART мостах.
А стандарт USB сам по себе - убиться ап стену...
Но на готовых примерах и макетных платах девайс завести не так уж сложно.

Добавлено через 19 минут
Цитата Сообщение от Wine Посмотреть сообщение
искал в основном программную реализацию
Она есть на микроконтроллерах AVR: V-USB. Тогда, когда оно начиналось, USB в МК не были шибко распространены.
А сейчас у всех нормальных МК есть серии, имеющие на борту аппаратную реализацию. Поэтому уже сама программная реализация стала редкостью.
0
0 / 0 / 0
Регистрация: 10.03.2018
Сообщений: 20
23.08.2018, 16:19  [ТС] 7
Давайте я лучше расскажу, что я хочу сделать. Идея такая: сделать легкий видеопередатчик, передавать с него видеосигнал на компьютер, после чего нейросеть его обрабатывает(находит лицо, и выделяет его) и выводит готовую картинку на экран. Схемы видеопередатчиков я нашел(частота в основном 433МГц), нейросеть написал, с демодуляторами и АЦП почти разобрался, кодировку PAL знаю. Купить FPV систему(приемник+передатчик) не могу, т.к. на али она стоит от 1500-2000руб (Мне 15 лет, денег нет). Видел проекты на ПЛИС. Но с usb как я думал, почти сложилось, поэтому перестал искать в этом ключе, да и денег нет. По моим подсчетам скорость передачи данных должна быть от 35Кбайт/с, в то время как у COM-порта максимальная скорость 28.8Кбайт/с. С AVR (Arduino Uno) я работал, она определяется как виртуальный COM-порт, а у COM-порта максимальная скорость 28.8Кбайт/с + максимальная скорость которую я видел в кодах для ардуино 115200бод = 14.4Кбайт/с, поэтому реализацию устройств на AVR обходил стороной. Скорость передачи данных с помощью библиотеки V-USB хватает, но боюсь не хватит производительности МК(Хотя можно попробовать написать скрипт на чистом C). За библиотеку V-USB спасибо, все вышенаписанное реализуемое или меня заносит в колхоз и лучше поднакопить денег и купить по-лучше железо?
0
Эксперт .NET
7425 / 4933 / 1176
Регистрация: 25.05.2015
Сообщений: 15,075
Записей в блоге: 14
23.08.2018, 17:20 8
Цитата Сообщение от Wine Посмотреть сообщение
т.к. на али она стоит от 1500-2000руб
У родителей попросите. Не на пиво же

Цитата Сообщение от Wine Посмотреть сообщение
в то время как у COM-порта максимальная скорость 28.8Кбайт/с
Обычный аппаратный в винде позволяет из коробки 115 Кбит/с, ~9,6 Кбайт/с
Silabs CP210x - USB-UART, по описанию, позволяет получить 921 Кбит/с, что ~76 Кбайт/с.
Silabs CP2130 - мост USB-SPI, выдаёт 3-4 Мбит/с.
И это всё довольно простые и доступные интерфейсы.

Цитата Сообщение от Wine Посмотреть сообщение
С AVR (Arduino Uno) я работал, она определяется как виртуальный COM-порт, а у COM-порта максимальная скорость 28.8Кбайт/с + максимальная скорость которую я видел в кодах для ардуино 115200бод = 14.4Кбайт/с, поэтому реализацию устройств на AVR обходил стороной.
На форуме ардуинщиков есть записи о получении 0,5...2 Мбит/с по виртуальному COM порту.
Но вообще да, лучше стороной обходить. Есть гораздо более мощные и быстродействующие микроконтроллеры, вроде STM32. Правда, денег поболее стоят.

Цитата Сообщение от Wine Посмотреть сообщение
лучше поднакопить денег и купить по-лучше железо?
Да, лучше бы. Но и на ардуине попробовать можно.

Добавлено через 6 минут
Цитата Сообщение от Wine Посмотреть сообщение
у COM-порта максимальная скорость 28.8Кбайт/с
Откуда такая инфа?

Добавлено через 26 минут
И если уж есть кабель USB, то почему бы просто не подключить вебкамеру к ПК напрямую? Лишнее устройство здесь не нужно.
1
0 / 0 / 0
Регистрация: 10.03.2018
Сообщений: 20
23.08.2018, 18:02  [ТС] 9
Цитата Сообщение от Rius Посмотреть сообщение
Откуда такая инфа?
Википедия https://ru.wikipedia.org/wiki/... 1%8B%D1%85
Цитата Сообщение от Rius Посмотреть сообщение
У родителей попросите. Не на пиво же
Родители, в связи с моим недавним ДР, хотят купить мне монитор(решение взвешенное, т.к. старый совсем никакой) + видеокарту хочется обновить(т.к. gt240 уже не хватает), моих денег не хватает на новую, поэтому они мне решили добавить, поэтому просить еще денег некрасиво. Давайте не будем про деньги, а то звучит это со стороны не очень.
Цитата Сообщение от Rius Посмотреть сообщение
Обычный аппаратный в винде позволяет из коробки 115 Кбит/с, ~9,6 Кбайт/с
Silabs CP210x - USB-UART, по описанию, позволяет получить 921 Кбит/с, что ~76 Кбайт/с.
Silabs CP2130 - мост USB-SPI, выдаёт 3-4 Мбит/с.
И это всё довольно простые и доступные интерфейсы.
Цитата Сообщение от Rius Посмотреть сообщение
На форуме ардуинщиков есть записи о получении 0,5...2 Мбит/с по виртуальному COM порту.
А мир-то интересней, чем мне казалось Я думал, что какой-либо COM-порт не был, везде скорость будет одинаковая. Спасибо за информацию про USB-UART, т.к. такой у меня как раз есть(покупал как программатор для ардуино мини)
0
Миниатюры
Чтение данных из usb-порта  
0 / 0 / 0
Регистрация: 10.03.2018
Сообщений: 20
23.08.2018, 18:30  [ТС] 10
Цитата Сообщение от Rius Посмотреть сообщение
И если уж есть кабель USB, то почему бы просто не подключить вебкамеру к ПК напрямую?
Т.к. хочется сделать беспроводную передачу видео, т.к. с вебкамерой я уже работал и так же определял лица(только с помощью хаар каскада).
0
Эксперт .NET
7425 / 4933 / 1176
Регистрация: 25.05.2015
Сообщений: 15,075
Записей в блоге: 14
23.08.2018, 20:03 11
Цитата Сообщение от Wine Посмотреть сообщение
.к. хочется сделать беспроводную передачу видео
Проводной USB очень отличается от беспроводных интерфейсов. Если сделаете сейчас на USB, в хотелке создания беспроводной передачи вам это никак не поможет.
0
0 / 0 / 0
Регистрация: 10.03.2018
Сообщений: 20
23.08.2018, 20:47  [ТС] 12
Цитата Сообщение от Rius Посмотреть сообщение
Проводной USB очень отличается от беспроводных интерфейсов
Фактически, беспроводного USB не будет, т.к. сигнал с видеопередатчика принимает демодулятор, после чего АЦП преобразует этот сигнал в цифровой(передатчик аналоговый) и уже этот сигнал скармливается USB-UART устройству. Получается без разницы от чего принимает сигнал USB-UART конвертор от ардуино или от АЦП или я что-то путаю?
0
Эксперт .NET
7425 / 4933 / 1176
Регистрация: 25.05.2015
Сообщений: 15,075
Записей в блоге: 14
23.08.2018, 21:05 13
Цитата Сообщение от Wine Посмотреть сообщение
АЦП преобразует этот сигнал в цифровой(передатчик аналоговый)
Так эта штука на приёмной стороне? Тогда OK.
0
0 / 0 / 0
Регистрация: 10.03.2018
Сообщений: 20
23.08.2018, 21:27  [ТС] 14
Цитата Сообщение от Rius Посмотреть сообщение
Так эта штука на приёмной стороне?
Да, спасибо большое за помощь.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.08.2018, 21:27

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Чтение данных с COM-порта
Доброго времени суток. Уверен тема поднималась не раз, уже все прочитал разобраться не смог. В...

Чтение данных с COM порта
Есть два оборудования которые между собой подключены через COM. Одно все время передает данные...

Чтение данных с COM-порта
Здравствуйте. В ответ на мои запросы, COM порт присылает мне ответ различной длины. Как прочитать...

Чтение данных из com-порта
Доброго времени суток! Есть ошибка: "аргуметн типа char несовместим с параметром типа const char"...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.