С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 5.00/42: Рейтинг темы: голосов - 42, средняя оценка - 5.00
янгл
6 / 6 / 0
Регистрация: 23.07.2009
Сообщений: 237
1

Управление USB

04.01.2011, 18:58. Просмотров 7759. Ответов 21
Метки нет (Все метки)

Здравствуйте. Нужно научиться управлять внешним устройством через USB. Возможно ли с помощью программ на языке C управлять USB?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.01.2011, 18:58
Ответы с готовыми решениями:

Реализовать алгоритм работы планировщика. Управление виртуальной памятью. Управление файловой системой
Разработка программы менеджера памяти. Свопинг. Сегментная схема организации...

Управление устройствами
Здравствуйте, У меня возник вопрос, как управлять различными устройствами при...

Управление памятью в C++
Здравствуйте! Сколько уже читаю про указатели, но никак не пойму кое-что: когда...

Управление транзакциями в С++
Нужно реализовать управление транзакциями в с++. А именно работу с 2мя...

Управление временем
Как управлять временем? Например хочу написать программу, которая каждые 5...

21
Mayonez
382 / 274 / 53
Регистрация: 26.12.2009
Сообщений: 875
04.01.2011, 19:28 2
Цитата Сообщение от янгл Посмотреть сообщение
Возможно ли с помощью программ на языке C управлять USB?
да. . .!
0
янгл
6 / 6 / 0
Регистрация: 23.07.2009
Сообщений: 237
04.01.2011, 20:04  [ТС] 3
Данные передаются по 2-v проводам D- и D+ и по двум питание. Как передаются данные по USB?
0
PB
Просто прогер
1282 / 1069 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
05.01.2011, 01:08 4
Цитата Сообщение от янгл Посмотреть сообщение
Как передаются данные по USB?
Изучайте http://www.usb.org

С каким USB устройством нужно работать?

PS.
Тут есть пример USB устройства на микроконтроллере и исходник проги для компа, работающей с этим устройством.
1
янгл
6 / 6 / 0
Регистрация: 23.07.2009
Сообщений: 237
05.01.2011, 20:35  [ТС] 5
Спасибо за ссылки. Нужно, чтобы USB выдавал коды, определённые программой. Далее эти коды будут преобразовываться логической схемой.
0
PB
Просто прогер
1282 / 1069 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
05.01.2011, 22:10 6
К какому классу относится USB устройство (CDC, HID или что-то другое)?
От этого зависит метод работы с ним.
1
янгл
6 / 6 / 0
Регистрация: 23.07.2009
Сообщений: 237
06.01.2011, 13:25  [ТС] 7
незнаю. А как узнать? Смотрел в эвересте, но там ничего не написано про класс.
0
PB
Просто прогер
1282 / 1069 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
06.01.2011, 14:53 8
Цитата Сообщение от янгл Посмотреть сообщение
А как узнать?
Устройство было готовое или самодельное?
Оно требовало драйвер или нет?

Вообще, что из себя представляет USB устройство и для чего оно предназначено?
1
янгл
6 / 6 / 0
Регистрация: 23.07.2009
Сообщений: 237
06.01.2011, 21:34  [ТС] 9
Я сначала думал использовать контроллер. Но, зачем, если есть комп. Т.е комп будет вычислять и управлять внешним устройством. Это самодельное устройство. То есть я его ещё не сделал. Мне нужно понять как работает USB, как передаются данные, что вообще можно с ним делать. Исходя из этого, буду проектировать устройство.
Те ссылки, которые вы мне дали на инглише. А есть, что-то толковое на русском?
0
PB
Просто прогер
1282 / 1069 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
06.01.2011, 22:02 10
В любом случае, при работе с USB, нужен будет контроллер.
Там довольно сложный протокол обмена, на обычной логике его почти нереально поддержать.


Цитата Сообщение от янгл Посмотреть сообщение
А есть, что-то толковое на русском?
Вот статья на русском. 1 2 3

Ссылка была выше на пример реализации USB HID устройства на PIC и AVR контроллерах, а так же поддержка работы с ними со стороны компа.
Там все относительно просто реализовано.
1
янгл
6 / 6 / 0
Регистрация: 23.07.2009
Сообщений: 237
06.01.2011, 22:22  [ТС] 11
Да, точно без контроллера не обойдёшься.

Добавлено через 10 минут
А че никак иначе нельзя демодулировать? А то контроллеры дорогие((
0
PB
Просто прогер
1282 / 1069 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
06.01.2011, 22:25 12
Цитата Сообщение от янгл Посмотреть сообщение
А че никак иначе нельзя демодулировать?
Слишком сложный протокол обмена. Он предусматривает не только полезные данные, но и кучу служебной информации.

Цитата Сообщение от янгл Посмотреть сообщение
А то контроллеры дорогие((
Разве 2$ это дорого?
1
янгл
6 / 6 / 0
Регистрация: 23.07.2009
Сообщений: 237
06.01.2011, 22:58  [ТС] 13
Ё-моё))) А я то всё про...
Так это получается, что достаточно pic контроллера для демодуляции?
0
PB
Просто прогер
1282 / 1069 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
06.01.2011, 23:17 14
Цитата Сообщение от янгл Посмотреть сообщение
Так это получается, что достаточно pic контроллера для демодуляции?
Нужен PIC со встроенным модулем USB (типа PIC18F2550 или подобный).
Если нужно сделать устройство максимально дешевым, то используем практически любой AVR контроллер (например, ATmega8), у которых достаточно быстродействия для программой работы с USB без использования аппаратного модуля.
1
янгл
6 / 6 / 0
Регистрация: 23.07.2009
Сообщений: 237
07.01.2011, 01:37  [ТС] 15
Значит с одной стороны контроллер мы подключаем через USB к компу. А с другой?
0
PB
Просто прогер
1282 / 1069 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
07.01.2011, 15:34 16
Цитата Сообщение от янгл Посмотреть сообщение
А с другой?
Что имелось в виду?

Для контроллера нужно написать программу, которая будет выполняться им и обрабатывать все USB запросы, преобразовывать их в нужный вид, формировать ответы для компа и управлять внешним устройством (скажем, включать или выключать лампочку по команде с компа).
Для компа тоже нужно написать соответствующую программу, которая сможет взаимодействовать с созданным USB устройством. А вот как будет взаимодействовать, сильно зависит от типа устройства, если это будет CDC устройство, то комп увидит его как виртуальный COM порт. Если создать HID устройство, то для работы с ним, нужно будет использовать специальные API функции. Плюс HID класса в том, что не требуется драйвер для USB устройства.
2
янгл
6 / 6 / 0
Регистрация: 23.07.2009
Сообщений: 237
07.01.2011, 17:30  [ТС] 17
У меня уже не одна проблема сводится к необходимости иметь дело с микроконтроллерами, даже была возможность устроится на программиста контроллеров с обучением (жаль не получилось). Вот и теперь та же фигня. Вижу много возможностей у контроллеров.
По этому у меня такой вопрос. Для программирования и работа с контроллерами нужны ли ещё какие-то аппаратные средства, ещё какие-то микросхемы? Между контроллером и компом нужно, что-то ещё включать?
0
PB
Просто прогер
1282 / 1069 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
07.01.2011, 17:53 18
Цитата Сообщение от янгл Посмотреть сообщение
Вижу много возможностей у контроллеров.
Они по сути являются компами (есть процессор, оперативная память, энергонезависимые запоминающие устройства, порты ввода вывода информации и т. д.).

Цитата Сообщение от янгл Посмотреть сообщение
Для программирования и работа с контроллерами нужны ли ещё какие-то аппаратные средства, ещё какие-то микросхемы?
Как минимум, нужен программатор.
Бывают очень простые программаторы (буквально пара деталек), а бывают сложные (с разными наворотами).
Для каждого типа контроллеров свои программаторы, поэтому сначала нужно определится с типом контроллеров (PIC, AVR, ARM или что-то другое), и уже для них искать аппаратные средства (программаторы, отладчики, отладочные платы и т. д.).
1
янгл
6 / 6 / 0
Регистрация: 23.07.2009
Сообщений: 237
07.01.2011, 18:23  [ТС] 19
Но программаторы ведь дорого стоят. Конечно от сложности программатора зависит, но это та же история, что и с ПК. Сначала мне много не надо, потом для того-то надо по-мощнее, потом ещё мощнее и в итоге надо сразу брать мощную ЭВМ.
0
PB
Просто прогер
1282 / 1069 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
07.01.2011, 19:17 20
Цитата Сообщение от янгл Посмотреть сообщение
Но программаторы ведь дорого стоят
Если дружишь с паяльником, то можно самому сделать из пары транзисторов, резисторов и диодов. Но это при условии что в компе есть COM или LPT порт.

Добавлено через 8 минут
Вот несколько схем программаторов
http://radiokot.ru/lab/controller/29/index.shtml
http://radiokot.ru/circuit/digital/pcmod/13/
http://radiokot.ru/circuit/digital/pcmod/17/
http://radiokot.ru/circuit/digital/pcmod/18/
1
07.01.2011, 19:17
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.01.2011, 19:17

Управление стрелками C++
Написал программу, работает. Но вопрос в том, что когда нажимаю на стрелки, мой...

Управление видеоадаптером в C++
Помогите написать код для лабораторной в универе. Вот задания: "Используя...

управление окнами
доброго времени суток форумчане! кто сможет помогите пожалуйста! проблема в том...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru