Comments 44
куча воды с продолжением во второй серии 8))
ждём 8)
ждём 8)
+10
UFO just landed and posted this here
mono? )
тут вроде дотнет начнется…
А вообще интересно было бы почитать о разработке USB драйверов под Linux и MAC.
тут вроде дотнет начнется…
А вообще интересно было бы почитать о разработке USB драйверов под Linux и MAC.
0
UFO just landed and posted this here
Драйвер на C, .net только управляющая программка.
0
> Причем тут mono? Вряд ли возможно писать драйвера на .NET
Не знаю как на .Net и как драйвера, но вот её старшая сестра Java с реалтаймом справлялась прекрасно, и я бы с бóльшей радостью писал на сразу ней чем на голом C с последующей C#-обёрткой.
Не знаю как на .Net и как драйвера, но вот её старшая сестра Java с реалтаймом справлялась прекрасно, и я бы с бóльшей радостью писал на сразу ней чем на голом C с последующей C#-обёрткой.
0
Очень это просто делается с использованием библиотеки libusb
+2
В 90% случаев хватит прочитать документацию к libusb. Собственно единственная проблема — протокол взаимодействия с устройством. Обычно эта проблема фатальна ))
+1
Если протокол изначально задан и является черным ящиком, то единственная зацепка — заснифить и расковырять. Если протокол не шибко сложный, и функционал устройства известен, то можно разобраться. Иначе затея не стоит затрачиваемых усилий — дешевле USB-устройство и протокол для него придумать и разработать самому с нуля.
0
Посмотрите libusb — всё пишется с полпинка, куча примеров и документации. Её же и портировали под win, таким образом она переносимая. Единственное но — это в user-space, на сколько я понимаю
0
Что это у вас за камера без драйверов под линукс? Чай, не 2000-й год на дворе…
0
Очень жду продолжения! Потому как сейчас застрял малость — вроде как что-то вроде драйвера есть, но винда категорически его не принимает как драйвер устройства. И кто виноват, что делать — абсолютно неясно, не могу найти даже, где читать…
+3
«USB — это simple», я вас умоляю.
А ещё лучше, «это просто».
А ещё лучше, «это просто».
+3
Ожидал увидеть тут нечто подобное этому: http://www.opennet.ru/base/dev/write_linux_driver.txt.html а не этот обрубок. Процетирую немного вступление в той статье:
+4
Что то по Ctrl+V запостилось... Вобщем вот:
Введение в USB
Наверное, нет смысла говорить о таких очевидных вещах, как широкое
распространение USB, высокая скорость обмена по USB, возможность
горячего подключения устройств. Сейчас уже каждый пользователь ПК так
или иначе оценил преимущества и плюсы USB.
Поэтому сразу перейдем к менее очевидным вещам — к тому, как USB
устроен внутри.
+2
UFO just landed and posted this here
На мой скромный взгляд, описание создания драйвера, а особенно для USB-устройства, может представлять интерес разве что для тех, кто смутно представляет, что такое драйвер в принципе. Независимо от операционной системы. Когда мне понадобилось написать драйвер для TV-тюнера, то на создание компилируемого, загружаемого и опознающего девайс каркаса мне понадобилось минут, наверное, 30 от силы (включая растерзание гугла). Оставшиеся временные затраты (процентов этак 98) — реализация протокола взаимодействия в соответствии со spec'ами устройства. При этом вам совершенно не нужно знать, сколько и каких контактов задействовано при общении компьютера и устройства, потому что благодаря таким штукам, как HAL (и вообще ядро), все действия производятся на уровне «записать n байт»/«прочитать m байт».
В общем, главный недостаток этой все же довольно неплохой статьи — полное отсутствие конкретики.
В общем, главный недостаток этой все же довольно неплохой статьи — полное отсутствие конкретики.
-4
И всё-таки работа с RS-232 проще.
-1
С классом CDC USB можно работать так же, как и с привычным COM-портом. Просто втыкаете Ваше USB-устройство, и получаете на компьютере обычный COM-порт. Есть много готовых реализаций класса CDC (почти всегда бесплатных), предлагаемых производителями всех чипов с поддержкой USB. Кроме того, есть даже специальные чипы (типа FTDI) и программные библиотеки (типа V-USB), на которых этот класс CDC USB легко реализовывается. Короче, есть уже все готовенькое — бери да делай. Если нужны ссылки на конкретные примеры, которые можно взять за основу своей собственной разработки, то могу предоставить.
0
Виртуальный COM-порт решение распространенное. Но там в силу виртуальности есть свои грабли связанные как раз именно с этой виртуальностью.
Сталкивался с этим работая с POS-терминалами там, на новых материнках RS-232 как раз-таки и реализован как эмуляция на базе шины USB. Т.е. снаружи это ком-порт, а внутри — USB-device.
Прозрачно подменить старый терминал с нативным RS-232, на новый эмулированным не получилось — пришлось править модуль подключения устройства.
Сталкивался с этим работая с POS-терминалами там, на новых материнках RS-232 как раз-таки и реализован как эмуляция на базе шины USB. Т.е. снаружи это ком-порт, а внутри — USB-device.
Прозрачно подменить старый терминал с нативным RS-232, на новый эмулированным не получилось — пришлось править модуль подключения устройства.
0
Все зависит от метода работы с COM-портом. Некоторые старые программки, которые норовят работать напрямую с контроллером COM-порта, не будут работать с COM-портом виртуальным. Но это не наш случай, поскольку в статье и комментариях идет речь о разработке CDC USB-устройства и ПО для него ЗДЕСЬ И СЕЙЧАС, а не в каком-то 1998 году под Windows 95 или 98.
0
Всё-таки проще всего, по-моему, было работать с LPT. Статью вроде прочитал, но как я смогу понять со стороны устройства в данный момент ноль или еденица, у меня всё равно в голове не складывается. На сколько я понимаю, на стороне устройства тоже надо воротить какой-то контроллер. С LPT можно было пины с граундом замыкать/размыкать в интересующих комбинациях, и на компе было понятно что со стороны устройства замкнуто.
0
Советую почитать Кулакова книжку «Программирование на аппаратном уровне», раздел «Шина USB»
-2
Есть еще книжка Агурова, но это такое г… (ИМХО), что только затуманивает мозги. Намного зачетнее «USB in a NutShell», благо что она и на русском уже доступна.
0
Скачал книжку Кулакова — повторяет все то же самое, что Агуров написал. Подходит только для начального знакомства с шиной USB, в плане программирования устройств USB и программ для них — практически никакой пользы.
0
Таак, WDK уже скачал, жду продожения.
0
ИМХО: работа с libusb-win32 напорядок проще.
0
Вот например, ищу ответы, как писать драйвера для USB а результат кроме воды не получил :(
Вопрос когда будет часть вторая?
Вопрос когда будет часть вторая?
0
Sign up to leave a comment.
Пишем драйвер для USB девайса. Pipe 0: что такое usb?