| драйверы для USB устройств_2 |
Втр, 06 Ноябрь 2007 10:30  |
nix_beginer  Сообщений: 8 Зарегистрирован: Ноябрь 2007 |
Частый Гость |
|
|
Привет всем крутым спецам!
Прошу прощения, что начал новую тему про USB-драйвера, а не продолжил старую...
Очень прошу помощи у знающих и опытных людей!
С Linux работаю недавно, на работе дали задание написать драйвер для USB устройства. Но это не мышь, не сканер, не принтер...а специализированное промышленное устройсво, но не в этм суть.
Проблема в том, что я НЕ ЗНАЮ как писать драйвера в принципе. Под Линух писал несколько прог(программировал COM порт). Но это были почти прикладные программы, а тут нужен драйвер. Хотя бы просто нужно установить обмен между устройством и ПК, чтоб ПК принимал отправленные устройством данные, а оно принимало данные от ПК.
Читал статью Курочкина Разработка драйверов для USB-устройств под Linux. Принцип понял.
Тем не менее остается много вопросов?
1)Какова структура исходника драйвера?
2)Как заставить его работать в системе? Как запускать драйвер?
3)Как обращаться к устройству из прикладной проги? как связать драйвер и прикладное ПО?
4)С чего вообще начинать работать?
Если можете чем-нибудь помочь, очень прошу откликнитесь. Мне очень важно сделать эту прогу до нового года. Навярняка есть крутые спецы, кто не раз писал драйвера для никс-систем. Пожалуйста.
Буду рад любой помощи: советы, исходники с и без объяснения.
Большое спасибо за внимание.
С уважением, Тимур.
|
|
|
| Re: драйверы для USB устройств_2 |
Втр, 06 Ноябрь 2007 10:40   |
|
| nix_beginer писал(а) вт, 06 ноября 2007 10:30 |
С Linux работаю недавно
...
Проблема в том, что я НЕ ЗНАЮ как писать драйвера в принципе.
...
Мне очень важно сделать эту прогу до нового года.
|
Пипец... Это ваше руководство такое "мудрое" решение приняло или вы сами вызвались?
|
|
|
|
| Re: драйверы для USB устройств_2 |
Втр, 06 Ноябрь 2007 11:20   |
nix_beginer  Сообщений: 8 Зарегистрирован: Ноябрь 2007 |
Частый Гость |
|
|
| San АНДРЕЕВ писал(а) вт, 06 ноября 2007 10:40 |
| nix_beginer писал(а) вт, 06 ноября 2007 10:30 |
С Linux работаю недавно
...
Проблема в том, что я НЕ ЗНАЮ как писать драйвера в принципе.
...
Мне очень важно сделать эту прогу до нового года.
|
Пипец... Это ваше руководство такое "мудрое" решение приняло или вы сами вызвались?
|
Ага..сам:( я еще в здравом уме..
Заставили..месяц пытался их отговорить, объяснял, что у меня пока опыта не хватает..не помогло:(, но я так и сказал, что не обещаю..просто у меня от этого другое важное дело зависит.
к сожалению, они сами воще не понимают, что это такое:(
А что действительно сложно писать драйвер?
Мне хотя бы просто, чтоб был обмен между устройством и ПК и все.
|
|
|
|
|
|
| Re: драйверы для USB устройств_2 |
Втр, 06 Ноябрь 2007 14:20   |
nix_beginer  Сообщений: 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 |
Срд, 07 Ноябрь 2007 11:15   |
nix_beginer  Сообщений: 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 |
Вск, 11 Ноябрь 2007 22:28   |
nix_beginer  Сообщений: 8 Зарегистрирован: Ноябрь 2007 |
Частый Гость |
|
|
| Mr.Nobody писал(а) чт, 08 ноября 2007 10:33 | Хм, ну если драйвера нет...тогда не знаю :-)
...хотя может это у меня руки кривые?...)
В общем - на опен соурс надейся - но сам не плошай...
|
А у меня мозги кривый) гы-гы)...
Я воще ступил круто. Решил сам дрова писать, а предварительно не посмотрел, мож они уде есть). И действительно есть!!! Нашел в нете. Бесплатно. Оказались дрова,которые создают виртуальный ком-порт. А ком-порт я прогить умею). Так что вся проблема осталась правильно установить дрова эти. Ну эт всяко, думаю, легче, чем их писать).
В любом случае, спасибо за советы:)
|
|
|
|
|
|
|