Я хочу разработать программу PyUSB, которая прослушивает данные с USB. Тем не менее, я хочу расширить приложение, чтобы поговорить с другим портом из малины Pi через USB. Интересно, возможно ли это?Малина Пи разговаривает с использованием USB
ответ
USB является ведущий/ведомый протокол, где USB-устройство подключен к USB хост-. Вы не можете напрямую подключить хост USB к хосту USB. RPi - это USB-хост.
Однако возможно использовать два USB-устройства, которые подключаются через какой-либо другой интерфейс, такой как UART, и каждый подключается к другому хосту. Например, вы можете использовать два USB/последовательный мост устройства FTDI спина к спине:
__________ ________
| Tx |______|Rx |
USB Host A ---------| Rx |______|Tx |---------USB Host B
|________| |_______|
FT323R FT323R
Как таковой, он в значительной степени аппаратная проблема не проблема программного обеспечения. Скорость передачи данных будет ограничена возможностями USB/Serial устройства - 3MBaud для FT232. Обратите внимание, что в реальной реализации вы также должны подключать контакты управления потоком RTS/CTS, но есть ограничение на мое терпение диаграммы ASCII!
Возможно, лучшим решением является использование имеющегося в продаже USB bridge cable; они используют тот же принцип, что и решение для последовательного моста, описанное выше, но вместо эмуляции порта COM/TTY эмулируют сетевой интерфейс и могут работать с полной скоростью USB. Конечно, вы могли бы реализовать такой кабель, но я сомневаюсь, что это будет экономически выгодно даже по сравнению с решением, которое я предложил выше. Я не знаю, существуют ли подходящие драйверы для сетевых адаптеров USB для RPi.
Учитывая, что RPi имеет Ethernet, это будет гораздо более простой способ подключения платы к плате и не ограничивается двухточечным, но может иметь доступ ко всей сети, и не будет проблем с драйверами USB для решения ,
С небольшой конфигурацией программного обеспечения для спокойствия консольные сообщения, можно также использовать некоторые комбинации аппаратных UART-устройств pi, либо проводной кроссовер друг к другу, либо один скрещенный с USB-логическим последовательным преобразователем, свисающим с другого. Существует теоретическая (хотя, насколько я слышала, нереализованная в программном обеспечении) возможность запускать один «голый» USB-порт на модели A или ноль в режиме устройства, что-то промежуточное чип-концентратор на B и аналогичные блоки. –
@ChrisStratton: Насколько я помню, один из доступных UART несколько ограничен возможностями, которые могут быть проблемой. В конце концов, в любом случае есть лучшие решения, такие как USB-мостовой кабель (также известный как сетевой кабель USB или кабель Easy Transfer), о котором я добавил заметку, и решение Ethernet на мой взгляд не вызывает затруднений. Интересный вопрос, но на самом деле не один для SO, но, возможно, http://electronics.stackexchange.com/. Однако для других голосовать за закрытие; было бы непоследовательно голосовать, чтобы закрыть вопрос, на который я потрудился ответить. – Clifford
Это может привести к некоторым ответам. [Малина в Ардуино] (http://blog.oscarliang.net/connect-raspberry-pi-and-arduino-usb-cable/) – Abhijeet