Alvaros
.
- Регистрация
- 14.05.16
- Сообщения
- 21.452
- Реакции
- 101
- Репутация
- 204
Это моя маленькая статья с описанием (почти) всего, что я знаю об интерфейсе Apple Lightning и связанных с ним технологиях: Tristar, *****, HiFive, SDQ, IDBUS и др. Но сначала маленькое предупреждение…
Читайте эту статью на свой страх и риск! Информация основана на большом количестве внутренних материалов AppleInternal (утечка данных, схем, исходных кодов), которые я прочёл по диагонали. И, конечно, на моих собственных исследованиях. Должен предупредить, что я никогда раньше не проводил подобных исследований. Таким образом, эта статья может использовать неправильные или просто странные термины и оказаться частично или полностью неправильной!
Прежде чем углубиться, давайте кратко разберёмся в терминах:
Что такое Lightning?
Lightning — это цифровой интерфейс, используемый в большинстве устройств Apple iOS с конца 2012 года. Он заменил старый 30-контактный разъём.
На картинке выше гнездо разъёма, а на картинке ниже его распиновка:
Пожалуйста, обратите внимание, что в разъёме контакты с обеих сторон коннектора не соединены в одном и том же порядке. Таким образом, хост-устройство должно определить ориентацию кабеля, прежде чем что-то делать.
Хотя это не всегда так. У многих аксессуаров Lightning, которые мне попадались, в разъёмах зеркальная распиновка.
Что такое Tristar и *****?
Tristar — это интегральная схема, встроенная в каждое устройство с гнездом разъёма Lightning. По сути, это MUX:
Кроме всего прочего, его основная цель состоит в том, чтобы соединяться со штекерным разъёмом Lightning, как только он подключён — определять ориентацию, Accessory ID и надлежащим образом маршрутизировать внутренние интерфейсы, такие как USB, UART и SWD.
***** — это новый вариант Tristar, используемый начиная с iPhone 8/X. Видимо, наиболее существенным изменением является поддержка беспроводной зарядки, но это ещё предстоит проверить:
Мне известны пять основных вариантов Tristar/*****:
- TI THS7383 — Tristar первого поколения в iPad mini 1 и iPad 4
- NXP CBTL1608A1 — Tristar первого поколения в iPhone 5 и iPod touch 5
- NXP CBTL1609A1 — таинственный Tristar первого поколения в iPod nano 7 —
You must be registered for see links
- NXP CBTL1610Ax — TriStar второго поколения, используется начиная с iPhone 5C/5S и, по-видимому, во всём остальном, что не поддерживает беспроводную зарядку. Существует несколько поколений (x — номер поколения)
- NXP CBTL1612Ax — ***** используется с iPhone 8/X и, видимо, во всём остальном, что поддерживает беспроводную зарядку. Существует несколько поколений (x — номер поколения)
С этого момента я буду использовать только термин TriStar, но имейте в виду, что он также означает *****, поскольку они очень похожи в большинстве аспектов, которые будут рассмотрены в этом тексте.
Что такое HiFive?
HiFive — это дочерний интерфейс Lightning, то есть штекерный разъём. Он также содержит логический элемент — этот чип известен как SN2025/BQ2025.
Что такое SDQ и IDBUS?
Эти два термина часто считают своего рода синонимами. Для удобства я буду использовать только термин IDBUS, так как он кажется мне более правильным (и именно так технология называется в спецификации THS7383).
Итак, IDBUS — это цифровой протокол, используемый для коммуникации между Tristar и HiFive. Очень похож на
You must be registered for see links
.Теперь можем начать
Давайте прослушаем коммуникации Tristar и HiFive. Возьмите логический анализатор, переходную плату Lightning с соединением для гнезда и штекерного разъёма, какой-нибудь аксессуар (обычный кабель Lightning-to-USB отлично подойдёт) и, конечно, какое-нибудь устройство с портом Lightning.
Сначала подключите каналы логического анализатора к обеим линиям ID переходной платы (контакты 4 и 8) и подключите плату к устройству, но пока не подключайте аксессуар:
Сразу после этого начните выборку (подойдёт любая частота от 2 МГц и выше). Вы увидите что-то вроде этого:
Как видете, Tristar опрашивает каждую линию ID по очереди — одну за другой. Но поскольку мы не подключили никакого аксессуара, опрос явно провалился. В какой-то момент устройство устанет от этого бесконечного потока отказов и остановит его. А пока давайте разберёмся, что именно происходит во время опроса:
Сначала мы видим длинный интервал (около 1,1 миллисекунды), когда просто уровень высокий, но больше ничего не происходит:
Видимо, это время используется для зарядки внутреннего конденсатора HiFive — энергия от него будет затем использоваться для питания внутренних логических чипов.
Гораздо интереснее то, что происходит потом:
Очевидно, это поток каких-то данных. Но как его интерпретировать? Как расшифровать? Давайте виртуально разделим его на минимальные значимые части — то, что я называю словами:
По сути слово — это сочетание падения-подъёма-падения:
- Содержательный этап — интервал, который определяет значение слова
- Этап восстановления — интервал, который, видимо, требуется для обработки содержательной стадии на стороне получателя и/или для подготовки следующего слова на стадии отправки
Вот таблица известных слов с их интервалами для обоих этапов, которые мы обсуждали выше (все единицы измерения в микросекундах):
| Содержание | Восстановление |
|---|



