2016-02-13 2 views
1

Я хочу разработать программу PyUSB, которая прослушивает данные с USB. Тем не менее, я хочу расширить приложение, чтобы поговорить с другим портом из малины Pi через USB. Интересно, возможно ли это?Малина Пи разговаривает с использованием USB

+0

Это может привести к некоторым ответам. [Малина в Ардуино] (http://blog.oscarliang.net/connect-raspberry-pi-and-arduino-usb-cable/) – Abhijeet

ответ

0

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 для решения ,

+0

С небольшой конфигурацией программного обеспечения для спокойствия консольные сообщения, можно также использовать некоторые комбинации аппаратных UART-устройств pi, либо проводной кроссовер друг к другу, либо один скрещенный с USB-логическим последовательным преобразователем, свисающим с другого. Существует теоретическая (хотя, насколько я слышала, нереализованная в программном обеспечении) возможность запускать один «голый» USB-порт на модели A или ноль в режиме устройства, что-то промежуточное чип-концентратор на B и аналогичные блоки. –

+0

@ChrisStratton: Насколько я помню, один из доступных UART несколько ограничен возможностями, которые могут быть проблемой. В конце концов, в любом случае есть лучшие решения, такие как USB-мостовой кабель (также известный как сетевой кабель USB или кабель Easy Transfer), о котором я добавил заметку, и решение Ethernet на мой взгляд не вызывает затруднений. Интересный вопрос, но на самом деле не один для SO, но, возможно, http://electronics.stackexchange.com/. Однако для других голосовать за закрытие; было бы непоследовательно голосовать, чтобы закрыть вопрос, на который я потрудился ответить. – Clifford

Смежные вопросы