Jump to content
Vaffanculo

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

Recommended Posts

Всем привет!

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

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

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

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

Спасибо.

Share this post


Link to post
Share on other sites
Posted (edited)
1 час назад, Vaffanculo сказал:

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

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

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

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

Edited by Lexter

Share this post


Link to post
Share on other sites

Вам шашечки или ехать? Если второе, то купите подобный девайс, подключите его через WiFi или иным способом в вашу сеть и пользуйтесь.

Share this post


Link to post
Share on other sites

Оценка точности измерения тока интеллектуальными силовыми ключами PROFET

Интеллектуальные силовые ключи PFOFET производства Infineon могут измерять ток нагрузки с разной точностью, зависящей как от абсолютной величины потребляемого тока, так и от технологии производства конечной продукции, в частности – от наличия или отсутствия этапа калибровки. В статье подробно разбирается расчет коэффициента передачи тока на примере ключа BTS7004-1EPP.
Подробнее

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

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

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

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


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

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

Share this post


Link to post
Share on other sites

Приглашаем на практический вебинар «Работа с внешней памятью в STM32H7» (16.09.2021)

Вебинар посвящен особенностям работы высокопроизводительных микроконтроллеров из линеек STM32H7. На вебинаре разберем ключевые особенности линеек STM32H72/3 и проведем практическую работу с оценкой производительности с использованием ускорителей и кэш-буфера при чтении инструкций из внутренней и из зашифрованной внешней памяти. Для отображения результатов будет использоваться программная среда STM32CubeMonitor.

Подробнее

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

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

поправка.

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


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

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

Share this post


Link to post
Share on other sites

Удалось ли сделать резервную копию? Обеспечение бесперебойного питания

Для работы портативных электронных устройств с постоянным или длительным включением необходим резервный источник питания. Микросхемы диспетчеров питания производства Analog Devices LTC4040 или LTC4041 позволяют легко подключить резервное питание в виде Li-Ion-аккумулятора или суперконденсатора соответственно в случае сбоя или потери основного питания. Рассмотрим решения по резервированию питания на основе этих микросхем.
Подробнее

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

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

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

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

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

 

Share this post


Link to post
Share on other sites
Posted (edited)
7 минут назад, El-Shang сказал:

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

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

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

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

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

Edited by Lexter

Share this post


Link to post
Share on other sites
Posted (edited)

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

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

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

Edited by El-Shang

Share this post


Link to post
Share on other sites
3 часа назад, El-Shang сказал:

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

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

Share this post


Link to post
Share on other sites
27.06.2021 в 14:07, Vaffanculo сказал:

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

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


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

Share this post


Link to post
Share on other sites

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


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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
16 hours ago, Lexter said:

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

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

1 hour ago, Candid said:

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

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

 

Share this post


Link to post
Share on other sites
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 раз.

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

Share this post


Link to post
Share on other sites

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Сообщения

    • Ну, тут такое... Не может и не обязан каждый гражданин поголовно быть техническим специалистом, чтобы сходу распознать обман в "суперприборе". Так же, как и не может быть специалистом в области финансов, чтобы распознавать финансовые пирамиды и кабальные кредитные договоры. Не может быть профессором медицыны, чтобы отличить фуфломицин в аптеке от нормального лекарства. И так далее. Это должно быть заботой государственных надзорных органов, которые, между прочим, существуют за счёт этого гражданина. А им пофиг.
    • Как бы там ни было, руководству магазина, конечно, большой минус за то, что допустили явно нездорового человека к контактной работе с клиентами. А не прогнали домой или хоть куда - нибудь в подсобку, подальше от людей.
    • Есть хорошая фраза: "Чем лучше знаете химию и физику - тем меньше волшебного имагического творится вокруг." Все эти разводы - это просто налог на отсутствие знаний школьной программы. И вообще, если к описанию ЛЮБОЙ продукции добавить "без кандибобриков", то цену смело можно увеличить втрое - купят охотно. А если написать "с кандибобриками" - то и в пять раз можно увеличить.
    • Проблема в том, что если даже кто-то из пострадавших окажется достаточно упорным, проведёт техническую экспертизу устройства, докажет факт мошенничества в суде и вернёт свои деньги, то завтра эти же люди будут продавать то же самое фуфло в соседнем офисе под другой вывеской. Большинству проще махнуть рукой и смириться с потерей денег. На том этот бизнес и держится.
    • Ну, если искать контроллер по фотографии колонки, то, конечно ничего не найдёшь.
    • Есть на всю страну реклама ионизаторов воды с ценником повыше чем 21р. И people хавает.  
    • Угу, иначе затраты на "обгейд" могут оказаться совсем не такими, как планировалось. БП - самая ненадёжная составляющая системы. И самая опасная для других компонентов в случае ненормальной работы. А уж пытаться ремонтировать его, нихрена в этом не соображая, тем более не стОит.
  • Similar Content

    • By iiwanc
      Здравствуйте!
      Простите, если не сюда пишу.
      Не подскажите маркировку кабеля для USB?
      Мне нужно спаять USB кабель для телефона. Зарядка и передача данных.
      Не спрашиваю где его взять, от каких устройств и т.д. Мне нужно купить новый кабель.
      Подойдут с сечением 24, 22 AWG.
      Если с экранированием, то вообще будет огонь. 
      Если еще и мягкий, то круче огня будет 
       
      Интересует зарубежная и отечественная маркировка.
       
      Буду благодарен советам!
    • By Viktor_Z
      Здравствуйте, у меня вопрос по правильной распиновке для прошивки приставки
      1) Видел вариант с "прямой", то есть 5В на 5В, D+ на D+ и т.д.
      https://www.youtube.com/watch?v=3SgPDCK_HW4
      https://www.frontx.com/pro/c526p3.gif
      Спаял как раз по нему (фото прилагается), при подключении приставки загорается индикатор, ток есть, но данные не передаются (никакие usb порты при подключении не сгорели)
      1) Также вариант с "зеркальной", 5В на GND, D+ на D-
      https://www.youtube.com/watch?v=QITmktkameg
      Хотел спросить у сведущих людей, как все-таки правильно.
      Приставка TANIX TX9S.
       
       

    • By Михаил Дементьев
      Всем добрый день! Понимаю, что тема далеко не новая, но к моему сожалению, мне так и не удалось найти дельной информации по данному вопросу. А вот сам вопрос: «Как связать устройство в котором стоит переходник UART-CP2102(USB) с Stm32?”
      Понимаю, что можно просто припаяться к RX TX контактам устройства, но это будет самое последнее дело, т.к. не хочу случайно его испортить. 
    • By sunjob
      добрый день
      проект v-usb
      выкус из спецификации/инета/форумов:
      - реализация не полностью соответствует стандарту
      - работа на 100% не гарантируется
      - питание по USB / с компа может провалиться до 4-4.5В (а F_CPU идет в "притирочку" ...)  :))
      у всех рекомендованных схем подключения (3 шт) имеются те или иные очевидные минусы.



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


       
      достаем помидоры, баркова, мысли, высказываемся (заранее благодарен)
      tag: v-usb, usb, avr, atmega328p, avr-gcc, linux/mac-osx
      NO atmega32u4, NO arduino pro micro etc...

    • By Игорь Аксенов
      1.Не будет ли конфликта питания при одновременном подключении к ПК  stlink(UART) 3.3V и usb 5V (Узнал , что внешнее(5V)  недопустимо с USB).
         А про USB+stlink(UART)  честно долго искал, но так и не нашел.
      2. На USB: кто будет хабом(ПК или микроконтроллер) , а кто устройством.
×
×
  • Create New...