Программирование USB.

Тема в разделе "WASM.ELECTRONICS", создана пользователем FastSoft, 22 июн 2005.

  1. FastSoft

    FastSoft New Member

    Публикаций:
    0
    Регистрация:
    19 фев 2005
    Сообщения:
    54
    Адрес:
    Russia
  2. letopisec

    letopisec New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2004
    Сообщения:
    228
    FastSoft

    >Не пойму - они через UART сделали USB-интерфейс?



    PD0/RXD,PD1/TXD - не задействованы, следовательно не через UART.



    >Какие-то струкруты..



    Сама шина подразумевает структуры - дескрипторы всякие там...



    Насчёт какие доки вкуривать - есть вот такой перевод спецификации USB 1.1 на русский:



    http://rs232.ru/docs/usb/usb_rus.zip



    но я бы не советовал. Лично мне понятнее было на английском спецификацию читать (оч некачественный перевод).



    Статейка для ознакомления:

    http://www.rrelaxo.org.ru/muxx/usb/usb.brief.html



    Ну а порядок глав при изучении спецификации для меня удобен был: 4,5,8,9.



    4 - обзор

    5 - введение в программную (логическую) модель usb

    6,7 - механическая, электрическая главы - неинтересно.

    8 - формат пекетов, типы транзакций - самая полезная и интересная глава, IMHO

    9 - О дескрипторах и возможных логических состояниях шины - её лучше читать после 8 главы - или можно сильно запутаться что есть что.



    кроме usb.org вот ещё оч полезная ссылка http://beyondlogic.org
     
  3. FastSoft

    FastSoft New Member

    Публикаций:
    0
    Регистрация:
    19 фев 2005
    Сообщения:
    54
    Адрес:
    Russia
    Спасибо. Буду курить и думать. Ребята, не теряемся! Все только начинается!
     
  4. _staier

    _staier New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2003
    Сообщения:
    738
    Адрес:
    Ukraine
    FastSoft

    почитай туториалы izcelion'a

    насчёт программирования под винду -

    это на асме

    а вообще - рихтера
     
  5. FastSoft

    FastSoft New Member

    Публикаций:
    0
    Регистрация:
    19 фев 2005
    Сообщения:
    54
    Адрес:
    Russia
    Дайте наводку на рихтера, не пойму о чем вы..

    Значит так.. Мне стало понятно, что в принципе нормальный не психованный и не чокнутый человек способен через две ноги, при отсутствии аппаратной поддержки USB реализовать протокол USB. Причем мой тамтарарам заключается в том, что оказывается у виндов всех мастей существует некий HID (Устройства взаимодействия с Человеком), имеющийся в 98, XP. Это все, что надо. И этот HID, предполагает работу с мышами, джойстиками и клавами через драйвера, имеющиеся на борту перечисленных виндов (на неполноту списка плевать). Остается понять, как кодить под виндой этот HID. Устройства HID, реализующие аппаратно USB (мыша, клава) как везде написано, достаточно просты и тупы. Остается как я понимаю, реализовать устройство, подражающее джойтику, которое посылает данные в комп по вседжойстиковому протоколу и приложение под винду, которое будет притворятся тетрисом, которому нужен джойстик, а на деле юзать принятые данные. Вот что нового я узнал за эту ноч под Chemical Brothers и Infected Mushroom (; Что скажете? Кто знаком с HID?

    Borlandmaster@mail.ru

    Pavel.
     
  6. letopisec

    letopisec New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2004
    Сообщения:
    228
    Если mp3 плеер будет косить под джойстик с ним мягко говоря будет не удобно работать. Здесь нужно использовать режим шины bulk (см спецификацию), а джойстик использует режим interrupt. Самое лучшее решение (IMHO) - это использовать класс устройств usb mass storage. Никаких проблем с winXP/2000, Linux. Под win98 плохо что нужно будет ставить драйвер, а хорошо что подойдёт любой драйвер от флешки (каких навалом) - нужно будет только чуть-чуть изменить инфик.



    И кста, вряд ли получиться bulk из мк.контроллера не поддерживающего usb. Одним словом есть над чем подумать.
     
  7. FastSoft

    FastSoft New Member

    Публикаций:
    0
    Регистрация:
    19 фев 2005
    Сообщения:
    54
    Адрес:
    Russia
    Задаю вопрос к последнему предложению предыдущей мессаги - ПОЧЕМУ?



    Джойстик я привел в качестве примера устройств HID вообще и мне неинтересно в данный момент, как он там работает. Мне нужна такая ситуация, когда устройство работает в 98 и в XP без сторонних драйверов.
     
  8. FastSoft

    FastSoft New Member

    Публикаций:
    0
    Регистрация:
    19 фев 2005
    Сообщения:
    54
    Адрес:
    Russia
    >Если mp3 плеер будет косить под джойстик с ним мягко

    >говоря будет не удобно работать. Здесь нужно использовать

    >режим шины bulk (см спецификацию), а джойстик использует

    >режим interrupt.

    Почему неудобно? Если такой плеер бы существовал, был бы специальный софт к нему. Этот софт бы брал все трудности на себя, а пользователю были бы видны элементы управления для заливания музона.

    Я ведь не задумал создать голое устройство и сказать людям "юзайте, только дров я вам не дам". Конечно я должен написать софт, который пользуясь HID скрывал бы джойстиковое происхождение моего девайса, давая пользователям хороший интерфейс. ПОнятное дело, что джойстик - неудачный пример, и для передачи нужно будет слишком часто генерировать прерывания, как я понимаю. Пусть это будет не джойстик, мне все равно. Не вы же у меня спрашиваете, а я у вас :derisive:



    >Самое лучшее решение (IMHO) - это

    >использовать класс устройств usb mass storage. Никаких

    >проблем с winXP/2000, Linux.



    КОнечно это замечательно, но допустим винда найдет диск. И давай его форматировать под фат, да? Или пользователь полезет в него и повисла система на пять минут. (Я пральна говорю?)



    >Под win98 плохо что нужно

    >будет ставить драйвер, а хорошо что подойдёт любой

    >драйвер от флешки (каких навалом) - нужно будет только

    >чуть-чуть изменить инфик.

    Ну... Не знаю, спасибо за информацию.. Я бы с удовольствием пообщался с вами, уважаемая общественность, по ICQ 297566544. Плоды бесед обещаю в переработанном виде выкладывать здесь. Спасибо.



    P.S.

    Вот скоро настанет время, когда нужно будет кодить под винду HID, но я плохо пишу под нее. А хочу на асме, в силу чистоты кодинга. Мне сейчас нужны основы. Как вызывать API с параметрами, как в могзу преобразовывать сишные, дельфийные описания API в асмовые их вызовы.

    [​IMG] _1890587290__keilvision_avatar.PNG
     
  9. _staier

    _staier New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2003
    Сообщения:
    738
    Адрес:
    Ukraine
    рихтер -

    "Создание эффективных WIN32-приложений

    с учетом специфики 64-разрядной версии Windows"

    можно довольно легко найти в электронном виде



    насчет асма под винду -

    там есть всё что нужно

    http://www.wasm.ru/publist.php?list=1
     
  10. _staier

    _staier New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2003
    Сообщения:
    738
    Адрес:
    Ukraine
    FastSoft

    что просил , то и получил :derisive:

    насчёт



    почитай любую статью про calling conventions

    или по русски соглашения о вызове
     
  11. FastSoft

    FastSoft New Member

    Публикаций:
    0
    Регистрация:
    19 фев 2005
    Сообщения:
    54
    Адрес:
    Russia
    Хорошо, когда получаешь то, что просишь...

    Нужен список API windows с их описаниями.
     
  12. _staier

    _staier New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2003
    Сообщения:
    738
    Адрес:
    Ukraine
    FastSoft

    апи довольно много , но если ты считаешь , что тебе нужно именно это

    пожалуйста

    http://msdn.microsoft.com/

    можно также хелпак от дельфи взять , там win32 api help тоже есть правда не полный и староватый но тебе хватит

    ... на несколько лет
     
  13. yureckor

    yureckor New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2004
    Сообщения:
    494
    Адрес:
    Russia
    staier>... на несколько лет

    Через 1.5 года начал замечать ошибки.

    Хотя он удобен для начнающего.



    FastSoft

    В пакете Visual Studio это называется MSDN
     
  14. _staier

    _staier New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2003
    Сообщения:
    738
    Адрес:
    Ukraine
    FastSoft



    просил апи - пожалуйста



    лучше просто руководство по программированию в винде

    тот же iczelion или рихтер







    книга достаточно полно отражает принципиальные моменты негуёвого программирования под винду
     
  15. _staier

    _staier New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2003
    Сообщения:
    738
    Адрес:
    Ukraine
    FastSoft

    windows.h

    не пробовал?

    полнее не бывает
     
  16. letopisec

    letopisec New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2004
    Сообщения:
    228
    FastSoft



    >Задаю вопрос к последнему предложению предыдущей мессаги - ПОЧЕМУ?



    Сецификация USB 1.1 глава 5.8.4:



    Bulk transfers can be used only by full-speed devices.





    Вряд ли твой avr сможет работать с шиной на частоте 12 МГц. Почему именно bulk? - потому что IMHO самый подходящий класс для твоей штуковины это USB mass storage. Специально искал оказалось что таких классов есть 2.



    http://www.usb.org/developers/devclass_docs/usbmassbulk_10.pdf

    http://usbat2.sourceforge.net/usbmass-cbi10.pdf



    Первый это bulk only. Второй - Control/Bulk/Interrupt, который требует поддержки минимум трёх EP - contol, bulk in, bulk out. Так что без bulk здесь не обойтись. Поэтому надо или usb периферию навешивать или под другое устройство заделаться или драйвер свой писать...



    >И давай его форматировать под фат, да? Или пользователь полезет в него и повисла система на пять минут. (Я пральна говорю?)



    с флешками таких проблем вроде нет.
     
  17. FastSoft

    FastSoft New Member

    Публикаций:
    0
    Регистрация:
    19 фев 2005
    Сообщения:
    54
    Адрес:
    Russia
    Ну так что? Новостей ни у кого нет?
     
  18. techwriter

    techwriter New Member

    Публикаций:
    0
    Регистрация:
    11 июн 2004
    Сообщения:
    15
    Адрес:
    Russia
    Пошукай через гугл яндекс - IDE-USB или HDD-USB.

    Там на 8051 сделан контроллер для подключения к USB, как masstorage, напрямую.
     
  19. techwriter

    techwriter New Member

    Публикаций:
    0
    Регистрация:
    11 июн 2004
    Сообщения:
    15
    Адрес:
    Russia
  20. FastSoft

    FastSoft New Member

    Публикаций:
    0
    Регистрация:
    19 фев 2005
    Сообщения:
    54
    Адрес:
    Russia
    Привет всем.



    В общем стало понятно (ну давно еще), что реализовывать программно USB-интерфейс "через 2 ноги AVR-ки" весело но слишком много дзена для такого малодзенодостойного дела и лучше юзать спецмикросхему. А какие интерфейсные микросхемы общепризнаны? Что они могут? Могут ли они произвести инициализацию самостоятельно и как вообще с ними работать? Ну то есть чо это ваще такое, м? <- вопрос для тех, кто юзал конечно.