Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Микроконтроллеры (MCU) и микропроцессоры (MPU) > Программирование USB-устройств под DOS |
Автор: sir 18.8.2005, 19:45 |
Подскажите, где найти документацию для написания драйвера для USB-устройств (порты, команды, протоколы...). Хотелось бы под DOSом, но буду рад любому варианту. ЗАРАНЕЕ БЛАГОДАРЮ ВСЕХ ОТКЛИКНУВШИХСЯ!!! |
Автор: Akina 18.8.2005, 21:57 |
Набрал в Гугле "USB DDK for DOS". Первая же ссылка - http://www.lvr.com/usb.htm Не стыдно? |
Автор: sir 19.8.2005, 13:45 |
To Akina with love : а Ты на http://www.lvr.com/usb.htm понял что-нибудь? Если да, то через какие порты идет общение с USB? |
Автор: cardinal 20.8.2005, 14:42 | ||
Через спец. USB'шные порты: USBin и USBout (у контроллера). |
Автор: Crait 20.8.2005, 17:36 |
http://hobbes.nmsu.edu/pub/dos/Usb4pas.zip http://migera.ru/Files/usbdos.rar http://tz.webclass.ru/?usb_dos Не знаю, устарели сейчас эти ссылки, или же нет - попробуй ![]() |
Автор: tikitiki 22.8.2005, 21:58 |
Подскажите как программируется usb-устройство например из программы на Delphi, работающей под win. Видимо нужна разработка драйвера этого устройства под win сначала(если устройство проектируется)? Если да, где найти информацию по написанию драйверов таких? После создания драйвера и установки на пк видимо остаётся только привязка кода программы к устройству без обращения напрямую к драйверу. Или как этот процесс происходит хоть вкратце? |
Автор: Guest 18.9.2005, 12:30 |
Дельфинам тут: http://www.bhv.ru/books/book.php?id=5993 |
Автор: Гость_rus 24.11.2005, 10:09 |
попробуй прогу WinDriver все сама делает.Запусти на поиск,ссылок хватает. |
Автор: chetr 27.1.2006, 18:45 |
Нужны исходники для программирования под MS-DOS, есть девайс DS2490 вот его и надо запрограммировать на работу с таблеткой (Touch Memory). Считал дескриптор устройства и почти все дескрипторы конфигурации, интерфейса, конечных точек, кроме одного последнего-> конечной точки (Кулакову руки оторвать за плохую прогу в книге). Так вот как считать данные с устройства через BULK конечную точку и как с ними работать по прерываниям |
Автор: makwen 27.1.2006, 19:08 | ||
tikitiki
Если устойство низкоскоросное, то можна использывать драйвер HID устройства. Он встроенный в WIndows98\2000\XP. Маскимально достигаемая скорость 64Кбит\с. Мыши и клавы, которые под USB используют этот драйвер! |
Автор: NagSerg 10.2.2006, 10:29 |
Я когда разрабатывал своё первое USB устройство, пользовался WinDriver - очень удобная прога. С помощью её можно записать/прочитать любую конечную точку (если конечно она разрешена). С помощью её же можно сгенерить тестовое приложение для Delphi, Builder, Visual, я попробовал - мне не понравилось. В книге Павла Агурова "Интерфейс USB практика использования и программирования" хорошо написано как создать драйвер с помощью программы Driver Studio. Так же Driver Studio генерит тестовое приложение на Visual и обращение к устройству происходит как CreateFile, далее чтение - ReadFile, запись - WriteFile. |
Автор: chetr 10.2.2006, 22:40 |
Как же всё плохо оказывается за океаном!!! Никто уже не разрабатывает USB драйверов под родной забытый ДОС (за некоторыми исключением). Больше огорчает, что никто не может конкретно привести пример куска программы, даже сам Jan Axelson ответил мне на USB.org посмотри говорит на моём сайте http://www.lvr.com/usb.htm , там говорит что-то валялось по поводу ЮСБ в ДОСе. А валялись там ссылки на сайт МелкоМягких, где конечно же никаких примеров НЕТ!!! (или я плохо искал). Так что остаётся мне друзья опять спросить у ВАС. КАК ЖЕ всё-таки правильно посылать Interrupt и BULK IN/OUT транзакции для UHCI контроллера? Перепробовал всё!!! Сил больше нет!!! ![]() |
Автор: PILOT 11.2.2006, 22:15 |
Есть книга, в которой есть исходник USB драйвера под ДОС, книга называется "Аппаратные средства ПК" или как-то атк, на работе лежит... могу уточнить название, если есть необходимость. СУВ. Добавлено @ 22:16 Нашел дома: "Программирование на аппаратном уровне" Кулаков. СУВ. |
Автор: chetr 12.2.2006, 12:37 |
У меня такая тоже имеется, собственно по ней и стал изучать этот интерфейс. Но не работают его примеры на практитке. |
Автор: PILOT 12.2.2006, 19:44 |
Хм... я их конечно не пробовал, но все же есть уверенность в том, что они правильные, а если не работает, то возможно ошибка весьма банальна и ищется достаточно быстро... СУВ. |
Автор: chetr 12.2.2006, 21:15 |
Я его исходники использовал для того, чтобы запрограммировать DS2490 под ДОС, но писать пришлось на "Си". Так вот у меня всё работает кроме BULK и Interrupt транзакций. На счёт банальности ошибки в своём коде я уверен, вот только не знаю где именно она спряталась. Вообще Кулаков пишет про эти транзакции, что надо отправлять пакеты подтверждения, а в примере кода этого нет!!! Кому верить? |
Автор: PILOT 13.2.2006, 00:01 |
Верить нужно исходной документации ![]() СУВ. |
Автор: chetr 13.2.2006, 23:08 |
Полностью с тобой согласен, жаль что в спецификации ЮСБ нет приеров исходников =( А ты случаем не знаешь ЮСБ протокол very well? А то очень сложно найти реально разбирающихся в этом протоколе людей |
Автор: PILOT 14.2.2006, 23:36 |
Смотря что тебя интересует... Транзакции в момент включения? или что? СУВ. |
Автор: chetr 15.2.2006, 09:57 |
Вот смотри с девайса я считал все его дескрипторы. Дальше с помощью Сетуп пакетов ему передаёшь команды с параметрами. А параметры надо передавать через BULK Out транзакции. Считывать статус устройства (его регистры) надо через Interrupt IN. Так во вопросы накопились следующие: 1-пакет подтверждения- это АСК пакет, который у Кулакова называется пустым? 2-нужно ли его слать устройству после Bulk IN и Interrupt транзакции? 3-АСК пакеты вырабатываются аппаратно или нужно их самому формировать и отсылать? 4-какой конечной точке АСК отсылать, ведь если принимаем через IN то отсылать надо в OUT или как? 5-не могу понять как надо правильно вормировать пакеты для Bulk IN и Interrupt транзакции? Если чо-нить из этого знаешь, ответь пожалуйста плз. |
Автор: chetr 15.2.2006, 22:07 |
Вроде разобрался с 1 2 3 4 вопросами, и частично с 5. Научился получать содержимое статусных регистров девайса через Interrupt транзакцию |
Автор: chetr 17.2.2006, 10:31 |
Осталось BULK IN доделать |
Автор: chetr 17.2.2006, 16:38 |
Оказалось что не доконца сконфигурировал устройство!!! А так всё оказывается просто. Кстати надо запрашивать постоянно состояние внутренних регистров устройства. А есть идеи, как писать для OHCI контроллера? |
Автор: chetr 16.3.2006, 13:03 |
Проблема решена для UHCI контроллера (могу поделиться опытом). Теперь нужны исходники, показывающие, как работать с OHCI контроллером после того, как определили его адрес на шине PCI. ПОМОЖИТЕ плз!!! Заранее спасибо!!! ![]() |
Автор: chetr 5.4.2006, 13:31 |
Ещё вопрос по теме!!! С USB микросхемой научился работать под ДОСом, а вот клавиатуру USB она подвешивает, как обойти эту ситуацию? |
Автор: chetr 11.4.2006, 10:42 |
Что-то все смотрят тему, а ответить никто не может...досадно |
Автор: chetr 4.5.2006, 15:02 |
Тема ещё актуальна!!! Вроде проинициализировал хост, а нумерация не проходит. Выдаётся ошибка 5 (Device not responding), в чём может быть проблема? Устройство не посылает пакет подтверждения? |
Автор: PILOT 4.5.2006, 19:29 |
а ты посмотри отладчиком USB, если ты просто D+ или D- подтянешь к 5Вольтам у тебя пойдут запросы от хоста, при этом твой резистор ничего естественно не ответит, а значит хост выдаст: Device not responding. Т.е. устройство не отвечает на запрос. СУВ. |
Автор: chetr 4.5.2006, 19:59 |
а где его взять этот отладчик? |
Автор: PILOT 5.5.2006, 12:30 |
Могу тебе его прислать но только 15-го мая. Т.к. в отпуске до этого момента ![]() СУВ. |
Автор: chetr 5.5.2006, 12:53 |
Договорились =) мыло==> chetr_bk.ru |
Автор: ManiaK 6.5.2006, 19:58 |
Разрослась как тема, закреплю-ка я её... |
Автор: chetr 11.5.2006, 16:26 |
А теперь супер-вопрос для людей, знающих USB интерфейс!!! Как сделать под ДОСом, чтобы моя прога отработала и не выключила USB клавиатуру??? Какой алгоритм правильный??? Неужели все в отпуске отдыхают??? Кстати для начинающих!!! Могу дать полезные ссылки на документацию!!! |
Автор: Якимчук 10.6.2006, 22:01 |
Книги: В. Кулаков. Программирование на аппаратном уровне, П. Агуров Интерфейс USB. Практика использования и программирования; Справочник: Driver Development Kits (DDK) XP и много другой полезной литературы можно скопировать здесь: http://www.pcports.ru/Library.php . См. также http://www.is.svitonline.com/vks/Links/Download.html и http://www.sibsutis.ru/~mavr/LIB/books.htm |
Автор: chetr 10.6.2006, 22:23 |
Спасибо!!! Но у меня всё это есть и даже больше!!! ![]() |
Автор: makwen 11.6.2006, 00:02 |
chetr Если есть еще что-то полезное, можешь выложить! Буду благодарен! |
Автор: chetr 18.6.2006, 20:05 |
http://forum.sources.ru/index.php?showtopic=131130&st=0 тут поинтереснее и есть кое-что по теме |
Автор: ManiaK 23.6.2006, 16:21 |
Модератор: Господа, НИКАКИХ ВОПРОСОВ в данной теме! Только информация!.. |
Автор: KEM 29.9.2006, 20:31 | ||
Вот такую чудесный компонент нашол, молоэфективен еонечно, но даёт толчок в нужном направлении.
|
Автор: cardinal 8.11.2007, 06:20 |
Если надо сделать устройство для коммуникации по USB, то можно это очень просто организовать при помощи FT232RL. Схему для ATmega8 или ATmega32 найдете на сайте http://www.g24-tec.com... |
Автор: rthsobakas 3.11.2009, 22:20 |
сейчас ещё usb3.0 вышла. Интересно че там изменилось. Добавлено через 7 минут и 40 секунд интересно хоть кто -нибудь из посылающих читать спецификацию, сам до конца прочитал весь материал по УСб?))) |