Перейти к содержанию
    

Полнодуплексная передача по USB type-c на Android

Мне нужно осуществлять одновременный (full duplex) прием-передачу данных (аудио поток) между Android смартфоном и МК именно по usb. Однако как я понял, с использованием 2-х диф. пар от usb 3.0 этого добиться не получится, поскольку во первых нет контроллеров (дешевых тем более), которые поддерживали бы usb 3.0, а во вторых режим OTG использует только одну пару D+/- от более старого стандарта 2.0, то есть только 1 канал. Отсюда возникает вопрос - есть ли вообще этот полный дуплекс в type-c? Может его и нет, а 2 физических канала нужно для обеспечения наивысшей скорости передачи при их одновременной работе?

Так вот, собственно как решить задачу? В type-c есть целых 2 по 12 выводов. Через него передают и звук. И аналоговый и цифровой. Должен быть и вход для микрофона организован, только он скорее всего аналоговый. Если например с хоста выдавать цифровой звук по D+/- и одновременно на вход принимать аналоговый как бы с микрофона, но не с микрофона, а с ЦАП микроконтроллера. То есть должен получится своеобразный "телефон" между смартфоном и МК, работающий в реальном времени. Но тут возможно будут проблемы с реализацией такого через апи андроида, поскольку девайс не может быть одновременно и микрофоном и чем-либо еще. То есть устройство с микрофоном может быть гарнитурой - иметь аналоговый вход динамика и аналоговый выход микрофона, но не более. Или я ошибаюсь, так как сам протокол (а тем более тайпа) знаю плохо и не разбирался еще в инициализациях, передачах, пакетах и т. д. Мне бы сначала понять, можно ли это сделать в принципе.

Есть еще мысль создать псевдо-дуплексное соединение USB с временнЫм разделением, если это возможно. В интернете ничего не нашел по этому поводу. А так вроде пропускной способности "full speed" должно хватить для звука.

Изменено пользователем HaJl4uk

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

40 minutes ago, HaJl4uk said:

Есть еще мысль создать псевдо-дуплексное соединение USB с временнЫм разделением, если это возможно. В интернете ничего не нашел по этому поводу.

Оно так и работает. Книжку какую-нибудь про USB почитайте.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Оно так и работает. Книжку какую-нибудь про USB почитайте.

В том то и дело, где эту книжку найти. Гугл по запросу "USB time division duplex" не выдает ничего по теме. Выдает только по отношению к радиосвязи bluetooth, wifi, LTE. А usb затрагивается лишь косвенно. Даже документаций никаких нет про это, не говоря уже про обучающие статьи. Может оно как то по-другому называется по отношению к проводным интерфейсам?

Изменено пользователем HaJl4uk

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

21 minutes ago, HaJl4uk said:

Даже документаций никаких нет про это

Есть usb.org со всей возможной документацией. Да даже википедию достаточно полистать для получения общего представления о шине.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

17 минут назад, aaarrr сказал:

Есть usb.org со всей возможной документацией. Да даже википедию достаточно полистать для получения общего представления о шине.

Я имею в виду найти информацию о том, предусмотрено ли такое разделение в самом протоколе или нужно самостоятельно менять направление передачи через определенные промежутки времени

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Эта информация представлена в обоих упомянутых источниках. Да, все предусмотрено протоколом.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Цитата

Да, все предусмотрено протоколом

Вы имеете в виду что необходимо будет попеременно создавать короткие транзакции изохорной передачи с чередующимся направлением IN/OUT? Или как? Можете подсказать конкретней, если не трудно?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Передачи изохронные.

Вам же уже посоветовали - читайте документацию по USB и в частности - по USB классу Audio.

Общее описание хорошее и на русском: Михаил Гук "Шины PCI, USB и FireWire".

И конкретно по аудио-классу: https://www.usb.org/sites/default/files/audio10.pdf

или: https://www.silabs.com/documents/public/application-notes/AN295.pdf

Нашлось буквально за пару минут гугленья.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...