USB-C в смартфоне: все сложно

Казус с производительностью USB-шины, за­­я­­вив­­ший о се­бе на Xia­omi Mi A2, по­ста­вил за­да­чу раз­об­рать­ся с тем, как уст­ро­ен USB-конт­рол­лер в про­цес­со­рах се­мей­ст­ва Qual­comm Snap­dragon SDM630, SDM636 и SDM660. До­ку­мен­та­ции на эти чи­пы в от­кры­том до­сту­пе нет, а про­це­ду­ра со­гла­со­ва­ния для ее по­лу­че­ния об­ве­ша­на гроздь­я­ми уто­ми­тель­ных фор­маль­но­стей. По этой при­чи­не бу­дем ссы­лать­ся на рек­лам­ный про­с­пект Qual­comm Snap­dra­gon 630 Mo­bile Hard­ware De­velop­ment Kit, па­рал­лель­но за­гля­ды­вая в пол­ное ру­ко­вод­ство по вы­пу­щен­но­му ра­нее Snap­­dra­­gon 600E Pro­­ces­­sor APQ8064E. Свои пред­по­ло­же­ния и до­гад­ки бу­дем про­ве­рять на ап­па­рат­ной плат­фор­ме ASUS Zen­fone 4, она же Z01KD (по за­вод­ской ко­ди­фи­ка­ции ZE554KL).

Что с USB в 600-й серии Snap­dra­gon?

Архитектура USB-шины процессоров APQ8064E предельно прозрачна: в кристалле есть три контроллера, один из ко­то­рых предназначен исключительно для обслуживания SIM-карт. Он формирует внутреннюю шину и к периферийным устройствам никакого отношения не имеет. По современной классификации SIM-карты — это уже UICC-уст­рой­ст­ва, их производительность полностью удовлетворяется Full-Speed режимом обмена, хотя подключение и вы­пол­ня­ет­ся к кон­т­рол­ле­ру USB 2.0, реализованному в составе Qual­comm Snap­dra­gon 600E.

Блок-схема процессора Qual­comm Snap­dra­gon APQ8064E

Вспомним, что Full-Speed — это максимум 12 мегабит в секунду. Данный режим присущ USB 1.1 и контроллер USB 2.0 не умеет его поддерживать без хитрых трюков (на персональных платформах ранних выпусков с этой целью ус­та­нав­ли­ва­лись контроллеры-компаньоны).

Primary-контроллер в составе процессора Snap­dra­gon не только соответствует спецификации USB 2.0, но и способен в зависимости от подключения менять свои роли. Он может быть и хос­том, обслуживающим внешнюю флеш­ку, и пе­ри­фе­рий­ным устройством, доступным для персональной платформы. Вот это последнее с опорой на And­roi­d Com­po­site ADB драйвер и обеспечивает MTP-обмен компьютера со смартфоном.

В документации на процессор есть существенная ремарка: несмотря на свои High-Speed таланты, Primary-контроллер в состоянии оперировать только скоростями Low-Speed и Full-Speed (дословно: can support USB operations at lowspeed and full-speed). Запомним этот твит.

И только Secondary-контроллер, по уверениям Qual­comm, способен обеспечить High-Speed, как того требует спе­ци­фи­ка­ция USB 2.0, на скорости до 480 мегабит в секунду. Но, судя по всему, ему недоступны функции USB On-The-Go.

О разъеме USB Type-C

Для многих будет сюрпризом — смартфоны на базе Qual­comm Snap­dragon SDM630/SDM660 (не Snap­dra­gon 600E!) ос­на­ща­ют­ся интерфейсом USB Type-C с поддержкой USB 2.0. Не исключение и ASUS Zen­fone 4, и пресловутый Xia­omi Mi A2. В сло­во­со­че­та­нии USB 2.0 Type-C противоречия нет. Это может означать, например, следующую ком­би­на­цию фун­к­ци­о­наль­но­стей:

  • Разъем Type-C
  • Сигналы Type-C Configuration Channel
  • Способность передачи повышенных токов — поддержка Power Delivery
  • Дифференциальная пара (D+, D–) для реализации интерфейса USB 2.0
  • Дифференциальные пары SSTX/SSRX для USB 3.0 отсутствуют

Под неотъемлемыми атрибутами Type-C стоит понимать не только наличие сигналов Configuration Channel, но и под­держ­ку альтернативной функциональности. В отсутствие режима Super-Speed (и выше) ком­му­та­ция линий USB-шины для передачи видео выглядит задачей нереально сложной. Она, как минимум, определяется наличием транспорта — дифференциальных пар SSTX/SSRX. Впрочем, это не­об­хо­ди­мое, но недостаточное условие: функ­ци­о­наль­ность Dis­play­Port Alt Mode должна поддерживаться еще и системной ло­ги­кой.

Ищем DisplayPort на USB-шине

Оценим состояние альтернативного DisplayPort с помощью ASUS Mini Dock — внешнего Billboard-контроллера. К его гнезду Typa-AF можно подключить стандартную USB-периферию, к гнезду Type-C — пи­та­ние, пер­со­наль­ную плат­фор­му или «свою» периферию. Гнездо HDMI обеспечивает вывод изображения на экран.

ASUS Mini Dock с подключенным к ней смартфоном ASUS Zenfone 4

 

Стендовые показания подтвердили догадку — ASUS Zenfone 4 не поддерживает DisplayPort Alt Mode — про­брос гра­фи­че­ско­го интерфейса с ис­поль­зо­ва­ни­ем линий USB-порта. Аналогичный результат был и у редакции IXBT со смарт­фо­ном Xia­omi Mi A2. Там, правда, в качестве Billboard-контроллера был задействован адаптер Tronsmart CTHA1.

По-видимому, коммутация между USB-контроллером и графическим чипом смартфона в рамках существующей ар­хи­тек­ту­ры Qual­comm Snap­dragon SDM630/SDM660 не­ре­а­ли­зу­е­ма: объектом коммутации должны быть линии USB 3.0 ин­­тер­­фей­­са SSTX/SSRX, а для конфигурирования и управления нужен интерфейса USB 2.0. Если он занят обменом, ни о ка­кой аль­тер­на­тив­ной функ­ци­о­наль­нос­ти не может быть и речи.

USB-шина в ASUS Zen­fone 4

Убедимся в правильности своих предположений, исследуя USB-шину в смартфоне ASUS Zenfone 4. У нас должно быть два сценария диагностики, которые определены спецификацией USB OTG. Для начала посмотрим, как смартфон ви­дит подключенные через ASUS Mini Dock периферийные устройства? С помощью мобильного приложения USB Host Test оценим ситуацию с флеш-драйвом от ADATA.

USB-накопитель подключен через ASUS Mini Dock к ASUS Zen­fone 4 (ZE554KL)

 

Похоже, у нас на разъеме USB Type-C действительно задействованы только линии +5V, GND, D+, D–. Они фор­ми­ру­ют са­мый обыч­ный USB 2.0 порт.

А теперь обратимся к Zenfone 4 со стороны персональной платформы. Для этого запустим диагностическую утилиту AIDA64:

Как диагностическая утилита AIDA64 видит смартфон ASUS Zenfone 4?

 

Как же тогда смартфон ухитряется поддерживать симметричность USB Type-C порта? В отличие от сигнальных цепей USB 3.0, количество которых соответствует двум портам, сигнальные линии USB 2.0 порта в разъеме USB-C под­клю­че­ны к одному порту. Для того, чтобы интерфейс сохранял ра­бо­то­спо­соб­ность при пе­ре­во­ра­чи­ва­нии разъема, со­от­вет­ст­ву­ю­щие контакты просто за­ко­ра­чи­ва­ют­ся.

Итоги и перспективы

За рамками статьи осталась диагностика схем внешней зарядки. А ведь в разъеме USB Type-C линии Configuration chan­nel задают также напряжение питания, обеспечивая согласование параметров источника и потребителя. Правда, и ло­ги­че­ски, и физически это совсем не USB-протокол.

Источники

  • Qualcomm Snapdragon 630 Mobile Platform Product  Brief
  • Qualcomm Snapdragon 660 Mobile Platform Product  Brief
  • Qualcomm Snapdragon 660 Mobile Hardware Development Kit
  • Qualcomm Snapdragon 600E Processor APQ8064E Device Specification
  • Qualcomm Snapdragon 600E Processor APQ8064E Recommended Memory Controller and Device Settings