Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.69/94: Рейтинг темы: голосов - 94, средняя оценка - 4.69
s0ti
0 / 0 / 0
Регистрация: 30.05.2010
Сообщений: 251
1

USB->USB переходник :)

14.11.2010, 22:23. Просмотров 17028. Ответов 16
Метки нет (Все метки)

В Wymdows все, что связано с USB, работает через дрова. Но написание дров - порой довольно муторный процесс, а главное - зачастую излишний (на мой взгяд).
Например: надо мне подключить USB-устройство к девайсу на ARM. Для примера возьмем... BlueTooth-модуль (это чисто для примера, не зацикливайтесь). Как разобраться с работой этого девайса? Че ему передавать, и че от него получать? и в каком виде все это делать?
Можно конечно купить пару десятков килограмм книг по BT и начать вкуривать, дооолго и мучительно. Можно забить в гугле "BlueTooth - устройство" и в течении недельки другой отрывать че-то полезное среди рекламы и интернет-нигазинов. Да и после этого, отлаживать и тестировать весь код, написанный ЧИСТО по теории СРАЗУ на АРМ-е - туго.
Можно воткнуть BT-модуль в комп, скопировать дрова в другое место, удалив из старого, дизассемблировать их, и пару месяцев копаться в коде, созданным не самой пряморукой компанией MicroSoft. Но эта перспектива меня тоже не радует.

И посетила такая идейка. Сделать девайс: с одной стороны стоит USB порт, куда втыкается интересующее нас устройство. С другой стороны висит FT232RL, этой стороной девайс втыкается в комп. А между ними - АРМ процессор, который без разбору грабит все данные с USB устройства, и через виртуальный COM-порт шлет на компьютер. И в обратную сторону то же самое. Так как к КОМ-порту НИКАКИХ дров не нужно и с ним можно работать через CreateFile, то собираем все это воедино, запускаем на компе какую-нить терминалку (или пишем сами чего-нибудь более функциональное) и начинаем издеваться над нашим BT-модулем.

В теории все вроде бы ОК. Но одна беда: Я абсолютно ничего не знаю про АРМ. Только 3 статьи ДИ прочитал. Может кто работал с USB и USORT на них? Если да, напишите пожалуйста, где взять инфу по поводу работы с ними на STM32F103. Ну или если не лень, напишите примерно как с ним работать. Чтение даташитов я с себя не снимаю, естественно, однако английский не люблю очень, поэтому в даташит пожалуйста отсылать не слишком часто:)
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.11.2010, 22:23
Ответы с готовыми решениями:

USB-HID библиотека с st.com STM32f105 "Устройство USB не .."
Товарищи. Взял USB библиотеку с st.com (On-The-Go host omd divice library), для STM32F105...

STM32 Использование 3G USB модемов (USB Host)
Никому не случалось использовать 3G модемы с библиотекой USB от STM ? С этими модемами такая...

USB Audio + USB CDC на одной STM32F4
Итак, есть ЦАП с входом I2S, есть FMприёмник с выходом I2S, есть STM32F405 с двумя I2S. Задача...

CCID USB,сниффер для USB.
У кого есть пример CCID USB ? Посоветуйте сниффер для USB. Если например в CDC изменить ...

STM8 USB V-USB
https://github.com/wlianmin/stm8_usb в комплекте пример hid мышки самодвигающейся :) китайцы...

16
Brykodyr
0 / 0 / 0
Регистрация: 16.08.2010
Сообщений: 1,326
14.11.2010, 22:28 2
Бредовая идея. Забей.
0
s0ti
0 / 0 / 0
Регистрация: 30.05.2010
Сообщений: 251
14.11.2010, 22:30 3
Да я бы забил, но вот подключать USB-устройства к ARMу мне все же нужно. А для этого надо как-то разобраться с этими самыми устройствами. А как - другого нормального способа не вижу. К тому же - такой девайс был бы отличной практикой мне для работы с USB.
0
kyr_tt
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 1,368
14.11.2010, 22:36 4
Написание дров, как раз самый важный процесс ( вот тут и Мозго-Ломный процесс, гора литературы и пр.). После выдаем библиОтэку, устройство- доступ ( с подробностями) и все кричат ура и кодят. Остальное читал по диагонали.
0
Brykodyr
0 / 0 / 0
Регистрация: 16.08.2010
Сообщений: 1,326
14.11.2010, 22:38 5
Одно дело подключать (физический интерфейс), и другое дело общаться с подключенными устройствами (протокол обмена, набор команд, структуры передаваемых и принимаемых данных и т.д.)
Тебя, конкретно, что из этого интересует?
0
s0ti
0 / 0 / 0
Регистрация: 30.05.2010
Сообщений: 251
14.11.2010, 22:44 6
меня интересует подключение и обмен данными между устройством и ARM. Не думаю, что там байты другого размера))) так что по идеи должно быть несложно имея удобную терминалку на компе и даташит в зубах разобраться со структурами данных и пр. потому что так можно имея под рукой всю мощь ПК написать программу взаимодействия на высокоуровневом языке, думая только о том, какие байты и в какой последовательности слать. А если делать на АРМ сразу - тут хрена с два пойму, где косяк: то ли формат посылки неверный, толи провода оборвались, толи КЗ где-то, толи прошилось криво.
0
sovomt
0 / 0 / 0
Регистрация: 26.01.2010
Сообщений: 117
15.11.2010, 00:36 7
Так и пиши: "хочу аппаратный сниффер USB"
0
Brykodyr
0 / 0 / 0
Регистрация: 16.08.2010
Сообщений: 1,326
15.11.2010, 00:46 8
Цитата Сообщение от s0ti
меня интересует подключение и обмен данными между устройством и ARM. Не думаю, что там байты другого размера))) так что по идеи должно быть несложно имея удобную терминалку на компе и даташит в зубах разобраться со структурами данных и пр. потому что так можно имея под рукой всю мощь ПК написать программу взаимодействия на высокоуровневом языке, думая только о том, какие байты и в какой последовательности слать. А если делать на АРМ сразу - тут хрена с два пойму, где косяк: то ли формат посылки неверный, толи провода оборвались, толи КЗ где-то, толи прошилось криво.
Наивный финский парень. Все не так то просто, как ты себе это представляешь. Не веришь мне (насчет бредовой идеи), послушай мнения других.
0
zyxmom
0 / 0 / 0
Регистрация: 09.10.2010
Сообщений: 421
15.11.2010, 07:53 9
Цитата Сообщение от sovomt
Так и пиши: "хочу аппаратный сниффер USB"
Действительно!

И возникает вопрос: анапуркуа?
В смысле зачем аппаратный сниффер если есть реально работающие программные ;)

Правда тут все равно действует проблема, что нужно достаточно хорошо себе представлять логику работы устройства обмен с которым перехватывается, и кстати дамп будет ОЧЕНЬ-ОЧЕНЬ немаленьким и не очень удобным для чтения (а аппаратный дамп это вообще катастрофа).
Но таки правда, что если собираешься писать свой драйвер, этот дамп очень даже неплохой учебный пример, позволяющий получить точные ответы обо всех неоднозначностях и косяках официальной документации.
0
Vid_kh
0 / 0 / 0
Регистрация: 24.01.2010
Сообщений: 297
15.11.2010, 08:51 10
Brykodyr
+1

ТС, то, что ты написал, бред. Да, снифер USB - сделать можно. И уже задали правильный вопрос: "Зачем?". Для тех целей, что описаны в начале, это бесполезно. Без обид, но тут налицо неправильно заданный вопрос по причине незнания. И ничего обидного тут нет. Ведь не зря есть высказывание, что чтобы правильно задать вопрос, надо знать половину ответа. Поэтому для начала просто почитай про USB. Что это такое и с чем его едят. Это не просто кусок провода, по которому бегают только нужные байты. Инфа легко доступна в инете.
0
s0ti
0 / 0 / 0
Регистрация: 30.05.2010
Сообщений: 251
15.11.2010, 20:12 11
Я не обижаюсь. Просто прошу совета)) Если есть другие способы, попроще - я с радостью их приму. Писали тут про программый сниффер - спасибо, не думал, что такие есть. Поищу.
А по поводу USB - я знаю примерно что это. Как реализован обмен. Как примерно это все обрабатывает винда (соответственно, что шлет устройство). НО:
Я не знаю, ЧТО реализовано а АРМ-контроллере: тупо порт, который работает по протоколу USB (аля USORT в AVR) или же какие-то простейшие действия с устройстовом он производит. Не знаю, КАК обращаться к нему из программы и как читать/писать туды данные. И прошу именно помощь по этому поводу без наездов:) ведь вроде бы никому ничего не мешало написать: "Это тупо делать, потому что есть уже программные снифферы. Копай туда." вместо грубо говоря "идиот, нах надо? разберись хоть в чем-нить, а потом уже пиши!!" (это так, на будущее плз).
Я знаю что ОЧЕНЬ многого не знаю. Поэтому собственно и пишу на этом форуме - чтобы знающие мне подсказали, куда копать.
0
okotimiv
1 / 1 / 0
Регистрация: 30.08.2010
Сообщений: 3,382
15.11.2010, 20:35 12
Посмотреть, что реализовано в ARM контроллере (а какой, кстати, имеется в виду?) можно изучив его документацию. USB снифер этой проблемы не решает.

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

Однако снифер может быть весьма полезен для отладки. Обычно в его роли выступают логические анализаторы, достаточно скоростные для того, чтобы работать с USB, и имеющие соответствующий софт.

Предлагаемая вами схема - бред сивой кобылы. Это и не снифер, и не логический анализатор, и даже не эмулятор. Это черт знает что. С тем же успехом сырые данные (если вы вообще сможете их добиться от устройства) вы можете получить и простейшими средствами Wymdows, безо всяких драйверов.
0
s0ti
0 / 0 / 0
Регистрация: 30.05.2010
Сообщений: 251
15.11.2010, 20:48 13
То, что идея глупа я понял уже давно - до написания поста. Написал же ибо не видел других способов разобраться с протоколом определенного устройства. Мне уже сказали, что есть программные реализации. Этим я и займусь.
А по поводу
"Посмотреть, что реализовано в ARM контроллере (а какой, кстати, имеется в виду?) можно изучив его документацию." (какой контроллер - в начале написано мельком STM32F103).
Это и ежу понятно, НО у меня есть две возможности:
1) Открыть даташит, положить рядом с компом словарь и начать переводить, долго пытаясь вникнуть в его содержание.
2) Спросить у людей - может кто уже разбирался с USB. И тогда может кто и ответит например:
"В АРМ реализовано только прием/отправка байтов, все остальное программист берет на себя. Чтобы поработать с портом надо примерно сделать так и сяк. Почитать можно в такой статейке (ссылка)"
И это бы сэкономило кучу времени.
Про то, что реализовано в ARM проще спросить у тех, кто это знает. Быстрее и информативнее.
А изучать кодинг чисто по даташитам - это тупо. Можно конечно открыть даташит, нарыть справочник команд и начать перебором тыркать их в прогу, пока не подберешь удачный код. Но это бредово.
0
Uttrym
0 / 0 / 0
Регистрация: 19.10.2010
Сообщений: 219
19.11.2010, 00:55 14
Цитата Сообщение от s0ti
А изучать кодинг чисто по даташитам - это тупо. Можно конечно открыть даташит, нарыть справочник команд и начать перебором тыркать их в прогу, пока не подберешь удачный код. Но это бредово.
В даташите редко описывается процесс кодинга (если это не спец-приложение типа апнота). Там как раз описывается железо и его возможности. Изучив железо Вы поймете что может данный АРМ. USB достаточно сложный интерфейс чтобы однозначно дать ответ на ваш вопрос.
В самом микроконтроллере всегда реализуется железо. Может быть реализуются варианты логики работы интерфейса (типа конечных автоматов), но верхний уровень протокола - всегда программный. Только программист говорит процу что откуда и куда кидать или принимать. И не важно, АРМ это или допустим АВР...
0
zyxmom
0 / 0 / 0
Регистрация: 09.10.2010
Сообщений: 421
19.11.2010, 05:57 15
Цитата Сообщение от s0ti
.
Уточните пожалуйста, что вы знаете?

Без обид, просто USB реально ОЧЕНЬ сложный интерфейс, особенно когда речь идет о работе с такими сложными вещами как Bluetooth.

И еще, учите языки. Лучше всего для инженера свободно владеть английским и немецким.
0
kyr_tt
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 1,368
19.11.2010, 20:38 16
s0ti
Это Вы про свой проект навигатор + веб камера?
Копать в cторону USB On-The-Go. Это спецификация. 2 мобильных штучки делают объмен между собой. Кто хост кто слейв договариваются сами.
0
miyvir
0 / 0 / 0
Регистрация: 27.06.2010
Сообщений: 405
19.11.2010, 22:49 17
Цитата Сообщение от s0ti
В Wymdows все, что связано с USB, работает через дрова. Но написание дров - порой довольно муторный процесс, а главное - зачастую излишний (на мой взгяд).
Вовсе не обязательно писать драйвера для самодельных USB устройств. Всё уже написано за нас. LibUsb называется. Использовать её не сложней, чем COM порт через CreateFile пинать.
А сниффер вещь тут бесполезная. Во первых, сам протокол USB очень хорошо стандартизирован и документирован. Во вторых, если нужны драйвера для USB хоста на каком-нибудь АРМе для какого-то конкретного устройства, то они опять-же уже написаны. Место где их можно посмотреть называется ядро Linux.
Пусть в готовом виде их может и не удастся использовать (хотя как знать, может ядро Linux туда целиком запихнуть), но вдохновиться на них точно можно.
0
19.11.2010, 22:49
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.11.2010, 22:49

USB+CAN
Уважаемые знатоки! Подскажите пожалуйста решение :) Нужно сделать устройство, в котором будет...

USb StdPeriph
Здравствуйте, при изучении периферии STM32f407, наткнулся на то что невозможно найти примеров...

lpc2148 usb
Доброго времени суток! Появилась задача организовать связь lpc2148 с компьютером по интерфейсу...


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

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

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