Программирование USB (примеры)

Раздел форума: 

Аватар пользователя admin

Автор темы: 

Юрий
Уважаемые господа!

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

Заранее благодарен.

 

Страницы

Аватар пользователя Клава
Юрий,

МSDN рекомендует www.usb.org.

С уважением,

Клава

Аватар пользователя Юрий
Благодарю, но я там уже был (и даже чего-то выкачал). Не совсем то, что нужно.

Меня в первую очередь интересуют примеры.

И тем не менее, спасибо.

Аватар пользователя Дмитрий
И мне бы инфу про USB. Делаю устройство с микроконтроллером, которое надо подключить к компьютеру через USB.
Аватар пользователя Savely
2 Юрий: Тебе с нуля или под винду?

2 Дмитрий: Контроллеры USB делают счас все приличные производители. Навскидку - www.cypress.com,

http://eu.atmel.com/atmel/products/prod28.htm

Там погуляй, поищи доки - к этим контроллерам можно прицепить любой свой - на AVR, PIC и т.п.

А теперь вопрос от себя - кто-нибудь в этой стране имеет опыт программирования USB с нуля со стороны хоста (компьютера)? Копал исходники драйверов Linux, исходники Award BIOS, вроде все делаю как надо, но не выходит... Так что есть вопросы.

P.S. Пишущим дрова для USB-устройств под Windows (кроме NT 4.0) просьба не беспокоиться - у вас все по-другому. :-)))

Аватар пользователя Андрей
Подскажите примеры(где искать) передачи данных через USB 1.15Мбит со стороны хоста.
Аватар пользователя Radix
Кое-что появилось на pascal.sources.ru -

под ДОС...

Аватар пользователя Savely
Это единственное, что есть.
Аватар пользователя Инкогнито
www.ks-labs.tk
Аватар пользователя Vladimir
Где найти протокол обмена USB, надо писать soft чтобы брал видео с камеры что на USB, и обрабатывал паралельно основному выводимому видео потоку.

Те видео перехват с камеры USB. Зарание благодарен за любую информацию :) - Спосибо

Аватар пользователя kennobi
Сейчас как-раз разбираюсь с программированием УСБ со стороны хоста на ассемблере на самом низком уровне под дос. Самая лучшая литература, которую нашел - Кулаков В. "Программирование на аппаратном уровне" 2-е издание. Уже многое понятно, но так-же есть много вопросов. Всем заинтересованным лицам предлагаю устроить мозговой штурм, и разобраться совместно. Обращаться ISQ 251552240 или по емайлу. Как я понял основные идеи следующие: 1. Весь обмен по шине идет под управлением хоста. Устройство без него даже не пикнет. 2. Параметры каждой передачи задаются с помощью TD. 3. Порядок обработки TD задается с помощью последовательности кадров. 4. Вся эта фигня управляется десятком регистров, доступ к которым можно получить только в режиме виртуальных машин, или в режиме линейной адресации. У меня работает не всё. Кто разбирается глубже, может поделиться, или хочет разобраться, сейчас в процессе,пишите. Мне это нужно позарез и срочно! Всем - удачи!
Аватар пользователя Сергей
А есть литературка о программировании того самого USB под винду? Хотелось бы работать с этим портом на более высоком уровне, чем на АСМе. Интересуют даже самые элементарные принципы работы с портом. ДДК не вариант.
Аватар пользователя Андрей
Аналогичная ситуация. И для меня совершенно непонятная. USB используется на каждом шагу, а нормальной информации о программировании нигде нет. На www.usb.org подробнейшие описания протоколов, это тоже очень полезно, но мне для работы надо несколько другое - имена библиотеных системных функций в Windows, через которые можно разговаривать с железом на другом конце USB. Копался в MSDN, но там самое полезное, что смогли предложить, это послать в DDK. И там тоже, кроме ряда функций с кучей параметров и без описаний, ничего путного не нашел. Может кто подскажет книгу или другую документацию, где было бы все расписано по полочкам. А то создается впечатление, что разработка софта к USB - это страшная тайна.

Может существую какие комоненты под Borland C++ Builder, с помощью которых упрощалась бы задача обращения к USB устройствам?

Заранее благодарен за любую информацию.

Аватар пользователя Инкогнито
Полная информация о программировании USB (с полными примерами на Delphi), написанием драйверов (с полными примерами на Си) и программой для 51-го контроллера есть в книге издательства BHV: Агуров П.В. "Интерфейс USB. Практика использования и программирования" (http://www.bhv.ru/books/book.php?id=5993). Купить можно на book.ru (http://www.books.ru/shop/books/226645), на озоне или просто в магазине.
Аватар пользователя Руслан
http://www.linux-usb.org/
Аватар пользователя Student
в общем есть прога - p2kmen

написана на асме- под винды, закачиват мелодии через USB в мобилу, там можно вычитать, работает с телефонами моторола

Аватар пользователя Инкогнито
Павел Агуров

Интерфейс USB. Практика использования и программирования (+ CD-ROM) (8.4 mb формат djvu) без диска. Пишите на

trix101@nm.ru

Аватар пользователя Инкогнито
"Павел Агуров. Интерфейс USB. Практика использования и программирования" скачать можно также на http://depositfiles.com/files/52364/156.rar.html или http://rapidshare.de/files/20318919/usb.zip.html
Аватар пользователя mike
>скачать можно также на...

В сарае на Купалы исчо есть. С диском. Поспешайте!

Аватар пользователя Magvays
Здравствуйте! Может быть вы сможете ответить на этот вопрос. Изучая спецификацию USB я не понял можно ли передавать данные через не нулевую конечную точку используя управляющие посылки? Или управляющие посылки только для нулевого ендпоинта?

Спасибо. Magvays@yandex.ru

Аватар пользователя Savely
Можно, IMHO.
Аватар пользователя Savely
Тьфу - точнее, точно можно, я так пробовал.
Аватар пользователя TOMson
Здравствуйте! мне нужно написать программу на ms visual c++ 6.0 для считывания кода клавиш USB-клавиатуры, USB-клавиатура может быть подключена параллельно к основной, т.е. она может быть определена как USB-устройство. при нажатии клавиши, должен быть считан ее код и выведен на экран. подскажите, пожалуйста, как это сделать. только начал работать с USB. буду рад любой помощи! заранее благодаренн!
Аватар пользователя Savely
А тут дело не в USB, мне думается. Фильтр-драйвер клавиатуры (или хук поставить) - получится? А далее можно пытаться выяснять, откуда пришел IRP... Только это не "программа" (user ring), а таки драйвер (0-ring).

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

Аватар пользователя Savely
На уровне VK_KEY, насколько я понимаю - хрен ты различишь, с какой клавы он (код) пришел...
Аватар пользователя mike
>хрен ты различишь, с какой клавы он (код) пришел...

А зачем различать?

Аватар пользователя Savely
>А зачем различать?

Ну, автор про параллельность клавиатур зачем-то упомянул.

Аватар пользователя TOMson
да, я начал писать хук, по перехвату сканкода клавиш, но вынснилось, что надо делать на ниж уровне...потерял много времени... проф сказал что, можно паралельно тестировать несколько клав, а одна для того, что бы была основной, для обслуживания, ну как бы это уже второе. главное считывать код на уровне юсб. с юсб только начал работать и не знаю как это реализовать.

в конце это, по идеи должна быть дллка, что бы подключить к лабвью.

Аватар пользователя Savely
>главное считывать код на уровне юсб

Вот это совсем не факт. Главное - отличать одну клавиатуру от другой. Интерфейс ее подключения должен быть "по барабану", хоть через RS-232. Т.е. работать надо где-то на уровне Keyboard Сlass драйвера. Или, по аналогии с PS/2, фильтра драйвера USB-клавиатуры (я не совсем представляю весь стек драйверов в случае USB-клавы, для PS/2 - это 8042prt.sys, пример его фильтра есть в DDK).

В принципе можно пробовать сделать наоборот - поставить на PS/2 фильтр-драйвер, который будет говорить "этот код - с PS/2", соотв., остальные коды - с USB...

Но вот практических рекомендаций дать не могу - нет времени и USB-клавиатуры.

Аватар пользователя Savely
А как это сделать ТОЛЬКО DLL-кой - я не знаю, боюсь - никак. DLL-ка может обеспечивать интерфейс с драйверами - тогда да.
Аватар пользователя TOMson
спасибо за совет! нарыл кое-что, для разделения с разных USBклав можно использовать имя USBустройства, кот представляет собой PnP-индификатор, "открыть" это устройство с CreateFile и считывать сообщения с ReadFile.

нашел интересную модель RawInput, кот работает с WinXP и выше: получает данные от уст напрямую; не надо открывать уст; отличает данные от уст один типа, напр две мышки; поддерживает все типы HIDуст.

Страницы