HaJl4uk 0 Posted February 22, 2021 (edited) · Report post Мне нужно осуществлять одновременный (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" должно хватить для звука. Edited February 22, 2021 by HaJl4uk Quote Ответить с цитированием Share this post Link to post Share on other sites
aaarrr 0 Posted February 22, 2021 · Report post 40 minutes ago, HaJl4uk said: Есть еще мысль создать псевдо-дуплексное соединение USB с временнЫм разделением, если это возможно. В интернете ничего не нашел по этому поводу. Оно так и работает. Книжку какую-нибудь про USB почитайте. Quote Ответить с цитированием Share this post Link to post Share on other sites
HaJl4uk 0 Posted February 23, 2021 (edited) · Report post 1 час назад, aaarrr сказал: Оно так и работает. Книжку какую-нибудь про USB почитайте. В том то и дело, где эту книжку найти. Гугл по запросу "USB time division duplex" не выдает ничего по теме. Выдает только по отношению к радиосвязи bluetooth, wifi, LTE. А usb затрагивается лишь косвенно. Даже документаций никаких нет про это, не говоря уже про обучающие статьи. Может оно как то по-другому называется по отношению к проводным интерфейсам? Edited February 23, 2021 by HaJl4uk Quote Ответить с цитированием Share this post Link to post Share on other sites
aaarrr 0 Posted February 23, 2021 · Report post 21 minutes ago, HaJl4uk said: Даже документаций никаких нет про это Есть usb.org со всей возможной документацией. Да даже википедию достаточно полистать для получения общего представления о шине. Quote Ответить с цитированием Share this post Link to post Share on other sites
HaJl4uk 0 Posted February 23, 2021 · Report post 17 минут назад, aaarrr сказал: Есть usb.org со всей возможной документацией. Да даже википедию достаточно полистать для получения общего представления о шине. Я имею в виду найти информацию о том, предусмотрено ли такое разделение в самом протоколе или нужно самостоятельно менять направление передачи через определенные промежутки времени Quote Ответить с цитированием Share this post Link to post Share on other sites
aaarrr 0 Posted February 23, 2021 · Report post Эта информация представлена в обоих упомянутых источниках. Да, все предусмотрено протоколом. Quote Ответить с цитированием Share this post Link to post Share on other sites
HaJl4uk 0 Posted February 23, 2021 · Report post Цитата Да, все предусмотрено протоколом Вы имеете в виду что необходимо будет попеременно создавать короткие транзакции изохорной передачи с чередующимся направлением IN/OUT? Или как? Можете подсказать конкретней, если не трудно? Quote Ответить с цитированием Share this post Link to post Share on other sites
jcxz 0 Posted February 23, 2021 · Report post Передачи изохронные. Вам же уже посоветовали - читайте документацию по 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 Нашлось буквально за пару минут гугленья. Quote Ответить с цитированием Share this post Link to post Share on other sites