Русская Википедия:Apple Desktop Bus

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Шаблон:Значения Шаблон:Плохой перевод Шаблон:Интерфейс

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 — команда сброса для всех присоединённых к шине устройств.
Примечание: для команды Reset значащими битами являются 3,2,1,0, все они равны 0.

Например, если мышь была известна по адресу $D, то компьютер периодически отсылал бы сообщение на шину, которое выглядело бы так: 1101 11 00.

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

Примечание: для команды Reset значащими битами являются 3,2,1,0, все они равны 0.

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

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

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

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

Проблемы

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

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

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

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

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

Ссылки

Шаблон:Rq

Шаблон:Компьютерные шины