реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> USB + новичек., обьясните HID или СID
av-master
сообщение Oct 14 2009, 19:13
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 857
Регистрация: 14-05-05
Из: Украина
Пользователь №: 4 998



Доброго времени суток товарищи.

Вопрос такого плана. как работать с USB/
т.е где почитать просам принцип.

воткнули разьем. что должно происходить?

т.е. что меня спросит хост? или что мне ему сказать?

в какой момент времени...?

нужно ли постоянно просматривать буфер или по прерыванию работает?

вообщем азы.

вот с как с ком портом например: воткнул передал. забыл ))
Если кому не трудно. опишите процесс. заранее благодарен.
Go to the top of the page
 
+Quote Post
rezident
сообщение Oct 14 2009, 19:23
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Лучше RTFM в оригинале. Без сказок и пересказов. Брать там -> www.usb.org
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Oct 14 2009, 19:28
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Добавалю только, что когда-то давно работа с USB была хорошо и доходчиво расписана в доках на контроллеры фирмы Cypress. Можно начать с них, а затем плавно перейти к изучению родной документации.
Go to the top of the page
 
+Quote Post
av-master
сообщение Oct 14 2009, 20:35
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 857
Регистрация: 14-05-05
Из: Украина
Пользователь №: 4 998



спасибо . а на русском нигде ничего?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Oct 14 2009, 20:39
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



На русском разве что довольно сомнительной полезности книжка Агурова.
Go to the top of the page
 
+Quote Post
Xenia
сообщение Oct 15 2009, 18:31
Сообщение #6


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Хуже, чем описание работы USB, ничего на свете нету smile.gif. Купила обе книги Агурова - "Интерфейс USB" и "Практика программирования USB", пыталась это читать. Но разве это читать можно? smile.gif Жуть сплошная. Чем дальше читаешь, тем непонятнее становиться smile.gif. А когда дошла до описания протоколов и форматов структур, мне и вовсе поплохело smile.gif.

Поэтому я пошла другим путем, близким к тому, что рекомендовал здесь aaarrr - взяла документацию на свой "родной" AT90USB647 (это МК архитектуры AVR со встроенным USB) и принялась разбираться в демонстрационной программе USB-COM конвертора, попутно разбираясь в назначениях USB-регистров по даташиту. Через некоторое время я сократила эту программу от всего того, что мне не было нужно (например от HOST-режима, обслуживания других задач и пр.), оставив три функции: 1) инициализацию USB, т.е. те действия, которые необходимо провести всего однажды, чтобы USB заработало. 2) функцию отправления байта по USB (тут на самом деле они сначала кладутся в буфер, а отправляются группой) и 3) функцию, которая вызывается по прерыванию, когда по USB приходит передача. Вообще-то ничего кроме этого мне не было нужно. Помимо этих необходимых мне функций пришлось оставить механизм обработки USB-прерываний, в котором приходится отвечать на всякие каверзные запросы хоста, т.к. без этого с моим USB-устройством никто бы не захотел разговаривать.

В процессе такого разбирательства мне неоднократно приходилось обращаться к книге Агурова "Практика программирования USB", но лишь затем, чтобы выяснить назначения тех или иных констант, записанных в структурах, которые передаются в ответ на запросы. Т.е. тут я уже дошла до того, что некоторые поля подправила под себя - увеличила длину буфера на передачу, убрала "лишнюю" endpoint, запросила больше тока питания, придумала своему устройству красивое имя и т.п.

После всего этого сотворила двойную (или уже тройную?) буферизацию, организовав кольцевой буфер размером 256 байт в памяти, откуда данные отсылаются по USB-прерываниям. Тут дело в том, что USB мне нужно, чтобы отсылать данные от "говорливых" АЦП. И здесь у меня нет времени, чтобы ждать, когда USB отправит данные. А я просто кидаю байты в свой буфер, не заботясь об их отправке, а "голодные" прерывания от USB сами черпают из буфера, если там еще что-то неотправленное осталось. После этого моя программа перестала быть понятной другим smile.gif, зато оставалась понятна мне.

И вот, странное дело! - Открываю я снова книги Агурова, читаю и вдруг обнаруживаю, что всё (или почти всё) мне в ней стало понятно smile.gif. Такова участь большинства инструкций, которые обладают хитрой особенностью сохранять непонятность тогда, когда мы остро нуждаемся в понимании, и быть абсолютно ясными, когда понимание уже за плечами.
Go to the top of the page
 
+Quote Post
mustelus
сообщение Nov 11 2009, 15:30
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 43
Регистрация: 21-11-08
Из: BELARUS
Пользователь №: 41 837



Госпада, вот просвятите, есть куча примеров реализации USB на микроконтролеры PIC... Но все почемуто реализованы стандартным CDC класом и, используються как виртуальный COM на хосте....
Так вот вопрос: А ВСТРЕЧАЛ КТО В НЕТЕ ПРИМЕР НАСТОЯЩЕГО USB КАК USB (именно на PIC), так что б драйверок свой нужно было склепать на хост, свое приложенице (т.е. что б действительно ето был USB а ни чeрти какой COM)....
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Nov 11 2009, 15:36
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Просто отломайте от примера CDC-часть, в чем проблема?
Go to the top of the page
 
+Quote Post
manul78
сообщение Nov 11 2009, 15:59
Сообщение #9


Местный
***

Группа: Участник
Сообщений: 403
Регистрация: 14-05-07
Из: Россия, г.Пенза
Пользователь №: 27 719



Цитата(mustelus @ Nov 11 2009, 18:30) *
Так вот вопрос: А ВСТРЕЧАЛ КТО В НЕТЕ ПРИМЕР НАСТОЯЩЕГО USB КАК USB (именно на PIC), так что б драйверок свой нужно было склепать на хост, свое приложенице (т.е. что б действительно ето был USB а ни чeрти какой COM)....


А что свет клином сошелся именно на PIC ?

Берем AT90USB162 за 120 рупий. Берем даташит на атмеловский кит STK526 и на основе его схем "ваяем" более упрощен-
ную модель... Монтируем всё это хозяйство на "нулевке" . И можно начинать.
Прелесть атмеловских USB-контроллеров, что в них с завода зашит бутлоадер который позволяет программировать МК пря-
мо через USB. Бесплатная программа FLIP. Правда до фьюз не добраться, но на первых порах хватит.
Примеры + библиотеки с атмеловского сайта просты и понятны.
Т.е. за 200-300 рублей можно начинать изучать USB без особых заморочек. Кстати Агурова, как ни ругают, но почитать
тоже не помешает. smile.gif

P.S. Для начала рекомендую начать с HID, винда сама устройство определяет и драйвер стандартный. 60 кб/с для начала
вполне достаточно...


--------------------
" Многие вещи нам непонятны не потому, что наши понятия слабы; но потому, что сии вещи не входят в круг наших понятий." (с) К.Прутков.
Go to the top of the page
 
+Quote Post
BrotherRabbit
сообщение May 8 2010, 16:16
Сообщение #10


Участник
*

Группа: Участник
Сообщений: 18
Регистрация: 10-04-10
Пользователь №: 56 549



Xenia, очень понравился твой методичный подход. Но расскажи поподробнее, как организован обмен данными со стороны хоста? Драйвер был тоже демонстрационный? А библиотеки какие использовала? smile.gif

У меня есть демо-firmware с HID устройством - мышью (макет для с8051 с usb фирмы SiLabs).
Пока без надобности выкидывать ничего из прошивки не стану, просто направлю необходимые данные в буфер "мыши".
Со стороны хоста-компа тогда нужно написать некое оконное приложение, выводящее данные, полученные от устройства.
У мыши тип передачи interrupt, но для небольших объемов данных ( с тех же АЦП) это вполне приемлемо.
Как сказал manul78, и драйвер стандартный, только бы научиться как его использовать. Ещё я нашел библиотеку libusb-win32..
Вообщем, приступаю к работе, надеясь на Вашу поддержку.
Go to the top of the page
 
+Quote Post
Student Pupkin
сообщение May 11 2010, 20:19
Сообщение #11


Местный
***

Группа: Участник
Сообщений: 328
Регистрация: 23-05-08
Пользователь №: 37 760



Цитата(av-master @ Oct 15 2009, 00:35) *
спасибо . а на русском нигде ничего?

USB in a NutShell - путеводитель по стандарту USB

off top: Аватар прикольный - работаете с PSoC Cypress? smile.gif
Go to the top of the page
 
+Quote Post
domowoj
сообщение May 12 2010, 00:12
Сообщение #12


Профессионал
*****

Группа: Участник
Сообщений: 1 548
Регистрация: 20-12-07
Из: г.Новосибирск
Пользователь №: 33 486



Xenia молодец!

И свои пять копеек
Прикрепленные файлы
Прикрепленный файл  usb_rus0.rar ( 829.14 килобайт ) Кол-во скачиваний: 133
 


--------------------
И на камнях растут деревья!
Go to the top of the page
 
+Quote Post
esaulenka
сообщение Jun 23 2010, 14:31
Сообщение #13


Профессионал
*****

Группа: Свой
Сообщений: 1 032
Регистрация: 13-03-08
Из: Маськва
Пользователь №: 35 877



Кстати.
Какие бы VID / PID подделать, чтобы WinXP (и WinVista / Win7 хорошо б) самостоятельно установила драйвера на стандартный CDC ?

Сейчас приходится пользователям ещё и inf - файл давать.

Вроде б и нет таких, но вот тут активно рекламируется прошивка, к которой драйвер уже готов.
http://microsin.ru/content/view/1178/44/
Попытка украсть оттуда идентификаторы VID_16C0/PID_05E1 результата не дала (вроде б и не надо больше ничего?..).


--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 19:57
Рейтинг@Mail.ru


Страница сгенерированна за 0.01471 секунд с 7
ELECTRONIX ©2004-2016