Vaffanculo Опубликовано 27 июня, 2021 Поделиться Опубликовано 27 июня, 2021 Всем привет! Встала передо мной задача передать USB трафик по радио. Хочется сделать что-то типа USB-донгла, который вставляется в компьютер и общается с ответым устройством по радио. К ответному устройству своим родным кабелем должен подключаться существующий USB-девайс. Функционал USB-хаба не требуется, работа идет только с одним конечным устройством. Задача минимум - поддержать Low Speed режим. Вопросов много, начну с главного. Реально ли сделать все это не занимаясь разбором USB пакетов, а просто передавая их как есть? То есть МК в режиме девйса получает от хоста пакет, вырабатывает прерывание, обработчик которого забирает буфер и выдает команду радиомодулю на передачу содержимого буфера. Со стороны устройства все то же самое, только МК работает в режиме хоста. Ну и в обратном направлении подобным же образом. Выбор микроконтроллера. Он должен позволять работать с голыми пакетами напрямую, чтоб не было всяких фокусов с прибитыми гвоздями VID и PID. Насколько я понимаю, не каждый МК с поддержкой USB умеет работать в режиме хоста. Поскольку это нужно только на одном конце, получается, что микроконтроллеры могут быть разными для донгла и для девайса. Ну и цена вопроса имеет значения. STM32 внезапно подорожали в разы. Присматриваюсь к китайскому CH559 Подойдет ли для радиообмена NRF24L01? Он вроде бы не сильно много потребляет по сравнению с WiFi. Если нет, то что вместо него? По блютусу делать не хочу, там не получится сделать так, чтобы компьютер видел конечное устройство ровно так, как он его видит при подключении кабелем, то есть драйвера устройство не опознают. Или я не прав? Спасибо. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Lexter Опубликовано 27 июня, 2021 Поделиться Опубликовано 27 июня, 2021 (изменено) 1 час назад, Vaffanculo сказал: Хочется сделать что-то типа USB-донгла, который вставляется в компьютер и общается с ответым устройством по радио. Сначала вам придётся решить вопрос, что делать с передаваемой полосой частот сигнала USB. Для USB 1 полоса должна быть не менее 12 МГц, для USB 2 - не менее пол-гигагерца, для USB 3 -... ну вы поняли. Решить вопрос с передачей сигнала подключения - отключения - определения версии USB устройства (резистор подтяжки на линии D+ или D_) можно очень просто, если использовать микросхему USB-хаба типа TUSB2036 и подобные. Но сначала почитайте про Wireless USB. Изменено 27 июня, 2021 пользователем Lexter 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
20% скидка на весь каталог электронных компонентов в ТМ Электроникс!Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!Перейти на страницу акции Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849
КЭС Опубликовано 27 июня, 2021 Поделиться Опубликовано 27 июня, 2021 Вам шашечки или ехать? Если второе, то купите подобный девайс, подключите его через WiFi или иным способом в вашу сеть и пользуйтесь. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>> Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161
COKPOWEHEU Опубликовано 29 июня, 2021 Поделиться Опубликовано 29 июня, 2021 27.06.2021 в 13:18, Lexter сказал: Сначала вам придётся решить вопрос, что делать с передаваемой полосой частот сигнала USB. Для USB 1 полоса должна быть не менее 12 МГц, для USB 2 - не менее пол-гигагерца Поправка: для USB1 нужно 1.5 Мб/с, для USB2 либо 12, либо 480 Мб/с в зависимости от стандарта FS/HS. Причем если все-таки заморочиться разборкой пакетов, скорость можно снизить. 0 Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз. Часть моих наработок. Ссылка на комментарий Поделиться на другие сайты Поделиться
Starichok Опубликовано 29 июня, 2021 Поделиться Опубликовано 29 июня, 2021 1 час назад, COKPOWEHEU сказал: Поправка: для USB1 нужно 1.5 Мб/с поправка. 1,5 МБ/с - это 12 Мегабит в секунду, то есть, 12 МГц, чем и было сказано выше. 0 Мудрость приходит вместе с импотенцией... Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду. Ссылка на комментарий Поделиться на другие сайты Поделиться
El-Shang Опубликовано 29 июня, 2021 Поделиться Опубликовано 29 июня, 2021 Оно не будет работать. Никогда. :-) Банально по той причине, что передача по радио крайне ненадёжна по своей сути. Кто-то где-то включил вай-фай, блуютус, просто прошёл мимо. Молния бахнула в конце концов. И всё, пакет потерян или искажён. Возможности USB в детектировании ошибок крайне ограничены. Если мне не изменяет память, там CRC-5 используется как минимум для части пакетов. А ещё придётся реализовывать перестройку частоты, ибо в одних условиях будет менее захламлён один диапазон, а в других — другой. А ещё надо будет потратить время на отправку по радио, а потом ещё раз отправить по USB уже целевому устройству, а потом всё повторить в обратном порядке. И уложить это всё аккурат в те тайм-слоты в которых хост будет ожидать данных. Не забыв заранее его уведомить, что данные надо будет ожидать в следующий раз (может быть). Ну и так далее и тому подобное. ;-) 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Lexter Опубликовано 29 июня, 2021 Поделиться Опубликовано 29 июня, 2021 (изменено) 7 минут назад, El-Shang сказал: Оно не будет работать. Никогда. Ну где же вы были, когда люди мучались над вот этим? 27.06.2021 в 13:18, Lexter сказал: почитайте про Wireless USB. Свяжитесь с ними, может быть ещё не поздно. А то зря мучаются... Изменено 29 июня, 2021 пользователем Lexter 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
El-Shang Опубликовано 29 июня, 2021 Поделиться Опубликовано 29 июня, 2021 (изменено) @Lexter, хорошо, я внесу уточнение. В том виде, как автор себе представляет работать не будет. Не удастся ему в кустарных условиях на двух микроконтроллерах (даже тип указан NRF24L01) напрямую передать данные между двумя узлами посредством радио без промежуточной обработки данных. Сравнение же с Wireless USB некорректно. Изменено 29 июня, 2021 пользователем El-Shang 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Lexter Опубликовано 29 июня, 2021 Поделиться Опубликовано 29 июня, 2021 3 часа назад, El-Shang сказал: Сравнение же с Wireless USB некорректно. Корректно. Если собрался что-то делать, посмотри, как это делают другие. А эта команда ничего лишнего в систему просто так напихивать не будет. Там описаны и все проблемы, требующие решения. После изучения чужого опыта станет более понятно, насколько не продуман предлагаемый подход. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Pont 007 Опубликовано 29 июня, 2021 Поделиться Опубликовано 29 июня, 2021 27.06.2021 в 14:07, Vaffanculo сказал: USB трафик по радио. Какой трафик ? Чем тебя не устраивает стандартный Wi-FI ? В Wi-FI проходит всё что можно передать по USB. 0 С уважением, Дмитрий Ссылка на комментарий Поделиться на другие сайты Поделиться
Dr. West Опубликовано 30 июня, 2021 Поделиться Опубликовано 30 июня, 2021 Ему хочется, чтобы компьютер видел всю эту систему, как будто в его реальный порт втыкают реальный целевой девайс, без дополнительных заморочек. 0 "Я не знаю какой там коэффициент, я просто паять умею. " Ссылка на комментарий Поделиться на другие сайты Поделиться
Candid Опубликовано 30 июня, 2021 Поделиться Опубликовано 30 июня, 2021 А не проще сделать это на базе беспроводной мыши? 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
El-Shang Опубликовано 30 июня, 2021 Поделиться Опубликовано 30 июня, 2021 16 hours ago, Lexter said: Корректно. Если собрался что-то делать, посмотри, как это делают другие. Да как сказать. Приводить в качестве примера технологию, на которую были потрачены годы и миллионы (если не десятки миллионов) долларов? Очевидно же, что человек, которые приходит на радиолюбительский форум с таким вопросом даже близко не понимает, что необходимо для решения надуманной им проблемы. Иначе бы он: а) искал бы готовое решение и в итоге бы пришел к упомянутому Вами стандарту; б) изменил бы свой подход к решению обозначенной задачи; Так что "нет и никогда" вполне достаточно. :-) 1 hour ago, Candid said: А не проще сделать это на базе беспроводной мыши? Проще поставить два готовых блютуса. И написать "мост", реализующий обмен между двумя (или сколько там) узлами. Мышки имеют мерзкое свойство работать по проприетарному протоколу по радио — у одних производителей он один, а у других — другой. Плюс на стороне USB там HID-устройство, а оно довольно неторопливое по своей сути. Хотя для низкоскоростного обмена вполне покатит. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
COKPOWEHEU Опубликовано 30 июня, 2021 Поделиться Опубликовано 30 июня, 2021 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 сказал: А не проще сделать это на базе беспроводной мыши? Каким образом? Она же в системе всегда видна как мышь, другими устройствами прикидываться не умеет. 0 Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз. Часть моих наработок. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы публикуете как гость. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.