Модераторы: feodorv, GremlinProg, xvr, Fixin

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Драйвер USB устройства 
:(
    Опции темы
PILOT
Дата 21.5.2005, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


производство
****


Профиль
Группа: Модератор
Сообщений: 2724
Регистрация: 4.4.2002
Где: москва

Репутация: нет
Всего: 54



Кто-нить может объяснить как написать драйверок к устройству (собранному мною на контроллере) под WinXP?
Вопрос очень общий, но честно говоря я не знаю ничего об этом кроме того что:
1) это делается в DDK (на базе примеров)
2) это делается на С
3) представляю себе USB аппаратно

СУВ.
ЗЫ. До сих пор я знаю только одного человека который сделал это и оно работало. Но к сожалению он теперь в другом городе....


--------------------
тут могла быть Ваша реклама...
PM MAIL WWW ICQ   Вверх
En_t_end
Дата 21.5.2005, 18:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2074
Регистрация: 4.12.2004

Репутация: нет
Всего: 20



Если в инете нет конкретно по USB, то теория создания драверов под COM есть точно, почитай-подумай.
ИМХО Ведь основная черта USB - это высокоскоростной канал и надежность + хорошая запитка электронного приложения. Если я не ошибаюсь, то принцип везде один - обработка прерываний - а это по сути примитивнейшая вещь. Но все равно х.з.
PM MAIL ICQ Skype GTalk Jabber   Вверх
cardinal
Дата 21.5.2005, 22:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 1
Всего: 99



Цитата(PILOT @ 21.5.2005, 12:31)
До сих пор я знаю только одного человека который сделал это и оно работало.

Я тоже. smile Это мой батя. К нему и обращаемся. Вот ответ sergeeff'a:
1. Что за устройство? Совсем низкоскоростное или хотя бы несколько Kb/Sec?
Со стороны микроконтроллера что-то реализовано или еще нет ничего? Реализовано программно или стоит отдельный USB контроллер? USB 1.1 или USB 2.0? Если USB 2.0, то low, full или high speed?
2. По какому протоколу с ним надо общаться? Bulk или Isochronous?

Когда объяснишь, тогда можно будет чего-то посоветовать.

С приветом



--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
PILOT
Дата 21.5.2005, 22:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


производство
****


Профиль
Группа: Модератор
Сообщений: 2724
Регистрация: 4.4.2002
Где: москва

Репутация: нет
Всего: 54



Ага!!! smile Спасибо!
Итак, есть AVR с USB интерфейсом (т.е. все в одном ,раньше пробовал на USBN9603, но проект замяли, теперь делаю на AVR). Скорость full (12Mb, т.е. 1.1).
В принципе Isochronous не нужен (слишком быстрой реакции не требуется), требуется передавать около 300байт от контроллера в компьютер раз 20 в секунду.

СУВ.



--------------------
тут могла быть Ваша реклама...
PM MAIL WWW ICQ   Вверх
cardinal
Дата 22.5.2005, 01:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 1
Всего: 99



Вот последующий ответ sergeeff'a (кстати он пару раз на форуме кое-что поспрашивал
http://forum.vingrad.ru/index.php?showtopic=20027
http://forum.vingrad.ru/index.php?showtopic=1062
и понял что ему никто из присутствующих помочь не может, форумом с того времени он не пользовался):

Порядок действий таков.
1. Необходимо, чтобы твой AVR полностью обеспечил стандартный протокол USB в соответствии с главой 9. Если ты зайдешь на www.usb.org там есть специальная тестовая программа, которая обеспечивает тестирование твоего устройства. Тонкости этого тестирования - на твоем компере должен быть hi-speed USB2.0 hub. Если его нет, надо ставить карту с hi-speed USB. И в нее втыкать внешний hi-speed USB hub, а уже в него твое устройство.
2. Дальше берешь DDK для XP (лучше последний sp1). Там в разделе примеров в wdm есть образцы драйверов для USB. Выбираешь тот, который bulk.
3. В DDK есть срециальная программа, которая генерит уникальный GUID. Сгенери с ее помощью себе этот длиннющий номер. Этот номер вставишь в DDK'ашный пример драйвера. Там он прописан через define.
4. Генеришь драйвер обычным образом.
5. Берешь образец inf файла для USB. В нем подправляешь GUID и прописываешь те же VID и PID, которые прописаны в device descriptor твоего AVR USB.
6. Если твое железо работает правильно, то при его подключении к комперу сработает механизм PNP и компер потребует указать откуда установить драйвер.

Всякие красивые штучки типа USB Monitor что-то полезное показывают, только если система подцепляет правильно твое устройство.

Теперь остается разобраться с тем, как написать стандартные вызовы типа CteateFile, ReadFile, WriteFile и CloseFile. Это в Inet'e можно разыскать, хотя это делается несовсем тривиально.
Тогда сможешь читать-писать туда-сюда.

Ну вот и все. Успехов.


Я в этом деле полный лох и лично ничего подсказать не могу. Ты это... smile как что напишешь расскажи о своих успехах, а то мне самому интересно. smile
Успехов!


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
PILOT
Дата 22.5.2005, 11:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


производство
****


Профиль
Группа: Модератор
Сообщений: 2724
Регистрация: 4.4.2002
Где: москва

Репутация: нет
Всего: 54



Спасибо.

Значится так:
1) скачал: USBCV R1.2.1 (only for hi-speed USB hubs)
действительно требует именно высокоскоростной хаб.
2) DDK есть только для 2000. На сайте Microsoft DDK для XP не нашел. Или его на горбушке купить проще?
3) Это понял.
4) Вот видимо с этим пунктом придется еще позадавать вопросы, когда появится DDK.
5) inf файл нужно создавать для каждого устройства USB? Т.е. писать драйвер для каждого устройства USB с соотв. inf файлом?

с CreateFile WriteFile ReadFile видимо несколько позже придется возиться.
Главное чтобы под Delphi можно было это делать, т.к. я на С пишу только для контроллеров.

СУВ.


--------------------
тут могла быть Ваша реклама...
PM MAIL WWW ICQ   Вверх
bel_nikita
Дата 22.5.2005, 11:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2304
Регистрация: 12.10.2003
Где: Поезд №21/22 ( ст . Прага )

Репутация: 4
Всего: 47



PILOT
Есть пример, драйвера USB устройства (Bulk). Не знаю, поможет или нет, но могу скинуть.

Тут все DDK


--------------------
user posted image — регистрация доменов от 150 руб.
PM MAIL WWW ICQ   Вверх
cardinal
Дата 22.5.2005, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 1
Всего: 99



Цитата(PILOT @ 22.5.2005, 09:00)
DDK есть только для 2000.

Пойдет и 2000.
Цитата(PILOT @ 22.5.2005, 09:00)
inf файл нужно создавать для каждого устройства USB?

Да. Но на самом деле там только PID, VID и GUID поменять надо. Ну и прописать название своей фирмы (твой ник smile) и все такое...
Цитата(PILOT @ 22.5.2005, 09:00)
Т.е. писать драйвер для каждого устройства USB с соотв. inf файлом?

Ну и тут писать это громко сказано. Там только GUID соответствующий подставить надо и имя .sys файла поменять.

А насчет Delphi - это все стандартные функции открытия файла поэтому без разницы.

Кое что из описанного можно сделать по другому, но у меня не дошли до этого руки


Это был не я. smile


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
cardinal
Дата 22.5.2005, 17:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 1
Всего: 99



Цитата(PILOT @ 22.5.2005, 09:00)
DDK есть только для 2000

Нет, стоп! Этот DDK не пойдет. Нужен XP'шный!


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
PILOT
Дата 23.5.2005, 00:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


производство
****


Профиль
Группа: Модератор
Сообщений: 2724
Регистрация: 4.4.2002
Где: москва

Репутация: нет
Всего: 54



Скачал DDK, скачал тестовые программы для USB.
Не могу узнать максимальную скорость USB (т.е. поддерживает ли моя плата hi-speed) в спецификации на материнку написано USB 2.0, но не факт что hi-speed.
Теперь я так думаю нужна ссылка (информация) по форматам передачи, по последовательности выполняемых операций при включении устройства (последовательности запросов-ответов).

СУВ.


--------------------
тут могла быть Ваша реклама...
PM MAIL WWW ICQ   Вверх
cardinal
Дата 23.5.2005, 00:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 1
Всего: 99



Ну, помоему, на www.usb.org вся остальная инфа должны быть... Или тут например:
http://www.usb.org/developers/usbfaq/


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
PILOT
Дата 23.5.2005, 01:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


производство
****


Профиль
Группа: Модератор
Сообщений: 2724
Регистрация: 4.4.2002
Где: москва

Репутация: нет
Всего: 54



Узнал. Hi-speed (400 c лишним Мб\с) присутствует... это радует.
Использую микросхему AT43USB355.
Скачал спецификации (пока на 1.1, чтобы не знать лишнего о 2.0). Вспоминаю что к чему...

СУВ.


--------------------
тут могла быть Ваша реклама...
PM MAIL WWW ICQ   Вверх
ManiaK
Дата 29.5.2005, 23:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Homo Sapience
***


Профиль
Группа: Комодератор
Сообщений: 1145
Регистрация: 3.8.2004
Где: ИУ5-93

Репутация: 2
Всего: 29



PILOT а можно полюбопытствовать, что сподвигло на такой подвиг? Раз ты говоришь, что тебе скорость большая не нужна, то почему не обойтись простым 232-ым?..

Сам полгода назад подумывал над подобной заварухой, но решил, что незачем пока что.
PM MAIL WWW   Вверх
PILOT
Дата 30.5.2005, 00:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


производство
****


Профиль
Группа: Модератор
Сообщений: 2724
Регистрация: 4.4.2002
Где: москва

Репутация: нет
Всего: 54



RS-232 отсутствует в ноутбуках.

СУВ.


--------------------
тут могла быть Ваша реклама...
PM MAIL WWW ICQ   Вверх
ManiaK
Дата 30.5.2005, 07:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Homo Sapience
***


Профиль
Группа: Комодератор
Сообщений: 1145
Регистрация: 3.8.2004
Где: ИУ5-93

Репутация: 2
Всего: 29



Цитата(PILOT @ 30.5.2005, 00:04)
RS-232 отсутствует в ноутбуках.

ВО-как! Странно, но у нас личности ходят с ноутбукам по производствам, в том числе и мои программы на них работают...
PM MAIL WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.1113 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.