LINUXPORTAL.RU  |   Живое общение LinuxPortal.Ru   |    Ленты событий        |   ФОРУМЫ  |   БИБЛИОТЕКА  |   ССЫЛКИ  |   НОВОСТИ  |   БЛОГИ АДМИНОВ

Участники   Поиск   F.A.Q.    Регистрация    Вход   Начало
Начало » Для администраторов и программистов » Железная разработка » драйверы для USB устройств_2
Показать: Сегодняшние сообщения  :: Показать голосования :: Навигатор по сообщениям
Отправить по e-mail 
Переключение в режим просмотра в виде древовидного списка сообщений и ответов Создать новую тему Отправить ответ
драйверы для USB устройств_2 Втр, 06 Ноябрь 2007 10:30 Переход к следующему сообщения
nix_beginer в настоящее время не в онлайне nix_beginer  RUSSIAN FEDERATION
Сообщений: 8
Зарегистрирован: Ноябрь 2007
Частый Гость
Привет всем крутым спецам!
Прошу прощения, что начал новую тему про USB-драйвера, а не продолжил старую...
Очень прошу помощи у знающих и опытных людей!
С Linux работаю недавно, на работе дали задание написать драйвер для USB устройства. Но это не мышь, не сканер, не принтер...а специализированное промышленное устройсво, но не в этм суть.
Проблема в том, что я НЕ ЗНАЮ как писать драйвера в принципе. Под Линух писал несколько прог(программировал COM порт). Но это были почти прикладные программы, а тут нужен драйвер. Хотя бы просто нужно установить обмен между устройством и ПК, чтоб ПК принимал отправленные устройством данные, а оно принимало данные от ПК.
Читал статью Курочкина Разработка драйверов для USB-устройств под Linux. Принцип понял.
Тем не менее остается много вопросов?
1)Какова структура исходника драйвера?
2)Как заставить его работать в системе? Как запускать драйвер?
3)Как обращаться к устройству из прикладной проги? как связать драйвер и прикладное ПО?
4)С чего вообще начинать работать?

Если можете чем-нибудь помочь, очень прошу откликнитесь. Мне очень важно сделать эту прогу до нового года. Навярняка есть крутые спецы, кто не раз писал драйвера для никс-систем. Пожалуйста.
Буду рад любой помощи: советы, исходники с и без объяснения.
Большое спасибо за внимание.
С уважением, Тимур.
Re: драйверы для USB устройств_2 Втр, 06 Ноябрь 2007 10:40 Переход к предыдущему сообщенияПереход к следующему сообщения
San АНДРЕЕВ в настоящее время не в онлайне San АНДРЕЕВ  RUSSIAN FEDERATION
Сообщений: 8446
Зарегистрирован: Июнь 2002
Географическое положение: Санкт-Петербу...

administrator · partner

nix_beginer писал(а) вт, 06 ноября 2007 10:30


С Linux работаю недавно
...
Проблема в том, что я НЕ ЗНАЮ как писать драйвера в принципе.
...
Мне очень важно сделать эту прогу до нового года.

Пипец... Это ваше руководство такое "мудрое" решение приняло или вы сами вызвались?
Re: драйверы для USB устройств_2 Втр, 06 Ноябрь 2007 11:00 Переход к предыдущему сообщенияПереход к следующему сообщения
Mr.Nobody  RUSSIAN FEDERATION
Сообщений: 909
Зарегистрирован: Ноябрь 2004
Географическое положение: Russia, Moscow
Старожил
guru

Читать исходники и LDD. Что тут ещё можно посоветовать?...

P.S. Могу за деньги помочь :-) - два года дрова для USB ваял всё-таки...
Re: драйверы для USB устройств_2 Втр, 06 Ноябрь 2007 11:20 Переход к предыдущему сообщенияПереход к следующему сообщения
nix_beginer в настоящее время не в онлайне nix_beginer  RUSSIAN FEDERATION
Сообщений: 8
Зарегистрирован: Ноябрь 2007
Частый Гость
San АНДРЕЕВ писал(а) вт, 06 ноября 2007 10:40

nix_beginer писал(а) вт, 06 ноября 2007 10:30


С Linux работаю недавно
...
Проблема в том, что я НЕ ЗНАЮ как писать драйвера в принципе.
...
Мне очень важно сделать эту прогу до нового года.

Пипец... Это ваше руководство такое "мудрое" решение приняло или вы сами вызвались?


Ага..сам:( я еще в здравом уме..
Заставили..месяц пытался их отговорить, объяснял, что у меня пока опыта не хватает..не помогло:(, но я так и сказал, что не обещаю..просто у меня от этого другое важное дело зависит.
к сожалению, они сами воще не понимают, что это такое:(

А что действительно сложно писать драйвер?
Мне хотя бы просто, чтоб был обмен между устройством и ПК и все.
Re: драйверы для USB устройств_2 Втр, 06 Ноябрь 2007 11:43 Переход к предыдущему сообщенияПереход к следующему сообщения
Mr.Nobody  RUSSIAN FEDERATION
Сообщений: 909
Зарегистрирован: Ноябрь 2004
Географическое положение: Russia, Moscow
Старожил
guru

Цитата:


А что действительно сложно писать драйвер?



сложно когда не знаешь, просто - когда знаешь

зависит также от того какой драйвер Вы хотите написать (например, который работает как надо, а для этого надо знать как всё работает в целом)
Re: драйверы для USB устройств_2 Втр, 06 Ноябрь 2007 13:28 Переход к предыдущему сообщенияПереход к следующему сообщения
nix_beginer в настоящее время не в онлайне nix_beginer  RUSSIAN FEDERATION
Сообщений: 8
Зарегистрирован: Ноябрь 2007
Частый Гость
Mr.Nobody писал(а) вт, 06 ноября 2007 11:43

Цитата:


А что действительно сложно писать драйвер?



сложно когда не знаешь, просто - когда знаешь

зависит также от того какой драйвер Вы хотите написать (например, который работает как надо, а для этого надо знать как всё работает в целом)



Мне надо, чтоб он послылал пакет 20 байт и принимал пакет данных от устройства(примерно 100-120 байт) и ВСЕ! отправил-принял..
на этом работа моей проги ограничивается:)

Я писал похожую прогу, но связывался с устройством по последовательному порту. Ее написал за месяц с нуля. Теперь тоже самое, но тока по usb. Неужели все намного сложнее..
Re: драйверы для USB устройств_2 Втр, 06 Ноябрь 2007 13:44 Переход к предыдущему сообщенияПереход к следующему сообщения
Mr.Nobody  RUSSIAN FEDERATION
Сообщений: 909
Зарегистрирован: Ноябрь 2004
Географическое положение: Russia, Moscow
Старожил
guru

Так Вам что нужно - прогу (userspace) или драйвер (kernelespace)?

Для драйвера например нужно знать как железка работает (те протокол работы устройства).
Re: драйверы для USB устройств_2 Втр, 06 Ноябрь 2007 14:20 Переход к предыдущему сообщенияПереход к следующему сообщения
nix_beginer в настоящее время не в онлайне nix_beginer  RUSSIAN FEDERATION
Сообщений: 8
Зарегистрирован: Ноябрь 2007
Частый Гость
Mr.Nobody писал(а) вт, 06 ноября 2007 13:44

Так Вам что нужно - прогу (userspace) или драйвер (kernelespace)?

Для драйвера например нужно знать как железка работает (те протокол работы устройства).



Вот что мне надо.
Есть спец устройство, которое выполняет некую задачу. Мне надо написать управляющую прогу(userspace). Она должна запускать это устройство с ПК и по окончанию его работы, считать результат и отобразить на ПК. Связь с устройством осуществляется через USB!! Для этого видимо, как я думаю, надо писать (kernelespace). Протокол взаимодейстия (содержание и размер пакетов) придумываем сами, т.к. прогу для устройства пишет другой программист(прога для микроконтроллера).

Общая схема работы такова. Пользователь запускает обычную userspace, выбирает нужные параметры работы устройства, нажимает кнопку. Эти данные (параметры) через USB попадают на микросхему USB-RS485, далее в микроконтроллер. Там выполняется спецпрограмма, и ее результат через USB-RS485 отсылается обратно в USB ПК, и он(результат) должен отобразиться на экране.
Как делать userspace, я знаю. Я не знаю как эти данные отправить по USB. И как связать kernelespace и userspace...
Возможно я туплю, и драйвер здесь вообще не нужен.

Например, когда я связывался с устройством по COM-порту, я грубо говоря, записывал и считывал данные в файл ttyS0(который соответствует com). И никаких драйверов не писал. Теперь нужно тоже самое,но по USB. А как это сделать по USB, я не знаю. Возможно, мне также просто ассоциировать устройство с подобным файлом и работать уже с файлом?

Видимо руководство считает, что сделать связь по USB также легко, как по COM..

Очень прошу Вас ,напишите, пожалуйста, свои соображения по этому поводу. Если что то осталось не понятно , объясню еще раз, мне не сложно:)
Re: драйверы для USB устройств_2 Втр, 06 Ноябрь 2007 15:33 Переход к предыдущему сообщенияПереход к следующему сообщения
Mr.Nobody  RUSSIAN FEDERATION
Сообщений: 909
Зарегистрирован: Ноябрь 2004
Географическое положение: Russia, Moscow
Старожил
guru

Цитата:


т.к. прогу для устройства пишет другой программист(прога для микроконтроллера).



что под этим понимается? те драйвер под linux есть?
Re: драйверы для USB устройств_2 Срд, 07 Ноябрь 2007 11:15 Переход к предыдущему сообщенияПереход к следующему сообщения
nix_beginer в настоящее время не в онлайне nix_beginer  RUSSIAN FEDERATION
Сообщений: 8
Зарегистрирован: Ноябрь 2007
Частый Гость
Mr.Nobody писал(а) вт, 06 ноября 2007 15:33

Цитата:


т.к. прогу для устройства пишет другой программист(прога для микроконтроллера).



что под этим понимается? те драйвер под linux есть?



Программу для работы устройства(не ПК) пишет другой пограммист. Это устройство на основе микроконтроллера. Пока это только железка, ничего более. Но программа уже пишется. Вот. А мне надо управлять этим девайсом с ПК через USB. На девайсе есть usb, на ПК есть usb.
Нужно , чтоб между ними была связь. Вот и все.

Драйвер под linux нету. Есть драйвер, но он для WIN XP. В винде этот драйвер представляет usb порт для системы как com, и никаких проблем. То есть подключаем устройство через usb, а для системы видит это устройство как com. Но это в винде. А для линукс ничего нет.

Короче говоря. Мне нужно,чтоб моя прога userspace отсылала данные (просто несколько байт) по usb на устройство. Как они там принимаются и обрабатываются, меня не касается. И чтоб принимала
ответ с этого устройства(тоже несколько байт). Я же говорю. Может я не понимаю чего, и для выполнения этих операции вообще не надо драйвера под линукс (kernelespace), а просто воспользоваться функциями чтения и записи в usb-порт...
Re: драйверы для USB устройств_2 Чтв, 08 Ноябрь 2007 10:33 Переход к предыдущему сообщенияПереход к следующему сообщения
Mr.Nobody  RUSSIAN FEDERATION
Сообщений: 909
Зарегистрирован: Ноябрь 2004
Географическое положение: Russia, Moscow
Старожил
guru

Хм, ну если драйвера нет...тогда не знаю :-)

А если серьёзно - то возможно стоит посмотреть в сторону libusb и её аналогов - хотя я писал нормальные дрова и прогу для пользователей - от libusb я отказался тк мне она показалась достаточно кривой (хотя может это у меня руки кривые?...)

В общем - на опен соурс надейся - но сам не плошай...
Re: драйверы для USB устройств_2 Вск, 11 Ноябрь 2007 22:28 Переход к предыдущему сообщенияПереход к следующему сообщения
nix_beginer в настоящее время не в онлайне nix_beginer  RUSSIAN FEDERATION
Сообщений: 8
Зарегистрирован: Ноябрь 2007
Частый Гость
Mr.Nobody писал(а) чт, 08 ноября 2007 10:33

Хм, ну если драйвера нет...тогда не знаю :-)

...хотя может это у меня руки кривые?...)
В общем - на опен соурс надейся - но сам не плошай...



А у меня мозги кривый) гы-гы)...
Я воще ступил круто. Решил сам дрова писать, а предварительно не посмотрел, мож они уде есть). И действительно есть!!! Нашел в нете. Бесплатно. Оказались дрова,которые создают виртуальный ком-порт. А ком-порт я прогить умею). Так что вся проблема осталась правильно установить дрова эти. Ну эт всяко, думаю, легче, чем их писать).
В любом случае, спасибо за советы:)
Re: драйверы для USB устройств_2 Пнд, 12 Ноябрь 2007 08:47 Переход к предыдущему сообщенияПереход к следующему сообщения
Mr.Nobody  RUSSIAN FEDERATION
Сообщений: 909
Зарегистрирован: Ноябрь 2004
Географическое положение: Russia, Moscow
Старожил
guru

Довольно странно - а что через com-порт можно сделать всё что и через usb?
А если прошивку надо залить - то это как?
Re: драйверы для USB устройств_2 Пнд, 12 Ноябрь 2007 11:49 Переход к предыдущему сообщенияПереход к следующему сообщения
nix_beginer в настоящее время не в онлайне nix_beginer  RUSSIAN FEDERATION
Сообщений: 8
Зарегистрирован: Ноябрь 2007
Частый Гость
Mr.Nobody писал(а) пн, 12 ноября 2007 08:47

Довольно странно - а что через com-порт можно сделать всё что и через usb?
А если прошивку надо залить - то это как?



Прошивка через jtag делается. А же говорил по usb только данные должны посылаться и приниматься. Данные от прикладной проги.
Для моей задачи через ком-порт можно все, что нужно сделать. А все-это только посылка-прием данных, и все.
Re: драйверы для USB устройств_2 Пнд, 12 Ноябрь 2007 13:07 Переход к предыдущему сообщенияПереход к следующему сообщения
Mr.Nobody  RUSSIAN FEDERATION
Сообщений: 909
Зарегистрирован: Ноябрь 2004
Географическое положение: Russia, Moscow
Старожил
guru

И что это за дрова, которые создают виртуальный com-порт - если не секрет? Если не секрет и не в лом - киньте ссылку - хочется полюбопытсвовать.
Re: драйверы для USB устройств_2 Втр, 13 Ноябрь 2007 20:48 Переход к предыдущему сообщения
nix_beginer в настоящее время не в онлайне nix_beginer  RUSSIAN FEDERATION
Сообщений: 8
Зарегистрирован: Ноябрь 2007
Частый Гость
Mr.Nobody писал(а) пн, 12 ноября 2007 13:07

И что это за дрова, которые создают виртуальный com-порт - если не секрет? Если не секрет и не в лом - киньте ссылку - хочется полюбопытсвовать.



хе-хе:) я то уж не первый раз с таким сталкиваюсь:) тока у нас раньше все под винду писали и использовали эти дрова по винду, а щас вот под линух требуют:) вот я и кипешнул...
Это дрова на спец микросхему. Изготовитель Техас Инструментс.
Если интересно вот ссылочка: http://focus.ti.com/docs/toolsw/folders/print/tusb-3p-lnxvcp .html
там дальше сами посмотрите.
  Переключение в режим просмотра в виде древовидного списка сообщений и ответов Создать новую тему Отправить ответ
Предыдущая тема:reschedule (прерывания и системные вызовы)
Следующая тема:eCos
Переход к форуму:
  

-=] Вернуться вверх [=-
[ Сформировать XML ] [ RSS ]

Текущее время: Сбт Июл 31 18:08:29 MSD 2010
.:: Обратная связь :: Начало ::.

При поддержке: FUDforum 3.0.0.
Copyright © 2001-2009 FUDforum Bulletin Board Software

©"Linuxportal.Ru". Материалы сайта можно использовать свободно при условии сохранения этой свободы при дальнейшем распространении, если явно не указано иное.

Дизайн и программирование: ,
Поставьте нашу кнопку: Linux Portal.ru ::: Линукс Портал.ру