Apple Desktop Bus

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Apple Desktop Bus (ADB)
Изображение логотипа
Ранняя версия ADB клавиатуры и символ ADB
Ранняя версия ADB клавиатуры и символ ADB
Тип Интерфейс ввода-вывода
История
Разработчик Стив Возняк/Apple Computer
Разработано 1986
Производитель Apple Computer (сейчас Apple Inc.)
Произведено 1986—1998
Вытеснил RS-422/6522 клавиатуру и мышь
Вытеснено USB (1998—1999)
Спецификации
Горячая замена нестабильная поддержка
Внешнее да
Выводы 4
Соединитель Mini-DIN
Параметры данных
Передача данных дву-направленный последовательный поток
Пропускная способность 125 kbit/s максимум
(~10 kbit/s в действительности)
Макс. устройств 16
(~5 в действительности, 3 поддерживаемо)
Протокол последовательный
Распиновка
Female socket from the front
№ контактаМаркировкаОписание
1ADBData
2PSWPower on
3+5V+5 В
4GNDЗемля
Логотип Викисклада Медиафайлы на Викискладе
Такой же разъём как и S-Video

Apple Desktop Bus (или ADB) — устаревший компьютерный порт (последовательная шина ввода-вывода данных), созданный для подсоединения медленных устройств (компьютерная клавиатура и мышь) к компьютерам Apple Macintosh. Устанавливалась на всех настольных компьютерах Apple вплоть до 1999 года.

История[править | править код]

ADB была разработана Стивом Возняком, искавшим себе новый проект в середине 1980-х годов. Кто-то предложил, чтобы он создал новую систему связи для устройств типа мыши и клавиатуры, которая требовала бы только единственное цепочечное соединение кабеля, и была бы недорогой в итоге. Стив исчез из поля зрения СМИ на месяц, а вернулся уже с ADB.

Первая система, в которой использовалась ADB, была Apple IIgs. ADB впоследствии использовалась на всех Apple Macintosh машинах, начиная с Macintosh II и Macintosh SE, прежде чем была заменена на USB, начиная с iMac 1998 года. ADB также использовалась в ряде других 680x0-основанных микрокомпьютерах, выпускаемых Sun, HP, NeXT и другими производителями.

Последними устройствами, использовавшими ADB (как внутренний интерфейс для встроенных клавиатуры и тачпада) были PowerBook и iBook, с февраля 2005 года окончательно перешедшие на USB.

Устройство[править | править код]

Аппаратная часть[править | править код]

Согласно философии промышленного дизайна Apple, ADB должна была быть максимально простой в использовании и недорогой для создания. Подходящий разъём был найден в форме 4-штырькового miniDIN разъёма, который также используется для S-видео. Разъёмы были маленькими, широко доступными, и могли быть вставлены только в правильное положение из-за выемок на кольцевой части разъёма.

Протокол ADB требовал только единственный провод для данных (помечен как «ADB»). Два других провода использовались для питания (+5В и земля). 5-вольтовый провод допускал токи до 500 мА и требовал, чтобы устройства использовали только по 100 мА каждое. ADB также включал «PSW» провод, который был подключён непосредственно к блоку питания компьютера. Это было сделано для того, чтобы разрешить клавише на клавиатуре выводишь компьютер из ждущего режима, не нуждаясь в программном обеспечении ADB для интерпретации сигнала. В более современных проектах вспомогательный микроконтроллер всегда остаётся включённым, таким образом экономично посылая команду включения по стандартному каналу USB.

Большинство последовательных цифровых интерфейсов используют отдельный тактовый провод, чтобы сигнализировать прибытие индивидуальных битов данных. Поскольку ADB была разработана, чтобы быть дешёвой, Возняк признал, что один единственный провод имел достаточную полосу пропускания чтобы нести оба сигнала. Кроме того, было экономично декодировать тактовые сигналы и сигналы данных, чтобы использовать более дешёвые кабели. Декодирующий приёмопередатчик был доступен только по запросу производителя оборудования, поскольку Apple предпочитала работать более близко с продавцами. Есть вероятность, что Apple продала эти аппаратные средства ниже их стоимости, чтобы поощрить развитие периферийных устройств.

Протокол обмена[править | править код]

Система ADB базируется на устройствах, способных расшифровать единственное число («адрес») и хранить несколько небольших чисел — данных в регистрах. Всё управление на шине ведёт главный процессор путём посылки команд для чтения или записи данных: устройствам не позволяется использовать шину без соответствующего запроса. Эти запросы принимают форму единственной последовательности байтов. Старшие четыре бита содержат адрес (зависящий от id) устройства на цепи, учитывая до 16 устройств на единственной шине. Следующие два бита определяют одну из четырёх команд, и заключительные два бита указывают один из четырёх регистраторов:

  • 11 - talk — послать содержимое регистра в компьютер;
  • 10 - listen — записать число в регистр;
  • 00 - flush — очистить регистр;
  • reset — команда сброса для всех присоединённых к шине устройств. Для этой команды значащими битами являются 3,2,1,0; все они равны 0.

Например, если было бы известно, что мышь расположена по адресу $D, то компьютер периодически отсылал бы следующее сообщение на шину: 1101 11 00. Оно означает, что устройство $D (1101) должно «говорить» (11) и возвращать содержание нулевого регистра (00), для мыши отвечающего за последние изменения положения. Регистры могли содержать от 2 до 8 байт. Регистры 1 и 2 были не определены, и предназначались для хранения сторонними разработчиками информации о конфигурации устройства. В регистре 3 всегда содержалась информация для идентификации устройства.

Адреса и номера устройств востанавливались в значения по умолчанию при сбросе. Например, все клавиатуры имели номер $2, а все мыши — $3. При включении машины контроллер ADB запрашивает у каждого из известных адресов содержимое регистра 3. Если от данного адреса ответ не прибыл, он отмечается как пустой и в дальнейшем не опрашивается. Если устройство отвечало, ему назначался случайный адрес. Затем компьютер посылал другую команду на новый адрес, прося устройство переместиться на другой адрес. После завершения этого процесса устройство отмечалось как «живое», и система в дальнейшем обращалась к нему. Как только все устройства были перечислены этим способом, шина была готова к использованию.

Хотя это не было обычно для тех времён, была возможность подключать к ADB несколько устройств одного вида (например, две клавиатуры или два графических планшета). В этом случае, когда компьютер спрашивал устройства на определённом адресе, установленном по умолчанию после сброса, могла бы произойти ошибка из-за того, что оба устройства ответят одновременно, поэтому устройства, подключённые к ADB, всегда делали небольшую задержку, выбираемую случайным образом, которая позволяла им избегать проблему.

При начальной настройке ADB компьютер посылает команду по определённому адресу, и первое устройство посылает ответ, а второе устройство с таким же адресом видит, что шина занята, и ждёт следующее обращение, во время которого первое устройство уже не занимает шину.

Скорость передачи данных по шине теоретически составляла 125 кбит/сек, однако фактическая скорость была в лучшем случае половинной из-за того, что использовался один неэкранированный провод для связи между компьютером и устройствами. В фактическом использовании скорость была намного меньше, чем половинная, поскольку скорость зависела от быстродействия всей системы. Mac OS тех времён была не очень быстра, и скорость передачи данных по шине часто падала до 10 кбит/сек.

Проблемы[править | править код]

Одной особенностью ADB было то, что, несмотря на то, что она была электрически опасна для горячей замены на всех машинах, имела все основные условия, необходимые для горячей замены, осуществлённые и в программном обеспечении, и в аппаратных средствах.

Практически на всех оригинальных системах ADB небезопасно включать или отключать устройство после включения системы. Это могло вызвать перегорание впаянного на материнской плате предохранителя, что потребовало бы отправку компьютера в центр обслуживания. Простой альтернативой недешёвому техническому обслуживанию была покупка предохранителя по номинальной стоимости и соединение его параллельно сгоревшему (что делалось для отсутствия паек на плате, не отмеченных как сделанные в рем. мастерской).

Соединители типа miniDIN были рассчитаны всего на 400 вставлений-выниманий, а при невнимательном вставлении можно было погнуть штырьки. Также контакты в розетке miniDIN могли со временем расшатываться, что приводило к ненадёжной фиксации или выпаданию вилки.

Незадолго для появления FireWire с устройств, подключаемых к ADB (кроме клавиатур Apple), исчезли вторые розетки, из-за чего пользователи лишались возможности составлять цепочки из устройств без использования разветвителей.

В то время как соединители типа miniDIN не могут быть включены неправильно, всё же попадались вилки без пластикового штыря, что позволяло включить вилку неверно. В связи с этим Apple ввело U-образные выемки по периметру вилки, что исключало ошибки включения, но сторонние производители игнорировали это нововведение.

Ссылки[править | править код]