Перейти к содержанию

Передать USB трафик по радио


Рекомендуемые сообщения

Всем привет!

Встала передо мной задача передать USB трафик по радио.
Хочется сделать что-то типа USB-донгла, который вставляется в компьютер и общается с ответым устройством по радио.
К ответному устройству своим родным кабелем должен подключаться существующий USB-девайс.
Функционал USB-хаба не требуется, работа идет только с одним конечным устройством.
Задача минимум - поддержать Low Speed режим.

Вопросов много, начну с главного.

  1. Реально ли сделать все это не занимаясь разбором USB пакетов, а просто передавая их как есть?
    То есть МК в режиме девйса получает от хоста пакет, вырабатывает прерывание, обработчик которого
    забирает буфер и выдает команду радиомодулю на передачу содержимого буфера. Со стороны устройства все
    то же самое, только МК работает в режиме хоста. Ну и в обратном направлении подобным же образом.
  2. Выбор микроконтроллера. Он должен позволять работать с голыми пакетами напрямую, чтоб не было всяких
    фокусов с прибитыми гвоздями VID и PID.
    Насколько я понимаю, не каждый МК с поддержкой USB умеет работать в режиме хоста. Поскольку это нужно
    только на одном конце, получается, что микроконтроллеры могут быть разными для донгла и для девайса.
    Ну и цена вопроса имеет значения. STM32 внезапно подорожали в разы. Присматриваюсь к китайскому CH559
  3. Подойдет ли для радиообмена NRF24L01? Он вроде бы не сильно много потребляет по сравнению с WiFi.
    Если нет, то что вместо него?

По блютусу делать не хочу, там не получится сделать так, чтобы компьютер видел конечное устройство ровно так,
как он его видит при подключении кабелем, то есть драйвера устройство не опознают. Или я не прав?

Спасибо.

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

1 час назад, Vaffanculo сказал:

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

Сначала вам придётся решить вопрос, что делать с передаваемой полосой частот сигнала USB. Для USB 1 полоса должна быть не менее 12 МГц, для USB 2 - не менее пол-гигагерца, для USB 3 -... ну вы поняли. :)

Решить вопрос с передачей сигнала подключения - отключения - определения версии USB устройства (резистор подтяжки на линии D+ или D_) можно очень просто, если использовать микросхему USB-хаба типа TUSB2036 и подобные.

Но сначала почитайте про Wireless USB.

Изменено пользователем Lexter
Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

27.06.2021 в 13:18, Lexter сказал:

Сначала вам придётся решить вопрос, что делать с передаваемой полосой частот сигнала USB. Для USB 1 полоса должна быть не менее 12 МГц, для USB 2 - не менее пол-гигагерца

Поправка: для USB1 нужно 1.5 Мб/с, для USB2 либо 12, либо 480 Мб/с в зависимости от стандарта FS/HS.

Причем если все-таки заморочиться разборкой пакетов, скорость можно снизить.

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

Ссылка на комментарий
Поделиться на другие сайты

1 час назад, COKPOWEHEU сказал:

Поправка: для USB1 нужно 1.5 Мб/с

поправка.

1,5 МБ/с - это 12 Мегабит в секунду, то есть, 12 МГц,  чем и было сказано выше.

Мудрость приходит вместе с импотенцией...

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

Ссылка на комментарий
Поделиться на другие сайты

Оно не будет работать. Никогда. :-) 

Банально по той причине, что передача по радио крайне ненадёжна по своей сути. Кто-то где-то включил вай-фай, блуютус, просто прошёл мимо. Молния бахнула в конце концов. И всё, пакет потерян или искажён. Возможности USB в детектировании ошибок крайне ограничены. Если мне не изменяет память, там CRC-5 используется как минимум для части пакетов. 

А ещё придётся реализовывать перестройку частоты, ибо в одних условиях будет менее захламлён один диапазон, а в других — другой.

А ещё надо будет потратить время на отправку по радио, а потом ещё раз отправить по USB уже целевому устройству, а потом всё повторить в обратном порядке. И уложить это всё аккурат в те тайм-слоты в которых хост будет ожидать данных. Не забыв заранее его уведомить, что данные надо будет ожидать в следующий раз (может быть).

Ну и так далее и тому подобное. ;-)

 

Ссылка на комментарий
Поделиться на другие сайты

7 минут назад, El-Shang сказал:

Оно не будет работать. Никогда.

Ну где же вы были, когда люди мучались над вот этим?

27.06.2021 в 13:18, Lexter сказал:

почитайте про Wireless USB.

Свяжитесь с ними, может быть ещё не поздно. А то зря мучаются... :D

Изменено пользователем Lexter
Ссылка на комментарий
Поделиться на другие сайты

@Lexter, хорошо, я внесу уточнение.

В том виде, как автор себе представляет работать не будет. Не удастся ему в кустарных условиях на двух микроконтроллерах (даже тип указан NRF24L01) напрямую передать данные между двумя узлами посредством радио без промежуточной обработки данных. 

Сравнение же с Wireless USB некорректно. 

Изменено пользователем El-Shang
Ссылка на комментарий
Поделиться на другие сайты

3 часа назад, El-Shang сказал:

Сравнение же с Wireless USB некорректно. 

Корректно. Если собрался что-то делать, посмотри, как это делают другие. А эта команда ничего лишнего в систему просто так напихивать не будет. Там описаны и все проблемы, требующие решения. После изучения чужого опыта станет более понятно, насколько не продуман предлагаемый подход. :)

Ссылка на комментарий
Поделиться на другие сайты

27.06.2021 в 14:07, Vaffanculo сказал:

USB трафик по радио.

Какой трафик ? Чем тебя не устраивает стандартный Wi-FI ? В Wi-FI проходит всё что можно передать по USB.

С уважением, Дмитрий

Ссылка на комментарий
Поделиться на другие сайты

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

"Я не знаю какой там коэффициент, я просто паять умею. "

Ссылка на комментарий
Поделиться на другие сайты

16 hours ago, Lexter said:

Корректно. Если собрался что-то делать, посмотри, как это делают другие.

Да как сказать. Приводить в качестве примера технологию, на которую были потрачены годы и миллионы (если не десятки миллионов) долларов? Очевидно же, что человек, которые приходит на радиолюбительский форум с таким вопросом даже близко не понимает, что необходимо для решения надуманной им проблемы. Иначе бы он:
  а) искал бы готовое решение и в итоге бы пришел к упомянутому Вами стандарту;
  б) изменил бы свой подход к решению обозначенной задачи;
Так что "нет и никогда" вполне достаточно. :-)

1 hour ago, Candid said:

А не проще сделать это на базе беспроводной мыши?

Проще поставить два готовых блютуса. И написать "мост", реализующий обмен между двумя (или сколько там) узлами. Мышки имеют мерзкое свойство работать по проприетарному протоколу по радио — у одних производителей он один, а у других — другой. Плюс на стороне USB там HID-устройство, а оно довольно неторопливое по своей сути. Хотя для низкоскоростного обмена вполне покатит.

 

Ссылка на комментарий
Поделиться на другие сайты

21 час назад, Starichok сказал:
23 часа назад, COKPOWEHEU сказал:

Поправка: для USB1 нужно 1.5 Мб/с

поправка.

1,5 МБ/с - это 12 Мегабит в секунду, то есть, 12 МГц,  чем и было сказано выше.

Не путайте биты и байты. Мб это именно мегабиты. vusb на такой скорости работает.

То есть если делать на контроллерах общего назначения, то vusb позволяет общаться только на USB1 - скорость 1.5 Мб/с. Контроллеры с аппаратным USB - на USB2(FS), 12 Мб/с. А для больших скоростей уже придется искать специальные микросхемы.

21 час назад, El-Shang сказал:

Банально по той причине, что передача по радио крайне ненадёжна по своей сути.

Так никто и не предлагает по воздуху посылать сырые байты. Тем более что по USB физически идут отнюдь не только байты.

21 час назад, El-Shang сказал:

А ещё надо будет потратить время на отправку по радио, а потом ещё раз отправить по USB уже целевому устройству, а потом всё повторить в обратном порядке. И уложить это всё аккурат в те тайм-слоты в которых хост будет ожидать данных. Не забыв заранее его уведомить, что данные надо будет ожидать в следующий раз (может быть).

Запас по времени там огромный, около 1 мс по стандарту, а на практике единицы и даже десятки секунд.

21 час назад, El-Shang сказал:

Не удастся ему в кустарных условиях на двух микроконтроллерах (даже тип указан NRF24L01) напрямую передать данные между двумя узлами посредством радио без промежуточной обработки данных.

Так он вроде и хочет с промежуточной обработкой. Он в высокоуровневый протокол лезть не хочет, а отдельные пакеты разобрать несложно. Правда, придется реализовывать и USB-device и USB-host, пусть и примитивные.

3 часа назад, Candid сказал:

А не проще сделать это на базе беспроводной мыши?

Каким образом? Она же в системе всегда видна как мышь, другими устройствами прикидываться не умеет.

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы публикуете как гость. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
  • Сообщения

    • Согласен, очень криво объяснил. Это работа трёх вольтовой линии, просто на диод шотки сдвоенный, на один анод приходит сигнал напрямую с трансформатора, а на второй через дроссель. Вольт/деление 5 вольт в клетке, тайминг по моему 10 МС. Третья фотография это сигнал на катодах уровень земли ровно по центру экрана. Но все линии по итогу в порядке 3.3 в, 5, в, 12 в и -12 в. Нагрузить все линии не могу сразу ,так как тут же выгорают транзисторы (имеется нагрузка 250 ватт по 10 ампер на каждую линию за исключением-12в), поэтому нагружаю 3.3 вольтовую линию на 10 ампер,  подключаю переменный резистор 50 ватт на 15 ом на 5 вольтовую линию и постепенно довожу до той той картины с перекосом (это гдето  50 ватт общее). По поводу микросхемы, вверху имеется скрин где между импульсами проскакивает мини импульс, если так можно сказать, он проскакивает и на одной  и на второй ноге (7,8). Микросхема не tl 494, а lw4933/abx942.1/c9421646. Далее они приходят на базы транзисторов 945g  коллекторы этих транзисторов соединены с  выводами трансформатора. Просто схема типовая, легче мне кажется просто привести фото самого блока, для тех кто разбирается будет гораздо информативне.  Диод шотки по 12 вольтовой линии был подгоревший, заменил на донора. Приводить скрины не буду что бы не захламлять тему. В итоге, пока все так же, при достижении определенной нагрузки суммарно где-то 50 ватт, появляется этот "выброс и перекос". По этому имеются мысли на два варианта, это микросхема , этот мини импульс между периодами, на низкой нагрузке особо не влияет, но при достижении определенной приводит с самовозбуждению входной цепи и непроизвольному открытию транзистора нижнего плеча. Либо дело в "горячей части", плавающий дефект в обвязке силовых ключей.  Спасибо за ответ.
    • @Gomerchik а вы контролировали как меняется уровень сигнала на А1 ардуины?
    • Спасибо за совет. Автором данного проекта я не являюсь, мне нужно было воссоздать уличный датчик для метеостанции взамен пропавшего(( Из разного найденного в интернете этот проект работает с моей станцией Орегон (спасибо автору). В понедельник попробую последовать Вашему совету. Но все равно куча непоняток  как блин это работает)) Если дело в неправильной отправки команды, то как на это влияет подключение датчика температуры? Если совсем не подключать таймер, то передача идет один раз (как и прописано в программе), станция принимает и отображает, но минут через сколько-то естественно станция уже ни чего не показывает, но с таймером питание полностью не пропадает с ардуинки, но передача сигнала каким-то образом работает по таймеру.  В моем понимании данная команда подается один раз потому, что таймер должен отключать питание МК после передачи сигнала и каждые 43 сек снова подавать питание (так того требует станция).  Ардуино передает показания температуры отключается полностью и 43 секунды мк не работает.  Сейчас у меня питание пока сделано на подпитке от солнечной батареи, но пару пасмурных дней и аккумулятор съедается до отключения(
    • thickman Так и сделаю. Вытащу из бу БП.  Буду знать, как отличить. Благодарю. Заменил транзисторы на IRFB20N50K. Картина стала, совсем другой.  Похоже трудность не в драйвере, на момент подвозбуда, переходные процессы, в нем, завершены. Увеличил затворные резисторы до 50ом, стало немного лучше.  Не понятно, почему верхний ключ греется несколько сильнее. Возможно, стоит посмотреть ток в коллекторе.  Снабберные емкости временно удалил, изменений не произошло.  Замена ТГР на другой, на кольце MSTN-16A-TH, так же, результата не принесла.   irfb20n50k.pdf
    • А что нить из ассортимента активных щупов производства СССР..))
    • Типа такого: https://aliexpress.ru/item/2044864227.html?sku_id=58855020183
  • Похожий контент

×
×
  • Создать...