передача данных через USB-порт

Могу ли я передать последовательность данных (не файлов) с устройства Android на плату FPGA через порт USB? Поддерживает ли Android такие передачи последовательно с использованием некоторых API?


person sumit    schedule 16.09.2012    source источник


Ответы (2)


В зависимости от вашего оборудования Android существует до трех различных способов сделать это. От наиболее широко поддерживаемых до наименее поддерживаемых — это протокол ADB, режим USB-аксессуара и режим USB-хоста. На самом деле протокол ADB был разработан для отладки устройств Android, но Android поддерживает туннелирование TCP-соединений через него и различные проекты, такие как microbridge использовали это для потоковой передачи данных между приложениями Android и внешним оборудованием. Кто-то уже связал документацию для двух других.

Какой из них вы действительно можете использовать, зависит от типа платы FPGA, которую вы используете, и от того, какое USB-оборудование у нее есть. (На данный момент я предполагаю, что вы используете готовую плату.) Некоторые платы имеют только интерфейс USB-to-JTAG, как правило, что-то проприетарное и недокументированное, и в этом случае USB Host является единственным способом взаимодействие с ним, и вам понадобится довольно уродливый код на стороне Android. Другие, такие как платы OsciPrime и Ztex, используют микроконтроллер Cypress FX2, который снова требует поддержки USB Host, но позволяет вам определить собственный протокол USB между ними. Некоторые из них имеют чип Philips ISP1362 и поддерживают режим USB-хоста, и в этом случае вы можете использовать ADB или Open Accessory Protocol — вы даже можете загрузите на нем ucLinux и подключитесь к телефону с помощью libusb.

Если вы разрабатываете свое собственное оборудование, это, очевидно, зависит от личного вкуса, требований к производительности, компромисса между затратами на спецификацию и временем разработки, а также от того, насколько широкий спектр Android-устройств вам необходимо поддерживать. Например, линейка USB-трансиверов TUSB110x очень дешева и может поддерживать режим USB Host, поэтому теоретически вы можете взаимодействовать с ними практически со всем существующим оборудованием Android, но они требуют большой работы на стороне FPGA.

(В этом ответе некоторые гиперссылки были удалены из-за ограничения на две гиперссылки для новых пользователей. Приносим извинения.)

person makomk    schedule 19.09.2012

Это зависит от вашего Android-устройства. Начиная с уровня API 12, разработчики Android получили поддержку хоста USB и USB-аксессуаров. Аксессуар USB немного странный, насколько я могу судить, поскольку он предназначен только для распознавания проприетарного расширения Android для стандарта USB "Протокол Android Open Accessory",

Взгляните на работу, проделанную специалистами Nexus Computing в Швейцарии.

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

person Neil    schedule 16.09.2012